The core of the stack
jat
the flagshipThe agentic dev IDE — multi-agent orchestration for real work.
Get started
source · github/jatstack/jat →curl -fsSL jat.tools/install | shOne command installs the jat CLI, the jt task
tool (also aliased jat-task), and the local IDE server. Run jat from any project directory to launch it.
jat is the
flagship of the jatstack family — a browser-based IDE and CLI for running
fleets of coding agents against real tasks in a real repo, instead of one
chat window at a time. It gives every agent a task, a lane, and an audit
trail: a shared task queue (jt), an isolated git worktree per
agent, live state signals the IDE renders in real time, and a merge queue
that lands finished work serially so nothing gets silently overwritten.
Where a single agent session is bounded by one context window and one thread of attention, jat lets you fan work out — a wave of agents each owning a disjoint slice of files, a pilot agent overseeing an epic end-to-end, a scheduled agent running on a cron — and keeps them coherent through shared task state rather than shared memory.
jat doesn't replace best-in-class tools, it runs them at fleet scale. A metaskill like route-campaign drives the impeccable design skill across every route of an app with a hierarchy of agents, adjudicating each finding and verifying every fix until each route hits a perfect score. External skills are single-shot; jat metaskills are fleet-scale. See the skills it composes.
Core usage
Everything routes through jt
The task CLI is the whole interface. A few commands cover most of a session:
jt ready --json Find available work — highest priority, no blockers.jt show <id> --json View full task details, including comments.jt update <id> --status in_progress Claim a task and move it forward.jt close <id> --reason "..." Mark a task complete.Coordination layer
Task creation, tracking, and inter-agent comms
A fleet stays coherent through shared state, not shared memory. jat gives it the two obvious bases: a queue agents pull work from, and a mailbox they message each other through.
jt · jat-task The task queue
Agents create, track, and pick up work from one shared task store —
priorities, statuses, and a dependency graph so blocked work waits and jt ready always surfaces the next
unblocked task. This is the queue a fleet works from. jat-task (and jat-tasks) are aliases of jt — same command, longer name.
jat-send · jat-inbox The agent mailbox
Agent-to-agent messaging over the fleet. jat-send delivers a message to another
agent's mailbox; jat-inbox drains yours —
so a pilot can hand off, coordinate, or unblock a worker without a human
in the loop.
Lifecycle
How an agent session runs
- 1
Pick
jt ready surfaces the next unblocked task by priority. Every task lives in a shared SQLite (or Postgres, once graduated) store — no spreadsheets, no stale tickets.
- 2
Isolate
Each agent gets its own git worktree and branch, so parallel agents can't collide on the same files. A file-lease allocator refuses a conflicting claim before it starts.
- 3
Work
The agent codes, commits, and tests inside its worktree, emitting signals (starting → working → review) so the IDE always knows its real-time state.
- 4
Review & land
Finished work surfaces in the IDE for human or overseer-agent review, then lands through a serial merge queue — no force-pushes, no silent clobbers.
Example
A session, start to finish
A typical run inside Claude Code:
/jat:start → registers the agent, claims a task, isolates a worktree jt ready --json [{"id":"proj-a1b2","priority":1,"title":"Fix login redirect"}] jt update proj-a1b2 --status in_progress ... agent codes, commits, tests ... /jat:complete → verifies, closes the task, lands the branch2 + 2 = 5
How jat fits the rest of the stack
jat orchestrates the agents. The other six tools are what it reaches for — the browser, the vault, the compute, the mesh, the desk, and the framework the apps are built on. Each stands alone, but together they close the full loop from task to shipped change.
- jat-pilot When an agent needs the human's real, logged-in browser, jat hands off to pilot — one consent-scoped tab at a time.
- jat-secret Secrets an agent needs resolve from secret — one encrypted vault, any machine in the fleet, no keys in the repo.
- jat-appliance Heavy work — builds, renders, private inference — offloads to a spare box turned dedicated compute node.
- jat.run Many appliances pool behind one tailnet endpoint, so a job runs wherever there's capacity.
- jatstation The desktop the whole thing is operated from — a fleet-consistent workstation wired for driving agents.
- jst The public base framework — the readable SvelteKit starter the apps your agents build are scaffolded on.
Task tracking, worktree isolation, signals, knowledge bases, and multi-agent orchestration — all in one open-source CLI + IDE.
View on GitHub