Prototyp · Vorschau: alle Server aus der offiziellen Registry, alle 30 Minuten synchronisiert. Bewertungen und Benutzerkonten folgen in einem späteren Schritt.
PopNx MCPMCP-Server für alle, die KI nutzen · in einfachen Worten erklärt

Palinode

von phasespace-labsVersion 0.23.0i★ –iLäuft auf deinem Computer
Name in der Registryio.github.phasespace-labs/palinode

Installieren

Überblick

Beschreibung vom Entwickler (englisches Original)

Inspectable, correctable project memory in git-versioned Markdown for AI agents.

Die drei Säulen von PopNx MCP

Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.

Was du damit machen kannst

Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.

  • Verbindung: Läuft auf deinem Computer
  • Transport: stdio, Streamable HTTP
  • Kategorie: Suche & KI-Gedächtnis
  • Das musst du eintragen: PALINODE_DIR, PALINODE_API_TOKEN, PALINODE_API_TOKEN_FILE

Installation

Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.

Bevor du installierst

  • Basischecks: 1 von 1 bestanden
  • Läuft auf deinem Computer mit den Rechten deines Benutzerkontos (Dateien, Netzwerk, Apps).
  • Das trägst du selbst ein: PALINODE_DIR, PALINODE_API_HOST, PALINODE_API_PORT, PALINODE_API_TOKEN, PALINODE_API_TOKEN_FILE

Als geheim markierte Werte sind Schlüssel zu deinem Konto. Gib sie nie weiter und füge sie nie in einen Chat ein.

Du brauchst

  • PyPIuv für Python installiert (für den Befehl uvx)

Welche App nutzt du?

Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.

Öffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein

{
  "mcpServers": {
    "palinode": {
      "command": "uvx",
      "args": [
        "palinode",
        "--from",
        "palinode",
        "palinode-mcp"
      ],
      "env": {
        "PALINODE_DIR": "your-value",
        "PALINODE_API_HOST": "your-value",
        "PALINODE_API_PORT": "your-value",
        "PALINODE_API_TOKEN": "your-value",
        "PALINODE_API_TOKEN_FILE": "your-value"
      }
    }
  }
}

Führe das in deinem Terminal aus

claude mcp add palinode --env PALINODE_DIR=your-value --env PALINODE_API_HOST=your-value --env PALINODE_API_PORT=your-value --env PALINODE_API_TOKEN=your-value --env PALINODE_API_TOKEN_FILE=your-value -- uvx palinode --from palinode palinode-mcp

Trag die leeren Werte ein, bevor du ihn startest.

In Cursor öffnen

Oder kopier die Einstellungen selbst

In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen

{
  "mcpServers": {
    "palinode": {
      "command": "uvx",
      "args": [
        "palinode",
        "--from",
        "palinode",
        "palinode-mcp"
      ],
      "env": {
        "PALINODE_DIR": "your-value",
        "PALINODE_API_HOST": "your-value",
        "PALINODE_API_PORT": "your-value",
        "PALINODE_API_TOKEN": "your-value",
        "PALINODE_API_TOKEN_FILE": "your-value"
      }
    }
  }
}

Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.

In VS Code öffnen

Oder kopier die Einstellungen selbst

In .vscode/mcp.json in deinem Projekt einfügen

{
  "servers": {
    "palinode": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "palinode",
        "--from",
        "palinode",
        "palinode-mcp"
      ],
      "env": {
        "PALINODE_DIR": "your-value",
        "PALINODE_API_HOST": "your-value",
        "PALINODE_API_PORT": "your-value",
        "PALINODE_API_TOKEN": "your-value",
        "PALINODE_API_TOKEN_FILE": "your-value"
      }
    }
  }
}

Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.

Dieser Server läuft auf deinem Computer, und ChatGPT kann sich nur mit Servern im Internet verbinden. Wähle eine andere App.

Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.

