Operator front door for agent session history.
aicx orchestrates a two-layer pipeline:
-
Canonical corpus (
~/.aicx/) — extract, deduplicate, chunk, and store agent session logs as steerable markdown with frontmatter metadata. This is ground truth. Built by extractors (claude,codex,all) andstore. -
Semantic materialization (memex) — embed the canonical corpus into a vector + BM25 index for retrieval by agents and MCP tools. Built by
memex-sync, or the--memexshortcut on any extractor.
aicx is the orchestrator; memex is the retrieval kernel.
Supported sources:
- Claude Code:
~/.claude/projects/*/*.jsonl - Codex:
~/.codex/history.jsonl - Gemini CLI:
~/.gemini/tmp/<hash>/chats/session-*.json - Gemini Antigravity direct extract:
~/.gemini/antigravity/conversations/<uuid>.pbor~/.gemini/antigravity/brain/<uuid>/
Public install from crates.io:
cargo install ai-contexters --lockedFrom a local checkout:
./install.shinstall.sh installs aicx + aicx-mcp from the current checkout and configures Claude Code, Codex, and Gemini when their MCP settings directories already exist.
From an accessible GitHub repo when you want unreleased source:
cargo install --git https://github.com/VetCoders/ai-contexters --locked ai-contextersAlready installed the binaries?
./install.sh --skip-installManual fallback:
cargo install --path . --locked --bin aicx --bin aicx-mcp
./install.sh --skip-installinstall.sh prefers the local checkout when one is present. Outside a checkout, it now defaults to the published crates.io package.
Extract the last 4 hours into ~/.aicx/. Extractors are quiet on stdout by default (--emit none).
aicx all -H 4 --incremental # daily driver: watermark-tracked, skips already-processed entries
aicx store -p MyProject -H 720 # store-first: full re-extraction, no watermark, good for backfillsSee what landed:
aicx refs -H 4
aicx refs -H 4 --emit pathsMaterialization is operator-driven — nothing syncs automatically. You decide when to embed the canonical corpus into the memex retrieval kernel (vector + BM25):
aicx memex-sync # first build or incremental update
aicx memex-sync --reindex # full rebuild (after model/dimension change)Or do both layers in one shot:
aicx all -H 4 --incremental --memexPipe one JSON payload (handy for automation):
aicx all -H 4 --emit json | jq '.store_paths'~/.aicx/store/<organization>/<repository>/<YYYY_MMDD>/<kind>/<agent>/<YYYY_MMDD>_<agent>_<session-id>_<chunk>.md~/.aicx/non-repository-contexts/<YYYY_MMDD>/<kind>/<agent>/<YYYY_MMDD>_<agent>_<session-id>_<chunk>.md~/.aicx/index.json
~/.aicx/memex/sync_state.json(sync watermark — tracks what has been materialized)- LanceDB tables + Tantivy BM25 index (managed by rmcp-memex)
Framework-owned repo-local context artifacts (not written by the aicx CLI itself):
.ai-context/share/artifacts/SUMMARY.md.ai-context/share/artifacts/TIMELINE.md.ai-context/share/artifacts/TRIAGE.md
Store ignore contract:
- Optional
~/.aicx/.aicxignoreexcludes matching canonical chunk paths from memex materialization and steer indexing. - Patterns are matched relative to
~/.aicx/using glob syntax, for example:
store/VetCoders/ai-contexters/**/reports/**
!store/VetCoders/ai-contexters/**/reports/2026_0406_codex_important_001.mdDaily “what changed?” with incremental refresh plus compact summary:
aicx all -H 24 --incremental --emit none
aicx refs -H 24Incremental mode (watermark per source, avoids re-processing):
aicx all -H 168 --incrementalUser-only mode (smaller output; excludes assistant + reasoning):
aicx claude -p CodeScribe -H 48 --user-onlySteering retrieval (filter chunks by frontmatter metadata):
aicx steer --run-id mrbl-001
aicx steer --project ai-contexters --kind reports --date 2026-03-28
aicx steer --agent claude --date 2026-03-20..2026-03-28Semantic materialization — turning canonical chunks into an embedding index. Materialization is always operator-driven; nothing happens until you run it:
# First build: embed all unsynced canonical chunks into the memex index
aicx memex-sync
# Incremental: only new chunks since last sync (same command, watermark-tracked)
aicx memex-sync
# Full rebuild: wipe the index and re-embed everything
# Use after an embedding model or dimension change
aicx memex-sync --reindex
# One-shot shortcut: extract + materialize in a single pass
aicx all -H 48 --memex
# Fine-grained: per-chunk upsert instead of batch JSONL import
aicx memex-sync --per-chunkBatch sync (default) uses metadata-rich JSONL import, preserving project, agent, date, session_id, and kind. Use --per-chunk only when you need single-document granularity.
Single-session Gemini Antigravity extract (conversation artifacts first, explicit step-output fallback):
aicx extract --format gemini-antigravity \
~/.gemini/antigravity/conversations/<uuid>.pb \
-o /tmp/antigravity-report.mddocs/ARCHITECTURE.md(module map + data flows)docs/COMMANDS.md(exact CLI reference + examples)docs/STORE_LAYOUT.md(store + framework-owned.ai-context/layouts)docs/REDACTION.md(secret redaction, regex engine notes)docs/DISTILLATION.md(chunking/distillation model + tuning ideas)docs/RELEASES.md(release/distribution workflow + maintainer checklist)
- Secrets are redacted by default. Disable only if you know what you’re doing:
--no-redact-secrets. - Framework integration expects
aicxoraicx-mcpinPATH. aicx memex-syncnow emits live scan/embed/index progress on TTY stderr instead of going silent after preflight.
Vibecrafted with AI Agents by VetCoders (c)2026 VetCoders