Skip to content

Features Overview

EdgeCrab ships as a single static binary with enterprise-grade features. No Python venv, no Node.js — just one executable.

Input --> ContextBuilder --> AgentLoop --> ToolRegistry --> Security checks
^ |
+---- ToolResult <------------+

EdgeCrab runs a Reason-Act-Observe loop — it reasons about a task, calls a tool, observes the result, then repeats. The loop runs up to model.max_iterations tool calls (default: 90) before stopping.

A full-featured terminal UI with:

  • Streaming token display with cost tracking
  • Tool execution feed with per-tool timing
  • Slash command autocomplete (all installed skills appear as commands)
  • Keyboard-driven interface
  • Customizable skins, symbols, and personality presets

See TUI Interface

Switch provider and model without restarting:

/model anthropic/claude-opus-4
/model openai/gpt-4o
/model ollama/llama3.3
/model copilot/gpt-4.1-mini

See LLM Providers

Reusable Markdown workflows that teach EdgeCrab domain-specific tasks:

  • Skills are directories containing a SKILL.md file
  • EdgeCrab can create and improve skills during sessions
  • Compatible with agentskills.io

See Skills System

Agent memory stored in ~/.edgecrab/memories/:

  • Auto-written after each session when memory.auto_flush: true
  • Injected into the system prompt at session start
  • Honcho integration for cross-session user modeling

See Memory

Built-in browser control via Chrome DevTools Protocol (CDP):

  • Navigate, click, type, scroll, take screenshots
  • Console log capture
  • Vision analysis of screenshots
  • Session recording as WebM

See Browser Automation

Run EdgeCrab as a persistent bot on 10 platforms:

  • Telegram, Discord, Slack, Signal, WhatsApp
  • Matrix, Mattermost, DingTalk, SMS, Email

See Messaging Gateway

Built-in defense in depth (6 layers):

  • Path traversal prevention (SanitizedPath compile-time type)
  • SSRF guard with DNS-rebinding protection
  • Aho-Corasick command scanner (8 danger categories, 38 patterns)
  • Prompt injection detection
  • Output redaction (API keys, tokens)
  • Approval policy (off / smart / manual)

See Security Model

Shadow git commits before every destructive file operation. Roll back at any time:

/rollback # interactive checkpoint browser

See Checkpoints

Built-in cron scheduler with agent-managed jobs:

Terminal window
edgecrab cron add "0 9 * * 1-5" "morning standup summary"

See Cron Jobs


All tools sourced from CORE_TOOLS constant in crates/edgecrab-tools/src/toolsets.rs.

AliasExpands to
corefile + meta + scheduling + delegation + code_execution + session + mcp + browser (runtime-gated)
codingfile + terminal + search + code_execution
researchweb + browser + vision
debuggingterminal + web + file
safeweb + vision + image_gen + moa
minimalfile + terminal
data_genfile + terminal + web + code_execution
allevery registered tool (no filtering)
ToolDescription
read_fileRead file contents with optional line range
write_fileWrite or overwrite a file (creates checkpoint)
patchApply a unified diff patch to a file (creates checkpoint)
search_filesRegex or glob search across file tree
ToolDescription
terminalRun a shell command and capture output
run_processStart a long-running background process
list_processesList running background processes
kill_processKill a process by ID
get_process_outputGet stdout/stderr from a background process
wait_for_processBlock until a process exits
write_stdinSend input to a process’s stdin
ToolDescription
web_searchDuckDuckGo search (SSRF-guarded)
web_extractExtract text content from a URL
web_crawlRecursive site crawl with optional depth limit

Runtime-gated: requires Chrome or Chromium. If no browser is reachable, these tools are silently absent from the tool list.

