Memory
ARC's memory system stores observations, corrections, preferences, and facts that persist across sessions. Memories are scoped, typed, and scored by relevance using exponential decay.
Searching Memory
arc memory search "deployment process"
arc memory search "react hooks" --scope persistentSearch uses deterministic keyword/scope/type/recency ranking. More recent and more frequently accessed memories score higher.
Listing Memories
arc memory list
arc memory list --scope persistent
arc memory list --scope persistent --type correction
arc memory list --type preferenceMemory Properties
Scopes
| Scope | Lifetime | Description |
|---|---|---|
session | Cleared on exit | Ephemeral, per-session observations |
persistent | Survives restarts | Durable cross-session knowledge |
shared | Synced across profiles | Available to all profiles via the shared layer |
Types
| Type | Description | Example |
|---|---|---|
observation | General observation | "This project uses pnpm, not npm" |
correction | Corrected behavior | "User prefers tabs over spaces" |
preference | Explicit preference | "Always use conventional commits" |
fact | Factual knowledge | "API rate limit is 100 req/min" |
TUI Memory Management
The TUI Memory view displays real persistent memory entries with keyboard-driven browsing and search.
| Key | Action |
|---|---|
s | Search memories by keyword |
d | Delete the selected memory entry |
↑ / ↓ | Navigate the memory list |
The view shows each entry's scope, type, content preview, and relevance score. Search results are ranked by the same deterministic scoring used by the CLI.
Web Dashboard Memory Management
The Web Dashboard Memory view provides full memory management through a browser interface:
- Add entries — create new memory entries with content, scope, and type
- Search — keyword search with the same ranking algorithm as the CLI
- Delete — remove individual entries
- Filter — narrow results by scope (
session,persistent,shared) and type (observation,correction,preference,fact)
All changes are broadcast over WebSocket for real-time updates across connected clients.
TIP
Memory is fully managed from all three interfaces — CLI, TUI, and Web Dashboard. The same search ranking applies across all interfaces.
Relevance Scoring
Memories use an exponential decay scoring model. Each memory has a relevance score that decays over time, with a configurable half-life. Accessing a memory boosts its score.
arc memory stats # See score distribution
arc memory prune --threshold 0.1The decayScore() function computes relevance as:
score = base_score * (0.5 ^ (age / half_life)) + access_boostMemories below the prune threshold are removed. Check the distribution with arc memory stats before pruning.
Auto-Extraction
ARC can automatically extract memories from agent conversations. The extractMemories() heuristic detects:
- Corrections — when the user corrects an agent's behavior
- Preferences — explicit user preferences mentioned in conversation
- Patterns — recurring patterns in tool usage or workflow
- Decisions — architectural or design decisions
Extracted memories are stored as persistent scope entries and surface in future sessions when relevant keywords match.
Storage
- Session memory — in-memory
Map-backed, cleared on process exit - Persistent memory — JSON file-backed at
~/.arc/memory/ - Shared memory — linked via junction/symlink to
~/.arc/shared/memory/
The web dashboard exposes memory via the /api/memory REST endpoint with full CRUD support — add, search, delete, and filter. See Web Dashboard for details.