parsnip

A local-first memory graph for AI assistants and knowledge workers

curl -fsSL https://raw.githubusercontent.com/omar16100/parsnip/main/install.sh | sh
scroll

Features

🏠

Local-First

Completely offline. Your data never leaves your machine. Private by design, portable by nature.

πŸ•ΈοΈ

Graph-Native

Store knowledge as entities, relations, and observations. Not SQL with JSON blobs: true graph semantics.

πŸ”

Cross-Project Search

Search across all your projects without mixing namespaces. Recall everything, organized everywhere.

⚑

Fast by Design

Single binary, zero external dependencies. Design targets: <10ms cold start, <5ms search on 10k entities (not yet benchmarked).

πŸ”€

Fuzzy + Full-text

Fuzzy matching for typos, full-text search for relevance. Find what you meant, not just what you typed.

πŸ€–

MCP Integration

13 tools for AI assistants via Model Context Protocol. Works with Claude Desktop out of the box.

MCP Setup

Add parsnip to your Claude Desktop configuration to give Claude persistent memory across conversations.

Once configured, Claude can create entities, add observations, build relations, and search your knowledge graph.

{
  "mcpServers": {
    "parsnip": {
      "command": "parsnip",
      "args": ["serve"]
    }
  }
}

Available Tools

search_knowledgeSearch entities with fuzzy/fulltext
create_entitiesCreate new entities with observations
add_observationsAdd facts to existing entities
create_relationsLink entities with typed relations
delete_entitiesRemove entities from graph
delete_observationsRemove specific observations
delete_relationsRemove entity connections
read_graphGet full project graph
open_nodesGet specific entities by name
add_tagsTag entities for filtering
remove_tagsRemove tags from entities
traverse_graphBFS/Dijkstra graph traversal
list_projectsProjects with entity/relation counts

Search Modes

Exact

Substring matching for precise queries

Fuzzy

Nucleo-based typo tolerance

Full-text

Tantivy BM25 ranking for relevance scoring

Hybrid

Accepted; currently runs the full-text engine

Performance Targets

Design targets from the specification. They have not been benchmarked yet.

OperationTarget
Cold start<10ms
Entity create<1ms
Exact search (10k)<5ms
Fuzzy search (10k)<20ms
Cross-project (100k)<100ms
Binary size<15MB
Idle memory<20MB

CLI Reference

entity

  • add: create with observations/tags
  • list: filter by type/tag
  • get: view full details
  • delete: remove entity
  • observe: add new facts

relation

  • add: create typed connection
  • list: filter by from/to/type
  • delete: remove relation
  • traverse: BFS exploration
  • find-path: shortest path

search

  • --mode exact: substring match
  • --mode fuzzy: typo-tolerant
  • --mode fulltext: BM25 ranking
  • --mode hybrid: currently full-text
  • --all-projects: cross-project

project

  • list: all namespaces
  • create: new project
  • use: save a default to config
  • delete: remove project
  • stats: entity/relation counts

import/export

  • export -o backup.json
  • export --all-projects
  • import data.json
  • import --merge: incremental
  • import --target-project

serve

  • serve: stdio MCP server
  • serve -t sse: HTTP/SSE
  • --port 3000: custom port
  • --host: bind address (non-localhost needs --allow-remote and a token)

Storage Backends

ReDB

Default

Embedded key-value store with ACID transactions and zero external dependencies.

SQLite

Feature Flag

Familiar relational backend. Compatible with SQL tools. Build with --no-default-features --features sqlite,fulltext.

Memory

Testing

In-memory storage for unit tests and development. No persistence, deterministic behavior.

Data Model

PROJECT (namespace) Entity name: "John_Smith" type: "person" observations: [...] tags: ["engineer"] Entity name: "Acme_Corp" type: "company" observations: [...] tags: ["tech"] works_at

Use Cases

πŸ€–

AI Memory

Persistent memory for Claude, ChatGPT, and other assistants

🧠

Personal Knowledge

Build your second brain with structured facts

πŸ“š

Research Notes

Link papers, concepts, and findings

πŸ“

Project Docs

Connect architecture decisions and code

πŸ‘₯

Contact Network

Track relationships and interactions

FAQ

Parsnip is a single-binary graph database designed for AI assistants and knowledge workers. It stores durable facts as entities and relations, enabling fast retrieval through integrated search and graph traversal.

Data is stored locally using ReDB (default) or SQLite. Everything stays on your machine: no cloud, no sync, no accounts. You can export to JSON for backup or migration.

Yes! Parsnip includes an MCP (Model Context Protocol) server with 13 tools. Add it to Claude Desktop config and Claude gains persistent memory that survives across conversations.

Unlike cloud-based tools, parsnip is fully local and private. Unlike note apps, it uses graph semantics (entities + relations) for structured knowledge. Unlike vector databases, it supports cross-project search without mixing namespaces.

Export to JSON: parsnip export --all-projects -o backup.json. This creates a complete backup of all projects, entities, relations, and observations.

Yes! Build without the default ReDB backend: cargo install parsnip-cli --no-default-features --features sqlite,fulltext,sse,remote. SQLite is compatible with standard SQL tools for inspection.

Use path finding: parsnip relation find-path Alice Carol. Add --weighted for Dijkstra shortest path, or filter with --relation-types.

Exact: substring match. Fuzzy: typo-tolerant (nucleo matcher). Fulltext: BM25 relevance ranking. Hybrid: accepted, currently runs the full-text engine.

Use parsnip relation traverse EntityName with options: --depth 3 for depth, --direction outgoing, or filter with --entity-types person and --relation-types works_at.