A journal backend that respects your data, your tools, and your workflow.
Built from the ground up for AI assistants via Model Context Protocol. Journal by talking, not typing into an app.
Full-text BM25 + semantic vector search, fused with Reciprocal Rank Fusion. Find entries by meaning, not just keywords.
Docker Compose, one command. Your journal data never leaves your machine. Full ownership, zero cloud lock-in.
Bring your own API key. Works with Anthropic, OpenAI, or local models via Ollama. Switch providers anytime.
Works with zero AI config — plain text and keyword search. Add API keys to unlock tagging, summaries, and semantic search.
Single API key for quick setup, or OAuth 2.1 with PKCE for MCP HTTP transport. No user management overhead.
$ git clone recto.git
$ cd recto
$ docker compose up -d
✓ Container recto-db Started
✓ Container recto-api Started
✓ Container recto-mcp Started
✓ Container recto-proxy Started {
"mcpServers": {
"recto": {
"url": "https://localhost/mcp",
"headers": {
"Authorization": "Bearer your-key"
}
}
}
} "I want to write about what I learned today..."
That's it. Your AI assistant handles the rest — creating entries, tagging, searching, and reflecting.
A TypeScript monorepo with three focused packages.
Hono framework, Drizzle ORM, PostgreSQL with pgvector. Handles entries, search, tags, media, AI enrichment, and reflections.
The AI journaling interface. HTTP transport (Streamable HTTP). Tools for creating, searching, reflecting, and managing entries.
React + Vite + Tailwind CSS. Browse your timeline, entries, and tags. Manage instructions and prompt templates in Settings.
Clone, start, connect. Your first journal entry is one conversation away.
$ git clone https://github.com/KristijanS99/recto.git
$ cd recto
$ docker compose up -d
# Recto is now running at https://localhost
# Add the MCP config to your AI assistant and start journaling. A glimpse at what's happening and what's next.
Support file uploads to local storage instead of URL references only.
Support multiple users with separate journal spaces and per-user API keys.
Add structured logging with configurable log levels across the entire system.