pando

pando

Enables Claude to search, read, write, and manage a local markdown vault through 8 tools, turning your notes into an AI-accessible knowledge base.

Category
Visit Server

README

PANDO — fewer ways to lose a thought

Notes apps die the same way every time: capture gets slower than forgetting. Pando is the version with fewer moving parts and fewer ways to lose the plot — plain markdown files, links that make themselves, a garden view where your vault grows as a fern, and an MCP socket so Claude can actually use what you know. Zero dependencies. Nothing leaves your machine unless you explicitly turn on Claude enrichment. Built by one operator (HoldFern) who kept losing good ideas to bad capture.

Free software under AGPL-3.0 — see LICENSE. © 2026 Matt Barber.

Quick start (Windows)

  1. EXTRACT the zip first. Do not run anything from inside the archive — Windows will happily show you the files but nothing can run in there. Right-click the zip, Extract All, e.g. to Documents\Pando.
  2. Install Node.js LTS (once). In an admin terminal: winget install OpenJS.NodeJS.LTS — or get the LTS installer from https://nodejs.org. Pando is zero-dependency, but it is a Node app; Node is the only thing it needs. Close and reopen your terminal afterward.
  3. Double-click start.bat in the extracted folder. It checks for both of the above and tells you exactly what is missing if something is off.
  4. Open the URL it prints — it contains your one-time session key and sets a secure cookie. After that, plain http://127.0.0.1:7423 just works; bookmark it.

No npm install, no build step, no accounts. To use Pando from another browser or after clearing cookies, use the printed URL again (the key lives in .brain/session.token; delete that file to rotate it).

The 60-second tour

Do this Get this
Ctrl+K, type a thought, Enter Timestamped capture in Inbox/ — zero friction
Write [[Some Idea]] in any note A link — even before "Some Idea" exists (ghost links are tracked)
Open any note Right rail: backlinks + Related picks, each with a why
Consolidate button Vault health: orphans, most-wanted missing notes, duplicates, links that want to exist, themes
Memory button Old-but-relevant notes resurfaced, "on this day", current focus
Context button A ranked, provenance-tagged markdown briefing on any topic — copy into any AI
Garden button Your whole vault as a fern — fronds are sections, leaves are notes; click in and each section grows as its own plant (monstera projects, bamboo dailies, succulent resources) with a leaf-rustle as you move. Snd toggle in the top bar.
Today button Auto-created daily note
history in the note header Every previous version of the note, restorable

Archive replaces delete: nothing in Pando is ever destroyed.

Your data, concretely

  • vault/ — your notes. Plain markdown. This folder is your brain; everything else is derived. It opens fine in Obsidian, VS Code, anything.
  • .brain/history/ — automatic snapshots of every overwritten version.
  • .brain/activity.jsonl — your open/edit/capture timeline (powers resurfacing).
  • .brain/config.json — settings, including the optional Claude API key.
  • .brain/session.token — your local session key (delete to rotate).

Backup = copy the folder. Sync = put it in OneDrive/Syncthing/git — it's just files.

Claude integration (optional, two ways)

1. Enrichment in the UI — add an Anthropic API key in Settings (stored only in .brain/config.json, sent only to api.anthropic.com). Unlocks per-note ai·summary, ai·tags, ai·links and "Ask Claude to prioritize" in Consolidate. Written and code-reviewed but not live-tested in this build (needs your key).

2. MCP — make Claude a client of your brain. Add to claude_desktop_config.json (Claude Desktop → Settings → Developer):

{
  "mcpServers": {
    "pando": {
      "command": "node",
      "args": ["C:\\Users\\YOU\\Documents\\pando\\mcp-server.js"]
    }
  }
}

Claude gets 8 tools: search_notes, read_note, write_note, capture_thought, build_context, related_notes, consolidation_report, list_recent. Prefer Claude not write to your vault? Set env PANDO_MCP_READONLY=1.

Security posture (v0.2 hardening)

  • Binds 127.0.0.1 only — hardcoded, not configurable. Remote access is a future feature with real auth, not a flag.
  • Session auth: random persistent token → HttpOnly SameSite=Strict cookie; Authorization: Bearer <token> for scripts; timing-safe compares.
  • Host-header allowlist — blocks DNS-rebinding attacks from web pages.
  • JSON-only writes — blocks cross-site form/text CSRF.
  • CSP with per-boot nonce on the UI, X-Frame-Options: DENY, nosniff.
  • Path traversal blocked at one choke point; 2 MB note / 2.5 MB request caps.
  • Zero dependencies = the supply chain is Node itself. No telemetry, ever.

Details and reporting: SECURITY.md. Run the 20-check battery yourself: node scripts/smoke.js.

Documentation

Full guides live in docs/ — install, user manual, architecture, data & security, Claude/MCP integration, public-launch security, maintenance, and the roadmap. Start at docs/00-START-HERE.md.

FAQ

  • Change the port? set PANDO_PORT=8000 before starting.
  • Move the vault elsewhere? Set PANDO_ROOT=C:\path\to\folder.
  • Edit notes in other apps? Yes — Pando detects external changes and reindexes.
  • Phone? Roadmap (BLUEPRINT.md). The vault syncs anywhere as plain files today.
  • Extend it? Drop a JS file in plugins/ (see plugins/README.md) or script the JSON API — the UI has no special powers. Contributions: CONTRIBUTING.md.

See BLUEPRINT.md for architecture and the upgrade roadmap.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured