关于 tilde
tilde 是注重隐私的 MCP 服务,为 AI Agent 提供可迁移的用户档案、技能和团队背景。数据默认保存在本地,并允许 Agent 提出档案变更供人工审批。
主要功能
- 01结构化档案与自定义字段
- 02Agent 提议更新并由用户审批
- 03技能可见性与 Agent 可调用技能
- 04简历和文档导入
- 05团队背景同步
- 06YAML、SQLite 与 Mem0 存储
适用场景
- 01在不同 AI 工具间复用个人偏好
- 02审核 Agent 提议的档案变更
- 03从简历导入工作经历
- 04与团队共享编码规范
MCP 相关
tilde 提供档案和团队资源,以及用于读取档案与团队背景、提议更新的工具。用户可以审核并批准这些变更。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
🏠 tilde
AI Agent 的主目录
tilde 是一个以隐私为先的 Model Context Protocol(MCP)服务,可作为 AI Agent 的通用记忆和个人资料层。
配置一次,随处使用。数据由你掌控。
支持个人资料管理、技能、简历导入和团队同步。
问题
每次切换 AI 工具时,你都会遇到相同的问题:
- 🔄 重复输入:“我是一名高级软件工程师”“我偏好 Python”“不要使用 ORM”
- 🧩 信息割裂:在 Cursor 中学到的偏好无法在 Claude 中使用
- 🔒 隐私顾虑:不确定谁能访问你的个人上下文
解决方案
tilde 就像一张“数字护照”,你的 AI Agent 可以读取它:
┌────────────────────────────────────────────────────────────┐
│ Claude Desktop │ Cursor │ Windsurf │ Your Agent │
└────────┬─────────┴─────┬──────┴─────┬──────┴───────┬───────┘
│ │ │ │
└───────────────┴─────┬──────┴──────────────┘
│
┌──────────▼──────────┐
│ tilde MCP Server │
│ (runs locally) │
└──────────┬──────────┘
│
┌──────────▼──────────┐
│ ~/.tilde/profile │
│ (your data) │
└─────────────────────┘
功能
- 🏠 本地优先:默认情况下,你的数据保留在自己的设备上
- 📋 结构化个人资料:身份、技术栈、知识、技能
- 🔌 MCP 标准:适用于任何兼容 MCP 的 Agent
- ✏️ 人工参与:Agent 可以提出更新,由你批准
- 🔧 可扩展架构:无需修改代码即可添加自定义字段
- 🔒 技能隐私:控制 Agent 可见的技能(公开/私有/团队)
- 🤖 Agent 可调用的技能:定义 AI Agent 可以代表你调用的技能
- 📄 简历导入:从现有简历/履历表初始化个人资料
- 📚 知识来源:书籍、文档、课程、文章,统一的学习模型
- 👥 团队同步:在团队内共享编码规范
快速开始
安装
# Install from PyPI
pip install tilde-ai
# Initialize your profile
tilde init
开发环境安装
# Clone the repository
git clone https://github.com/topskychen/tilde.git
cd tilde
# Install with uv
uv sync
# Run locally
uv run tilde init
配置 Cursor
将以下内容添加到项目中的 .cursor/mcp.json(全局使用则添加到 ~/.cursor/mcp.json):
{
"mcpServers": {
"tilde": {
"command": "npx",
"args": ["-y", "tilde-ai"]
}
}
}
配置完成后,你会在 MCP 服务列表中看到 tilde,以及所有可用的工具和资源:

配置 Antigravity
将以下内容添加到项目中的 .gemini/antigravity/settings.json:
{
"mcpServers": {
"tilde": {
"command": "npx",
"args": ["-y", "tilde-ai"]
}
}
}
配置 Claude Desktop
将以下内容添加到 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"tilde": {
"command": "npx",
"args": ["-y", "tilde-ai"]
}
}
}
使用示例
配置完成后,你的 AI Agent 就可以访问个人资料。试着询问:
“我叫什么名字?”
Agent 会使用 get_profile 工具获取你的身份信息,并回答你的姓名和角色:

