Filesystem Reference
Your agent’s persistent storage is mounted at /data. This reference documents all standard directories and files.
Directory structure
Section titled “Directory structure”/data├── MEMORY.md # Agent's persistent memory├── config.json # Agent preferences (model, etc.)├── sessions/│ └── {id}.jsonl # Conversation history files├── outbox/│ ├── email/ # Pending outgoing emails│ ├── sent/ # Successfully sent emails│ └── failed/ # Failed email attempts└── events/ └── {timestamp}.jsonl # Run events for dashboardCore files
Section titled “Core files”MEMORY.md
Section titled “MEMORY.md”Your agent’s persistent memory bank. Read at the start of every turn.
Default contents:
# Agent Memory
## Identity- Name: {agent_name}- Email: {agent_email}- Owner: {owner_email}
## Outbox InstructionsTo send an email, write a JSON file to /data/outbox/email/:...
## Notes[Your custom notes and instructions]Best practices:
- Keep it focused — it’s read every turn
- Use for persistent preferences and context
- Don’t store large data here
config.json
Section titled “config.json”Agent configuration and preferences:
{ "model": "haiku"}Fields:
model— Claude model to use (haiku,sonnet,opus)
Changed via /model email command.
Sessions directory
Section titled “Sessions directory”/data/sessions/ contains conversation history files.
Session file format
Section titled “Session file format”JSONL (JSON Lines) format, one entry per line:
{"role":"user","content":"Hello!","timestamp":"2026-01-04T12:00:00Z"}{"role":"assistant","content":"Hi! How can I help?","timestamp":"2026-01-04T12:00:05Z"}Session ID and hash
Section titled “Session ID and hash”Each session has:
- ID — Full UUID (e.g.,
a1b2c3d4-e5f6-7890-abcd-ef1234567890) - Hash — First 4 characters (e.g.,
a1b2)
Use the hash with /resume a1b2 to continue a session.
Listing sessions
Section titled “Listing sessions”Send /resume (no argument) to get a list of recent sessions:
**Recent Sessions**
• `a1b2` (Jan 4, 2026 12:00 PM) - Hello! How can I help...• `c3d4` (Jan 3, 2026 3:30 PM) - Can you analyze this...
Reply with `/resume <hash>` to continue a session.Outbox directory
Section titled “Outbox directory”/data/outbox/ is where your agent writes outgoing emails.
email/
Section titled “email/”Pending emails waiting to be sent. Agent writes JSON files here:
{ "subject": "Email subject", "body": "Email body text", "attachments": [ { "filename": "report.pdf", "content": "base64-encoded-content" } ], "status": "pending"}Successfully sent emails are moved here with metadata:
{ ...original fields..., "status": "sent", "sent_at": "2026-01-04T12:00:00Z", "resend_id": "abc123"}failed/
Section titled “failed/”Emails that couldn’t be sent after retries:
{ ...original fields..., "status": "failed", "error": "Error message", "failed_at": "2026-01-04T12:00:00Z"}Events directory
Section titled “Events directory”/data/events/ stores real-time events from agent runs. Used by the dashboard for live updates.
Event file format
Section titled “Event file format”JSONL files named by timestamp:
{"type":"start","timestamp":"2026-01-04T12:00:00Z","runId":"..."}{"type":"tool_call","name":"bash","args":{"command":"ls"},"timestamp":"..."}{"type":"tool_result","output":"file1.txt\nfile2.txt","timestamp":"..."}{"type":"text","content":"Here are the files...","timestamp":"..."}{"type":"end","usage":{"input":100,"output":50},"timestamp":"..."}Container directories
Section titled “Container directories”Besides /data, the container has:
| Path | Purpose |
|---|---|
/inbox | Input from platform (input.json, attachments) |
/outbox | Container-level outbox (deprecated, use /data/outbox) |
/opt/skills | Pre-installed skill documentation |
/workspace | Additional working directory |
Pre-installed tools
Section titled “Pre-installed tools”Available in the container:
| Tool | Command | Notes |
|---|---|---|
| Git | git | Version control |
| HTTP | curl, wget | Network requests |
| JSON | jq | JSON processing |
| YAML | yq | YAML processing |
| Search | rg (ripgrep) | Fast text search |
| Find | fdfind | Fast file finding |
| Tree | tree | Directory visualization |
| SQLite | sqlite3 | Database |
| PostgreSQL | psql | Database client |
| Python | python3, uv | Python + package manager |
| Node | node, npm | JavaScript runtime |
| GitHub | gh | GitHub CLI |
Storage limits
Section titled “Storage limits”Currently unlimited during launch. Future limits:
- Free tier: TBD
- Tiny tier: TBD
Outbox files are automatically cleaned up after processing.
Data access
Section titled “Data access”Via email
Section titled “Via email”Ask your agent: “Show me the contents of /data/MEMORY.md”
Via dashboard
Section titled “Via dashboard”File browser coming soon.
Via export
Section titled “Via export”Contact support for R2 data export.