Skip to main content

machinate

A lightweight CLI to plan work with coding agents. It reads and writes a .machi/ directory in your project, which holds four kinds of plain Markdown documents:

  • plans: units of work with a goal and a status (draft / active / done)
  • tasks: the concrete steps that make up a plan
  • context: background documents an agent needs while working
  • docs: project-level reference material shared across plans

One state file (.machi/machinate.toml) records project settings and the current plan. There is no server or database: documents stay editable by hand, and search (machi search) runs locally through Tantivy.

Install

uv tool install machinate   # or: pipx install machinate

Requires Python 3.14.

Usage

machi init                         # create .machi/ in this project
machi plan add auth                # create a plan
machi plan select auth             # make it the current plan
machi task add 01-login 02-logout  # create two tasks on the current plan
machi task list                    # show the tasks
machi context add spec             # add a plan context document
machi doc add architecture         # add a project-level doc
machi plan show auth               # show the full plan

That leaves this tree on disk:

.machi/
├── machinate.toml             project name and the selected plan
├── docs/
│   └── architecture.md        machi doc add architecture
└── plans/
    └── auth/
        ├── plan.md            machi plan add auth
        ├── tasks/
        │   ├── 01-login.md    machi task add 01-login 02-logout
        │   └── 02-logout.md
        └── context/
            └── spec.md        machi context add spec

Every document is Markdown with YAML frontmatter, so it stays diffable and editable by hand. machi plan select only rewrites machinate.toml; each add command creates one file, and task and context names may contain subdirectories to nest documents.

machi search searches every plan and all docs through Tantivy, with fuzzy and prefix matching on by default:

  • machi search "login OR logout" searches all plans and docs.
  • machi search '"bearer token"' -p auth matches a phrase in one plan.
  • machi search -p auth --glob 'tasks/**/*.md' filters by path, ANDed with the query.

Plan commands take the plan name positionally (machi plan show auth). -p PLAN narrows tasks, context, or search to one plan; -P PROJECT_DIR a project, --format json for agents.

Use with coding agents

Add the agent instructions to your project, so agents know how to use machinate:

machi instructions >> AGENTS.md

When AI_AGENT (set by Claude Code and other agents that follow that convention) or MACHI_AI_AGENT is set, machinate runs in agent mode: plan-scoped commands need an explicit plan, plan select is disabled so parallel sessions can't retarget each other, and output defaults to JSON. Errors carry a machine-readable code, and machi schema <command> prints the JSON shape of each result.

Development

See CONTRIBUTING.md for setup, checks, and releasing.

Metadata

Release files for machinate 0.2.0

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

Source distribution (sdist)

Source distribution for machinate 0.2.0
File Size Uploaded
machinate-0.2.0.tar.gz 43.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for machinate 0.2.0
File Interpreter ABI Platform
machinate-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 104.8 kB

Release files / machinate-0.2.0.tar.gz

Download URL machinate-0.2.0.tar.gz
Size 43.6 kB
Tags Source
SHA-256 checksum
How to use checksums
d45a6c1bd21a92db20d0112ea588ff56430bd55b3cd1af003ba80f2ac126940d
BLAKE2b-256 checksum
How to use checksums
5ab98bd7751d8f1772029d5f60fb5af1c49b28f51c2c00c597a4e23a710a7782
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.21 {"installer":{"name":"uv","version":"0.12.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / machinate-0.2.0-py3-none-any.whl

Download URL machinate-0.2.0-py3-none-any.whl
Size 61.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
15eda9e15328b3a33c8c4fe684e8b415d509678b24aacf18f4f3a0b0a78220e3
BLAKE2b-256 checksum
How to use checksums
2024a75b91eece1642c227380d331900e6d8063c5214c023d8f8ae5f982a3679
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.21 {"installer":{"name":"uv","version":"0.12.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

0.2.1

2 release files

This release

0.2.0 This release

2 release files

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