Type asq and you get one full-screen view over every project you have registered and every agent running in it. On the right sits a manager you task in prose. It turns your goal into contracts, spawns coders, testers and reviewers, reopens what fails, and posts READY with the PRs and the evidence — then stops, because the merge is a human's.
One line, on macOS, Linux and WSL2. It works out what the machine already has, installs only the gaps — uv, a private Python, tmux, git, gh, Node, Claude Code — registers the repo you ran it in, wires the hooks, and offers to open the UI. Run it again and it installs nothing.
payments-api · right now
Six real Claude Code sessions, one window. Click one and every key you type goes to the session itself — nothing is relayed or re-rendered as a chat. Close the UI and they all keep running.
Every session begins already oriented: a packed snapshot of the codebase, the context entries in scope, the project's prompt history. This half needs nothing else on this page. If you only ever use it, you are using aisquare correctly.
Several agent sessions work one problem as a team against a shared board — contracts, atomic claims, adversarial verification, receipts. Skip it until you actually want parallel sessions; repos that never opt in see nothing.
Send sessions to an AISquare workspace and each becomes a Run you can read back — prompts, tool calls, tokens, cost, plus your prompts and board events. Off unless you ask, and a launch never waits on it.
the layer that works on its own
Connecting Claude Code writes five lifecycle hooks into its settings — merged carefully, never clobbering yours. From then on every session opens on a directive pointing at a structure-only skeleton of the repo, your in-scope context, and what you have asked for here before.
the five commands that matter
aisquare remember "prefer pytest over unittest"Sticks everywhere, across every project.
aisquare context add "run make check" --projectSticks in this repo only.
aisquare context search pytestFull-text search over both pools.
aisquare whyWhat the last session was actually shown, and why.
aisquare doctorIs everything wired — and the exact fix if not.
Nothing else is required reading. Context lives in two pools — user follows you everywhere, project is scoped to one repo — both searchable, exportable and injected consistently.
aisquare log is your own captured prompts — how you tend to ask, available to the next blank session.
Decisions and outcomes distil into a per-project brain off the hot path. recall "what did we decide about auth?" searches it across weeks.
the loop you are buying
The manager talks to its agents only through the board. That is the whole coordination model: no relaying, no forwarding, and no place for a decision to live where you cannot read it back.
Every task carries an objective, a why, acceptance criteria and boundaries. A coder blocks instead of guessing when a task has no usable contract.
A single UPDATE, race-tested: exactly one winner. Leases renew from the session's own hooks, so a dead session hands its work straight back.
task next only hands out work whose dependencies are done. A rollback rehearsal cannot start before the migration it rehearses.
Named board states with structured payloads, so a watcher keys on a field and a note saying NOT READY can never fire it.
every role on the right model, and it is checked
A ladder per role, strongest rung first. claude --model silently substitutes the default when a model is not on the account, so the harness verifies the reply before trusting a rung and demotes only on proof — an outage keeps your pick and labels it unverified rather than quietly downgrading your manager. The validator's +1 offset exists because a gate must outrank the work it checks.
what it actually looks like
Each agent is a Claude Code process running as a window on a tmux server that is ours alone — your own tmux sessions, config and prefix key are never touched. The UI is a view over that server and the board, which is why closing it changes nothing.
trust, direction, and the next hour
Every action the UI takes is a plain CLI command, and every command takes --json. Piped or under TERM=dumb, no script ever meets a full-screen app.
Writes print ✓ … seq N. team verify 42 asks the board whether it is really there and exits 0 or 1 — and a receipt on another board is an honest not-found that names it.
Unfinished commands are hidden from --help and exit 70 saying so, rather than half-working. What the help lists, works.
The Collective Intelligence server's JSON Schemas are vendored byte-for-byte, and every request this build can emit is validated against them in CI — never against our own reading of them.
Not speculative: leases already release on session end, and a seat is already just a binary plus its environment.
Collective Intelligence runs against a live staging server today, off by default, and measures nothing yet. We will say when that changes.
a pilot is one repository and one afternoon
Requirements are what your developers already have: a Claude Code login, tmux 3.2+, git, gh. Nothing to deploy, no account to create, and no traffic leaves the machine unless you switch that on deliberately.
what we would like from you
One repository with real parallel work in it, and a team willing to talk to a manager instead of five terminals for an afternoon. We run the loop on a live goal and hand back the transcript, the board and the Runs.
pypi.org/project/aisquare-cli
github.com/AISquare-Studio/aisquare-cli
MIT licensed · screens captured from the shipping UI at v0.6.0.