Intent is a CLI tool for managing steel threads, project artifacts, and LLM guidance for software projects.
An Intent project has this layout:
my-project/
├── intent/
│ ├── st/ # Steel threads (each a directory)
│ │ ├── ST0001/
│ │ │ ├── info.md # Objective, context, status (required)
│ │ │ ├── design.md # Architecture decisions
│ │ │ ├── impl.md # Implementation notes
│ │ │ ├── tasks.md # Task checklist
│ │ │ └── WP/ # Work packages (optional subdirs)
│ │ └── steel_threads.md # Index of all steel threads
│ ├── llm/ # LLM guidance files
│ │ ├── AGENTS.md # Auto-generated (intent agents sync)
│ │ ├── RULES.md # Human-curated coding rules
│ │ └── ARCHITECTURE.md # Human-curated system architecture
│ ├── docs/ # Technical documentation
│ ├── .treeindex/ # Shadow directory for treeindex summaries
│ ├── wip.md # Current work in progress
│ └── restart.md # Session restart context
├── .intent/
│ └── config.json # Project configuration
├── .claude/
│ ├── agents/ # Installed Claude subagents
│ └── skills/ # Installed Claude skills
├── CLAUDE.md # Project instructions for Claude
├── AGENTS.md # Symlink to intent/llm/AGENTS.md
└── CHANGELOG.md # Version history
# Create a new steel thread
intent st new "Title of the work"
# List all steel threads
intent st list
# Show steel thread details
intent st show ST0001
# Edit a steel thread
intent st edit ST0001Steel threads are self-contained units of work. Each gets a directory under intent/st/ with at minimum an info.md file containing the objective, status, and context.
---
verblock: "17 Feb 2026:v0.1: matts - Initial version"
intent_version: 2.3.4
status: WIP
created: 20260217
completed:
---Status values: WIP, Completed, Not Started, On Hold, Cancelled.
Generate pre-computed directory summaries for fast LLM navigation:
# Generate summaries for a directory tree
intent treeindex bin
intent treeindex lib
intent treeindex docs
# Run on all top-level dirs in parallel
intent treeindex bin & intent treeindex docs & wait
# Check for stale summaries (CI-friendly)
intent treeindex bin --check
# Remove orphaned summaries
intent treeindex bin --prune
# Force regeneration even if up to date
intent treeindex bin --force
# Control depth (default: 2)
intent treeindex lib --depth 3
# Dry run (show what would be generated)
intent treeindex lib --dry-runTreeindex files live at intent/.treeindex/<dir>/.treeindex. Always check .treeindex before exploring an unfamiliar directory. Never run on the project root -- target subdirectories.
# Create AGENTS.md for the project
intent agents init
# Create with Elixir template (AGENTS.md + RULES.md + ARCHITECTURE.md)
intent agents init --template elixir
# Update AGENTS.md with current project state
intent agents sync
# Validate AGENTS.md compliance
intent agents validate
# Force overwrite existing
intent agents init --forceintent agents sync updates AGENTS.md only. It never modifies RULES.md or ARCHITECTURE.md -- those are human-curated.
# List available and installed subagents
intent claude subagents list
# Install a subagent
intent claude subagents install elixir
intent claude subagents install --all
# Update installed subagents to latest versions
intent claude subagents sync
# Remove a subagent
intent claude subagents uninstall elixir
# Show subagent details
intent claude subagents show elixir
# Check subagent health
intent claude subagents statusSubagents install to ~/.claude/agents/<name>.md. They run in separate context windows when invoked via the Task tool.
# List available and installed skills
intent claude skills list
# Install a skill
intent claude skills install in-essentials
intent claude skills install in-elixir-essentials
intent claude skills install --all
# Update installed skills to latest versions
intent claude skills sync
# Remove a skill
intent claude skills uninstall in-elixir-essentials
# Show skill details
intent claude skills show in-elixir-essentialsSkills install to ~/.claude/skills/<name>/SKILL.md. They load into every Claude Code session automatically, shaping code as it is generated.
# Create a file index for a directory
intent fileindex lib/my_app '*.ex' -i review.index
# Include subdirectories
intent fileindex lib/my_app '*.ex' -r -i review.index
# Toggle a file as checked/unchecked
intent fileindex -i review.index -X lib/my_app/user.ex# Check project configuration
intent doctor
# Show Intent version and project info
intent version
intent info
# Initialize a new Intent project
intent init
# Upgrade project to latest format
intent upgradeThe three-file system for target projects:
Factual and stable. Generated by intent agents sync. Contains project overview, prerequisites, setup commands, installed skills and subagents. Auto-generated -- do not edit manually.
Prescriptive and opinionated. Every statement is "must" or "never". Contains coding rules, framework conventions, NEVER DO list. Human-curated -- never auto-modified by Intent.
Descriptive. Contains system overview, domain map, data flow, directory structure, decision log. Human-curated -- never auto-modified by Intent.
- Treeindex files live at
intent/.treeindex/<relative_path>/.treeindex - Check
.treeindexbefore exploring unfamiliar directories - Run on subdirectories, not the project root
- Files are committed to git (they are documentation, not cache)
- Auto-created files on first run:
.treeindexignore,README.md - Uses fingerprint-based staleness detection (SHA256 of filenames + sizes)
- Run
intent st new "Title"to create the directory and info.md - Fill in objective, context, and related threads in info.md
- Create work packages under
WP/01/,WP/02/, etc. if needed - Add task checklist to tasks.md
- Track design decisions in design.md
- Update status to
WIPin info.md - Work through tasks, checking them off in tasks.md
- Record implementation notes in impl.md
- Record design decisions in design.md
- When complete, update status and completion date
The verblock field tracks document history:
"DD Mon YYYY:vX.Y: author - Description of change"
intent init
intent agents init --template elixir
intent claude subagents install elixir
intent claude skills install --allintent treeindex bin
intent treeindex lib
intent treeindex docs
intent treeindex intentintent doctor
intent claude subagents status
intent claude skills sync- Update steel thread docs (tasks.md, impl.md) with as-built state
- Update
intent/wip.mdwith current state and what's next - Update
intent/restart.mdwith session restart context - Commit and push
- Never edit AGENTS.md directly -- it is auto-generated by
intent agents sync - Never run
intent treeindexon the project root -- target subdirectories - Never create steel thread directories manually -- use
intent st new - Never modify
.intent/config.jsonmanually -- use Intent commands - Never delete
.treeindexfiles without running--prunefirst - Never put RULES.md or ARCHITECTURE.md content in AGENTS.md -- keep them separate
- Never auto-modify RULES.md or ARCHITECTURE.md -- they are human-curated