Documentation

Complete reference for the Rememora CLI — persistent, cross-agent memory for AI coding assistants.

Installation

Homebrew (recommended)

terminal
$ brew install Rememora/tap/rememora

From Source

terminal
$ git clone https://github.com/Rememora/rememora.git
$ cd rememora
$ cargo install --path .

GitHub Releases

Pre-built binaries are available on the Releases page.

Feature Flags

FlagDescription
embed-candleVector search via Candle (CPU + Metal GPU)
embed-llamacppVector search via llama.cpp (stub)
metalApple Silicon GPU acceleration for embeddings
build with vector search
$ cargo install --path . --features embed-candle,metal

Quick Start

quickstart.sh
# Register a project
$ rememora project add myapp --path /path/to/myapp \
    --description "Mobile app" \
    --stack "react-native,typescript"

# Start a tracked session
$ rememora session start --agent claude-code \
    --project myapp \
    --intent "implementing auth flow"
  Session started: 01JARW...

# Save memories as you work
$ rememora save "Uses expo-secure-store for token storage" \
    --category decision --project myapp --importance 0.8

# Search memories
$ rememora search "authentication" --project myapp

# End session
$ rememora session end 01JARW... \
    --summary "Auth flow complete." \
    --working-state "Need to add biometric auth."

Agent Setup

Just install the plugin. That's all you need. The plugin gives your agent hooks and skills that handle everything automatically — loading context, saving memories, searching before implementations, and curating knowledge from transcripts. Your agent doesn't need to learn any commands.

Claude Code: Install as Plugin (Recommended)

Two commands, fully autonomous from there:

terminal
# 1. Add the Rememora marketplace
$ claude plugin marketplace add Rememora/rememora

# 2. Install the plugin
$ claude plugin install rememora@rememora

# For project-wide install (shared via git):
$ claude plugin install rememora@rememora --scope project

After installing, restart Claude Code. The plugin auto-detects your project from the working directory.

What you get

ComponentTypeWhat it does
SessionStartHookLoads project context + starts rememora session
SessionEndHookCloses the active session
StopHookCurates memories from the session transcript after each turn
rememora-saveSkillClaude autonomously saves decisions, bug fixes, patterns
rememora-searchSkillClaude autonomously searches before implementations
/rememoraCommandManual save, search, or status check

Claude Code: Alternative (CLAUDE.md)

If you prefer manual control instead of the plugin, add to ~/.claude/CLAUDE.md:

~/.claude/CLAUDE.md
## Rememora Memory System
On session start:
1. `rememora context --auto`
2. `rememora session start --agent claude-code
     --project <name> --intent "..."`

During work, save discoveries:
- `rememora save "..." --category decision --project <name>`

Before ending:
- `rememora session end <id> --summary "..." --working-state "..."`

Codex

Add to ~/.codex/config.toml:

~/.codex/config.toml
system_prompt = """
On session start: run `rememora context --auto` and
  `rememora session start --agent codex ...`
Save important discoveries with `rememora save ...`
Before ending: `rememora session end <id> --summary "..." ...`
"""

Gemini CLI

Add to ~/.gemini/GEMINI.md or your system instructions file using the same pattern as the Claude Code CLAUDE.md approach.

Auto-Setup (All Agents)

Rememora can also auto-detect and configure all installed agents at once:

terminal
# Preview what would be configured
$ rememora setup

# Apply the configuration
$ rememora setup --apply

Memories

Memories are the fundamental unit of knowledge in Rememora. Each memory has:

Memories are never hard-deleted. Instead, they are superseded by newer memories, preserving a full audit trail.

Sessions

Sessions track agent work periods and enable cross-agent handoffs.

Projects

Projects scope memories and sessions. Register once, then auto-detect from working directory:

terminal
$ rememora project add myapp --path /path/to/myapp
$ cd /path/to/myapp
$ rememora context --auto  # auto-detects "myapp"

Categories

CategoryUse ForExamples
preferenceUser/project preferences"Prefers Zustand over Redux", "Uses pnpm"
entityKey concepts, APIs, tools"Stripe API uses idempotency keys"
decisionArchitecture/design choices"Chose expo-router over React Navigation"
eventMilestones, releases"v2.0 shipped 2026-03-01"
caseProblem + solution pairs"iOS build fails with Hermes: disable new arch"
patternReusable processes"Always run migrations before seeding"

