Remote CLI client for Isaac. Implements
isaac remote …: connects to the host /cli WebSocket, forwards local argv and
stdio, and supports reconnect/attach when the socket drops.
On a dropped socket the proxy retries with exponential backoff (0.25 s, 0.5,
1, 2, 4, then 5 s cap) for 120 s total. Set ISAAC_REMOTE_RECONNECT_SECS to
override the window. Status lines go to stderr only. If the server has
forgotten the stream (unknown-stream), the proxy starts the command again
with the same argv. When argv begins with acp, it also replays the last
initialize and session/load handshake so the client session survives a
server restart.
Remote bearer credentials resolve in this order:
--token-file PATH(the file must be mode 600 or otherwise inaccessible to group/world)--token-env VARISAAC_REMOTE_TOKEN~/.config/isaac.ednat{:cli {:remote {:url "…" :token "…"}}}
Home-config ${VAR} tokens read that environment variable. Literal home-config tokens require the pointer file to be mode 600. The older --token TOKEN option still works but is deprecated because argv exposes secrets through process listings and shell history.
Pairs with isaac-cli-server. Wire protocol: PROTOCOL.md (canonical copy lives on the server repo).
bb spec # Run Clojure specs
bb features # Run Gherkin feature scenarios
bb ci # Run bothDepends on isaac-foundation, isaac-agent, isaac-http, and isaac-cli-server.
Copyright © 2026 Micah Martin. See LICENSE.
