goosedump 0.12.45

Browse, search, summarize, compact, and learn from coding-agent sessions
# goosedump

`goosedump` browses, searches, converts, summarizes, and compacts saved
coding-agent sessions, with project-scoped durable memory. It supports Claude
Code, Codex, Crush, Gemini CLI, Goose, OpenCode, and Pi.

Inspired by [`lllyasviel/VCC`](https://github.com/lllyasviel/VCC).

## Install

Prebuilt binaries support Linux x64/arm64, macOS arm64, and Windows x64:

```sh
npm install --global @jarkkojs/goosedump
```

Build from source (Rust 1.95+, C compiler, Node.js 18+):

```sh
cargo build --release
```

## Quick start

Session targets use `provider:session-id`. Bare IDs are not accepted.

```sh
goosedump summary
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
goosedump memory learn pi:context-id
goosedump memory recall 'database failure'
```

Full options: `goosedump --help` and the [manual page](man/man1/goosedump.1).

## Commands

| Group     | Commands                                                      |
| --------- | ------------------------------------------------------------- |
| top-level | `summary`                                                     |
| `session` | `list`, `show`, `find`, `search`, `compact`, `copy`, `remove` |
| `memory`  | `learn`, `recall`, `list`, `show`, `forget`, `status`         |

`session compact` does not write durable memory. `memory learn` creates durable
claims; recall searches the current project by default. Memory types are
`decision`, `fact`, `preference`, `procedure`, and `lesson`.

`summary` uses the local text model to interpret up to 500 active durable-memory
claims for the current project. It does not summarize session transcripts; learn
relevant sessions first with `memory learn`.

## Pi extension

The [pi-goosedump](packages/pi-goosedump/README.md) extension adds session
search, memory, session management, and compaction to Pi:

```sh
pi install npm:pi-goosedump
```

## Local models

| Model                                                 | Role                                                |
| ----------------------------------------------------- | --------------------------------------------------- |
| [gpt-oss-20b]docs/models/gpt-oss-20b.md             | Claim extraction; project summaries; compact filter |
| [bge-small-en-v1.5]docs/models/bge-small-en-v1.5.md | Semantic claim retrieval                            |

[Text-model benchmarks](docs/models/gpt-oss-20b-benchmarks.md).

## Development

### Check

```sh
make ci
CI_MSRV=1 make ci  # optional MSRV check
```

### Package

Packages the **highest semver tag reachable from HEAD** on the current branch
(not necessarily the tip). Source is built from a detached worktree at that
tag; this packaging script stays on tip so tooling fixes apply without a new
tag. Artifacts land in `npm/*/bin` and `artifacts/` on the caller tree.

Linux x64/arm64 and Windows x64 use [`cross`](https://github.com/cross-rs/cross)
and Docker. On Apple Silicon with Dory, x86_64 images run under FEX; packaging
reaps the container if FEX leaves it stuck after cargo finishes.

`darwin-arm64` builds with host `cargo` when packaging on darwin-arm64. From
Linux, the same platform uses the local osxcross image
`ghcr.io/cross-rs/aarch64-apple-darwin-cross:local` (Apple SDK; not redistributed).

```sh
make package
make package PLATFORMS='linux-x64 win32-x64'
PACKAGE_STRICT=1 make package
```

### Release

After `scripts/release.sh <version>` and pushing the tag:

```sh
make ci
PACKAGE_STRICT=1 make package
make publish
```

`make publish` uses the highest semver tag reachable from HEAD (tip may be
ahead). It publishes crates.io from that tagged tree, npm from local
`npm/*/bin` artifacts, then uploads GitLab release tarballs when `glab` is
available.

## License

| Component         | License           |
| ----------------- | ----------------- |
| goosedump         | LGPL-2.1-or-later |
| pi-goosedump      | Apache-2.0        |
| GPT-OSS-20B       | Apache-2.0        |
| bge-small-en-v1.5 | MIT               |

Models download at run time and are not distributed with goosedump.