Summary
Add Slate (@randomlabs/slate) as a new agentctl harness, enabling swarm-native coding with automatic model selection and REPL-based context decomposition.
Why
Slate is the first coding agent that natively orchestrates sub-agent swarms. Instead of a single model doing all work, it decomposes tasks via a Python REPL, spawns parallel threads with different models (Opus for reasoning, Haiku for speed, Codex for coding), and synchronizes results. This gives us inference-time scaling on top of our workflow-time scaling.
Integration paths (in priority order)
1. CLI adapter via --stream-json (fastest path)
Slate CLI supports --stream-json which is explicitly "compatible with Anthropic Claude Code SDK" streaming JSONL format. This means our existing Claude Code adapter parsing should work with minimal changes.
agentctl launch slate --worktree ~/personal/orgloop --branch feat/foo -p "implement X"
Slate config (slate.json) handles model selection internally:
{
"models": {
"main": { "default": "claude-sonnet-4-5" },
"subagent": { "default": "claude-haiku-4-5" },
"search": { "default": "glm-5" },
"reasoning": { "default": "claude-opus-4-5" }
}
}
2. ACP via --server mode (cleanest long-term)
Slate has --server mode that starts an AgentSession RPC server (default port 7777). Our AcpAgentConfig:
{ command: "slate", args: ["--server"], name: "Slate" }
Need to verify the RPC protocol matches ACP expectations.
3. Input/output format support
--output-format stream-json — streaming JSONL output
--input-format stream-json — streaming JSONL input
-q "prompt" — non-interactive question mode
--workspace — workspace directory (maps to worktree)
--resume — resume specific session
--dangerously-set-permissions — bypass permission prompts (like Claude Code --permission-mode bypassPermissions)
Implementation plan
- Install
@randomlabs/slate (npm, ships platform binary)
- Verify
--stream-json output format matches Claude Code SDK JSONL schema
- Create
src/adapters/slate.ts (likely thin wrapper around claude-code adapter)
- Add
slate to adapter registry
- Test:
agentctl launch slate -p "simple task" with stream parsing
- If stream-json matches: done. If not: add format translation layer.
- Stretch: test
--server mode against AcpClient
References
Summary
Add Slate (@randomlabs/slate) as a new agentctl harness, enabling swarm-native coding with automatic model selection and REPL-based context decomposition.
Why
Slate is the first coding agent that natively orchestrates sub-agent swarms. Instead of a single model doing all work, it decomposes tasks via a Python REPL, spawns parallel threads with different models (Opus for reasoning, Haiku for speed, Codex for coding), and synchronizes results. This gives us inference-time scaling on top of our workflow-time scaling.
Integration paths (in priority order)
1. CLI adapter via
--stream-json(fastest path)Slate CLI supports
--stream-jsonwhich is explicitly "compatible with Anthropic Claude Code SDK" streaming JSONL format. This means our existing Claude Code adapter parsing should work with minimal changes.Slate config (
slate.json) handles model selection internally:{ "models": { "main": { "default": "claude-sonnet-4-5" }, "subagent": { "default": "claude-haiku-4-5" }, "search": { "default": "glm-5" }, "reasoning": { "default": "claude-opus-4-5" } } }2. ACP via
--servermode (cleanest long-term)Slate has
--servermode that starts an AgentSession RPC server (default port 7777). Our AcpAgentConfig:Need to verify the RPC protocol matches ACP expectations.
3. Input/output format support
--output-format stream-json— streaming JSONL output--input-format stream-json— streaming JSONL input-q "prompt"— non-interactive question mode--workspace— workspace directory (maps to worktree)--resume— resume specific session--dangerously-set-permissions— bypass permission prompts (like Claude Code--permission-mode bypassPermissions)Implementation plan
@randomlabs/slate(npm, ships platform binary)--stream-jsonoutput format matches Claude Code SDK JSONL schemasrc/adapters/slate.ts(likely thin wrapper around claude-code adapter)slateto adapter registryagentctl launch slate -p "simple task"with stream parsing--servermode against AcpClientReferences
@randomlabs/slate@1.0.15Personal/research/gap-analysis-slate-vs-orgloop-agentctl-openclaw.md