slagyr/isaac-cli-proxy

Remotely execute isaac commands on a server with the cli-server module installed.

★ 1Forks 0ClojureGitHub ↗Compare

README

🍏 Isaac CLI Proxy ⚡

isaac-cli-proxy

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.

Authentication

Remote bearer credentials resolve in this order:

  1. --token-file PATH (the file must be mode 600 or otherwise inaccessible to group/world)
  2. --token-env VAR
  3. ISAAC_REMOTE_TOKEN
  4. ~/.config/isaac.edn at {: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).


CI Tests License: MIT Clojure Babashka Java


Development

bb spec       # Run Clojure specs
bb features   # Run Gherkin feature scenarios
bb ci         # Run both

Depends on isaac-foundation, isaac-agent, isaac-http, and isaac-cli-server.

License

Copyright © 2026 Micah Martin. See LICENSE.

Contributors

slagyrslagyr-assistant

Issues