Skip to main content

Semantic history for agent-driven development. Records what you did and why.

Project description

English | 简体中文

Intent

Git records code changes. Intent records why.

The Problem

Agent-driven development produces code fast, but reasoning disappears between sessions. Every new session starts from zero — the agent doesn't know what problem was being solved, what was tried, or why a path was chosen.

What's Missing

Git records what changed. Commit messages and comments add some context. But three things consistently fall through:

Goal continuity. Commits are isolated snapshots. There's no structure connecting five commits to one task, or saying "this is what we're trying to accomplish."

Decision rationale. Why JWT over cookies? Why 15-minute expiry? This rarely makes it into commit messages — and when it does, it's unstructured text that agents must parse and guess from.

Work state. git status can be clean while a task is half-done. The next session has no signal that work was interrupted or what comes next.

The Solution

Intent adds a .intent/ directory to your repository — structured, machine-readable metadata that captures semantic history alongside code history.

.git/    ← how code changed
.intent/ ← what you were doing and why

Two objects: intent (the goal) and snap (a step taken, with rationale). All JSON. Any agent platform can read it.

What changes

Without .intent/ — new agent session opens. It reads git log and source code. Understands what the code does now, but doesn't know the JWT migration was for compliance (might revert it), doesn't know the refresh token is intentionally incomplete, can't tell there's unfinished work. Asks: "What would you like me to do?"

With .intent/ — new agent session opens. Runs itt inspect. Sees an active intent ("Migrate auth to JWT"), last snap ("Add refresh token — incomplete"), and rationale ("token rotation not done, security priority"). Says: "I'll implement the token rotation next."

The difference: 10 seconds of reading structured metadata vs. minutes of re-explaining context.

Core Loop

start → snap → done
  • start — open an intent (what problem you're solving)
  • snap — record a snap (what you did and why)
  • done — close when complete

Example

pipx install intent-cli-python
itt init                    # creates .intent/
itt start "Fix login timeout"
itt snap "Increase timeout to 30s" -m "5s too short for slow networks"
git add . && git commit -m "fix timeout"
itt done

Why Not Just…

Approach What it does well What falls through
Git commit messages Records what changed per commit No goal structure across commits; rationale is afterthought; no work-in-progress state
CLAUDE.md / .cursorrules Gives agents project-level instructions Static — doesn't track active tasks, decisions, or progress; must be manually maintained
TODO comments Marks incomplete work in-place Scattered across files; no lifecycle; no rationale; agents must grep and guess priority
Notion / Linear / Jira Rich project tracking for humans External to the repo; agents can't read them without API integration; overhead is high for solo/agent workflows
Agent memory (e.g. Claude Code memory) Persists user preferences across sessions Tied to one platform; not versioned with code; not shareable across agents or teammates
Ad-hoc context files (e.g. context.md) Quick, zero-tooling setup No schema — every project invents its own format; no lifecycle management; grows stale silently

Intent occupies a specific gap: structured, versioned, task-scoped context that lives in the repo and works across any agent platform.

  • Structured — JSON objects with defined schema, not free text an agent must interpret
  • Task-scoped — an intent has a lifecycle (open → done); snaps are ordered steps, not a pile of notes
  • Versioned.intent/ is committed alongside code; git blame works on your decisions too
  • Platform-agnostic — any agent that reads JSON can use it; no vendor lock-in
  • Minimal — two objects (intent, snap), one CLI, zero dependencies; adds seconds to a workflow, not minutes

The closest alternative is writing a context.md by hand. Intent trades that flexibility for consistency: a schema agents can rely on without per-project prompt engineering.

Where This Is Going

.intent/ is a protocol, not just a tool.

  1. Agent memory — agents read .intent/ on startup, recover last session's context in seconds
  2. Context exchange.intent/ becomes the standard way to hand off work between agent platforms
  3. Network effects — when enough repos contain .intent/, new tooling emerges: intent-aware review, decision archaeology, semantic dashboards

Install

Users:

pipx install intent-cli-python

Configure your agent: Install the Intent skill so your agent knows the workflow:

npx skills add dozybot001/Intent

Contributors:

git clone https://github.com/dozybot001/Intent.git
cd Intent
python3 ./itt   # dev entry point, no install needed

Commands

Command Purpose
itt init Initialize .intent/
itt start <title> Open an intent
itt snap <title> [-m why] Record a snap
itt done Close the active intent
itt inspect Machine-readable workspace snapshot
itt list <intent|snap> List objects
itt show <id> Show a single object
itt suspend Suspend the active intent
itt resume [id] Resume a suspended intent
itt adopt [id] Adopt a candidate snap
itt revert Revert the latest snap

Documentation

  • CLI spec — objects, commands, JSON output contract
  • Dogfooding — how we built Intent with Intent

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

intent_cli_python-0.5.0.tar.gz (16.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

intent_cli_python-0.5.0-py3-none-any.whl (14.3 kB view details)

Uploaded Python 3

File details

Details for the file intent_cli_python-0.5.0.tar.gz.

File metadata

  • Download URL: intent_cli_python-0.5.0.tar.gz
  • Upload date:
  • Size: 16.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for intent_cli_python-0.5.0.tar.gz
Algorithm Hash digest
SHA256 e568601781baf8695492f065be2206725bda0955959829e61a2dca8ef6e26bc7
MD5 a7731a1bd74ffbb1300511439bd95eac
BLAKE2b-256 4a0c2d508c45630b373c93ebdfc1e716bedb673c469ee4197f87bc0d17600075

See more details on using hashes here.

File details

Details for the file intent_cli_python-0.5.0-py3-none-any.whl.

File metadata

File hashes

Hashes for intent_cli_python-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 299247d08e059a00b597a4dc04ad74da10f1a5671191379535bf117ab8954420
MD5 a5d6787e6745bc60d9bc51fabfcc6e36
BLAKE2b-256 2350198e21068e338ba9762194b144decb3ac691f80a2bca22eaaa966335a2ed

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page