recto
Your journal lives where your thoughts already are — in conversation with AI.
= 22" />
______________________________________________________________________
名称
正面 --来自拉丁语 *rectō*,意思 _“在右边。”_ 在装订过程中 正面 这是一本打开的书的右页——首页,你首先看到的那一页。这就是故事的开始。 每一篇日记都是一个新的篇章:新的一页,等待你的思考。
______________________________________________________________________
什么是Recto?
Recto是一个 开源、自托管的期刊后端 对于开发者来说。它允许你通过任何人工智能助手存储、搜索和反思你的想法——不需要应用程序。
主日志界面不是UI。这是您的AI助手(Claude、ChatGPT、Cursor等)通过以下方式连接 模型上下文协议(MCP)Recto是一个 数据平台优先,具有用于浏览和查看条目的轻量级web UI。
______________________________________________________________________
亮点
- MCP本地 --从头开始设计,通过模型上下文协议与人工智能助手协同工作
- 混合搜索 --全文(BM25)+语义向量搜索,与互序融合
- 自托管 --Docker Compose,一个命令,你的数据永远不会离开你的机器
- AI不可知论 -带上您自己的API密钥:Anthropic、OpenAI或通过Ollama的本地模型
- 渐进增强 -使用零AI配置(纯文本+关键字搜索),添加API键会变得更智能
- 可定制的提示 --内置提示模板(每日签到、每周回顾、感恩等),在连接时自动注入自定义指令
- 灵活的身份验证 -用于快速设置的单个API密钥,或用于MCP HTTP传输的带有PKCE的OAuth 2.1
______________________________________________________________________
建筑
Recto是一个TypeScript单仓库,有三个包:
recto/
├── packages/
│ ├── api/ @recto/api — Hono REST API, PostgreSQL + pgvector, Drizzle ORM
│ ├── mcp/ @recto/mcp — MCP server (Streamable HTTP), the AI journaling interface
│ └── web/ @recto/web — React + Vite dashboard for browsing and managing entries| 包 | 角色 | 堆栈 |
|---|---|---|
@recto/api | REST API和数据层 | Hono、Drizle ORM、PostgreSQL、pgvector |
@recto/mcp | AI助手接口 | MCP SDK,可流式HTTP传输 |
@recto/web | Web仪表板 | React、Vite、顺风CSS、TanStack查询 |
特性
日记条目
创建、更新和删除日记条目。每个条目都支持内容、标题、标签、情绪、提及的人、媒体附件和任意元数据。
人工智能丰富
配置LLM提供者后,新条目会自动丰富AI生成的标题、标签、情绪检测和人物提取。当设置嵌入提供者时,会生成用于语义搜索的嵌入。
搜索
三种搜索模式:
- 关键词 --PostgreSQL全文搜索(BM25),突出显示代码段
- 语义 --基于pgvector的向量相似性搜索
- 混合 --使用往复式秩融合将两者结合起来(默认)
反映
让你的人工智能助手反思你在任何时间段的日记条目。反射端点检索相关条目并生成深思熟虑的综合。
MCP工具
MCP服务器将这些工具暴露给您的AI助手:
| 工具 | 说明 |
|---|---|
create_entry | 创建新日记条目 |
get_entry | 检索特定条目 |
list_entries | 列出带有可选筛选器的条目 |
search_entries | 按关键字、语义相似性或混合搜索 |
reflect | 根据过去的条目生成反映 |
add_tags | 为条目添加标签 |
get_summary | 获取最近条目的AI摘要 |
add_media | 将媒体URL附加到条目 |
MCP提示
MCP客户可以发现六个内置的提示模板:每日签到、每周回顾、每月回顾、感恩、想法捕捉和目标设定。您还可以创建自定义提示。
指示和提示管理
通过持久指令和提示模板自定义AI助手的行为方式。通过REST API或web面板的“设置”页面管理它们。
Web仪表板
五页用于浏览和管理您的日记:
- 时间线 (
/)--按时间顺序排列的条目提要,带有分页和标签过滤功能 - 条目详细信息 (
/entry/:id)--带元数据的完整条目视图 - 搜索 (
/search)--使用模式选择进行搜索 - 标签 (
/tags)--带有计数的标签浏览器 - 设置 (
/settings)--管理指令和提示模板
______________________________________________________________________
快速开始
# Clone the repo
git clone https://github.com/KristijanS99/recto.git
cd recto
# Configure environment
cp .env.example .env
# Edit .env — set RECTO_API_KEY and generate a password hash:
# docker run --rm caddy:2-alpine caddy hash-password --plaintext 'your-password'
# Set RECTO_WEB_PASSWORD_HASH (escape $ as $$ in .env)
# Start everything with Docker
docker compose up -d
# Recto is now running:
# Web dashboard: https://localhost (basic auth protected)
# API: https://localhost/api
# MCP server: https://localhost/mcp连接您的AI助手
在助手的配置中添加Recto作为MCP服务器。Recto使用流式HTTP传输——所有客户端都通过URL连接。
使用API密钥验证 (Cursor、Claude Code和大多数MCP客户端):
{
"mcpServers": {
"recto": {
"url": "https://localhost/mcp",
"headers": {
"Authorization": "Bearer your-api-key"
}
}
}
}注: 一些客户使用serverUrl而不是url(例如反重力)。检查客户的文件。
使用OAuth (克劳德桌面):
Claude Desktop原生支持OAuth。只需添加MCP URL——它会自动处理授权:
{
"mcpServers": {
"recto": {
"url": "https://your-domain.com/mcp"
}
}
}OAuth需要公开信任的HTTPS证书。请参阅 部署指南 有关设置的详细信息。
然后,通过与你的人工智能对话来开始写日记。就这么简单。
______________________________________________________________________
技术栈
| 层 | 技术 |
|---|---|
| 运行时 | Node.js 22、ESM、TypeScript(严格) |
| API框架 | 荣誉 |
| 数据库 | PostgreSQL+ pg向量 |
| ORM | 细雨 |
| MCP | 模型上下文协议SDK |
| 前端 | React+Vite+顺风CSS |
| Monrepo | pnpm工作区+ 涡轮仓库 |
| Linting | 生物群系 |
| 测试 | 维测试 +测试容器 |
______________________________________________________________________
发展
先决条件
- Node.js>=22
- 码头工人 (适用于PostgreSQL数据库)
设置
# Install dependencies
pnpm install
# Copy environment config
cp .env.example .env
# Start the PostgreSQL database (pgvector)
docker compose up -d db
# Run all packages in dev mode
pnpm dev这 docker compose up -d db 命令只启动带有pgvector的PostgreSQL容器。API、MCP服务器和web仪表板通过 pnpm dev 用于开发过程中的热重载。
命令
pnpm dev # Run all packages in dev mode
pnpm lint # Lint & format
pnpm typecheck # Type check
pnpm test # Run tests
pnpm build # Build everything______________________________________________________________________
星史
______________________________________________________________________
许可证
麻省理工学院——见 许可证 了解详情。
精心打造 @克里斯蒂安S99.
