Skip to main content

Intent

中文 | English

tests PyPI Python 3.9+ status: beta license: MIT

Your coding agent forgets where you left off. Intent keeps the goal, the latest verified checkpoint and the standing decisions in your project, so the next session continues the work instead of rediscovering it.

Git records how code changed. Intent records why, what is verified, and what comes next.

Monday's session records a checkpoint. On Tuesday a new session is told to resume through Intent and picks up the goal, the verified state, the rule and the next step.

See it on a real project: browse Intent's own history on IntHub. It holds the goals, checkpoints and decisions behind this repository, and it needs no sign-in.

The idea

You now shape code through agents. The code lands in Git, but the reasoning stays in a chat that ends with the session, so the next agent starts blind and you explain everything again.

Intent adds a small layer of semantic history next to your code, built around one deliberate imbalance:

  • Recording stays light. The agent saves a checkpoint only when something meaningful is verified. A quiet turn writes nothing.
  • Resuming is complete. One command gives the next session the goal, what is verified, the boundary, the next step and the rules that still apply.

The history is plain JSON in .intent/, so any agent can read it, and so can you. Nothing leaves your machine unless you choose to share it.

Quick start

# 1. Install the CLI (macOS / Linux). Re-run any time to upgrade.
curl -fsSL https://raw.githubusercontent.com/dozybot001/Intent/main/scripts/install.sh | bash

# 2. Add the agent skill (needs Node.js; -a cursor and others also work)
npx skills add dozybot001/Intent -g -a claude-code -a codex -y

# 3. Turn it on in a project (Git is optional)
cd your-project
itt init

Trust the project hooks once: in Claude Code, trust the folder and confirm both hooks in /hooks; in Codex, open /hooks. Then work as usual. To pick up later, in any session, say:

Resume this project through Intent.

Windows (PowerShell): irm https://raw.githubusercontent.com/dozybot001/Intent/main/scripts/install.ps1 | iex. With pipx or uv: pipx install intent-history or uv tool install intent-history. Requires Python 3.9+.

The names, in one line: Intent is the project, itt is the command, intent-history is the package, and IntHub is the optional web app.

Try it by hand

itt init
itt intent create "Add Apple Pay to the web checkout" --why "Apple Pay users convert 2x on mobile Safari"
itt snap create "Payment sheet confirms PaymentIntents in test mode" \
  --next "Handle shipping-method changes server-side" --blocker none
itt decision create "Payments go through the PaymentIntent API only" --why "One SCA path"
itt inspect
Active
  intent-001  Add Apple Pay to the web checkout
              Next         Handle shipping-method changes server-side
              Blocker      none
              Verified     Payment sheet confirms PaymentIntents in test mode
              snap-001 · 2026-10-30 00:25 · 1 snap

Decisions
  decision-001  Payments go through the PaymentIntent API only

This is what a new session reads. itt log lists checkpoints like git log, and itt show ID shows one object with its relations. In a terminal itt prints text; agents and scripts get JSON.

Why not just AGENTS.md or agent memory?

You may already use It holds Intent adds
AGENTS.md, CLAUDE.md, Cursor rules How to work in this repository Where the work stands: current goal, verified state, next step, blocker
Built-in agent memory Per-tool, opaque notes Plain JSON in your project that any agent (and you) can read
Issues, PRs, ADRs Team plans and reviews Checkpoints captured during the work, plus decisions that attach to new goals automatically
Git history What changed in the code The reasoning, and the boundary of what is actually done

What it records

Three kinds of objects, all append-only:

Object Captures
Intent One goal and why it matters
Snap A verified checkpoint: what is verified, the boundary, the next step, any blocker
Decision A durable rule that binds future goals, such as "payments go through PaymentIntents only"

Intents can be related: part of, derived from, succeeds, depends on, conflicts with. IntHub's Flow page draws how goals branch, continue and converge (Intent flow).

Works with

