Skip to main content
Glama

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 MCP

PARA 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 dev

By 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-password

ORBIT_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-backup

Set 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 mcp

Example 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_capture

  • orbit_today

  • orbit_inbox

  • orbit_list

  • orbit_read

  • orbit_file

  • orbit_create_folder

  • orbit_calendar

  • orbit_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 \
  orbit

The 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:

  1. Add bring-your-own-key AI provider settings.

  2. Search, summarize, and ask questions across notes, tasks, and events.

  3. Suggest titles, tags, dates, and PARA destinations.

  4. Show every proposed file change before it is applied.

  5. Improve the backup and restore experience.

  6. 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 server

See 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

MIT

Mail

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.

Maintenance

ActivityActive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    F
    maintenance
    Provides 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.
    28
    21 npm
    10
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    Enables 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.
    11
    1
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables structured note-taking with markdown support, dynamic tagging system, advanced search capabilities, and markdown export functionality through natural language conversations in Claude Desktop.
    3
    GPL 3.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables 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