# 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`](https://github.com/lllyasviel/VCC).
## Install
Prebuilt binaries are available for Linux x64, macOS arm64, and Windows x64:
```sh
npm install --global @jarkkojs/goosedump
```
To build from source:
```sh
cargo build --release
```
Source builds require CMake, Clang/libclang, and a C++ compiler for local model
inference.
## Quick start
```sh
goosedump list
goosedump show pi:context-id
goosedump grep pi:context-id '*database*'
goosedump search pi:context-id 'migration failure'
goosedump compact pi:context-id
```
Use `goosedump --help` or the
[manual page](https://github.com/jarkkojs/goosedump/blob/main/man/man1/goosedump.1)
for all commands and options.
## Features
- Lists and filters contexts across all supported providers.
- Renders provider-native output and converts conversations between provider
formats.
- Searches session history with BM25 ranking and glob matching.
- Imports contexts into another provider's store; pair with `delete` to move
them.
- Recalls durable memory harvested from compacted context ranges.
## Persistent memory
Successful `compact` commands harvest the selected range into the platform
state directory (`~/.local/state/goosedump/goosedump.db` on Linux). Use
`recall` to search it, `stats` to inspect it, and `forget` to remove stored
content or a context's sightings.
Memory keeps historical provenance. Deleting or moving a source context does
not remove previously harvested content. Use `compact --no-learn` or set
`GOOSEDUMP_NO_LEARN=1` when a range must not be retained. Stored text is not
secret-filtered.
`mutate` performs an optional local merge of two archived memories. It normally
waits for sufficient usage evidence; `mutate --force` is intended for testing.
Embedding and compaction models are downloaded on first use, or ahead of time
with `goosedump pull`. The mutation model is downloaded when first needed.
## Pi extension
The bundled [pi-goosedump extension](packages/pi-goosedump/README.md) adds
session-history tools, durable-memory recall, and goosedump compaction to Pi:
```sh
pi install npm:pi-goosedump
```
## Development
```sh
cargo test --all-targets
cargo clippy --all-targets -- -D warnings
cargo fmt --check
```
The published Linux x64 binary is a static glibc PIE.
## License
The Rust program is licensed under `LGPL-2.1-or-later`. The npm distribution
also contains Apache-2.0-licensed components. See
[`THIRD_PARTY_NOTICES.txt`](THIRD_PARTY_NOTICES.txt) for bundled third-party
software notices.