Safety-first tool to generate tool-owned project files from intent.toml
Project description
Intent
Intent keeps project automation config in sync from a single intent.toml.
- Source of truth:
intent.toml - Reads:
intent.toml,pyproject.toml - Generates tool-owned files:
.github/workflows/ci.yml,justfile
Full reference: documentation.md
Install
From PyPI:
python -m pip install intent
From source:
python -m pip install -e .
Quick Start
- Initialize config:
intent init
- Generate files:
intent sync --write
- Verify drift in CI/pre-commit:
intent check --strict
Minimal intent.toml
[intent]
schema_version = 1
[python]
version = "3.12"
[commands]
test = "pytest -q"
lint = "ruff check ."
[ci]
install = "-e .[dev]"
[policy]
pack = "default"
strict = false
Common Commands
| Command | Purpose |
|---|---|
intent init |
Create starter config. |
intent init --from-existing |
Infer Python version from pyproject.toml when possible. |
intent init --starter tox |
Generate tool-owned tox.ini starter (reuses existing intent.toml). |
intent init --starter nox |
Generate tool-owned noxfile.py starter (reuses existing intent.toml). |
intent sync |
Show config + version checks. |
intent sync --dry-run |
Preview file changes without writing. |
intent sync --write |
Write generated files. |
intent sync --write --adopt |
Adopt matching non-owned generated files. |
intent sync --write --force |
Force-overwrite non-owned generated files. |
intent check |
Detect drift without writing. |
intent check --format json |
Machine-readable drift report. |
intent doctor |
Diagnose issues with actionable fixes. |
intent reconcile --plan |
Preview Python-version reconciliation. |
intent reconcile --apply --allow-existing |
Apply reconciliation including existing-file edits. |
Safety Model
- Writes only tool-owned files in normal sync flow.
- Refuses unsafe overwrite unless explicitly requested.
- Supports explicit ownership modes:
strict,adopt,force. - Uses stable error codes (
INTENTxxx) for automation.
Pre-commit Hook
repos:
- repo: local
hooks:
- id: intent-check
name: intent check
entry: intent check --strict
language: system
pass_filenames: false
Release Note
Current package version in this repo is 0.1.0 (pyproject.toml).
If 0.1.0 is already published on PyPI, bump version before upload.
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file intent_cli-0.1.1.tar.gz.
File metadata
- Download URL: intent_cli-0.1.1.tar.gz
- Upload date:
- Size: 22.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ef734b878d28db060ead74944158d4b174bf35ddca1a906f82aaedee5b548820
|
|
| MD5 |
df871ecce60711d3f0d6b92e1b6f161f
|
|
| BLAKE2b-256 |
cfa9e8ad2404e71bb1925a5fae2e4ce32c2270c4bd7ee68d6dbcdf344be207b2
|
File details
Details for the file intent_cli-0.1.1-py3-none-any.whl.
File metadata
- Download URL: intent_cli-0.1.1-py3-none-any.whl
- Upload date:
- Size: 16.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
25bdac4d49e632ce246e830e0227a1e707d7d9e4ce65f279d9387978c4b541ed
|
|
| MD5 |
e1f90652598c7565b76491430176830b
|
|
| BLAKE2b-256 |
af56b9c85b9b4e1e86220bf6931fe667422dc21fde999558fee801e351bdb4e3
|