Werte, die du selbst einträgst

  • PALINODE_DIR erforderlich env
    Path to the markdown-memory directory (e.g. ~/.palinode). Created if missing.
  • PALINODE_API_HOST env
    Host where the back-end palinode-api process is reachable
  • PALINODE_API_PORT env
    Port for palinode-api
  • PALINODE_API_TOKEN geheim env
    Optional bearer token enforced on every palinode-api request other than /health. Required when PALINODE_API_BIND_INTENT=public. Generate with: python -c 'import secrets; print(secrets.token_urlsafe(3…
  • PALINODE_API_TOKEN_FILE geheim env
    Path to a file containing the bearer token (alternative to PALINODE_API_TOKEN; for docker-secrets style deployments)

Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.

Was er kann

Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.

Basischecksi

Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 6. Nov. 2026

  • ✓ Bestanden

    Entwickler passt zum Repo

    Der Registry-Name wurde mit dem GitHub-Konto phasespace-labs bestätigt, dem das Repo gehört

  • … Noch nicht geprüft

    Wird noch gepflegt

    Dieses Repo haben wir noch nicht von GitHub gelesen

  • … Noch nicht geprüft

    Hat eine Lizenz

    Dieses Repo haben wir noch nicht von GitHub gelesen

  • – Nicht zutreffend

    Endpunkt antwortet

    Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet

  • – Nicht zutreffend

    Anmeldung mit OAuth

    Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen

  • … Noch nicht geprüft

    Keine versteckten Anweisungen in Tool-Beschreibungen

    Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen

Im Vergleich mit anderen in Suche & KI-Gedächtnisi

  • Mehr Sterne als 0 % der anderen 7243 Server in dieser Kategorie
  • Neuer in der Registry veröffentlicht als 61 % der anderen 7243 Server in dieser Kategorie
  • Basischecks gleich gut wie oder besser als bei 100 % der anderen 7243 Server in dieser Kategorie

Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.

Häufige Fragen

Ist Palinode sicher?

Er hat 1 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.

Welche Schlüssel oder Codes braucht er?

Das musst du eintragen: PALINODE_DIR, PALINODE_API_TOKEN, PALINODE_API_TOKEN_FILE

Läuft er auf meinem Computer oder in der Cloud?

Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).

Wird er noch gepflegt?

Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (0.23.0) kam vor 23 Tagen in die Registry.

Welche Apps können ihn nutzen?

Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Python (uv) auf deinem Computer.

Was kann ich stattdessen nutzen?

In derselben Kategorie: Context7, Codebase Memory, Exa

Alternativen

Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.

So liest du eine Karte:★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti

Context7

von upstash

Up-to-date docs for AI agents

Computer oder Cloud★ 64.224MITAktualisiert vor 3 Tagen
Installieren

Codebase Memory

von DeusData

Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.

Läuft auf deinem Computer★ 48.148MITAktualisiert vor 20 Tagen
Installieren

Exa

von exa-labs

Connect AI agents to Exa for web search, content fetching, and multi-step research.

Läuft in der Cloud★ 5.213MITAktualisiert vor 44 Tagen
Installieren

README vom Entwickler

README öffnen

Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.

┌─ palinode ─┐

│ ░░░░░░░░░░ │ │ ▓▓▓▓▓▓▓▓▓▓ │ │ ██████████ │ └────────────┘

Inspectable, correctable project memory for repeated work across sessions, agents, and worktrees.

Last week, your team chose SQLite for a cache because it avoided operating a database. This week, a changed requirement makes PostgreSQL the better choice. Without the decision and its reason, a fresh agent can repeat the old approach. With Palinode, you can save the replacement, inspect the original and its history, and correct the record for the next session.

Palinode keeps project memory in Markdown files and Git history under your local control. An agent can use its tools to save, search, and inspect that memory. Some supported client integrations can also perform configured capture or recall; their automatic behavior, scope, and controls vary by client and configuration. Nothing is silently promoted from an unmarked note to a fact.

*A palinode is a poem that retracts what was said before and says it better. That's what memory compaction does.*

Built by Paul Kyle at phasespace-labs. See AUTHORS.


Start here

Follow the canonical Quickstart for one complete journey: install → start → connect an MCP client → save a decision → open a fresh session → inspect its markdown/provenance → correct it. It keeps the private memory store separate from the code checkout and distinguishes the current release from source-checkout capabilities.

Inspect the retired decision

The screenshot shows the archived initial SQLite decision after the separate PostgreSQL replacement was saved and the original was retired. See the local provenance UI guide for the full read-only inspector and the correction lifecycle; the guide explains that the image is taken after retirement, not before the save steps.


