Skip to main content

tinderbox-archive

A personal claude.ai conversation archive with hybrid search, Haiku-powered enrichment, and an MCP server for Claude Desktop / Claude Code.

Built to answer: "What did I talk to Claude about six months ago?"

What it does

  • Ingests your claude.ai conversation export (ZIP) into a Supabase database — messages, artifacts, attachments
  • Embeds every message with mxbai-embed-large via Ollama (1024d, stored in pgvector)
  • Searches using hybrid retrieval — cosine similarity + full-text, merged with RRF scoring
  • Enriches each conversation with Claude Haiku: summary, topics, project tags, key decisions, named AI personas
  • Serves everything over MCP so Claude Desktop or Claude Code can search your archive mid-conversation

Requirements

  • Python 3.12+
  • Supabase project with pgvector enabled
  • Ollama running locally with mxbai-embed-large pulled
  • Anthropic API key (for enrichment only — search works without it)

Installation

pip install tinderbox-archive

Or from source:

git clone https://github.com/luckyrmp/tinderbox-archive
cd tinderbox-archive/parser
pip install -e .

Setup

1. Supabase schema

Apply the migrations in migrations/ to your Supabase project. The schema is named tinderbox and must be exposed via PostgREST.

2. Environment

Create a .env file (default location: ~/.secrets/tinderbox.env):

SUPABASE_URL=https://your-project.supabase.co
SUPABASE_SERVICE_KEY=your-service-role-key
ANTHROPIC_API_KEY=your-anthropic-key   # enrichment only

Or set the variables directly in your shell. Point to a custom env file:

export TINDERBOX_ENV_FILE=/path/to/your.env

3. Pull your Ollama model

ollama pull mxbai-embed-large

Usage

Ingest a conversation export

Download your export from claude.ai (Settings → Export Data), then:

tinderbox ingest /path/to/conversations.zip

Embed messages

tinderbox embed

Search

tinderbox search "what did we decide about the database schema"

Enrich conversations

tinderbox enrich

This calls Claude Haiku once per conversation and writes structured annotations (summary, topics, project tags, key decisions, named AI personas) to Supabase.

MCP server (Claude Desktop / Claude Code)

Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "tinderbox": {
      "command": "/path/to/tinderbox-archive/parser/scripts/tinderbox_mcp.sh"
    }
  }
}

Or if installed via pip, point directly at the module:

{
  "mcpServers": {
    "tinderbox": {
      "command": "python3",
      "args": ["-m", "tinderbox.mcp.server"],
      "env": {
        "TINDERBOX_ENV_FILE": "/path/to/your.env"
      }
    }
  }
}

Two tools are exposed:

  • tinderbox_search — hybrid search returning top results with enrichment summaries
  • tinderbox_get_conversation — fetch a full conversation thread by export ID

CLI reference

tinderbox ingest <zip>          Ingest a claude.ai export ZIP
tinderbox embed                 Generate embeddings for new messages
tinderbox search <query>        Hybrid search (semantic + full-text)
tinderbox enrich                Enrich conversations with Haiku annotations
tinderbox enrich --retry-failures   Re-attempt previously failed enrichments
tinderbox runs list             Show recent ingest runs
tinderbox named-clean           Remove false-positive named instances
tinderbox staleness             Check how stale the archive is
tinderbox qa run                Run retrieval quality eval

Architecture

claude.ai export ZIP
        ↓
  tinderbox ingest       → Supabase: conversations, messages, artifacts
        ↓
  tinderbox embed        → Supabase: embeddings (pgvector, mxbai-embed-large 1024d)
        ↓
  tinderbox enrich       → Supabase: enrichment (Haiku annotations)
        ↓
  tinderbox search       → hybrid retrieval (cosine + FTS + RRF)
        ↓
  MCP server             → Claude Desktop / Claude Code tools

Supabase is accessed via the REST API (supabase-py). No direct Postgres connection required.

Design notes

  • Memorial design: conversations are never deleted. Deleted-upstream conversations are tombstoned (deleted_upstream=true) and remain searchable.
  • Mass-tombstone canary: ingest halts if more than 10% of active conversations would be tombstoned in a single run.
  • Enrichment is opinion: Haiku annotations are surfaced as navigation aids, not ground truth. The original messages are always the source of truth.
  • Cache layer: a SQLite read cache (740× speedup on repeated searches) wraps Supabase queries. Invalidated automatically on new ingest or enrichment.

License

Apache 2.0 — see LICENSE.

Metadata

Release files for claude-tinderbox 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for claude-tinderbox 0.1.0
File Interpreter ABI Platform Actions
claude_tinderbox-0.1.0-py3-none-any.whl Python 3 none any Details for claude_tinderbox-0.1.0-py3-none-any.whl

Release files / claude_tinderbox-0.1.0-py3-none-any.whl

Download URL claude_tinderbox-0.1.0-py3-none-any.whl
Size 70.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6348ddf50ad3cad96080c03a6a3e9780cceda1cfe6e86a4122ca41120534eb23
BLAKE2b-256 checksum
How to use checksums
8f8caad9673964bcbb4c76e1af8afc1f98cf4fa993deba6f3f04061d29db9623
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.4

Security for claude-tinderbox 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

1 release file No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page