# goosedump
`goosedump` is a coding agent context data browser. It builds on top of the
ideas of [`lllyasviel/VCC`](https://github.com/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](packages/pi-goosedump/README.md) provides
GooseDump's session-history and compaction tools in Pi:
```sh
pi install npm:pi-goosedump
```
## Usage
The user guide is available at [`man/man1/goosedump.1`](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`](THIRD_PARTY_NOTICES.txt).