Package Exports
- greprag
- greprag/dist/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (greprag) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
GrepRAG
Agent memory as a service. Episodic project memory for Claude Code, Codex, and OpenCode — captures supported agent turns, compacts into hourly/daily/weekly summaries, and exposes two access patterns: lexical search by topic (greprag memory search "<query>") or a session recap (greprag memory recap). The memory product line is marketed as Odyssey. Also handles cross-project async messaging via inbox.
Quick Start
npm i -g grepragThen either run /greprag inside a supported agent, or run greprag init in a terminal. Bare greprag init detects Claude Code, Codex, and OpenCode; if more than one is present in a non-interactive shell, it prints the explicit command to use.
Claude Code
Run /greprag in any Claude Code session, or:
greprag init --claudeCodex
Run /greprag in Codex after install, or:
greprag init --codexCodex requires one extra trust step: after init/update, run /hooks in Codex, trust the GrepRAG hooks, then start a fresh session.
For live inbox push into idle Codex sessions, install the login watcher:
greprag codex startup installgreprag init --codex offers this in interactive terminals. For foreground
testing, run:
greprag codex watch --session <8hex-or-full-codex-session-id>If --session is omitted, GrepRAG uses the latest Codex session. The watcher
wakes Codex with codex exec resume when messages arrive.
OpenCode
greprag init --opencodeThis installs the memory plugin at ~/.config/opencode/plugins/greprag-memory.js.
All platforms share project identity through .greprag/project.json when a file anchor is needed, or git-derived identity when available. Legacy .claude/project.json anchors still read and migrate on init.
Status check:
greprag status --all-platformsWhat's active
- Memory (episodic project memory, marketed as Odyssey): supported agent turns captured via platform hooks/plugin, compacted into hourly/daily/weekly summaries. Query via
greprag memory search "<query>"(lexical retrieval, v5 RRF+adjacency pipeline) orrecap/daily/weekly/hourly/turns/ships(by time window). (greprag memory briefingandgreprag odyssey ...are silent back-compat aliases.) - Memory recap: surfaces recent memory rows through platform hooks or
/greprag - Inbox: cross-project async messaging between your projects or other GrepRAG users
Commands
| Command | Description |
|---|---|
greprag status --all-platforms |
Check auth, hooks/plugins, skills, and project anchor |
greprag init |
Detect/ask which agent to configure |
greprag init --claude |
Configure Claude Code hooks + skill |
greprag init --codex |
Configure Codex hooks + skill |
greprag codex watch --session <id> |
Live-push inbox messages into Codex |
greprag codex startup install |
Start the Codex live watcher at login |
greprag init --opencode |
Configure OpenCode plugin |
greprag init --global |
Global anchor for ephemeral sessions |
greprag doctor |
Diagnose project_id drift and orphan consolidation |
greprag memory search "<query>" |
Lexical search over the project's memory (v5 RRF+adjacency pipeline) |
greprag memory recap |
Weekly + recent daily summaries (SessionStart shape; alias: briefing) |
greprag memory daily --last N |
Newest N daily summaries (also: weekly / hourly / turns / ships) |
greprag inbox |
List unread messages (auto-marks read) |
greprag inbox --all |
Full message history |
greprag send "msg" --to <addr> |
Send markdown message across tenants |
greprag project-id |
Print current project's UUID |
Requirements
- Node.js 18+
- Claude Code, Codex, or OpenCode
- An API key (generated during email signup in the skill flow)
How it works
The CLI is a thin HTTP client. All intelligence — scoring, compaction, and retrieval — lives server-side. Platform hooks/plugins call the API; the server handles everything else.