orbit
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@orbitcapture a task: buy groceries"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Orbit is a lightweight, self-hosted personal knowledge and planning tool.
It is built for people who like the idea of a personal knowledge system but do not want to maintain a complex collection of databases, properties, plugins, and separate apps. Orbit keeps the loop intentionally small: write something down, turn it into a task or event when needed, and file it with PARA when it becomes useful.
Notes, tasks, and calendar events live in embedded SQLite, with portable Markdown import and export. The core works without an AI provider. Optional AI can answer questions about your information without changing it.
What works today
Area | Current behavior |
Capture | Create notes, tasks, and events from Today, Inbox, or the mobile quick-capture flow. Supported browsers can also use speech input. |
Notes | Edit Markdown with background autosave, GFM preview, tags, internal note links, optional Vim mode, and archive/delete actions. |
Tasks | See open and completed tasks, grouped as overdue, today, upcoming, or unscheduled. Complete, edit, file, or drag tasks to today or tomorrow. |
Calendar | Day, week, and month views for tasks and events, including timed and multi-day events. Create, move, and resize scheduled items. |
Today | See today's tasks and events together, alongside active project folders and quick capture. |
PARA | File items into Projects, Areas, Resources, or Archive. Create and manage nested folders without inventing a database schema first. |
Search | Use the global search button or Cmd/Ctrl+K to find notes, tasks, events, and cached mail across folders. Mail search covers subject, addresses, preview, and the full text of recently opened messages. For uncached bodies, use the mail server search within each mailbox folder. |
AI | Search and refresh the Vercel AI Gateway model catalog, then ask questions about matching notes, tasks, events, and mail. Answers show source items. |
Whiteboards | Create, rename, edit, and autosave Excalidraw-compatible whiteboard files. Notes can link to whiteboards. |
Mobile | Responsive navigation, a dedicated capture route, install guidance, and a PWA manifest. Private pages and note data are not cached for offline use. |
Self-hosting | One Docker container, one persistent vault directory, and built-in single-user password authentication. SQLite is embedded; no separate database service is required. |
MCP | A working local stdio server exposes nine tools against the same vault used by the web app. |
Not implemented yet: AI-assisted organization, a review screen for AI changes, calendar sync, automatic backups, multi-user collaboration, or a remote HTTP MCP endpoint.
For AI, save a Vercel AI Gateway API key under Settings → AI. Orbit validates it when saving and keeps it encrypted on the server. AI_GATEWAY_API_KEY remains an optional environment fallback. Type a question directly into Cmd/Ctrl+K and choose Ask AI above the search results, or press Cmd/Ctrl+Enter, to start a conversation. Select a model once; Orbit remembers it for later questions. AI can reference notes, tasks, events, and locally cached mail. Type @ in the conversation to select specific sources; Orbit loads a selected mail message's full body when available and labels preview-only sources. It sends up to eight relevant excerpts to the selected model. Conversations and source links are encrypted on the server and available under History in the palette. AI does not edit items. Without a key, search remains available.
Related MCP server: Knowledge Base MCP Server
The workflow
Capture -> Today / Tasks / Calendar -> PARA when useful -> Archive
|
SQLite + attachments
|
Web UI and MCPPARA is a filing policy, not a structure you must maintain before you can write. Inbox holds unprocessed notes and links. Confirming an item as a task or event removes it from Inbox; manage it in Tasks or Calendar. Tasks do not require a project or date. When an item gains a clear context, move it into a Project, Area, or Resource. The organize tray and task location picker share folder search, expandable folders, and recent destinations. Clicking a folder only browses; use the explicit move button after checking the path, or drop an item on its destination. Holding a dragged item over a folder expands it; list edges scroll automatically. Undo item creation, deletion, archiving, moves, completion, type conversion, date changes, and color changes from their notifications or with Cmd+Z / Ctrl+Z outside text editors. The current session retains up to 200 item actions; undo restores only values changed by that action. Text editing uses the editor’s own undo history.
Quick start
Requirements: Node.js 22 or later and pnpm 10 or later.
git clone https://github.com/kmelon55/orbit.git
cd orbit
pnpm install
cp .env.example .env
pnpm devBy default, Orbit stores private data in ./vault, which is excluded from Git and Docker build context. For real use, point Orbit to a directory outside the source repository:
ORBIT_VAULT_DIR=/absolute/path/to/orbit-vault
ORBIT_AUTH_USERNAME=orbit
ORBIT_AUTH_PASSWORD=replace-with-a-long-random-passwordORBIT_DATA_DIR remains available for backward compatibility. Authentication may be omitted during local development. Initial production setup requires both authentication variables. ORBIT_AUTH_SESSION_DAYS can change the default 180-day session lifetime to a value from 1 to 365.
Sign in with the initial server-configured password, then open Settings → Account to change your login name and/or password. Confirm with your current password. Leave the new password blank to keep it, or enter at least 12 characters to change it. This device stays signed in; sessions on other devices are invalidated. Account changes require an authenticated session.
The new credential is stored as a scrypt hash with a separate session key in <ORBIT_VAULT_DIR>/.orbit/auth.json (0600 permissions). It survives redeployment on the persistent volume and takes precedence over both bootstrap variables, ORBIT_AUTH_USERNAME and ORBIT_AUTH_PASSWORD. Once saved, the account also works without those variables. Include this file in private volume backups; note exports do not include it. Corrupt credentials fail closed instead of restoring the initial password.
For administrator recovery, stop the service, move auth.json to a secure backup location, set ORBIT_AUTH_USERNAME and a new ORBIT_AUTH_PASSWORD, and restart. Sign in and change it again through account settings. Routine password changes require no restart.
Your data
<ORBIT_VAULT_DIR>/.orbit/orbit.sqlite is the authoritative store. Note bodies remain Markdown; attachments remain separate files. Existing vaults migrate automatically on first open, with source verification and no changes to the original files. Those original .md files stop receiving edits after conversion.
pnpm storage status
pnpm storage export /absolute/new-export
pnpm storage import /absolute/source-export
pnpm storage backup /absolute/new-backupSet the same ORBIT_VAULT_DIR for every command. Folder colors/order, whiteboards and unknown frontmatter are preserved. See data operations for migration, Docker and restore instructions, and architecture for the storage contract.
MCP
Orbit includes a local stdio MCP server. It is a real adapter over the same vault as the web application; it is not a hosted endpoint and does not use the web login session.
ORBIT_VAULT_DIR=/absolute/path/to/orbit-vault pnpm mcpExample client configuration:
{
"mcpServers": {
"orbit": {
"command": "pnpm",
"args": ["--dir", "/absolute/path/to/orbit", "mcp"],
"env": {
"ORBIT_VAULT_DIR": "/absolute/path/to/orbit-vault"
}
}
}
}Available tools:
orbit_captureorbit_todayorbit_inboxorbit_listorbit_readorbit_fileorbit_create_folderorbit_calendarorbit_search
The MCP process has direct read/write access to the configured vault. Run it only from a client and machine you trust.
Docker
For easy installation use the included compose.yaml and operations guide. Existing deployments should retain their /vault mount.
docker build -t orbit .
docker run --rm -p 3000:3000 \
-e ORBIT_VAULT_DIR=/vault \
-e ORBIT_AUTH_USERNAME=orbit \
-e ORBIT_AUTH_PASSWORD='replace-with-a-long-random-password' \
-v orbit-vault:/vault \
orbitThe application directory is disposable; /vault is the persistent data boundary. Put TLS in front of the container for any network deployment.
Roadmap
The next milestone is not more workspace machinery. It is a small, reviewable AI layer on top of the working personal system:
Add bring-your-own-key AI provider settings.
Search, summarize, and ask questions across notes, tasks, and events.
Suggest titles, tags, dates, and PARA destinations.
Show every proposed file change before it is applied.
Improve the backup and restore experience.
Add calendar import/export and sync only after the local calendar contract is stable.
See the detailed roadmap.
Orbit is deliberately not trying to become a team wiki, a database builder, a plugin marketplace, or an autonomous agent that continuously reorganizes your files.
Development
pnpm test # Biome, TypeScript, and unit tests
pnpm build # production build
pnpm mcp # local stdio MCP serverSee CONTRIBUTING.md before opening a change.
Principles
Data stays on your server and remains portable through Markdown import/export.
Notes, tasks, and time belong in one small personal loop.
Capture should require less effort than organizing.
AI is optional and proposes changes for review.
Self-hosting should remain understandable: one app, one data directory, no separate database service.
License
Orbit Mail supports Gmail (OAuth/API), iCloud and Naver (IMAP/SMTP), with unified inboxes, search, replies, forwarding, attachments and Web Push. Mail uses a separate SQLite store; notes, tasks and events use the core SQLite store. Provider credentials and HTTPS/push setup are required before live use. See the mail setup and operations guide. Requires Node.js 22.16 or later.
This server cannot be deployed
Maintenance
Related MCP Connectors
Markdown notes and whiteboards your AI agent can read and write.
- JetpostOAuthcom.jetpost
Notes your team and their agents build on together: write, share, comment and edit.
1 Markdown notes in folders, with files, that your AI assistant can read, write and organise.
Markdown notes in folders, with files, that your AI assistant can read, write and organise.
Related MCP Servers
- AlicenseBqualityFmaintenanceProvides an agent-first note-taking system designed from the ground up for AI collaboration. Organizes your notes as a local vault of ordinary markdown files with semantic note types.2821 npm10MIT
- FlicenseAqualityDmaintenanceEnables AI assistants to manage a personal markdown-based knowledge base with natural language interactions. Supports creating, searching, updating, and organizing notes across categories like people, recipes, meetings, and procedures.111-
- AlicenseNot gradedqualityDmaintenanceEnables structured note-taking with markdown support, dynamic tagging system, advanced search capabilities, and markdown export functionality through natural language conversations in Claude Desktop.3GPL 3.0
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to read and write to a personal knowledge vault of markdown notes, projects, and tasks, with tooling for search, capture, daily logs, and project management across different AI tools.MIT