Multi-Agent Setup
llmwiki reads sessions from multiple coding agents simultaneously. One llmwiki sync pulls from every agent installed on your machine.
Supported agents
| Agent | Registry name | Session store | Status |
|---|---|---|---|
| Claude Code | claude_code |
~/.claude/projects/ |
Production |
| Codex CLI | codex_cli |
~/.codex/sessions/ |
Production |
| GitHub Copilot Chat | copilot_chat |
VS Code workspaceStorage | Production |
| GitHub Copilot CLI | copilot_cli |
~/.copilot/session-state/ |
Production |
| Cursor | cursor |
Cursor IDE workspaceStorage | Scaffold (SQLite parser in progress) |
| Gemini CLI | gemini_cli |
~/.gemini/ |
Scaffold (schema TBC) |
| Obsidian | obsidian |
Configurable vault paths | Production |
How auto-detection works
When you run llmwiki sync, the system:
- Imports every adapter in
llmwiki/adapters/ - Calls
is_available()on each — this checks whether the session store path exists on disk - Runs only the available adapters (or those you specify with
--adapter)
No configuration file is needed. If you have Claude Code and Codex CLI installed, both get picked up automatically.
Checking detected agents
python3 -m llmwiki adapters
Example output:
Registered adapters:
claude_code available: yes (Claude Code — reads ~/.claude/projects/*/*.jsonl)
codex_cli available: yes (Codex CLI — reads ~/.codex/sessions/**/*.jsonl)
copilot_chat available: no (GitHub Copilot Chat — reads VS Code workspaceStorage chatSessions)
copilot_cli available: no (GitHub Copilot CLI — reads ~/.copilot/session-state/*/events.jsonl)
cursor available: yes (Cursor IDE — reads chat history)
gemini_cli available: no (Gemini CLI — reads ~/.gemini/ session history)
obsidian available: no (Obsidian vault)
Per-agent setup
Claude Code
Installed automatically if you use Claude Code. Sessions live at ~/.claude/projects/<project-dir-slug>/<session-uuid>.jsonl. Sub-agent runs are under subagents/agent-*.jsonl.
No configuration needed.
Codex CLI
Install Codex CLI from OpenAI. Sessions are stored at ~/.codex/sessions/ in date-bucketed directories. The adapter reads the session_meta record's cwd field to derive the project slug.
The adapter normalizes Codex's native JSONL schema (which uses response_item and event_msg record types) into the shared format automatically.
GitHub Copilot Chat
Requires the Copilot Chat extension in VS Code, VS Code Insiders, or VSCodium. Sessions live in the editor's workspaceStorage directory under chatSessions/.
The adapter checks all three editor variants across macOS, Linux, and Windows paths.
GitHub Copilot CLI
Requires the Copilot CLI tool. Sessions are stored as events.jsonl files under ~/.copilot/session-state/<session-id>/.
Set COPILOT_HOME to override the default ~/.copilot base directory.
Cursor
Requires Cursor IDE. The adapter detects the Cursor workspace storage directory. Full SQLite record parsing is in progress; currently discovers .jsonl files if present.
Gemini CLI
Requires Google's Gemini CLI. The adapter checks ~/.gemini/, ~/.config/gemini/, ~/.local/share/gemini/, and %APPDATA%/gemini/ on Windows.
Syncing from all agents
# Sync everything
python3 -m llmwiki sync
# Sync only specific adapters
python3 -m llmwiki sync --adapter claude_code codex_cli
# Dry run to preview
python3 -m llmwiki sync --dry-run
The sync is idempotent. State is tracked in .llmwiki-state.json by file mtime, so re-running on unchanged files is a fast no-op.
Agent labels in the UI
Each session in the built site shows a colored badge indicating which agent produced it. The badge is derived from the adapter name in the session's YAML frontmatter. This makes it easy to filter and browse sessions by agent when you use multiple tools.
Per-adapter configuration
Override adapter paths in config.json:
{
"adapters": {
"codex_cli": {
"roots": ["~/custom/codex/sessions"]
},
"copilot_chat": {
"roots": ["/path/to/vscode/workspaceStorage"]
},
"gemini_cli": {
"roots": ["~/.gemini"]
},
"obsidian": {
"vault_paths": ["~/Documents/My Vault"],
"exclude_folders": [".obsidian", "Templates"],
"min_content_chars": 50
}
}
}
Tips for multi-agent workflows
- Use
--adapterto test one agent at a time when debugging sync issues. - Each agent gets its own project slug derived from its session store layout, so sessions from different agents never collide.
- The wiki layer is agent-agnostic. Once sessions are in
raw/, the wiki ingest treats them identically regardless of which agent produced them. - Schedule
llmwiki syncvialaunchd/systemd/ Task Scheduler for periodic auto-sync across all agents (thellmwiki watchdaemon was removed in v1.2.0 — seedocs/UPGRADING.md). - Combine with
.llmwikiignoreto skip noisy agents or specific projects from any adapter.