goosedump 0.12.11

Coding agent context data browser
goosedump-0.12.11 is not a library.

goosedump

goosedump browses, searches, converts, and compacts saved coding-agent conversations. It supports Claude Code, Codex, Crush, Gemini CLI, Goose, OpenCode, and Pi.

It builds on ideas from lllyasviel/VCC.

Install

Prebuilt binaries are available for Linux x64 and arm64, macOS arm64, and Windows x64:

npm install --global @jarkkojs/goosedump

To build from source:

cargo build --release

Source builds require a C compiler for the bundled SQLite library.

Quick start

goosedump session list --query '.provider == "pi"'
goosedump session show pi:context-id
goosedump session find pi:context-id '*database*'
goosedump session search pi:context-id 'database failure'
goosedump session compact pi:context-id

Every command that operates on a saved session takes an explicit provider:session-id target. Use goosedump --help or the manual page for complete usage.

Commands

The command tree mirrors the things it manages:

session list [--query QUERY] [--json]
session show PROVIDER:ID [--entry ID] [--all] [--from ID] [--before ID] [--as PROVIDER]
session find PROVIDER:ID GLOB [range options] [--as PROVIDER]
session search PROVIDER:ID QUERY [range options] [--page NUMBER] [--as PROVIDER]
session compact PROVIDER:ID [range options] [--previous-summary SUMMARY] [--summary-max-tokens NUMBER] [--plain] [--as PROVIDER]
session copy PROVIDER:ID --to PROVIDER [--yes]
session remove PROVIDER:ID [--yes]

memory remember PROVIDER:ID [--all] [--json]
memory recall QUERY [--project PATH | --all-projects] [--type TYPE] [--limit NUMBER] [--max-tokens NUMBER] [--history] [--json]
memory list [--project PATH | --all-projects] [--type TYPE] [--limit NUMBER] [--history] [--json]
memory show MEM_ID [--json]
memory forget MEM_ID|PROVIDER:ID [--yes] [--json]
memory status [--json]

model pull [all|embedding|text]

session copy, session remove, and memory forget print their plan by default. Pass --yes to carry out the change.

Persistent memory

session compact only creates a bounded summary; it never changes durable memory. Use memory remember PROVIDER:ID to retain unseen source events and extract atomic facts, decisions, preferences, procedures, and lessons with exact provenance. Remembering the same unchanged session is idempotent. When a new statement is close to an existing active memory of the same type, the older memory is marked superseded and linked to the successor. Human and JSON reports list each added statement (with mem_ IDs) and any memories it superseded.

memory recall searches the current project by default and fills an estimated token budget with ranked active memories. It first preserves exact lexical and entity-anchor matches (paths, crates, symbols, commands, concepts), expands through shared anchors, then fills remaining slots with BGE semantic matches. Existing databases are embedded in bounded batches; memory status reports indexed and pending counts. Pass --history to include superseded statements. Use memory list to browse, memory show to inspect provenance revision hashes, entities, and supersession links, and memory forget to preview deletion. Forgetting a memory ID removes the derived statement; forgetting provider:session-id removes that session's retained source events. Applied forgetting leaves content-free tombstones so deleted memory is not learned again accidentally.

Summary output is bounded to an estimated 4096 tokens by default. Set --summary-max-tokens NUMBER to choose another budget, or use 0 for no limit. The bound is best-effort when preserved goals, blockers, decisions, and preferences alone exceed it.

Session-index caches are versioned clean-break formats and are rebuilt when incompatible. Durable memory migrations preserve existing sources, statements, and evidence links; an unsupported schema version is rejected and must be reinitialized explicitly.

Inference performance

The custom GPT-OSS-20B CPU engine uses every logical CPU available to the process by default. Override the compute thread count:

GOOSEDUMP_INFERENCE_THREADS=6 \
goosedump session compact pi:context-id

Compaction directive selection and durable-memory extraction use goosedump's custom GPT-OSS-20B CPU engine. Semantic recall uses the pinned 36.7 MB BGE-small-en-v1.5 Q8_0 encoder. Download both ahead of time with goosedump model pull, or select one with goosedump model pull text or goosedump model pull embedding. Recall falls back to lexical and entity matching when the embedding model is not cached.

The bench feature builds a standalone harness that shells out to goosedump session compact with GOOSEDUMP_PROFILE_COMPACT=1 and reports end-to-end and per-stage timings:

# Edit benches/bench.txt to point at a real context, then:
cargo bench --features bench

Each case emits JSON with per-run timing (including model loading), median and p95 latency, and per-stage medians and p95s. Keep the machine, context range, and model cache unchanged when comparing configurations.

Pi extension

The bundled pi-goosedump extension adds session-history search, entry expansion, durable-memory recall, CWD-scoped session management, memory forget/status maintenance, and turn-driven goosedump compaction to Pi:

pi install npm:pi-goosedump

Development

cargo test --all-targets
cargo clippy --all-targets -- -D warnings
cargo fmt --check

The published Linux x64 and arm64 binaries are static glibc PIEs.

Licensing

  1. pi-goosedump: Apache 2.0
  2. goosedump: LGPL 2.1+

Third Party Attribution

  1. GPT-OSS-20B: Apache 2.0
    • Downloaded on first use at run-time. The model is not distributed together with goosedump.