sayou
概览
作者提供的说明(英文原文)
Persistent knowledge workspace for AI agents. Versioned files, search, and MCP tools.
PopNx MCP 的三大支柱
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
- 用户评价i暂无评价评价功能将在后续阶段与账户功能一起开放
- 我们的基础检查i1 项中通过 1 项依据公开信息检查;尚未扫描代码
- 使用情况i非常新↓ 20/周 · ★ –
它能帮你做什么
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
- 连接方式: 在你的电脑上运行
- 传输方式: stdio
- 分类: 搜索与 AI 记忆
安装
选择你使用的 AI 应用,然后复制设置。
安装之前
- 基础检查:1 项中通过 1 项
- 在你的电脑上运行,拥有你的用户账户的权限(文件、网络、应用)。
- 注册中心没有列出需要填写的密钥。
你需要
- PyPI已安装 Python 的 uv(用于 uvx 命令)
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"sayou": {
"command": "uvx",
"args": [
"sayou"
]
}
}
}在终端中运行这条命令
claude mcp add sayou -- uvx sayou或者自己复制设置
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"sayou": {
"command": "uvx",
"args": [
"sayou"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
或者自己复制设置
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"sayou": {
"type": "stdio",
"command": "uvx",
"args": [
"sayou"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它能做什么
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
基础检查i
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月9日
- ✓ 通过
作者与仓库一致
注册名称已通过 GitHub 账户 pixell-global 验证,该账户拥有此仓库
- … 尚未检查
仍在维护
我们还没有从 GitHub 读取这个仓库
- … 尚未检查
有许可证
我们还没有从 GitHub 读取这个仓库
- – 不适用
端点有响应
它在你的电脑上运行,没有互联网端点
- – 不适用
使用 OAuth 登录
在你的电脑上运行,改用本地设置
- … 尚未检查
工具描述中没有隐藏指令
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与“搜索与 AI 记忆”中的其他服务器比较i
- 星标数多于此分类中其他 5749 个服务器的 0%
- 发布到注册中心的时间比此分类中其他 5749 个服务器的 3% 更新
- 基础检查结果等于或优于此分类中其他 5749 个服务器的 100%
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
常见问题
sayou 安全吗?
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
它需要哪些密钥或代码?
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在我的电脑上运行还是在云端?
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
它还在维护吗?
GitHub 仓库最后更新于–,最新版本(0.2.2)于9个月前进入注册中心。
哪些应用可以使用它?
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Python (uv)。
有什么可以替代它?
同一分类中有:Context7, Codebase Memory, Exa
替代选择
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:↓ 每周下载量i★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
Codebase Memory
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Exa
Connect AI agents to Exa for web search, content fetching, and multi-step research.
作者的 README
打开 README
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
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 authafter 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.mdwith 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]*
`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.
Any MCP-compatible client
sayou is a standard MCP server. Run sayou init (no flag) to get the config snippet, then paste it into your editor's MCP config. The entry is always the same — just "command": "sayou".
MCP Tools
The agent gets 11 tools (12 with embeddings enabled):
| Tool | Description |
|---|---|
workspace_write | Write or update a file (text or binary with YAML frontmatter) |
workspace_read | Read latest or specific version, with optional line range |
workspace_list | List files and subfolders with auto-generated index |
workspace_search | Search by full-text query, frontmatter filters, or chunk-level |
workspace_delete | Soft-delete a file (history preserved) |
workspace_history | Version history with timestamps, or diff between two versions |
workspace_glob | Find files matching a glob pattern |
workspace_grep | Search file contents with context lines |
workspace_kv | Key-value store (get/set/list/delete with optional TTL) |
workspace_links | File links and knowledge graph (get or add links) |
workspace_chunks | Chunk outline or read a specific chunk by index |
workspace_semantic_search | Vector similarity search (requires SAYOU_EMBEDDING_PROVIDER) |
Python API
import asyncio
from sayou import Workspace
async def main(): async with Workspace() as ws:
Write a file with YAML frontmatter
await ws.write("notes/hello.md", """\
status: active tags: [demo, quickstart]
Hello from sayou
This file is versioned and searchable. """)
Read it back
doc = await ws.read("notes/hello.md") print(doc["content"])
Search by frontmatter
results = await ws.search(filters={"status": "active"}) print(f"Found {results['total']} active files")
asyncio.run(main())
See examples/quickstart.py for a runnable version.
CLI
# File operations
sayou file read notes/hello.md sayou file write notes/hello.md "# Hello World" sayou file list / sayou file search --query "hello" --filter status=active
KV store
sayou kv set config.theme '"dark"' sayou kv get config.theme
Cloud authentication
sayou auth # Connect to Sayou Drive (interactive) sayou auth status # Show current mode (cloud/local) sayou auth logout # Disconnect from Sayou Drive
Diagnostics
sayou init # Initialize local setup sayou status # Show diagnostic info
Examples
| Example | What it shows |
|---|---|
quickstart.py | Hello World — write, read, search, list in 30 lines |
kv_config.py | KV store for config, feature flags, caching with TTL |
version_control.py | Version history, diff, time-travel reads |
file_operations.py | Move, copy, binary files, glob patterns |
multi_agent.py | Multi-agent collaboration with shared workspace |
research_agent.py | All methods exercised — the comprehensive reference |
Reference Agent
sayou ships with a reference agent server — a multi-turn assistant that can search, read, write, and research using your workspace. It's a complete working example of building an agent on sayou.
Quick start
# Install with agent dependencies
pip install sayou[agent]
Configure (copy and fill in your OpenAI key)
cp agent/.env.example .env
Run the agent server
python -m sayou.agent
The agent runs on http://localhost:9008 with a streaming SSE endpoint at POST /chat/stream.
What the agent can do
| Capability | How it works |
|---|---|
| Answer questions | Searches workspace first, falls back to web search |
| Research topics | Multiple web searches, extracts facts, saves structured findings |
| Store knowledge | Writes files with YAML frontmatter, section headings, source citations |
| Execute code | Optional E2B sandbox for Python and bash (set SAYOU_AGENT_E2B_API_KEY) |
Evaluate the agent
# Start agent in one terminal
python -m sayou.agent
Quick pass/fail eval
python -m sayou.agent.benchmarks.eval
Detailed scoring (0-10 per capability)
python -m sayou.agent.benchmarks.eval_full
Architecture
Client → FastAPI (port 9008)
↓ Orchestrator ├─ LLMProvider (OpenAI streaming + tool calls) ├─ ToolFactory │ ├─ workspace_search/read/list/write (→ sayou SDK) │ ├─ web_search (→ Tavily API, optional) │ └─ execute_bash/python (→ E2B sandbox, optional) └─ SandboxManager (per-session isolation, auto-cleanup)
SAMB: Structured Agent Memory Benchmark
sayou includes SAMB — an open benchmark for evaluating memory systems on real agentic workflows. Existing benchmarks (LOCOMO, LongMemEval, DMR) test conversation recall. SAMB tests what agents actually need: recalling decisions, retrieving artifact contents, and connecting knowledge across sessions.
What SAMB measures
| Dimension | What it tests |
|---|---|
| Decision reasoning | "Why was bcrypt chosen over Argon2?" |
| Artifact content | "What endpoints are in the API docs?" |
| Cross-session | "How does session 3's auth decision affect session 5's implementation?" |
| Fact recall | "What was the monthly GCP cost estimate?" |
| Temporal | "What changed between the first and second architecture review?" |
10 scenarios, 62 sessions, 131 QA pairs across 7 question types. Each scenario simulates a multi-session professional project (auth system design, cloud migration, email campaigns, incident response, etc.) with realistic conversations, decisions, and artifacts.
Run the benchmark
# Prerequisites: pip install sayou mem0ai zep-cloud
Requires: OPENAI_API_KEY (for judge/answer models)
ZEP_API_KEY (for zep adapter)
Run all adapters on all scenarios
python -m benchmarks.runner.cli
Specific adapters
python -m benchmarks.runner.cli --adapter sayou mem0
Specific scenarios
python -m benchmarks.runner.cli --adapter sayou --scenario 01 03 08
Verbose output (per-question scores)
python -m benchmarks.runner.cli --verbose
Override judge/answer models
python -m benchmarks.runner.cli --judge-model gpt-4o --answer-model gpt-4o
Results are saved to benchmarks/results/ as JSON with full per-question breakdowns.
Available adapters
| Adapter | System | Retrieval approach |
|---|---|---|
sayou | sayou workspace | FTS5 + grep + file read (agentic, multi-tool) |
mem0 | mem0 | LLM fact extraction + embedding search (agentic) |
zep | Zep Cloud | Knowledge graph + temporal edges (agentic) |
oracle | Baseline | Direct access to source sessions (upper bound) |
no_memory | Baseline | No retrieval (lower bound) |
Methodology
Each adapter use
只显示了开头部分;其余内容请在仓库中阅读