Releases: guitaripod/claude-bridge
Release list
1.1.0
One sequenced stream, a bridge that keeps itself current, and defaults the machine already chose.
Added
- One stream of everything.
GET /streamserves a hub with a replayable ring and an always-on observer, so a client opens one socket per server instead of one per session — with sequence numbers, replay from a cursor, and gap detection. - A live agent says what it is doing — todo position, tool trail and elapsed time, published incrementally while a subagent runs.
- One turn at a time per session. A second client's prompt queues behind the running turn instead of racing it, and stopping a turn discards what queued behind it.
- The bridge updates itself.
GET/POST /updatereports the running version, how far behind the checkout is and which commits would land, then performs the update and the restart it ends with — taking the update script from the commit being updated to, and keeping the log a tail rather than a build transcript. - Sign the machine's Claude in from wherever you are.
/authreports the account; the browser flow runs on a pseudo-terminal here and returns its URL, and the code comes back from the client. - Every picture the agent looked at is handed to the client as a file part, fetched over
/files/rawrather than base64'd through the transcript. - Skills and saved workflows join the slash-command catalog, and opencode Go usage is estimated from the machine's own opencode history.
- Machine defaults. A session that names no model or effort runs what
~/.claude/settings.jsonsays — what the terminal would run — re-read whenever the file changes.BRIDGE_MODEL/BRIDGE_EFFORTstill win when set. - Ultracode. An effort of
ultracode, or a prompt that says the word, runs that turn at xhigh with--settings {"ultracode":true}— the keyword the CLI honours interactively but never in print mode.
Fixed
- A running turn is live however quiet its transcript; a subagent's model is not the conversation's; the transcript says what is actually answering, model and effort read from the last turn.
Performance
GET /sessionsanswers from the observer's last sweep instead of recomputing per request; the agent scan runs at a third of the sweep so the index actor stays responsive; a fresh chat no longer asks the index about a transcript that cannot exist; and the full-projects scan debounces, so a burst of lookups stats the tree once.
1.0.0
Expose a Claude Code subscription as structured HTTP sessions any client can drive.
claude-bridge runs the claude CLI headlessly — one claude -p --output-format stream-json --include-partial-messages process per turn — and turns its stream-JSON output into clean REST + SSE: persistent multi-session chat, token-by-token streaming, structured tool calls, reasoning blocks, per-turn cost and token accounting, resume, clear, fork and abort.
It serves the rest of a session too. Subagents and their own transcripts. Compactions as events rather than a wall of summary text. The attachments a prompt carried, served back with their MIME type. Claude plan and Grok rate-limit gauges. The slash commands that machine will actually resolve, including project and plugin commands. Goal state, so an agent can be told to keep working until a condition holds and you can walk away.
Your terminal sessions are bridge sessions. Every local Claude Code CLI transcript under ~/.claude/projects is discovered, parsed and listed; the first write adopts it and resumes the underlying session in the directory it started in. A chat begun in the terminal continues from a phone. Discovery is incremental — a 132 MB transcript tree folds in seconds cold and milliseconds warm.
Push. With an APNs key configured, the bridge pushes Live Activity updates during a turn and a device push when one ends, so a phone can watch work it isn't looking at.
Fail-closed. The default permission mode is bypassPermissions, which makes the HTTP surface equivalent to remote shell access. The server refuses to start without a password in that mode. Deploy behind Tailscale; never on the public internet.
Swift 6 + Hummingbird, macOS and Linux, GPL-3.0.