CommandSuite v0.2.0
csuite-cli
Minor Changes
-
#27
585b331Thanks @andrew-jon-p7a! -csuite claudenow runs Claude Code headlessly via the Claude Agent SDK, superseding the interactive TUI wrapper.The runner is a full agent member like
csuite codex: the runner owns the terminal (Ctrl-C tears down gracefully), broker events arrive as SDK streaming-input messages, and the operator sees an activity feed + HUD instead of the claude TUI. Someone who wants the interactive TUI can still runclaudedirectly — csuite no longer wraps it.What this changes:
- No working-tree writes. The csuite MCP entry travels inline on the SDK-composed invocation and hooks are in-process callbacks — the
.mcp.json/.claude/settings.jsonbackup-restore machinery (andCSUITE_CLAUDE_MCP_MODE) is gone. - No system
claudeinstall required. The SDK ships its own Claude Code;CLAUDE_PATHstill overrides. Anthropic auth is the machine's ownclaude login(subscription works) orANTHROPIC_API_KEY. - Sessions are first-class. The run summary carries a real session id and
--resume [<sessionId>]picks a session back up (bare--resumecontinues the most recent in the cwd). - Ambient events no longer depend on
--dangerously-load-development-channels. The dev-flag MCP notification surface is replaced by supported SDK streaming input. - Flags changed. New:
--model,--resume,--cwd. Removed: the pass-through arg tail (-- <claude args>) — the posture (bypassPermissions, briefing pinned to the system prompt) is applied via typed SDK options. - Capture is unchanged at tier 3 (transcript-primary content, in-process hook presence, OTEL operational + FILE-mode raw bodies).
- No working-tree writes. The csuite MCP entry travels inline on the SDK-composed invocation and hooks are in-process callbacks — the
-
#27
9d22ed2Thanks @andrew-jon-p7a! - Remove theclaude/channelMCP-notification delivery path.Broker events used to reach Claude Code as
notifications/claude/channelMCP notifications pushed through the bridge — a surface gated behind Claude Code's--dangerously-load-development-channelsdevelopment flag. With the claude runner on Agent SDK streaming input and codex on turn dispatches, nothing consumed it.- The forwarder → sink seam is now a typed
ChannelEvent({content, meta}) delivered to aChannelEventSink; the MCP method envelope, theforwarderShimbridge default, and the bridge'sclaude/channelexperimental capability are gone. RunnerOptions.notificationSinkis renamed tochannelSink. Every real adapter must supply one; without it the runner drops live events with a log line (history remains readable viarecent).- The IPC
mcp_notificationframe survives for exactly one method: a genuinetools/list_changed. csuite-sdkno longer exportsMCP_CHANNEL_CAPABILITY/MCP_CHANNEL_NOTIFICATION.
- The forwarder → sink seam is now a typed
csuite-sdk
Minor Changes
-
#27
9d22ed2Thanks @andrew-jon-p7a! - Remove theclaude/channelMCP-notification delivery path.Broker events used to reach Claude Code as
notifications/claude/channelMCP notifications pushed through the bridge — a surface gated behind Claude Code's--dangerously-load-development-channelsdevelopment flag. With the claude runner on Agent SDK streaming input and codex on turn dispatches, nothing consumed it.- The forwarder → sink seam is now a typed
ChannelEvent({content, meta}) delivered to aChannelEventSink; the MCP method envelope, theforwarderShimbridge default, and the bridge'sclaude/channelexperimental capability are gone. RunnerOptions.notificationSinkis renamed tochannelSink. Every real adapter must supply one; without it the runner drops live events with a log line (history remains readable viarecent).- The IPC
mcp_notificationframe survives for exactly one method: a genuinetools/list_changed. csuite-sdkno longer exportsMCP_CHANNEL_CAPABILITY/MCP_CHANNEL_NOTIFICATION.
- The forwarder → sink seam is now a typed