Tiered Loading

Rememora loads context at three detail levels to minimize token usage:

TierSizeContent
L0~100 tokensAbstract — compact memory map for quick orientation
L1~500 tokensOverview — top memories ranked by importance/hotness
L2FullComplete content — used for deep retrieval

Three search modes, composable:

Hotness Scoring

Memories are ranked by a blend of importance and hotness:

hotness formula
frequency  = sigmoid(log1p(access_count))   // S-curve 0→1
recency   = exp(-age_days / 7.0)            // 7-day half-life
hotness   = frequency * recency              // combined score
final     = 0.7 * importance + 0.3 * hotness  // blended rank

save

Save a memory to the database.

usage
rememora save "<content>" \
    --category <preference|entity|decision|event|case|pattern> \
    --project <name> \
    --importance <0.0-1.0> \
    --tags "tag1,tag2" \
    --name "optional display name"
FlagRequiredDescription
--categoryYesMemory category
--projectNoProject scope (global if omitted)
--importanceNo0.0-1.0, default 0.5
--tagsNoComma-separated tags
--nameNoDisplay name (auto-generated if omitted)

Search memories using BM25 full-text search (or hybrid with vector if enabled).

usage
rememora search "<query>" \
    --project <name> \
    --category <category> \
    --limit <n> \
    --json

context

Load full project context — memories, last session, working state. The primary entry point for agents at session start.

usage
rememora context --project <name>    # explicit project
rememora context --auto              # auto-detect from CWD
rememora context --auto --cheatsheet  # compact top-5 summary

session

Manage agent sessions with full lifecycle tracking.

subcommands
# Start a new session
rememora session start --agent claude-code --project myapp \
    --intent "implementing auth" --parent <prev-id>

# End a session
rememora session end <id> \
    --summary "Auth complete" \
    --working-state "Need biometric auth"

# Transfer to another agent
rememora session end <id> --status transferred \
    --summary "..." --working-state "..."

# End active session (hook-friendly)
rememora session end-active --project myapp

# Show last session for project
rememora session resume --project myapp

# List recent sessions
rememora session list --project myapp --limit 10

project

Manage project registrations.

subcommands
rememora project add <name> --path <dir> --description "..." --stack "..."
rememora project list
rememora project show <name>

get

Retrieve a specific context by URI.

usage
rememora get "rememora://projects/myapp/memories/decision/zustand"

supersede

Mark a memory as replaced by a new one (soft delete with audit trail).

usage
rememora supersede --old <uri-or-id> --new <uri-or-id>

relate

Create bidirectional links between memories.

usage
rememora relate --source <uri> --target <uri> \
    --relation <related|depends_on|derived_from|supersedes> \
    --reason "why they're linked"

extract

Extract memories from text using LLM (requires ANTHROPIC_API_KEY).

usage
# Extract and preview
echo "We chose SQLite because..." | rememora extract

# Extract and save directly
echo "..." | rememora extract --save --project myapp

curate

Autonomous memory extraction from Claude Code session transcripts.

usage
rememora curate --auto                      # auto-discover all sessions
rememora curate --file <path.jsonl>           # specific file
rememora curate --auto --dry-run             # preview only
rememora curate --auto --reset-watermark     # re-curate from start
cat transcript.txt | rememora curate --from-stdin --project myapp

evolve

LLM-driven memory consolidation — finds similar clusters and merges/supersedes/prunes.

usage
rememora evolve --project myapp             # run consolidation
rememora evolve --project myapp --dry-run   # preview clusters

consolidate

Smart deduplication with dual gate (24h age + 5 new memories threshold).

usage
rememora consolidate --project myapp
rememora consolidate --project myapp --check-only  # check gate only

setup

Auto-detect and configure agents to use Rememora.

usage
rememora setup            # dry-run: show what would be changed
rememora setup --apply   # apply configuration

agent-run

Dispatch a GitHub issue to Claude CLI with quality gates.

usage
rememora agent-run --repo owner/repo --issue 42 --retries 3

Workflow: Fetch issue → Move to "In Progress" → Create worktree → Run Claude CLI → Quality gate (tests) → Open PR → Move to "Ready for Review"

agent-loop

Continuous polling of GitHub project board for automated issue dispatch.