Supported Platforms

PlatformSession Skill PathMCP Config
Claude Code CLI~/.claude/skills/~/.claude.json
Claude Desktop~/.claude/skills/claude_desktop_config.json
Cursor.cursor/skills/.cursor/mcp.json
VS Code + Claude (Continue / Cline)~/.claude/skills/see MCP-INSTALL-RECIPES.md
JetBrains + Claude~/.claude/skills/~/.claude.json
Antigravity IDE.agent/skills/native 3-dot MCP menu
Codex CLIN/A (no skills)~/.codex/config.toml
PiN/A (native extension)plugins/pi/ — per-turn recall via lifecycle hooks
Cline CLI / SDKN/A (native plugin)plugins/cline/ — per-turn recall via AgentPlugin hooks

All platforms share the same MCP server — install once on your server, connect from any IDE. [docs/HARNESSES.md](docs/HARNESSES.md) is the cross-harness map: what each harness gets (native hooks vs. plugin vs. MCP), how the tiers stack, and where to start. Per-client config snippets: docs/MCP-SETUP.md and docs/MCP-INSTALL-RECIPES.md.


The Idea

Palinode treats plain files as the source of truth and builds its index and interfaces from those files.

Files (markdown + YAML frontmatter)

↓ watched Index (SQLite-vec vectors + FTS5 keywords, single .db file) ↓ queried by Interfaces (MCP server, REST API, CLI, OpenClaw plugin) ↓ compacted by Consolidation (structured operations → validation and application → git commits)

That's the whole architecture. One directory of .md files, one SQLite database, one API server. No Postgres, no Redis, no cloud dependency.


One Backend, Every Interface

Palinode doesn't care how you talk to it. The full toolkit — save, search, doctor, dedup-suggest, orphan-repair, diff, blame, rollback, and more — works through every interface:

InterfaceTransportBest For
MCP ServerStreamable HTTP or stdioClaude Code, Claude Desktop, Cursor, Windsurf, Zed, VS Code (Continue/Cline)
REST APIHTTP on :6340Scripts, webhooks, custom integrations
CLIWraps REST APICron jobs, SSH, shell scripts
PluginOpenClaw lifecycle hooksAgent frameworks with inject/extract patterns

Set up once on a server. Connect from any machine, any IDE, any agent framework. The MCP server is a pure HTTP client — it holds no state, no database connection, no embedder. Point it at the API and go.

{

"mcpServers": { "palinode": { "type": "http", "url": "http://your-server:6341/mcp/" } } }

That's the entire client config. Works with Claude Code, Claude Desktop, Cursor, Windsurf, Zed, and VS Code (Continue/Cline). palinode-mcp-http serves streamable-HTTP at /mcp/ — use "type": "http", not "type": "sse". Always include the trailing slash in the URL. See docs/MCP-SETUP.md for editor-specific install recipes.


How It Works

Store — Typed markdown files (people, projects, decisions, insights) with YAML frontmatter. Git-versioned. Human-readable. Editable in Obsidian, VS Code, vim, or anything.

Index — A file watcher indexes with FTS5 as you save. Content-hash dedup skips re-embedding unchanged files. The index is a local SQLite file; embeddings can use a local BGE-M3 endpoint or a configured remote provider.

Search — Hybrid BM25 + vector search merged with Reciprocal Rank Fusion. The two arms have different jobs: on full-sentence questions the vector arm can retrieve semantic matches while BM25 catches exact terms and identifiers. See benchmarks for the evaluation context and limitations. Optional associative entity graph and prospective triggers.

Compact — Weekly consolidation where an LLM returns structured operations and Palinode validates and applies them. Every compaction is a git commit you can review, blame, or revert.

Dream — If you've met "dreaming" as the name for this, palinode dream is an alias for palinode consolidate. Use --dry-run to inspect the proposed operations; each completed pass lands as a git commit, so a bad consolidation is a diff to review and a commit to revert.

Audit — git blame any fact. git diff any change. rollback any mistake. These aren't just git-compatible files — palinode_diff, palinode_blame, and palinode_rollback are first-class tools your agent can call.