创建个人资料
编辑 ~/.tilde/profile.yaml:
schema_version: "1.0.0"
user_profile:
identity:
name: "John Doe"
role: "Full Stack Developer"
years_experience: 10
# Add any custom fields you need:
timezone: "America/Los_Angeles"
pronouns: "they/them"
tech_stack:
languages:
- TypeScript
- Python
- Go
frameworks:
- React
- FastAPI
- Next.js
preferences:
- "Prefer composition over inheritance"
- "Write tests before implementation (TDD)"
- "Use descriptive variable names over comments"
environment: "VS Code, Docker, Linux/MacOS"
# Knowledge sources: books, docs, courses, articles, etc.
knowledge:
domains:
web_development: "Focus on performance and accessibility"
ml_ops: "Experience deploying ML models to production"
sources:
- title: "Clean Code"
source_type: "book"
insights:
- "Functions should do one thing"
- "Prefer meaningful names over documentation"
- title: "React Documentation"
source_type: "document"
url: "https://react.dev"
insights:
- "Prefer Server Components for data fetching"
# Agent-callable skills (Anthropic SKILL.md format)
skills:
- name: "code-formatter"
description: "Format code using project conventions"
visibility: "public"
tags: ["automation", "code-quality"]
- name: "deploy-staging"
description: "Deploy current branch to staging environment"
visibility: "team"
- name: "expense-reporter"
description: "Generate expense reports from receipts"
visibility: "private"
team_context:
organization: "Acme Corp"
coding_standards: "ESLint + Prettier, PR reviews required"
architecture_patterns: "Monorepo with shared packages"
do_not_use:
- "jQuery"
- "Class components in React"
MCP 资源
tilde 会向 Agent 提供以下资源:
| 资源 URI | 描述 |
|---|---|
tilde://user/profile | 完整的用户个人资料 |
tilde://user/identity | 姓名、角色、经验、自定义字段 |
tilde://user/tech_stack | 编程语言、偏好、环境 |
tilde://user/knowledge | 知识来源、领域、项目 |
tilde://user/skills | 技能(按可见性筛选) |
tilde://user/experience | 工作经历 |
tilde://user/education | 教育背景 |
tilde://user/projects | 个人/开源项目 |
tilde://user/publications | 论文和出版物 |
tilde://team/context | 团队编码规范和模式 |
MCP 工具
| 工具 | 描述 |
|---|---|
get_profile | 获取完整或部分个人资料 |
get_team_context | 获取团队专属上下文 |
propose_update | Agent 提出个人资料更新(进入队列等待批准) |
list_pending_updates | 列出等待用户批准的更新 |
CLI 命令
tilde init # Create default profile
tilde show # Display current profile
tilde show skills # Show skills section only
tilde show --full # Show full content without truncation
tilde edit # Open profile in $EDITOR
tilde config # Show current configuration
tilde pending # List pending agent updates
tilde approve <id> [id2...] # Approve one or more updates
tilde reject <id> [id2...] # Reject one or more updates
tilde approve --all # Approve all pending updates
tilde reject --all # Reject all pending updates
tilde approve --all -e <id> # Approve all except one
tilde log # View update history
tilde ingest <file> # Extract insights from a document
tilde export --format json # Export profile
文档导入
# Ingest a book and extract insights
tilde ingest "~/Books/DDIA.pdf" --topic data_systems
# Dry run to preview what would be extracted
tilde ingest notes.md --dry-run
# Auto-approve high-confidence updates
tilde ingest paper.pdf --auto-approve 0.8
简历导入
从现有简历初始化个人资料:
# Import resume (PDF, DOCX, or text)
tilde ingest ~/Documents/resume.pdf --type resume
# Preview what would be extracted
tilde ingest resume.pdf --type resume --dry-run
# Auto-approve high-confidence items
tilde ingest resume.pdf --type resume --auto-approve 0.8
简历导入器会提取:
- 身份:姓名、角色、工作年限
- 工作经历:包含公司、职位和日期的工作历史
- 教育背景:学位、院校、毕业年份
- 技术栈:编程语言、框架、工具
- 项目:个人和开源项目
- 出版物:论文、专利、文章
技能管理
管理 Anthropic 格式的技能,并全面支持打包:
# Import skills from Anthropic skills directory
tilde skills import /path/to/skills
# Import specific skills by name
tilde skills import /path/to/skills -n mcp-builder -n pdf
# Dry run to preview import
tilde skills import ./skills --dry-run
# Import as private skills
tilde skills import ./skills --visibility private
# List all imported skills
tilde skills list
# Export skills to Anthropic format
tilde skills export ./my-skills
# Export specific skill
tilde skills export ./output -n mcp-builder
# Delete skills
tilde skills delete skill-name
tilde skills delete --all --force
技能导入器会打包以下内容:
- SKILL.md:包含 YAML frontmatter 的技能内容
- scripts/:Python 脚本和实用工具
- references/:文档文件
- templates/:模板文件
- assets/:静态资源
- 根目录文件:LICENSE.txt 等
所有打包的资源都会在导入 → 持久化 → 导出过程中完整保留。
团队管理
# Create a team
tilde team create myteam --name "My Startup" --org "ACME Corp"
# Activate team context (applies to all profile queries)
tilde team activate myteam
# Sync team config from URL or git repo
tilde team sync https://example.com/team.json --activate
tilde team sync [email protected]:myorg/team-config.git --activate
# List and manage teams
tilde team list
tilde team show
tilde team edit
tilde team deactivate
存储后端
tilde 支持多个存储后端:
| 后端 | 使用场景 | 命令 |
|---|---|---|
| YAML(默认) | 易于阅读,适合使用 Git 管理 | TILDE_STORAGE=yaml |
| SQLite | 支持查询和记忆,规模扩大时速度更快 | TILDE_STORAGE=sqlite |
| Mem0 | 通过嵌入向量进行语义搜索 | TILDE_STORAGE=mem0 |
# Use SQLite backend
export TILDE_STORAGE=sqlite
tilde init
# Query profile fields (SQLite only)
uv run python -c "
from tilde.storage import get_storage
storage = get_storage(backend='sqlite')
print(storage.query('%languages%'))
"
配置
tilde 使用集中式配置来设置 LLM 和嵌入向量。配置存储在 ~/.tilde/config.yaml 中,可在不同设备间同步。
配置优先级
- 环境变量(优先级最高)
- 配置文件(
~/.tilde/config.yaml) - 内置默认值(优先级最低)
环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
GOOGLE_API_KEY | Google/Gemini API 密钥(主要) | 必填 |
OPENAI_API_KEY | OpenAI API 密钥(备用) | 可选 |
TILDE_LLM_MODEL | 用于文档导入的 LLM 模型 | gemini-3-flash-preview |
TILDE_EMBEDDING_MODEL | 用于语义搜索的嵌入模型 | gemini-embedding-001 |
TILDE_STORAGE | 存储后端(yaml、sqlite、mem0) | yaml |
TILDE_PROFILE | 自定义个人资料路径 | ~/.tilde/profile.yaml |
管理配置
# View current configuration
tilde config
# Save settings to config file (for syncing across devices)
tilde config --save
# Modify a setting and save
tilde config --set llm_model=gemini-1.5-pro
# Show config file path
tilde config --path
注意:出于安全考虑,API 密钥绝不会保存到配置文件中。请始终通过环境变量设置。
快速设置
# Minimal setup (just one API key!)
export GOOGLE_API_KEY="your-google-api-key"
# Save your settings for this device
tilde config --save
# Now you can use all features
tilde ingest paper.pdf
在不同设备间同步
~/.tilde/config.yaml 中的配置文件旨在支持同步:
- 通过 dotfiles 仓库:将
~/.tilde/添加到你的 dotfiles 中 - 通过云同步:使用 Dropbox、iCloud 或类似服务
- 手动同步:将文件复制到新设备
配置文件示例:
llm_model: gemini-3-flash-preview
llm_temperature: 0.7
embedding_model: gemini-embedding-001
embedding_dimensions: 768
storage_backend: yaml
以编程方式配置
from tilde.config import get_config, call_llm, get_embedding, save_config
# Check current config
config = get_config()
print(f"Provider: {config.provider}")
print(f"LLM Model: {config.llm_model}")
# Use directly
response = call_llm("Summarize this document...")
embedding = get_embedding("Some text to embed")
路线图
- 阶段 1:支持读取个人资料的 MVP
- 阶段 2:Agent 提出更新并经过审批流程
- 阶段 3:导入文档(书籍、PDF)
- 阶段 4:面向 B2B 使用场景的团队同步
- 阶段 5:SQLite 和 Mem0 存储后端
- 阶段 6:技能管理(Anthropic SKILL.md 格式)
- 使用
tilde skills import从目录批量导入 - 使用
tilde skills export导出到目录 - 完整打包脚本、参考资料、模板和资源
- 按技能名称去重
- 使用
为什么叫 “tilde”?
在 Unix 中,~(波浪号)代表你的主目录,也就是存放个人配置的地方。tilde 是你的 AI 身份之家。
理念
- 数据由你掌控:默认本地存储,仅在你选择时同步
- 人在回路中:Agent 提议,人来决定
- 便携且开源:随时导出,不受供应商锁定,可与任何 MCP 工具配合使用
- 渐进式披露:从简单开始,按需增加复杂度
许可证
MIT
一次配置,随处使用。数据由你掌控。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。