What is IntentLoop?
IntentLoop is a Rust CLI tool for recording AI agent coding sessions locally. It wraps any agent command — GitHub Copilot, custom LLM prompts, or shell scripts — and captures the full session: intent metadata, terminal output, structured events, conversation turns, and reports.
Everything stays on your machine. No cloud, no telemetry, no accounts.
Session recording
Wrap any command with il run to capture a full session. The command runs inside
a real pseudo-terminal (PTY), so interactive tools work exactly as expected. Every keystroke,
every line of output, every ANSI escape sequence is recorded.
# Record any command as a session
il run echo "hello"
# Record with a specific intent reference
INTENT_ID=auth-jwt-001 il run cargo test
GitHub Copilot integration
Run GitHub Copilot CLI sessions directly inside IntentLoop with full PTY interaction and transcript capture.
IntentLoop auto-detects gh copilot or falls back to gh agent-task, so you
always get a recorded session.
# Auto-detect backend
il copilot
# Force a specific backend
il copilot --mode copilot -- suggest "analyze auth flow"
il copilot --mode agent-task -- create "Refactor auth module"
# Wait for final result (agent-task)
il copilot --mode agent-task --wait
Inspect sessions
Every session is stored with a unique ID. Use il show to inspect metadata,
view metadata and stored memmap_fs stream references, then use il dump
to inspect or export stdout, conversation, events, or reports.
il show a3f9c1e2-7b44-4d8a
il dump a3f9c1e2-7b44-4d8a conversation
il dump a3f9c1e2-7b44-4d8a report --output report.md
Intent references
Create an INTENT.md file in your repo root to link sessions to specific development intents.
IntentLoop reads the id and title fields and embeds them in session metadata.
# INTENT.md
id: auth-jwt-001
title: Login refactor to JWT
Local storage
All session data is stored in ~/.intentloop/ (or $INTENTLOOP_HOME)
through memmap_fs. IntentLoop no longer creates human-readable
sessions/<id>/*.jsonl or report.md files by default.
~/.intentloop/
memmap_fs internal files # KV + streams + search index + WAL
Streams:
sessions/<id>/stdout
sessions/<id>/conversation
sessions/<id>/report
Environment variables
IntentLoop auto-loads .env from the current directory. Configure your LLM provider
and API keys per-project without polluting your global environment.
LLM_PROVIDER=openai
LLM_MODEL=gpt-4o
LLM_API_KEY=your_key
INTENTLOOP_HOME=/path/to/custom/store
Commands
| Command | Description |
|---|---|
| run | il run <cmd> [args...] — Record a session wrapping any command |
| copilot | il copilot [--mode auto|copilot|agent-task] — Run GitHub Copilot in a recorded session |
| show | il show <session-id> — Inspect session metadata and stream references |
| dump | il dump <session-id> <stream> — Print or export stored streams |
Single binary
Written in Rust. Compiles to a single, fast binary. macOS: install the official .pkg from GitHub Releases (recommended). Linux/other: cargo install --path . or build from source.
No runtime dependencies, no containers, no cloud services required.