Requirements

  • Python 3.11+
  • Git
  • Ollama with bge-m3 (ollama pull bge-m3, ≈1.2 GB), or another supported embedding endpoint — for hybrid indexing and search. Since v0.21 you can instead choose explicit lexical mode; it is keyword/FTS retrieval, not a fallback when hybrid's endpoint fails. Saves persist without an embedder, but hybrid search returns HTTP 503 until it is reachable (palinode resolve degrades to keyword-only and says so). See the Homebrew setup guide for installation and verification.

Optional extras: a chat model for weekly consolidation (any 7B+ that outputs JSON), OpenClaw for agent plugin hooks.


Install

Before your first capture: Palinode stores readable Markdown and Git history. private/restricted control discovery by scope; a caller with API access can still read a hidden memory by its known path and use full-store maintenance tools. These labels provide no encryption or per-user/per-agent authentication. Protect the store, backups and API credentials; use separate instances or filesystem permissions for stronger separation. See the privacy contract.

The Quickstart is the authoritative first-use sequence. It covers the separate private store, second-terminal environment, supported lexical preview and hybrid model paths, editor connection, fresh-session check, inspector, and correction workflow. Do not combine a code checkout and a memory store. For a released Homebrew installation, begin with docs/HOMEBREW.md; for an autonomous agent bootstrap, see llms-install.md.


Running as a service

Three long-running processes (API, watcher, embedder) shouldn't live in terminal tabs. Pick one:

PlatformHowDetails
Anywhere with Dockerdocker compose up -d from the repo root — API + watcher + Ollama, with the bge-m3 pull handled for you (≈1.2 GB on first run)docker-compose.yml header comments
Linuxsystemd units via deploy/systemd/install.sh --enabledeploy/systemd/README.md
macOSlaunchd LaunchAgents from templatesdeploy/launchd/README.md
Windowsuse Docker Compose (set PALINODE_DATA_DIR to a Windows path)docker-compose.yml header comments

With compose, your memory stays on the host at ~/.palinode (override with PALINODE_DATA_DIR) — the containers mount it; files remain the source of truth. Already running Ollama on the host? OLLAMA_URL=http://host.docker.internal:11434 docker compose up -d palinode-api palinode-watcher skips the bundled one. Verify any of the three the same way: palinode doctor (or curl http://127.0.0.1:6340/status).


Connect your editor

Palinode speaks MCP. Follow the connection step in the Quickstart: palinode mcp-config generates a native fragment for the selected client, and the recipes keep the supported manual configuration. It is read-only; it never edits a client configuration file.

Connecting to a server on another machine over HTTP? Pass your project: palinode mcp-config --http --project adds an X-Palinode-Project header. Since v0.22 a remote server no longer scopes recall to its own working directory, so a client without the header gets unscoped results, reported as Scope: none. See the v0.22.0 compatibility notes. Full per-harness detail: docs/MCP-INSTALL-RECIPES.md.

Merge the Palinode entry into existing settings; redirecting generated output onto an existing configuration file would overwrite it.


Daily use — drop into a project

Already installed with palinode-api running? Scaffold any project in one command:

cd your-project

palinode init

That scaffolds .claude/CLAUDE.md (memory instructions, appended if one exists), .claude/settings.json (SessionStart + SessionEnd + UserPromptSubmit hook registration), all three hook scripts, and .mcp.json (points Claude Code at the palinode MCP server). Sessions then start smart, recall as they go, and end captured: the SessionStart hook injects your core: true memories into every fresh session (startup and /clear) so standing context is there before the first prompt; the UserPromptSubmit hook recalls relevant memory before each prompt — prospective triggers plus a strict-threshold search, injected as compact snippets, silent when nothing matches; and the SessionEnd hook auto-captures on /clear, logout, and exit. Re-run with --dry-run to preview, --force to overwrite, or --no-mcp / --no-hook to scope it. See examples/hooks/ for tuning knobs.

Projects that use other harnesses get the same memory instructions automatically: when AGENTS.md (or a .agent/ directory) exists, init appends a harness-neutral memory block to AGENTS.md (read by Codex, Antigravity, and other AGENTS.md-aware agents), and when a .cursor/ directory exists it writes `.curs

Nur der Anfang wird gezeigt; den Rest findest du im Repo

PopNx fragen