goosedump
goosedump is a coding agent context data browser. It builds on top of the
ideas of lllyasviel/VCC.
Features:
- Structured JSON output on stdout, so you can render it however you like.
- BM25 keyword ranking (with scores) for natural queries.
- Glob matching for filtering messages.
- Format conversion: re-render any context in another provider's native format.
- Import contexts into another provider's store (with
delete, a "move"). - Persistent hybrid memory harvested when a context range is compacted.
Memory
Successful compact commands harvest the compacted range into
~/.local/state/goosedump/goosedump.db. recall searches that memory with
hybrid BM25 and vector ranking, stats reports its signals, and forget
removes a content hash or a provider-qualified context. Explicit delete
never harvests.
mutate runs one opt-in Stage-3 merge from the MAP-Elites archive with local
Qwen3-0.6B Q4_K_M inference. It requires a reported Stage-2 plateau; use
mutate --force only to test the mutation path before enough evidence exists.
Use compact --no-learn for one compaction or set GOOSEDUMP_NO_LEARN=1 to
disable harvesting. The initial implementation stores all searchable context
text without secret filtering; use the opt-out when a range contains material
that must not be retained.
Pi extension
The bundled pi-goosedump extension provides GooseDump's session-history and compaction tools in Pi:
Usage
The user guide is available at man/man1/goosedump.1
Build
cargo build
cargo test
Local builds require CMake, Clang/libclang, and a C++ compiler because model
inference uses llama-cpp-2. The published Linux x64 artifact is built in a
digest-pinned musl-cross container with CPU-only llama.cpp and statically linked
musl, libstdc++, and libgcc; the release workflow rejects dynamic ELF
dependencies.
Licensing
goosedump is licensed under LGPL-2.1-or-later. The JavaScript npm wrapper
is licensed under Apache-2.0.
Third-Party Software
Prebuilt binaries include third-party open-source components. Their copyright
and license information is collected in THIRD_PARTY_NOTICES.txt.