Built-in Tools
| Tool | Description | Concurrency Safe | Read Only |
|---|---|---|---|
cli | Run shell commands | No | No |
read | Read file contents | Yes | Yes |
write | Create/write files | No | No |
memory | Load/save persistent memory | No | No |
capture_photo | Capture camera frame as photo | No | No |
task_tracker | Track task progress, search skills | No | No |
skill_learner | Save/evaluate learned skills | No | No |
CLI Tool
Command: ls -la src/
Timeout: 120s (configurable)
Output: stdout + stderr (truncated to ~100KB)
Read Tool
Path: src/index.ts
Encoding: utf-8 (default) or base64
Partial reads: start/end byte offsets
Write Tool
Path: workspace/report.md
Content: "# Report\n..."
Append: false (default) — overwrites
Auto-creates parent directories
Memory Tool
- load — Returns current
memory/MEMORY.mdcontent - save — Appends entry + git commits
- Supports layered memory via
memory.yaml - Auto-archives when
max_linesexceeded (tomemory/archive/<YYYY-MM>.md)
Declarative Tools (Custom)
Define tools in tools/*.yaml:
name: lookup-account
description: Look up account details by customer ID
input_schema:
properties:
customer_id:
type: string
description: The customer ID
required: [customer_id]
implementation:
script: scripts/lookup.sh
runtime: sh
The script receives JSON args on stdin and outputs plain text.
Skills
Skills are reusable instruction sets that the agent follows for specific tasks.
Creating a Skill
Create skills/<skill-name>/SKILL.md:
---
name: code-review
description: Review code for bugs, style, and security issues
license: MIT
allowed-tools: cli read write
metadata:
author: your-name
version: "1.0.0"
category: development
---
# Code Review
## Instructions
1. Read the specified file(s) using the read tool
2. Analyze for:
- Bugs and logic errors
- Security vulnerabilities (OWASP top 10)
- Code style and readability
- Performance issues
3. Write a review report to workspace/review.md
## Output Format
For each issue found:
- **File**: path
- **Line**: number
- **Severity**: critical / warning / info
- **Description**: what's wrong
- **Fix**: suggested change
Invoking Skills
# In REPL
/skill:code-review Review the auth module
# In voice/text
"Use the code-review skill on src/auth.ts"
Skill Learning
The agent can learn new skills automatically:
task_trackerbegins tracking a task- Agent completes the task successfully
skill_learnerevaluates if the approach is worth saving- If yes, crystallizes it as a new skill with
confidence: 0.7 - Future tasks search for matching skills
- Confidence adjusts based on success/failure outcomes
