OpenCrabs Terminal Agent
A Rust single-binary terminal agent that combines multi-provider AI, local tools, channels, and autonomous task execution.
What does this agent do, and when should you use it?
OpenCrabs is a Rust-based terminal agent with a TUI, interactive CLI, non-interactive `run` command, and headless daemon mode. Its documented local boundary includes workspace files, SQLite-backed sessions, brain files, and local memory, while model requests are made directly over HTTPS. The repository describes multi-provider model access, tool execution, child-agent orchestration, browser CDP automation, cron jobs, and an A2A HTTP gateway. It also documents integrations for Telegram, WhatsApp, Discord, Slack, and Trello, with session or channel-specific context isolation. It fits technical users who want one locally operated terminal interface for coding, file work, research, and channel automation, but the supplied material does not verify an installation path or every operational claim.
A user submits work through the TUI, opencrabs agent, or opencrabs run <prompt>; the agent can use file I/O, bash, web search, browser CDP, memory search, cron, and dynamic tools, while storing chats, tool history, and sessions in SQLite. It registers skills from ~/.opencrabs/skills/<name>/SKILL.md, loads HTTP or shell tools from ~/.opencrabs/tools.toml, and manages them with tool_manage. Its child-agent workflow uses spawn_agent, wait_agent, send_input, close_agent, and resume_agent; its A2A gateway exposes JSON-RPC 2.0 message/send, message/stream, tasks/get, and tasks/cancel. Results can be terminal responses, generated XLSX/DOCX/PDF/PPTX files, images, channel messages, or scheduled-job output.
- A solo developer working in a local repository who wants a TUI agent to inspect files, run `bash`, and use installed tools such as git or Docker.
- An engineering team that needs per-session model selection across OpenAI, Anthropic, OpenRouter, Gemini, or OpenAI-compatible endpoints, including fallback providers.
- A channel automation owner who needs to receive files, images, or voice messages in Telegram, Discord, or Slack and return analysis or generated documents.
- A personal operations user who wants a headless daemon to run cron jobs, heartbeats, or an autonomous `/goal` loop.
- A tester who needs CDP-driven navigation, clicking, typing, screenshots, and content extraction in an installed Chromium-based browser.
- An integrator connecting task exchange or streaming messages with other A2A Protocol RC v1.0 agents.
What are this agent's strengths and limitations?
- It is positioned as one Rust binary with TUI, CLI, and daemon interfaces rather than only a library or chat surface.
- The documentation lists multiple provider paths—OpenAI, Anthropic, GitHub Copilot, OpenRouter, Gemini, Ollama, LM Studio, and OpenAI-compatible APIs—with per-session model selection and fallbacks.
- Its documented local boundary includes SQLite sessions, brain files, embeddings, and tool execution; the README explicitly states zero telemetry and identifies the categories of outbound traffic.
- It combines channel bots, browser CDP, A2A JSON-RPC, dynamic tools, SKILL.md skills, and cron scheduling in one process.
- Split panes, parallel sessions, and typed child agents target concurrent coding and research work.
- The supplied content does not include a verifiable installation or build command, so first deployment, supported operating systems, and release acquisition cannot be established from it.
- Model calls, web search, GitHub operations, browser automation, and dynamic HTTP tools can all make external network requests; local execution does not mean every workflow is offline.
- Telegram, WhatsApp, Discord, Slack, Trello, voice, image, and browser features each require their own credentials, accounts, model keys, or system setup.
- Browser automation is limited to Chromium-based browsers; the README explicitly says Firefox is unsupported because it lacks CDP support.
- Some features depend on optional external components or services: scanned PDFs need poppler, PPTX generation needs `python-pptx` when available, and voice paths have backend-specific dependencies.
- Recursive self-improvement is marked experimental, and `self_improve` can modify brain files without human approval, which requires deliberate governance before adoption.
How do you install or deploy this agent?
The supplied material does not provide a verifiable binary download, package-manager, Cargo, or Docker installation command, so a copyable installation procedure cannot be confirmed. Once an opencrabs executable is available, run opencrabs init to initialize configuration and opencrabs onboard for the setup wizard. Configure credentials for the chosen model provider through the wizard or keys.toml.
How do you use this agent?
After configuration, run opencrabs to start the default TUI, or run opencrabs run <prompt> for a one-shot unattended task. Use opencrabs status for a system overview and opencrabs doctor to check configuration, provider connectivity, database, brain files, channels, and PATH tools. For channel-only operation without a UI, run opencrabs daemon.
How does this agent compare with similar options?
The README compares OpenCrabs with Node.js agent frameworks such as Open Claw. It positions OpenCrabs as a native Rust single binary with no Node.js runtime, local SQLite storage, outbound HTTPS, and zero telemetry. The stated size, security, and cost advantages will depend on the actual version, selected provider, and deployment environment.