Human-in-the-loop project management for agentic development
Project description
Tillr
Human-in-the-loop project management for agentic software development.
Tillr sits between humans and AI agents. It defines structured iteration cycles with human checkpoints, so agents do the heavy lifting while humans retain steering authority. Everything is captured in a local SQLite database.
Install
# Homebrew
brew tap mschulkind-oss/tap && brew install tillr
# PyPI (works in any Python environment)
pipx install tillr # or: uvx tillr
# Go
go install github.com/mschulkind-oss/tillr/cmd/tillr@latest
# From source (requires Go 1.24+, Node 22+, pnpm)
git clone https://github.com/mschulkind-oss/tillr.git && cd tillr && just install
Quick Start
# Initialize a project
cd ~/my-project
tillr init my-project
# Add features
tillr feature add "User authentication"
tillr feature add "API rate limiting"
# Start an iteration cycle
tillr cycle start collaborative-design <feature-id>
# Launch the web dashboard
tillr serve
CLI Overview
tillr init <name> Initialize a new project
tillr status Project overview
tillr feature add <name> Add a feature
tillr feature list List features (--status, --json)
tillr feature show <id> Feature details with history
tillr cycle start <type> <id> Start an iteration cycle
tillr cycle status Active cycle progress
tillr cycle advance --approve Advance past a human checkpoint
tillr next --json Get next work item (for agents)
tillr done --result "..." Complete current work
tillr fail --reason "..." Report failure
tillr serve Single-project web dashboard
tillr daemon Multi-project server daemon
See docs/guides/user-guide.md for the full guide.
Multi-Project Daemon
Run Tillr as a system service managing multiple projects:
# Configure projects
tillr daemon init ~/code/project-a ~/code/project-b
# Install systemd user service
just install-service
# Deploy (build + restart)
just deploy
The daemon serves all projects on a single port with a project switcher in the UI.
Development
just dev # Backend (air live-reload) + Vite frontend
just check # Format + lint + test
just build # Build binary to bin/tillr
See CONTRIBUTING.md for full development setup.
License
Apache 2.0 — see LICENSE.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
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 tillr-0.1.3-py3-none-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: tillr-0.1.3-py3-none-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 15.0 MB
- Tags: Python 3, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5975e0a5b97dceb4b1f218c571909b8ab56e55aef2b33bbfe93faed2de4241e5
|
|
| MD5 |
8b621250b904786a5cbdb597aaf2882f
|
|
| BLAKE2b-256 |
7814d087e1250928ce039a7f44c3369a04144be62f29993af42182f65da860e8
|
File details
Details for the file tillr-0.1.3-py3-none-musllinux_1_2_aarch64.whl.
File metadata
- Download URL: tillr-0.1.3-py3-none-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 14.0 MB
- Tags: Python 3, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
758e457ac613fc98728e37c6fd027b4d2bff3d88c9b86e888b8df8618019cadc
|
|
| MD5 |
2224c271e020b1085e21753b233cf153
|
|
| BLAKE2b-256 |
081a3662f055528fef276d84523b89432da8617a4f3c083374389fb52fb0e22f
|
File details
Details for the file tillr-0.1.3-py3-none-manylinux_2_17_x86_64.whl.
File metadata
- Download URL: tillr-0.1.3-py3-none-manylinux_2_17_x86_64.whl
- Upload date:
- Size: 15.0 MB
- Tags: Python 3, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6c6890b1ed0d176f513d784951102f1fde76a3c2ed9e3208b6437fa40baab703
|
|
| MD5 |
bd741e6a1926989701c202a0b4d862c0
|
|
| BLAKE2b-256 |
33e529e782575013b4f1565cd919a9534975a6b6111de240f0a356bfc5a1ae74
|
File details
Details for the file tillr-0.1.3-py3-none-manylinux_2_17_aarch64.whl.
File metadata
- Download URL: tillr-0.1.3-py3-none-manylinux_2_17_aarch64.whl
- Upload date:
- Size: 14.0 MB
- Tags: Python 3, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8f3868ff9e7dd3b307e78f9c62e1bb86d7e21852483e1114657382966e8fe75b
|
|
| MD5 |
295ab17aee98ea404450e1a090f4d6f9
|
|
| BLAKE2b-256 |
103bd079b674e4525c11b09c4df83b5185fcf7301b6eb9e2cad97408ac84ded1
|
File details
Details for the file tillr-0.1.3-py3-none-macosx_11_0_arm64.whl.
File metadata
- Download URL: tillr-0.1.3-py3-none-macosx_11_0_arm64.whl
- Upload date:
- Size: 14.3 MB
- Tags: Python 3, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e7d11ab69575bdac63b603b26da15e7e3a10e9253c21af39d650cf394e6cb992
|
|
| MD5 |
bf4737f371979be8abea9b9a7234e228
|
|
| BLAKE2b-256 |
a40e352fbd180c9261f8c2f5faf8cbf1a06976e1e5f0bceaccb2fe6d3b1b84fb
|
File details
Details for the file tillr-0.1.3-py3-none-macosx_10_9_x86_64.whl.
File metadata
- Download URL: tillr-0.1.3-py3-none-macosx_10_9_x86_64.whl
- Upload date:
- Size: 15.2 MB
- Tags: Python 3, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c4bd94b01a0461c063215febb3479fe06c9da235ba46d2df8603459aa9846ba0
|
|
| MD5 |
3765520fd07e578b7728f5b9e0202a9b
|
|
| BLAKE2b-256 |
c88651d5fcc39f692ba50c1eb2b8e873b69aaa9ce819d3d67fcd23f5ecc09fac
|