Documentation
SDK & Migration
Build against the current session SDK and choose the right integration boundary. This route preserves legacy links.
Current SDK architecture
Each running top-level session publishes a discovery record at <repo>/.gjc/state/sdk/<sessionId>.json. The record provides the session's loopback url and connection token. Connect with the transport-only @gajae-code/bridge-client package and its SdkClient; @gajae-code/coding-agent/sdk remains a compatibility re-export of the same class identity.
Loopback security
The SDK endpoint is loopback-only. Its token authenticates the loopback handshake, so treat it as a credential: read it only from the discovery record for the intended session, pass it to the client handshake, and never log, display, or expose it through chat adapters. Invalid or stale authority fails closed.
Choose an integration boundary
- Direct SDK: attach a product or local companion to one running session over its loopback WebSocket endpoint.
- Coordinator MCP: use the coordinator boundary when an external controller needs to coordinate multiple sessions and bounded turns.
- ACP: use ACP for an ACP-speaking client. It is a separate client protocol, not a replacement for the session SDK or Coordinator MCP.
Migration from removed modes
removed in v0.11.0
no compatibility shim
loopback SDK WebSocket
Historical only: rpc, rpc-ui, and bridge were removed. Do not depend on RpcClient or any removed mode.
Migrate machine clients to the current SDK WebSocket interfaces.