Skip to content

Tools Overview

Tools give the AI agent the ability to act: run commands, read/write files, search the web, manage memory, and interact with hardware. Each tool implements the hu_tool_t vtable.

MethodDescription
executeRun the tool with JSON args, return hu_tool_result_t
nameTool identifier (e.g. shell, file_read)
descriptionHuman-readable description for the LLM
parameters_jsonJSON Schema for the tool’s parameters
deinitOptional cleanup
ToolDescription
shellExecute shell commands (allowlisted, sandboxed)
file_readRead file contents from workspace
file_writeWrite content to a file
file_editSearch-and-replace or structured edits
file_appendAppend to a file
gitGit operations (status, diff, commit)
web_searchWeb search (DuckDuckGo by default)
web_fetchFetch URL content (HTTPS only, size limited)
http_requestHTTP/HTTPS requests
browserBrowser actions: open, read, screenshot, click, type, scroll
browser_openOpen approved HTTPS URLs in default browser
imageImage operations (load, process)
screenshotCapture screenshots
memory_storeStore a fact or memory entry
memory_recallRecall memories by query
memory_listList stored memories
memory_forgetRemove a memory by ID
messageSend a message (e.g. to a channel)
delegateDelegate tasks to sub-agents (routes to claude_code)
spawnSpawn child processes
cron_addAdd a cron job
cron_listList cron jobs
cron_removeRemove a cron job
cron_runRun a cron job immediately
cron_runsList recent cron execution history
cron_updateUpdate a cron job
claude_codeDelegate coding tasks to Claude Code CLI (sub-agent)
composioComposio integration (list tools, execute actions)
hardware_memoryRead/write hardware memory via probe-rs or serial
scheduleScheduled tasks (create, list, cancel, pause)
schemaValidate JSON schemas, list tool schemas
pushoverPush notifications via Pushover
hardware_infoSystem hardware info
i2cI2C bus read/write
spiSPI bus operations

Enable or disable tools via config:

{
"tools": {
"enabled_tools": ["shell", "file_read", "memory_store"],
"disabled_tools": ["browser_open", "spawn"]
}
}
  • enabled_tools: If non-empty, only these tools are available
  • disabled_tools: These tools are always disabled
  • Empty enabled_tools = all tools except disabled_tools
  • Shell: Commands are allowlisted; execution is sandboxed (Landlock, Firejail, Bubblewrap, or Docker when available)
  • File operations: Restricted to workspace by default
  • HTTP: HTTPS required; HTTP URLs are rejected
  • browser_open: Only allowlisted domains

Most file and shell tools respect workspace_dir. The agent cannot access paths outside the workspace unless explicitly allowed.