Skip to content

Agent Workspace

Your agent has persistent storage mounted at /data. Files here survive between conversations and container restarts.

/data
├── MEMORY.md # Agent's persistent memory
├── config.json # Agent preferences (model, etc.)
├── sessions/
│ └── {id}.jsonl # Conversation history files
├── outbox/
│ ├── email/ # Pending emails to send
│ ├── sent/ # Successfully sent emails
│ └── failed/ # Failed email attempts
└── events/
└── {timestamp}.jsonl # Run events for dashboard

This is your agent’s brain. It persists across sessions and contains:

  • Agent identity and configuration
  • Owner information
  • Outbox pattern instructions
  • Custom context you want the agent to remember

The agent reads this file at the start of every turn.

Stores agent preferences like model selection:

{
"model": "haiku"
}

You can change the model via email:

  • /model haiku — Fastest, cheapest
  • /model sonnet — Balanced
  • /model opus — Most capable

Each conversation is stored as a JSONL file in /data/sessions/. Sessions contain:

  • Your messages
  • Agent responses
  • Tool calls and results
  • Usage statistics
CommandEffect
/clearStart a new session (preserves old ones)
/resumeList recent sessions with hashes
/resume abc1Resume session by hash
/compactCompress context to reduce token usage

The outbox is how your agent sends emails. Instead of calling APIs directly, the agent writes JSON files:

/data/outbox/
├── email/ # Pending - agent just wrote these
├── sent/ # Successfully sent by platform
└── failed/ # Failed to send (will retry)

Example outbox file:

{
"to": ["[email protected]"],
"subject": "Re: Your question",
"body": "Here's what I found...",
"in_reply_to": "<original-message-id>",
"status": "pending"
}

See Outbox Pattern for details.

The /data/events/ directory stores real-time events from agent runs. The dashboard uses these to show:

  • Tool calls in progress
  • Streaming text output
  • Errors and completions

Your agent’s container includes:

Core utilities:

  • git, curl, wget, jq, yq
  • ripgrep (rg), fd-find (fdfind), tree
  • sqlite3, psql (PostgreSQL client)
  • zip, unzip, tmux, less

Python:

  • python3 with uv (fast package manager)
  • fpdf2 for PDF generation

Developer tools:

  • gh (GitHub CLI)
  • Node.js 22 LTS

Skills are documentation files that teach your agent how to use specific tools. They’re cloned to /opt/skills/ in the container:

  • /opt/skills/pi-skills/ — Core skills from pi-mono
  • /opt/skills/tiny-skills/ — TinyFat platform skills

See Skills & Tools for the full list.

Your agent’s R2 storage is currently unlimited during launch. In the future:

  • Free tier: TBD
  • Tiny tier ($5/mo): TBD

Files in the outbox are automatically cleaned up after successful sending.

You can view and edit files through:

  1. Email — Ask your agent to read/write files
  2. Dashboard — File browser in the web UI (coming soon)
  3. Direct R2 — Export your data anytime