Docs
Jumpterm runs your AI coding agents on your machine and lets you drive them from the web, your phone, or the Mac app. Here’s the whole model in a few minutes.
How it works
A small jumpterm daemon runs on your machine — that’s where the agent and your files live. The web and iOS apps are thin clients that relay to it over an encrypted channel. When your machine is offline the apps tell you, and you can re-launch onto any online host. Your code and keys never live on our servers.
Quick start
1
Install the daemon
The easiest path is the Jumpterm Mac app — it bundles the daemon, so installing it gives you everything with no separate CLI step. Prefer the terminal? Build it from source (needs Node.js 20+):
$ git clone https://github.com/securityjeff/jumpterm && cd jumpterm$ pnpm install && pnpm -F @jumpterm/cli build2
Sign in
Open the Mac app and sign in, or authenticate the source build with your account.
$ node packages/cli/dist/index.js login3
Start the daemon
With the Mac app, this happens automatically. From source, turn this machine into an always-on host and leave it running.
$ node packages/cli/dist/index.js daemon4
Launch a session
Open jumpterm.com or the iOS app, tap New session, pick this machine, and the agent runs here — streaming live to every device.
Concepts
- Host
- A machine running the daemon. Sessions run on a host; you choose which one when you launch.
- Session
- One agent run. Event-sourced, so it's resumable and consistent across every device — refresh or switch devices and you pick up exactly where you were.
- Provider account
- Your LLM login or BYOK key, per agent. Add a key in Settings and we verify it live; keep several and pick one per session.
- Approvals
- When an agent wants to run a command or edit a file, it asks. You approve or deny from any device, with the real diff in front of you.
- Fleet
- All your active agents grouped by project, so you can run many at once and see what's live at a glance.
- Jump OS
- The local optimizer your sessions run through. It meters real usage, caches and dedupes upstream calls, maximizes provider prompt caching, and enforces per-session token budgets — entirely on your machine, with your key held only in memory. Toggle it per session in the composer; see what it saved in the session view, and your burn rate in Settings → Usage window.
Self-hosted relay
Point the daemon at your own relay before logging in:
$ JUMPTERM_API_URL=https://your-relay… node packages/cli/dist/index.js login