Project-centric spec + workflow system for long-running AI coding work.
- Thread/String (糸): Used for sewing thread, yarn, or in a metaphorical sense for connections.
- Intention/Aim (意図): Often used in the context of plans, aims, or intent.
Ito is a Change Driven development tool for your terminal that brings together project-centric planning, design, specifications and tasks with an emphasis on long-running, multi-agent tasks to AI coding agents.
It's designed for the type of AI-assisted development where work spans multiple sessions, needs explicit verification criteria, and benefits from parallel subagents. The approach draws inspiration from software development best practices, Easy Approach to Requirements Syntax and RFCs adapted for the challenges of AI-assisted coding.
Ito is not a project management tool, but rather a lightweight, flexible framework for structuring and orchestrating the work itself. It provides templates, conventions, and automation to help you plan, execute, and review changes in a way that tries to align with AI agents abilites. It tries to strike a balance between structure and flexibility, providing enough scaffolding to be useful without stiffling the agent and will quite likely become irrelvant as LLMs become more capable and context-aware.
Ito centers work around a small set of versioned artifacts under .ito/.
- Change lifecycle: proposal artifacts you iterate on, then implement, then archive into the long-term spec.
- Specs and deltas: stable capability specs under
.ito/specs/, with per-change deltas under.ito/changes/<change-id>/specs/. - Tasks: a structured
tasks.mdper change, with CLI support for status/next/start/complete. - Modules: optional grouping of related changes with validation of scope and naming.
- Validation: checks that changes/modules/specs follow conventions and are internally consistent.
- Agent-facing instructions: generated instruction artifacts (
ito agent instruction ...) and tool adapters installed byito init/ito update. - Optional project planning: flexible markdown plans under
.ito/planning/via/ito-plan, with deeper research under.ito/research/. - Optional local docs server: browse
.ito/artifacts over HTTP (ito serve ..., requirescaddy).
The intended workflow is:
- Create a change.
- Write/iterate on the proposal: the “why”, design notes (if needed), spec deltas, and tasks.
- Validate the change while you iterate.
- Implement the tasks.
- Archive the change to merge approved deltas into the main specs.
At each step, the existing specs are the baseline. Changes are expressed as deltas, reviewed, then merged into .ito/specs/ when archived.
Homebrew (macOS):
brew tap withakay/ito
brew install itoPrebuilt binaries (macOS/Linux):
curl -fsSL https://raw.githubusercontent.com/withakay/ito/main/scripts/install.sh | sh
ito --versionPrebuilt binaries (Windows):
Windows builds are published.
- Manual: download the latest Windows release from GitHub Releases and put
ito.exeon yourPATH. - PowerShell: download and run
scripts/install.ps1(supports-AddToPath).
Build from source:
make rust-install
ito --versionito initThis creates Ito's working directory (default: .ito/) and installs tool-specific adapters (skills, prompts, and instruction wiring) for the tools you select.
Re-running ito init uses existing Ito config as interactive defaults. Use ito init --update to refresh managed files while preserving user content, or ito update to refresh an existing installation.
Worktree setup can be configured non-interactively:
ito init --worktrees --worktree-strategy bare_control_siblings --worktree-integration-mode commit_pr
ito update --worktrees --worktree-strategy checkout_siblingsito create module <name>
ito create change <slug> --module <module-id>
ito list
ito list --specs
ito list --modules
ito show <change-or-spec>
ito validate <change-or-spec> --strict
ito status --change <change-id>
ito tasks status <change-id>
ito tasks next <change-id>
ito agent instruction proposal --change <change-id>
ito agent instruction apply --change <change-id>
ito agent instruction archive --change <change-id>
ito archive <change-id> -yIto includes an optional multi-tenant backend API for coordinating multiple agents on shared projects. Several runtime options are available:
| Runtime | Platform | Use Case |
|---|---|---|
| Docker image | Any | Production, Kubernetes, homelab |
| Docker Compose | macOS, Linux | Containerized testing, CI |
| Homebrew service | macOS | Long-running development |
| systemd service | Linux | Long-running development, self-hosted |
Quick start (ito backend serve):
ito backend serve --init # one-time: generate and save auth tokens
ito backend serve # start the server (reads tokens from config)
curl http://127.0.0.1:9010/api/v1/healthQuick start (Docker Compose):
docker compose -f docker-compose.backend.yml up -d
curl http://127.0.0.1:9010/api/v1/healthHomebrew (macOS):
brew tap withakay/ito
brew install ito
brew services start ito-cliThe Homebrew service runs ito backend serve --service, which creates backend auth in
~/.config/ito/config.json on first start if it is missing.
systemd (Linux):
ito backend serve --init # one-time: generate auth tokens
cp services/ito-backend.service ~/.config/systemd/user/
systemctl --user daemon-reload
systemctl --user enable --now ito-backendDocker / Kubernetes:
# Docker
docker run -p 9010:9010 \
-e ITO_BACKEND_ADMIN_TOKEN=<token> \
-e ITO_BACKEND_TOKEN_SEED=<seed> \
ghcr.io/withakay/ito-backend:latest
# Helm
helm install ito-backend ./infra/helm/ito-backend/ \
--set auth.adminToken=<token> --set auth.tokenSeed=<seed>See docs/backend-client-mode.md for full documentation and infra/helm/ito-backend/README.md for the Helm chart reference.
.ito/
project.md
specs/ # Current truth (capabilities)
<capability>/
spec.md
design.md # Optional
changes/ # Proposals (deltas + tasks)
<change-id>/
proposal.md
design.md # Optional
tasks.md
specs/
<capability>/
spec.md # Delta: ADDED/MODIFIED/REMOVED/RENAMED
modules/ # Optional grouping of changes
<NNN_module-name>/
module.md
planning/ # Optional flexible project planning artifacts
<topic>.md
research/ # Optional supporting deep-dive research
<topic>/
make build
make test
make lint
make docs-site-checkBuild and serve the Zensical docs site (dark theme + Rust API docs). Python dependencies are isolated via uv and docs/pyproject.toml:
make docs-site-build
make docs-site-serveMIT