Trove·A Claude Code skill

Trove.

A memory index that grows as you use Claude Code.

Install once and Claude starts keeping a personal, file-based trove of your decisions, gotchas, conventions and references. Every fact is one file, Markdown or JSON, and it reloads into context at the start of every session so nothing learned gets forgotten.

01 Install

Add it to Claude Code

Run these one at a time inside Claude Code, top to bottom.

  1. 1

    Add the marketplace

    /plugin marketplace add anishfyi/trove

    A marketplace is just a Git repo that lists installable plugins. This points Claude Code at Trove's repo so it knows where to fetch the plugin from. Nothing is installed yet.

    Hit an SSH Permission denied (publickey) error? You have no SSH key on GitHub, so use the HTTPS URL instead: /plugin marketplace add https://github.com/anishfyi/trove.git

  2. 2

    Install the plugin

    /plugin install trove@anishfyi-trove

    Pulls the Trove plugin from that marketplace: its three skills (init, remember, recall) plus the SessionStart hook. Read it as plugin@marketplace, so trove is the plugin and anishfyi-trove is the marketplace you just added.

  3. 3

    Reload so it activates

    /reload-plugins

    A freshly installed plugin is not live until you reload. This activates Trove's skills and hook in your current session. Confirm it landed with /plugin list, and type /trove: to see the new commands appear. The auto-load hook starts firing from your next new session onward.

  4. 4

    Create your trove

    /trove:init

    Scaffolds your trove at ~/.claude/trove (or per project): an INDEX.md and an entries/ folder. That is the whole setup. From here, say "remember this" or run /trove:remember to capture a fact, and /trove:recall to search it back.

# skills only (no auto-load hook)
git clone https://github.com/anishfyi/trove /tmp/trove
cp -r /tmp/trove/plugins/trove/skills/* ~/.claude/skills/

Copies the three skills into ~/.claude/skills/ so you get /init, /remember and /recall. The automatic session-load hook only ships with the plugin install above.

02 How it works

Four moves, one growing index

STEP 01

Start it /trove:init

Scaffolds a trove at user scope (~/.claude/trove) or per project. Just markdown: an INDEX.md and an entries/ folder.

STEP 02

Capture it /trove:remember

Distills a decision, gotcha, preference or reference into one atomic entry, the way a new leaf sprouts, and adds a one-line pointer to the index. Dedupes against what is already there.

STEP 03

Recall it /trove:recall

Reads the index, opens the relevant entries, and answers grounded in them with citations, so past you can inform present you.

STEP 04

Auto-load every session

A SessionStart hook injects your index into context the moment a session opens. Claude starts aware of what it already knows.

03 Why it matters

Why it speeds you up

Every Claude Code session normally starts from zero: you re-explain the codebase, the conventions, the decisions you already made. Trove ends that. What you teach it once it knows for good, so each session begins further ahead than the last.

It paces up your work

  • Stop re-explaining. Claude opens each session already aware of your decisions, conventions and gotchas. No daily "here is how this repo works" preamble.
  • Stop repeating mistakes. A footgun you hit once is written down, so Claude does not walk into it a second time.
  • Decide faster. Past decisions and their rationale are one recall away, so you do not re-litigate or contradict yourself.
  • Onboard instantly. A new machine, or a teammate on a project-scope trove, inherits all the accumulated knowledge at once.
  • Compounding returns. Teach it once, benefit every session after. The longer you use it, the more leverage it has.

Why the index is the engine

  • It is what loads every session. The INDEX.md (one compact line per entry) is injected into context at session start, so Claude knows everything it has without paying to load every full file.
  • It keeps recall fast and cheap. Claude scans the index, then opens only the handful of entries that matter, instead of dumping the whole trove into the prompt.
  • It is your map. Human-readable, skimmable and prunable, like a notebook's table of contents you can edit by hand.
  • Hooks make it findable. Each one-line entry is written to match intent, which is the difference between a pile of files and a memory you can actually use.
04 Anatomy of an entry

One fact, one file. Markdown or JSON.

Each entry is a single file, and Claude picks the format that fits what it is storing: Markdown for prose (decisions, gotchas, conventions) and JSON for structured context (mappings, lists of records, config, schemas). The index lists them side by side.

entries/use-pgx-not-orm.md prose → Markdown
---
title: Use pgx + sqlc, not a heavy ORM, in Go services
slug: use-pgx-not-orm
type: decision
created: 2026-06-13
tags: [go, postgres, data-layer]
---

We standardised on pgx for the driver and sqlc to generate
type-safe query code from plain SQL. GORM was rejected for
hiding query cost behind reflection.

**Why it matters:** reach for this on any new Go service.
**Related:** [[deploy-single-binary]]
entries/service-ports.json structured → JSON
{
  "title": "Local service ports",
  "slug": "service-ports",
  "type": "reference",
  "created": "2026-06-14",
  "tags": ["infra", "ports"],
  "summary": "which service runs on which port",
  "data": {
    "web": 8000,
    "trove-ui": 8010,
    "partners": 8011
  }
}
INDEX.md both, side by side
# Trove Index

- [Use pgx + sqlc, not a heavy ORM](entries/use-pgx-not-orm.md) - Go data-layer decision
- [Local service ports](entries/service-ports.json) - infra reference (JSON)
- [Staging DB mirrors prod nightly](entries/staging-db-mirror.md) - gotcha, do not seed
05 Commands

The whole surface

CommandWhat it does
/trove:initCreate the trove (user or project scope).
/trove:rememberCapture a durable learning as a new entry.
/trove:recallSearch the trove and answer from it.
SessionStart hookLoads the index into context automatically each session.

The skills also auto-trigger on intent: say "remember this in my trove" or "what do I know about X" and the right skill fires without typing the command.