Local agent session recorder.
Record, replay, and inspect AI coding sessions — privately, on your machine.

sudo installer -pkg IntentLoop-*.pkg -target /

Download IntentLoop-*.pkg from GitHub Releases first (recommended for macOS).

il — session recorder il run echo "hello" [il] session started id: a3f9c1e2-7b44-4d8a intent: auth-jwt-001 storage: memmap_fs @ ~/.intentloop hello [il] session finished — 2.4s report: il dump a3f9c1e2 report il copilot -- suggest "refactor auth module" [il] running gh copilot suggest ... ✓ PTY session captured events: 42 events recorded dump: il dump <id> stdout

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

CommandDescription
runil run <cmd> [args...] — Record a session wrapping any command
copilotil copilot [--mode auto|copilot|agent-task] — Run GitHub Copilot in a recorded session
showil show <session-id> — Inspect session metadata and stream references
dumpil 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.