Host Support
Claude Code Skill (or plugin: /plugin marketplace add dozybot001/Intent, then /plugin install intent-cli@intent) plus project hooks: itt init --host claude-code. See setup and limits.
Codex Skill plus project hooks: itt init --host codex. See setup and limits.
Cursor and other agents Skill instructions only, best effort

Hooks open each turn with the current state and check at the end that the turn was closed. They are written to project-local files and never enable other projects. itt maintenance off turns recording off for one project.

What stays on your machine

  • .intent/ holds plain JSON. itt init excludes it from Git in this clone only, because it may contain internal reasoning. Commit it deliberately if your team wants it in Git.
  • Each hooked turn adds a compact opening context with a hard size cap, and one itt maintenance close call.
  • itt touches the network only when you run push, pull or auth.

Share with IntHub (optional)

IntHub's Flow page: goals as cards, with their parts, derivations and decisions
  • Locally: itt hub start, then itt remote add origin http://127.0.0.1:7210 --project NAME and itt push.
  • Hosted: inthub.tenon.asia, operated by 榫卯 Tenon AI. Run itt auth login, approve the code in the browser, then itt push. Each account and team can keep 100 projects and 1 GB of history. Projects are private by default, can be shared with a team (--project TEAM/NAME), and can be made public in their settings. See teams and sharing and the privacy notice.
  • Restore elsewhere: itt init, itt remote add origin URL --project NAME, itt pull.

Today a project has one shared history, and push and pull fast-forward. If two copies record in parallel, itt status reports diverged and neither side changes until you run itt pull --rebase. Git-style branches and merges are the next milestone (design).

Status

Intent is beta (7.x). Within a major version the .intent/ format and the JSON output stay compatible; breaking changes come with a new major version and a migration. Recording and continuation flows are covered by tests on Python 3.9 to 3.14. Whether Intent measurably reduces re-explaining in real work is still being tested with natural continuation cases.

FAQ

Does it replace Git, issues or docs? No. It records the reasoning and the state of work that those tools don't.

What if the agent records noise? Zero writes is a valid outcome. The skill records only verified milestones, never per command or per file. Objects are append-only, so corrections are new Snaps.

Is pip install intent-cli this project? No, that PyPI name belongs to an unrelated tool. Intent is intent-history.

Windows? The CLI and installer support Windows. Claude Code hooks need Git Bash.

How do I remove it? In each project run itt maintenance off --remove-hooks, and rm -rf .intent if you also want its history gone. Then run rm -rf ~/.local/share/intent ~/.local/bin/itt and npx skills remove intent-cli -g. An IntHub token stays valid until it expires; revoke it under Settings.

Docs

Contributing · Code of conduct · Security · MIT License

Metadata

Release files for intent-history 7.6.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for intent-history 7.6.8
File Size Uploaded Provenance Actions
intent_history-7.6.8.tar.gz 1.6 MB With provenance Details for intent_history-7.6.8.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for intent-history 7.6.8
File Interpreter ABI Platform Actions
intent_history-7.6.8-py3-none-any.whl Python 3 none any Details for intent_history-7.6.8-py3-none-any.whl

Total release size: 2.4 MB

Release files / intent_history-7.6.8.tar.gz

Download URL intent_history-7.6.8.tar.gz
Size 1.6 MB
Tags Source
SHA-256 checksum
How to use checksums
000db82c57327310b52ec3b5d56e96cddc3ea9dafb96642d0009ed5bbdce91ce
BLAKE2b-256 checksum
How to use checksums
da8d34f42a4c0caee1fe0b24403a2d314678d60bb85d608cb355629203acd5e7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 31, 2026.

Transparency log

Release files / intent_history-7.6.8-py3-none-any.whl

Download URL intent_history-7.6.8-py3-none-any.whl
Size 764.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4d98425bc28290842af2b39c50efbc7c2c4b9861c8064cfb752246ec625d3bc2
BLAKE2b-256 checksum
How to use checksums
a961d80b0b026bc7e2584ce71fcbd13614da059a0c8209f938e63cccf0f2da8a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 31, 2026.

Transparency log

Security for intent-history 7.6.8

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for intent_history-7.6.8.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 31, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page