Skip to content

papercomputeco/tapes

Tapes Logo
tapes

Transparent agentic telemetry and instrumentation for content-addressable LLM interactions.
About · Download · Documentation · Contributing

· ·

tapes is an Agentic telemetry system for content-addressable LLM interactions. It provides durable storage of agent sessions, plug-and-play OpenTelemetry instrumentation, and a derived sessions/traces/spans model for querying and exporting past agent work.

About

Capture is append-only: every intercepted LLM interaction is persisted to an immutable raw_turns log. A pure, idempotent deriver projects that log into the read model — sessions → traces → spans (with span links) — and re-running the deriver simply reproduces the same projection (re-derive prunes anything no longer present down to 0). Derived IDs are deterministic, so the same raw input always yields the same sessions, traces, and spans.

Reads happen over that derived surface: list and inspect sessions (/v1/sessions, cursor-paginated, with model/token/cost/turn-count folds), browse traces and spans (/v1/traces, /v1/sessions/{id}/traces), aggregate at span grain (/v1/stats), and run span-grain semantic search (/v1/search/spans). The original capture is always available verbatim via /v1/sessions/{id}/raw_turns.

Content addressing (the merkle node layer) is retained internally for provenance and dedup; it is not a user-facing browsing surface.


📼 Quickstart

Install tapes:

curl -fsSL https://download.tapes.dev/install | bash

tapes stores sessions in PostgreSQL (with the pgvector extension) and uses an embedding provider to power tapes search. The quickest way to get a local Postgres — plus Ollama for embeddings — is the bundled Docker bootstrap (requires Docker):

tapes local up

For local embeddings, pull the default embeddinggemma model:

ollama pull embeddinggemma

Then start Tapes:

tapes serve

Prefer OpenAI embeddings? Store an API key and switch the embedding provider (tapes local up still provides the required Postgres; Ollama just goes unused):

tapes auth openai
tapes config set embedding.provider openai
tapes serve

You can also provide the key with OPENAI_API_KEY instead of tapes auth openai. When OpenAI is selected without a key, Tapes fails at startup with an authentication configuration error from the OpenAI embedder.

Search across captured spans (individual main-conversation LLM spans, with their trace and turn context):

tapes search "What's the weather like in New York?"

Export a captured conversation as a transcript (Markdown by default, or JSONL):

tapes checkout <session-id> --format md -o session.md

Browse sessions and drill into a single session in the deck TUI:

tapes deck

About

Transparent telemetry collector for agents

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors