Everywhere
Your Claude Code and Codex sessions, accessible everywhere.
Everywhere is a Claude Code plugin (with optional Codex CLI support) that
auto-saves every session into a local git repo at ~/agent-memory/, optionally
synced to GitHub. Past sessions become searchable across projects, agents, and
machines — context never gets stranded on whichever laptop happened to host
the original conversation.
Why
Agent CLI sessions are ephemeral — when you /exit, the conversation is gone.
You can scroll back through ~/.claude/projects/ or ~/.codex/sessions/
transcripts, but they're raw and untagged, not browsable. Everywhere fixes that:
- Auto-summarize every session into structured Markdown (summary, decisions,
artifacts, verbatim excerpts, tags).
- One repo per user, one folder per project, so context is local-first and
trivially greppable.
- Cross-agent — Claude Code and Codex sessions land side-by-side under the
same project;
meta.yaml.agent distinguishes the source. /recall searches
both.
- Cross-machine — push to GitHub, pull on another laptop, and
/recall your
past work from anywhere.
How it works
Two capture paths feed the same ~/agent-memory/:
| Trigger | Agent | When | Action |
|---|
Stop hook | Claude Code | End of each turn | Debounced (10 min) snapshot. |
SessionEnd hook | Claude Code | /exit or session close | Final snapshot, commit, pull --rebase + push. |
launchd sweeper | Codex CLI | Every 5 min | Walks ~/.codex/sessions/, snapshots active rollouts, finalizes idle ones (>10 min no activity). |
- Claude sessions are summarized by
claude -p running Haiku 4.5.
- Codex sessions are summarized by
codex exec --ephemeral running a cheap
tier model (default gpt-5.4-mini). The --ephemeral flag prevents the
summarizer call from itself producing a rollout.
Sessions with fewer than 3 user messages are skipped on both paths. The Codex
sweeper does not modify ~/.codex/config.toml — it doesn't touch notify,
so existing notify integrations (e.g., Computer Use) keep working.
Every error path logs to stderr and exits 0; a misbehaving snapshot never
blocks your session or the launchd timer.
Install
See INSTALL.md for the full step-by-step guide (it doubles as
an agent-readable runbook — you can ask another Claude to install Everywhere
for you and point it at that file).
Quick path for the impatient:
/plugin marketplace add iamNCJ/Everywhere
/plugin install everywhere@Everywhere
Then in any Claude Code session:
/everywhere-setup # Claude side (memory repo + Stop/SessionEnd hooks)
/everywhere-codex-setup # Optional: Codex side (launchd sweeper, macOS only)
/everywhere-setup initializes ~/agent-memory/, optionally creates a private
GitHub repo for sync, and verifies hooks are registered.
/everywhere-codex-setup stages the hook scripts to ~/.everywhere/hooks/
(avoiding macOS TCC restrictions on ~/Documents/) and installs a launchd
agent that polls Codex sessions every 5 min.
Commands
Once installed, the plugin exposes:
| Command | Purpose |
|---|
/everywhere-setup | One-time setup. Initializes memory repo + Claude Code hooks. |
/everywhere-codex-setup | One-time setup for Codex CLI capture (macOS launchd sweeper). |
/everywhere-codex-uninstall | Remove the Codex sweeper and staged hooks. |
/session-save | Manually trigger a save of the current session (Claude or Codex auto-detected). |
/recall <query> | Search past sessions across all projects and agents, ranked. |
/memory on | Inject INDEX.md + the current project's PROJECT.md into context. |
/memory off | (Reminder) injected memory persists in the current session — start a new one to drop it. |
Repo layout
After running /everywhere-setup, your ~/agent-memory/ looks like:
~/agent-memory/
├── INDEX.md # all projects, auto-maintained
├── global/
│ └── cross-session-insights.md # cross-project patterns (manual)
├── projects/
│ └── <project-name>/
│ ├── PROJECT.md # recent sessions for this project
│ └── sessions/
│ └── 2026-05-06-abc123/
│ ├── meta.yaml # session_id, tags, started_at, ...
│ ├── summary.md # 3–5 sentence headline
│ ├── decisions.md # technical decisions + rationale
│ ├── artifacts.md # files / commands / references
│ └── excerpts.md # 3–5 verbatim Q&A exchanges
└── .snapshots/ # gitignored debounce state
Local-only mode
GitHub sync is optional. If you don't run step 4 of INSTALL.md (or don't
configure a remote on ~/agent-memory/), the hook detects no remote and skips
push silently — everything still works locally.
Design notes