Logo
Features

Tools

What tools the agent has access to and how to configure them.

Tools

BabyClaw gives the agent a set of tools it can use during conversations. When you ask it to read a file, run a command, or search the web, it's calling these tools behind the scenes.

Tools are split into two groups: always available (scheduler and self-management) and generic tools (everything else). You can disable generic tools entirely by setting tools.enableGenericTools to false in your config.

Workspace tools

The agent can read, write, list, move, and delete files within its workspace directory.

ToolWhat it does
workspace_readRead a file's contents
workspace_writeWrite or overwrite a file
workspace_listList files and directories
workspace_deleteDelete a file
workspace_moveMove or rename a file

These are scoped to the workspace directory -- the agent can't access files outside of it.

Shell tools

The agent can run shell commands on your machine. This is where things get interesting (and where you should think about security).

ToolWhat it does
shell_execExecute a shell command

Shell security modes

The tools.shell.mode config controls what the agent is allowed to run:

"allowlist" (default): The agent can only run commands from the tools.shell.allowedCommands list. If it tries to run something else, the command is blocked (or sent to you for approval if you have the Telegram approval flow set up).

The default allowlist includes common commands like ls, cat, grep, git, node, python, curl, and more -- about 50 commands that cover most everyday tasks.

"full-access": The agent can run any command. A warning is logged at startup. Use this if you trust the agent and your setup, but be aware of the risk.

To add a command to the allowlist:

{
  "tools": {
    "shell": {
      "mode": "allowlist",
      "allowedCommands": ["ls", "cat", "git", "docker", "kubectl"]
    }
  }
}

Note that setting allowedCommands replaces the entire default list, so include any defaults you still want.

State tools

A simple persistent key-value store scoped to the workspace.

ToolWhat it does
state_getRead a value by key
state_setStore a value
state_listList all keys
state_deleteRemove a key

State is stored as files in the workspace. Useful for the agent to track things between sessions.

When configured with a Brave Search API key, the agent can search the web.

ToolWhat it does
web_searchSearch the web using Brave Search

To enable it, get an API key from the Brave Search API and add it to your config:

{
  "tools": {
    "webSearch": {
      "braveApiKey": "BSA..."
    }
  }
}

Messaging tools

In the main session, the agent can send messages to linked chats.

ToolWhat it does
send_messageSend a text message to a linked chat
list_known_chatsList all linked chats and their aliases

These only appear in the main session. In other sessions, messaging tools aren't available (to prevent the agent from leaking context across chats).

Media tools

The agent can send files through the channel.

ToolWhat it does
send_fileSend an image, document, audio file, video, or animation

Working memory

A per-session scratchpad that the agent uses to keep notes during a conversation.

ToolWhat it does
update_working_memoryUpdate the session's working memory

Working memory is temporary -- it exists for the duration of a session and is included in the agent's context on each turn. The agent uses it to track things like file paths, IDs, or intermediate results it needs to remember within a conversation.

Self tools

The agent can check its own status and manage the gateway.

ToolWhat it does
self_statusCheck gateway status, uptime, active turns, scheduler/heartbeat state
self_restartRestart the gateway process

ClawHub tools

The agent can install skills from ClawHub during a conversation.

ToolWhat it does
clawhub_installInstall a skill from the ClawHub registry

Scheduler tools

Always available, regardless of the enableGenericTools setting.

ToolWhat it does
get_current_timeGet the current time in the configured timezone
create_scheduleCreate a one-off or recurring schedule
list_schedulesList active schedules
cancel_scheduleCancel a schedule

See Scheduling for more on how scheduling works.