prompt engineering → context engineering → graph engineering

The agent multiplexer in your shell.

One agent is a conversation. Five at once are a graph: nodes are isolated attempts — git worktree + engine session + branch — edges are dependencies, and the gates are your judgment. kobe is the terminal-native runtime for that graph.

Get started ↗

Runs on macOS & Linux (Windows via WSL). Requires Bun ≥ 1.3.11 and one engine CLI on your PATH.

one node = git worktree + hosted engine session + branch
1.0 · FAN OUT

One prompt becomes N isolated attempts.

Fan-out is the first primitive, and isolation is the point. kobe spawns every attempt in its own git worktree on its own branch, running whichever engine you point it at — claude, codex, copilot, kimi, or your own command. Independent nodes, no shared state, no agents stepping on each other's files.

$ kobe api fan-out --prompt "simplify auth" \
    --vendor claude --count 3
 3 worktrees · 3 branches · 3 sessions
2.0 · SUPERVISE

Silence is not a status. Attempts report.

In a fleet of terminals, a quiet agent could be thinking or could be dead. So in kobe every attempt ends by reporting an explicit outcome — succeeded or failed — and an orchestrating agent can block until the whole fleet resolves. Agents orchestrating agents, with real completion semantics.

# inside an attempt, as its last act
$ kobe api report --outcome succeeded
# in your orchestrator
$ kobe api await --task-ids a,b,c
 a succeeded   b succeeded   c failed
3.0 · OBSERVE

Read the session, never scrape the screen.

kobe reads each engine's own session data — history, tokens, context — instead of scraping terminal text. And every session lives in a hosted PTY behind the daemon, on the machine where your code lives: quit the TUI, drop SSH, the graph keeps running. Reattach from anywhere.

And it's your real machine: real dependencies, services, credentials, build cache. What passes for the agent passes for you.

$ exit
Connection to devbox closed.
▸ 41 minutes later, from anywhere
$ ssh devbox && kobe
 3 sessions live · running 41m
  attached — right where you left off
4.0 · FAN IN

Compare the attempts. Merge the winner.

Fan-in is a human gate. Pull a read-only snapshot of every attempt — branch, diffstat, running state — review them side by side, merge the branch you like, archive the rest. One attempt is a coin flip — N is a choice.

$ kobe api collect --task-ids a,b,c
a  +118 −204 · 6 files
b  +301 −12  · 14 files
c  +96  −88  · 5 files
$ kobe api land --task-id a
 kobe/simplify-auth-a merged to main
○ b archived   ○ c archived

Spin it up where your code lives.

Your laptop, a devbox, a VPS, or any machine you can SSH into. No browser, no VNC, no desktop app. Optimize the one metric that matters: merged code per hour of your attention.

$ bun install -g @sma1lboy/kobe
$ ssh devbox && cd repo
$ kobe
3 attempts running. Go do something else.