Tools
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.
| Tool | What it does |
|---|---|
workspace_read | Read a file's contents |
workspace_write | Write or overwrite a file |
workspace_list | List files and directories |
workspace_delete | Delete a file |
workspace_move | Move 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).
| Tool | What it does |
|---|---|
shell_exec | Execute 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.
| Tool | What it does |
|---|---|
state_get | Read a value by key |
state_set | Store a value |
state_list | List all keys |
state_delete | Remove a key |
State is stored as files in the workspace. Useful for the agent to track things between sessions.
Web search
When configured with a Brave Search API key, the agent can search the web.
| Tool | What it does |
|---|---|
web_search | Search 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.
| Tool | What it does |
|---|---|
send_message | Send a text message to a linked chat |
list_known_chats | List 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.
| Tool | What it does |
|---|---|
send_file | Send an image, document, audio file, video, or animation |
Working memory
A per-session scratchpad that the agent uses to keep notes during a conversation.
| Tool | What it does |
|---|---|
update_working_memory | Update 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.
| Tool | What it does |
|---|---|
self_status | Check gateway status, uptime, active turns, scheduler/heartbeat state |
self_restart | Restart the gateway process |
ClawHub tools
The agent can install skills from ClawHub during a conversation.
| Tool | What it does |
|---|---|
clawhub_install | Install a skill from the ClawHub registry |
Scheduler tools
Always available, regardless of the enableGenericTools setting.
| Tool | What it does |
|---|---|
get_current_time | Get the current time in the configured timezone |
create_schedule | Create a one-off or recurring schedule |
list_schedules | List active schedules |
cancel_schedule | Cancel a schedule |
See Scheduling for more on how scheduling works.