›_jumpterm

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 build
2

Sign in

Open the Mac app and sign in, or authenticate the source build with your account.$ node packages/cli/dist/index.js login
3

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 daemon
4

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