ToolDescription
browser_navigateNavigate to a URL
browser_snapshotGet page accessibility tree as text
browser_screenshotTake a screenshot
browser_clickClick an element
browser_typeType text into an input
browser_scrollScroll the page
browser_consoleCapture browser console logs
browser_backNavigate back
browser_pressPress a keyboard key
browser_closeClose the browser
browser_get_imagesGet images from the page
browser_visionAnalyze page screenshot with vision model
ToolDescription
memory_readRead a memory file
memory_writeWrite or update a memory file
honcho_concludeCommit a Honcho cross-session memory entry
honcho_searchSearch the Honcho user model
honcho_listList Honcho memory entries
honcho_removeRemove a Honcho entry
honcho_profileUpdate the Honcho user profile
honcho_contextGet relevant Honcho context for current task
ToolDescription
skills_listList available skills
skills_categoriesList skill categories
skill_viewView a skill’s content
skill_manageInstall / uninstall / update a skill
skills_hubBrowse the agentskills.io hub
ToolDescription
manage_cron_jobsCreate / list / delete / enable / disable cron jobs
ToolDescription
manage_todo_listCreate and track a session todo list
clarifyAsk the user a clarifying question (TUI and gateway only)
ToolDescription
delegate_taskSpawn a subagent for a parallel subtask
mixture_of_agentsMulti-model consensus reasoning
ToolDescription
execute_codeExecute Python, Node.js, or Bash code in isolation
ToolDescription
session_searchFull-text search (FTS5) across all session history
ToolDescription
mcp_list_toolsList tools from connected MCP servers
mcp_call_toolCall a tool on an MCP server
mcp_list_resourcesList resources from MCP servers
mcp_read_resourceRead a resource from an MCP server
mcp_list_promptsList prompts from MCP servers
mcp_get_promptGet a prompt from an MCP server
ToolDescription
text_to_speechConvert text to speech (edge-tts, OpenAI, ElevenLabs)
vision_analyzeAnalyze an image file with a vision model
transcribe_audioTranscribe an audio file with Whisper
generate_imageGenerate an image (runtime-gated: requires provider support)

Runtime-gated: requires HA_URL and HA_TOKEN environment variables.

ToolDescription
ha_list_entitiesList all Home Assistant entities
ha_get_stateGet current state of an entity
ha_list_servicesList available Home Assistant services
ha_call_serviceCall a Home Assistant service
ToolDescription
checkpointCreate / list / restore / diff filesystem checkpoints

Only available in gateway sessions (Telegram, Discord, Slack, etc.):

ToolDescription
send_messageSend a message to the current chat (gateway only)


User Input
|
v
[Context Builder] <-- SOUL.md + AGENTS.md + memories + skills
|
v
[Agent Loop] -- LLM reasons, calls tools, observes results
|
+--[Security checks] <-- path jail + SSRF + command scan + approval
|
+--[Tool Dispatch] <-- file / terminal / web / browser / memory / mcp
|
v
[State DB (SQLite)] -- every message stored, FTS5 indexed
|
v
[TUI / Gateway] -- rendered in ratatui or sent to Telegram/Discord/...

Q: What’s the difference between “tools” and “skills”?

Tools are atomic Rust functions (read a file, run a command, search the web). Skills are Markdown documents that guide how the agent uses tools. A skill says “when doing a security audit, first do X, then Y, then Z.” Tools are the verbs; skills are the recipe.

Q: How does EdgeCrab compare to agentic frameworks like LangChain?

EdgeCrab is a self-contained binary, not a framework. It’s designed to be run, not extended programmatically (though SDKs exist). You configure it via YAML and Markdown, not code. For programmatic use, the Python/Node.js SDKs provide an API surface.

Q: Can EdgeCrab run without internet access?

Yes. Use --model ollama/llama3.3 (local Ollama) and --toolset file,terminal,memory. All tools used by those toolsets work offline.

Q: How many tools can be active at once?

All registered tools (60+) can be active simultaneously. The LLM receives tool schemas in the system prompt. Limiting toolsets to what’s needed keeps the system prompt shorter and the LLM more focused.

Q: Edge case: Can the agent call the same tool infinitely?

No. tools.max_loop_depth (default: 20) limits total tool calls per user turn. The LLM also receives tool results that typically converge toward an answer. Infinite loops in practice are extremely rare and always bounded by the depth limit.