usage
rememora agent-loop --repo owner/repo --poll 300   # poll every 5m
rememora agent-loop --repo owner/repo --once       # one-shot

encrypt / decrypt

Convert between encrypted (SQLCipher) and plaintext databases.

usage
rememora encrypt   # encrypt existing plaintext DB
rememora decrypt   # decrypt to plaintext

export

Export memories as JSON or markdown.

usage
rememora export --project myapp --format json
rememora export --project myapp --format markdown

status

Show database statistics — memory counts, categories, sessions, curator info.

usage
$ rememora status
  Database: ~/.rememora/rememora.db (encrypted)
  Memories: 142 active, 23 superseded
  Categories: 31 decision, 28 entity, 25 pattern...
  Sessions: 67 total, 12 transferred
  Last curated: 2h ago (4 added)

tui

Interactive terminal dashboard for browsing memories, sessions, and projects.

usage
rememora tui

Built with ratatui. Navigate with keyboard: Tab to switch panes, / to search, j/k to scroll.

eval

Database compliance metrics — checks session hygiene, memory quality, transfer chains.

usage
rememora eval

URI Scheme

All contexts are addressable via hierarchical URIs:

URI structure
rememora://global/memories/{category}/{slug}
rememora://projects/{name}/memories/{category}/{slug}
rememora://projects/{name}/_meta
rememora://agents/{name}/...
rememora://sessions/{id}/...

Database Schema

Single SQLite database at ~/.rememora/rememora.db with WAL mode.

Key Tables

TablePurpose
contextsAll memories, projects, resources (unified, 18 columns)
sessionsAgent sessions with lifecycle tracking
relationsBidirectional links between contexts
contexts_ftsFTS5 full-text index (auto-synced via triggers)
context_embeddings384-dim vectors (feature-gated)
watermarksIncremental curation tracking
curator_logAudit trail for all curation actions
consolidation_runsConsolidation history

Curation Pipeline

The autonomous curation pipeline processes Claude Code session transcripts in four stages:

  1. JSONL Parsing — reads session files incrementally via byte-offset watermarks (never re-processes old content)
  2. Signal Gate (Haiku) — fast YES/NO classification: "Does this transcript contain memorable knowledge?" (~$0.03 per call)
  3. AUDN Curation (Sonnet) — full Add/Update/Delete/Noop cycle via a subagent with Bash access to rememora save/search/supersede
  4. Consolidation — if gate conditions are met (24h + 5 new memories), triggers smart dedup via evolve

Claude Code Plugin

Full integration with Claude Code via hooks and skills:

Hooks (automatic)

HookTriggerAction
SessionStartConversation beginsLoad context + start rememora session + check consolidation gate
SessionEndConversation endsClose active rememora session
StopEach assistant turnCurate memories from transcript

Skills (model-invoked)

SkillWhenAction
rememora-saveAfter decisions/bug fixes/discoveriesSave to rememora
rememora-searchBefore non-trivial implementationsSearch rememora
rememora-initManual /rememora commandInitialize context loading

Agent Orchestration

The agent-run and agent-loop commands provide autonomous issue dispatch:

  1. Fetch issue from GitHub → move to "In Progress" on project board
  2. Create isolated git worktree under .agents/worktrees/
  3. Run Claude CLI with issue context + rememora memory
  4. Quality gate: run cargo test, retry on failure (configurable)
  5. Open pull request → move to "Ready for Review"
  6. agent-loop also merges "Cherry-Picked" PRs automatically

Encryption

Rememora uses SQLCipher for encryption at rest. Key sources (in priority order):

  1. REMEMORA_KEY environment variable (hex string)
  2. macOS Keychain / Linux secret-service
  3. Interactive password prompt (via rpassword)

Use --no-encryption flag for development/testing.

Optional feature-gated vector search using:

Enable with: cargo install --path . --features embed-candle,metal

Configuration

Environment Variables

VariableDescription
REMEMORA_KEYEncryption key (hex string) for SQLCipher
ANTHROPIC_API_KEYRequired for extract, curate, evolve commands

Database Location

Default: ~/.rememora/rememora.db

Global Flags

FlagDescription
--jsonOutput structured JSON instead of markdown
--no-encryptionDisable SQLCipher encryption (dev/testing only)


Built with Rust. Open source. MIT licensed.
GitHubIssuesReleases