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.

For weaker models or long tool-heavy runs, EdgeCrab can also enable an opt-in Shadow Judge completion oracle. It performs a cheap secondary LLM verdict before the loop accepts a final answer, helping catch premature “I’m done” stops that still have missing sub-steps.

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
  • Mission Steering (Ctrl+S) — inject hints, redirects, or stop signals into a running agent loop mid-turn
  • Shadow Judge controls (/shadow-judge) — toggle the completion oracle per session and see intervention badges when it keeps the run alive

See TUI Interface and Mission Steering

Switch provider and model without restarting:

/model openai/gpt-5
/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

Built-in language-server support gives EdgeCrab semantic code intelligence instead of text-only heuristics:

  • Go to definition, references, implementation, document symbols, and workspace symbols
  • Code actions, semantic rename, whole-document and range formatting
  • Inlay hints, semantic tokens, signature help, call hierarchy, and type hierarchy
  • Pull diagnostics, workspace type-error scans, linked editing, and LLM-enriched diagnostic explanations

See Language Server Protocol

Run EdgeCrab as a persistent bot on 15 platforms:

  • Telegram, Discord, Slack, Signal, WhatsApp
  • Matrix, Mattermost, DingTalk, SMS, Email
  • Home Assistant, Webhook, API Server, Feishu/Lark, WeCom

See Messaging Gateway

Built-in defense in depth (7 layers):

  • Path traversal prevention (SanitizedPath compile-time type)
  • SSRF guard with private-IP blocklist (SafeUrl compile-time type)
  • Aho-Corasick command scanner (8 danger categories)
  • Prompt injection detection in context files
  • Code execution sandbox (API keys stripped from child env)
  • Skills threat scanner (23 patterns — exfiltration, injection, persistence)
  • Output redaction (API keys, tokens)

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 + lsp + session + mcp + messaging + media + browser (runtime-gated)
codingfile + terminal + search + code_execution + lsp
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_clickClick an element
browser_typeType text into an input
browser_scrollScroll the page
browser_pressPress a keyboard key
browser_backNavigate back
browser_closeClose the browser
browser_consoleCapture browser console logs
browser_get_imagesGet images from the page
browser_visionTake screenshot and analyze with vision model
browser_wait_forWait for element/text to appear
browser_selectSelect a dropdown option
browser_hoverHover to trigger tooltips/states
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
moaMulti-model consensus reasoning
ToolDescription
execute_codeExecute Python, Node.js, or Bash code in isolation
ToolDescription
lsp_goto_definitionJump to a symbol definition
lsp_find_referencesFind symbol references
lsp_hoverGet hover docs and type information
lsp_document_symbolsEnumerate symbols in a file
lsp_workspace_symbolsSearch symbols across the workspace
lsp_goto_implementationJump to concrete implementations
lsp_call_hierarchy_preparePrepare call hierarchy items
lsp_incoming_callsShow incoming calls
lsp_outgoing_callsShow outgoing calls
lsp_code_actionsList server-suggested fixes and refactors
lsp_apply_code_actionResolve and apply a code action
lsp_renameRename a symbol across files
lsp_format_documentFormat a whole file
lsp_format_rangeFormat a selected range
lsp_inlay_hintsReturn inlay hints
lsp_semantic_tokensReturn semantic token classes
lsp_signature_helpShow function signature help
lsp_type_hierarchy_preparePrepare a type hierarchy item
lsp_supertypesList supertypes
lsp_subtypesList subtypes
lsp_diagnostics_pullPull document or workspace diagnostics
lsp_linked_editing_rangeReturn linked editing regions
lsp_enrich_diagnosticsExplain diagnostics with the LLM
lsp_select_and_apply_actionPick and apply the best action
lsp_workspace_type_errorsSummarize workspace-wide type errors
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 / lsp / 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 can be active simultaneously, including the full LSP surface when semantic coding is enabled. 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. model.max_iterations (default: 90) limits total tool calls per session. The LLM also receives tool results that typically converge toward an answer. If the budget is exhausted, EdgeCrab reports to the user.