sayou
A file-system inspired context store for AI agents.
Built to replace the databases of the web era. Open source. File-first. SQL-compatible.

Databases were designed for transactions — they reduce nuance to fit a schema. Agents think deeply, then forget everything when the session ends. sayou is where reasoning persists, context accumulates, and knowledge compounds over time.
- Files that hold what databases can't — Frontmatter for structure. Markdown for context. Versioned. Auditable.
- One read. Full context. — Every read accepts a
token_budget. Returns summaries with section pointers when content exceeds the budget.
- Knowledge that compounds — Append-only version history. Every change is a new version. Full audit trail and time-travel reads.
- Any agent can connect — MCP server, Python library, or CLI. Optional REST API with
pip install sayou[api].
Quick Start
Claude Code (recommended)
From within Claude Code:
/plugin install sayou@pixell-global
Or from the terminal:
claude plugin install sayou@pixell-global
One command. This installs the plugin with lifecycle hooks (workspace context on session start, passive activity capture, session summaries) and skills (/ws, /save, /recall). If sayou isn't installed yet, the plugin auto-installs it on first run.
Cloud mode: To sync your workspace via Sayou Drive, run sayou auth after installing and paste your API key from Settings.
pip install
pip install sayou && sayou init --claude
This installs sayou and configures ~/.claude/mcp.json. You get the 11 MCP tools but no hooks or skills. You can also use --cursor or --windsurf, or run sayou init without flags to get the config snippet to paste manually.
To verify either method, run sayou status — you should see your workspace path, database location, and 11 tools registered. If you see errors, jump to Troubleshooting.
Try It
Open Claude Code and paste any of these prompts. Each one triggers a different MCP tool — no setup beyond the Quick Start above.
| Prompt | What happens | Tool |
|---|
| "Save a note about our Q1 goals with status: draft" | Creates a versioned file with YAML frontmatter | workspace_write |
| "What files are in my workspace?" | Lists all files and subfolders | workspace_list |
| "Search for anything tagged status: draft" | Filters files by frontmatter metadata | workspace_search |
| "Read the Q1 goals note" | Retrieves file content with token-budget awareness | workspace_read |
| "Update the status to reviewed" | Writes a new version (old version preserved) | workspace_write |
| "Show me the diff between versions" | Compares two versions with unified diff | workspace_history |
| "Store a setting: theme = dark" | Saves a key-value pair (with optional TTL) | workspace_kv |
| "Find all markdown files in research/" | Matches files by glob pattern | workspace_glob |
| "Search file contents for the word 'budget'" | Grep-style content search with context | workspace_grep |
Every write creates a new version. Nothing is overwritten. You can always go back.
What It Looks Like
A short conversation showing sayou in action across sessions:
You: Research competitor pricing for our enterprise tier and save your findings.
Claude Code: I'll research this and save my findings to the workspace.
[Uses workspace_write to create research/competitor-pricing.md]
Saved to research/competitor-pricing.md with frontmatter:
status: draft, topic: competitor-pricing
You (next day, new session): What did we learn about competitor pricing?
Claude Code: Let me check our workspace.
[Uses workspace_search with query "competitor pricing"]
Found research/competitor-pricing.md (saved yesterday):
- Competitor A: $99/seat/month
- Competitor B: $149/seat/month (includes support)
- Competitor C: $79/seat/month (limited features)
You: Update the status to "reviewed" and show me the diff.
Claude Code: [Uses workspace_write to create version 2, then workspace_history to diff]
- status: draft
+ status: reviewed
+ reviewer_notes: |
+ Competitor B is closest to our positioning.
The key insight: Claude Code remembered the research across sessions because sayou persisted it as a versioned file — not a chat message that disappears.
Setup for Other Editors
Cursor
sayou init --cursor
This adds sayou to .cursor/mcp.json in your current working directory.
Windsurf
sayou init --windsurf
This adds sayou to ~/.codeium/windsurf/mcp_config.json.