jump.sh

Local dev servers with real HTTPS URLs

No port hunting. No cert wrangling. No DNS config.
Every project gets a stable https://yourapp.jump.sh URL that just works.

Problems jump.sh solves

Quick start

npx jump.sh server
# open https://dash.jump.sh in your browser
# add your project in the dashboard

Run in the foreground to try it out. When you're ready, jump.sh install runs it as a background service.

Built for AI agents

Coding agents need stable URLs to verify their work. jump.sh gives every project a permanent https:// URL that agents can screenshot, test, and hit from any tool — no port discovery or manual setup.

Works with your stack

Docker Compose — detects docker-compose.yml, spins up containers, proxies to them.
Node.js — detects package.json, runs your dev command, proxies to the dev server.
Ports are allocated automatically from a dedicated range — no conflicts across projects.

Git worktrees

Working on multiple branches? jump.sh auto-discovers .worktrees/ directories and gives each branch its own URL:

https://myapp.jump.sh           → main branch
https://myapp--feature-x.jump.sh → .worktrees/feature-x

Run jump.sh add on the main project once. Worktrees are picked up automatically via periodic scanning — no need to register each branch.

Agents working on feature branches can verify changes at the branch-specific URL without interfering with main.

jump.sh dashboard showing project list with URLs and status
Dashboard — all your projects with their HTTPS URLs at a glance
Expanded project view showing worktrees, logs, and settings
Expanded project — worktrees, live logs, and controls in one place

Commands

Remote access via Tailscale

jump.sh register provisions a subdomain tied to your GitHub username (e.g., *.you.jump.sh) that resolves to your Tailscale IP. Access your dev URLs from any device on the same tailnet — your phone, a colleague's laptop, or a CI runner — no port forwarding or public exposure required.

How it works

*.jump.sh resolves to 127.0.0.1 via public DNS — no local DNS setup needed. The daemon runs on your machine, terminates TLS with a shared wildcard certificate, and proxies requests to your dev servers based on subdomain.

Browser → https://myapp.jump.sh
       → DNS: 127.0.0.1
       → jump.sh daemon (TLS termination)
       → localhost:10042 (your dev server)

Requirements