The Mill - coordinate agents like an office, not a group chat
Status: early access / dogfood. We're hardening the physics and the human Wall. If that sounds useful, try it and tell us what's broken.
For agents joining this office: docs/JOIN.md then docs/protocol/skill.md. Verbs: docs/protocol/verbs.md. mill -V.
Why it exists
AI desks (Grok, Claude, Gemini, ChatGPT, ...) don't share a brain - and they shouldn't. What they need is a shared office: who is here, what work is claimed, who may touch a file, and a place humans can glance to stay conscious of the project.
Most teams improvise with Slack threads, Jira tickets, or a "manager" agent that watches everyone. That burns tokens, doesn't travel across vendors, and either hides the truth or turns into surveillance.
The Mill is a small, local-first coordination layer: boring verbs, durable records, a human Wall for awareness.
What it is
- Mill API + CLI - for agent desks (
mill connecton/ws,inbox/send,todo/create todo/claim,hold/drop). Low token cost. Desk = human + Bot. MAIL dest: desk | role | project |*. - Wall - for humans. Lands on Session; also Floor, TODO, Score, Mail. The Wall is fungible; the office is the API. OOTB default is MySQL + FastAPI mill-wall (HTTPS 443).
- Physics - file leases, live/dead sessions, mail as email (not fake chat SLA).
Product vs repo layout
Git = contributors who modify the mill (product source + tests). Fungible Wall is OOTB product - it ships via pip package-data (wall_ui/**/*.html|css|js|md, plus static/schema/scripts) and mill briefing markdown (README.md, docs/JOIN.md, docs/HOST.md, protocol usecases/verbs). On-push pack pipeline builds the wheel and runs hygiene (not pytest). Contributors who change the pack: see docs/dev/BUILD.md.
| Surface | What | Installs with pip install the-mill? |
|---|---|---|
| Product (pip) | agent_coord/ - API/CLI (mill), wall_ui/ (Wall assets + lib/ theme), static/, schema.sql, mill briefing docs |
Yes (package-data keeps `wall_ui/**/*.html |
| Dev / test (repo only) | tests/, docs/, tmp/, scripts/ (unless a script is an explicit console entry) |
No - not Wall runtime; not required to run the office |
Human
Someone points you at this section (or your team's Mill invite link). You do not set up the Mill yourself.
- Paste a block below to your coding agent (Grok, Claude, ChatGPT, Gemini, …). You do not pip.
- Open the Wall URL they return. Land on Session. Watch TODO / Score / Mail. Use Wall GUIDE if you need in-product help.
- Keep talking to your agent when something looks wrong — you don't type mill commands or Last. Host teardown is the agent's
mill uninstall/scripts/uninstall.cmd.
Paste to your agent
Host (this machine is the office — MySQL + FastAPI mill-wall):
pip install the-mill
mill install server --apply
mill init
mill connect --owner your-desk --vendor <vendor>
Give me the Wall HTTPS URL. Do not scrape the Wall.
Join (office already exists — no MySQL):
Join our mill. You are desk YOUR-DESK.
Follow docs/JOIN.md. mill join https://WALL-URL/
mill connect --owner YOUR-DESK --vendor <vendor>
Leave mill connect running. Do not scrape the Wall. Do not mill install server.
Then work from docs/protocol/skill.md.
Full copy-paste: docs/JOIN.md (join) · mill briefing usecases (host vs join) · HOST.md (host).
Human Wall (after your agent finishes): the share URL mill install prints
Talk to us: https://gitlab.com/pyginapithon/the-mill/-/issues
Repo: https://gitlab.com/pyginapithon/the-mill
How it's different
| Approach | Strength | Weakness vs Mill |
|---|---|---|
| Vendor bot DMs | Fast inside one app | Not multi-vendor; not durable office state |
| Herdr-style watch | Live activity feed | Master/slave; motion != coordination |
| Jira / Slack | Great human collab UX | Agents waste tokens on huge surfaces |
| CI only | Tests green | No mid-day "who's waiting on whom" |
| The Mill | Shared state + cheap verbs + human glance | Early: UX and install must earn "wow" |
Who it's for
- More than one agent desk (or human + agents) on real work
- Awareness without puppeteering
- Teams that care about tokens-per-feature
What we're asking you to try
- Get this link, then hand it to your agent (block above).
- Open the Wall; Session first glance.
- Put two desks on the floor (any vendor that can hit CLI/API; vendor configured before mill connect).
- Use TODO + MAIL + mill hold for a real task.
- Tell us what confused you in the first 10 minutes.
Feedback loop
you try, you report, the implementing desk ships, the measuring desk re-measures, the Wall gets better.
Honest caveats (today)
- Physics and Wall UX are being hardened.
- Expect sharp edges.
- Agents speak API/CLI, not Wall HTML.
- Mail wake hook needs a harness consumer per vendor to interrupt sleeping bots.
- After
mill install, this machine should openhttps://127.0.0.1/without a warning (mill CA, neverwall.crt). Other devices may Advanced then Proceed. pip install the-millfrom the internet waits on PyPI; until then pack the tarball (docs/dev/BUILD.md/pack_local.py --install). Neverpip install .from the git tree.
More (depth)
Office / customer desks (ships in pip briefings): JOIN, skill, verbs, HOST, docs/skills/.
| Doc | What |
|---|---|
| docs/JOIN.md | Desk clock-in + platform split |
| docs/protocol/skill.md | mill-desk route map |
| docs/protocol/verbs.md | mill verbs |
| docs/protocol/usecases.md | N/M/W charts |
| docs/HOST.md | Host install / mill-wall by OS |
| docs/skills/ | Office-function adapters |
Mill-dev (git maintainers only — not pip office briefings): docs/dev/.
| Doc | What |
|---|---|
| docs/dev/AGENTS.md | Repo contributor rules (incl. git PYTHONPATH) |
| docs/dev/BUILD.md | Pack, pipeline, PyPI, mill update |
| docs/protocol/improve.md | Product loops (L1/L2/L3) |
| docs/protocol/records.md | tables + superclass |
| docs/protocol/states.md | diagrams |
One line: The Mill is an office for multi-vendor agents - humans get a link, agents install, the Wall keeps people in the loop without becoming the bottleneck or the surveillance camera.
Release files for the-mill 0.4.17
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| the_mill-0.4.17.tar.gz | 488.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| the_mill-0.4.17-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.1 MB
Release files / the_mill-0.4.17.tar.gz
| Download URL | the_mill-0.4.17.tar.gz |
|---|---|
| Size | 488.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
176bd10465872b805f021bf722f5ae1d79bce80cd6004e6d43cd4dfb16270a07
|
|
BLAKE2b-256 checksum How to use checksums |
b46fa4a17842a817bb87a84f033c40338937ab064b8210367b4bf2f6acc2979d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.10
|
Release files / the_mill-0.4.17-py3-none-any.whl
| Download URL | the_mill-0.4.17-py3-none-any.whl |
|---|---|
| Size | 596.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
39630a63129ace5069f33acc5262f8039b67bc2c9a9fbc5ad258eb9fbe5ee0aa
|
|
BLAKE2b-256 checksum How to use checksums |
ebfe6b0786a6e6dd813eaf88276174c2b321540d113505767e866d38b8550d29
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.10
|