Metadata-Version: 2.5
Name: aisquare-cli
Version: 0.9.2
Summary: One terminal over your projects and your coding agents: task a manager in plain words, and it runs the coders, testers and reviewers for you.
Project-URL: Homepage, https://aisquare.studio
Project-URL: Repository, https://github.com/AISquare-Studio/aisquare-cli
Project-URL: Issues, https://github.com/AISquare-Studio/aisquare-cli/issues
Project-URL: Changelog, https://github.com/AISquare-Studio/aisquare-cli/blob/main/CHANGELOG.md
Author-email: AISquare <anmol@aisquare.studio>
License-Expression: MIT
License-File: LICENSE
Keywords: agent-memory,agent-orchestration,ai-agents,claude-code,cli,coding-agents,developer-tools,multi-agent,terminal,tmux,tui
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Operating System :: MacOS
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Software Development
Classifier: Typing :: Typed
Requires-Python: >=3.11
Requires-Dist: certifi>=2024.7.4
Requires-Dist: cryptography>=42
Requires-Dist: ngrok>=1.4; sys_platform == 'darwin' or (sys_platform == 'win32' and (platform_machine != 'ARM64' or python_version >= '3.12')) or (sys_platform == 'linux' and (platform_machine == 'x86_64' or platform_machine == 'aarch64' or platform_machine == 'armv7l'))
Requires-Dist: pydantic>=2.13.4
Requires-Dist: pyyaml>=6.0
Requires-Dist: rich>=14.3
Requires-Dist: segno>=1.6
Requires-Dist: starlette>=0.40
Requires-Dist: textual<9,>=8.2
Requires-Dist: tomli-w>=1.2.0
Requires-Dist: truststore>=0.10
Requires-Dist: typer>=0.26.8
Requires-Dist: tzdata; sys_platform == 'win32'
Requires-Dist: uvicorn>=0.30
Requires-Dist: websockets>=12
Provides-Extra: code
Requires-Dist: tree-sitter-javascript>=0.25; extra == 'code'
Requires-Dist: tree-sitter-typescript>=0.23; extra == 'code'
Requires-Dist: tree-sitter>=0.25; extra == 'code'
Provides-Extra: dev
Requires-Dist: anthropic>=1; extra == 'dev'
Requires-Dist: hatchling>=1.30.1; extra == 'dev'
Requires-Dist: httpx>=0.27; extra == 'dev'
Requires-Dist: jsonschema>=4.18; extra == 'dev'
Requires-Dist: mcp<3,>=2.1; extra == 'dev'
Requires-Dist: mypy>=1.10; extra == 'dev'
Requires-Dist: pyotp>=2.9; extra == 'dev'
Requires-Dist: pytest-split>=0.11; extra == 'dev'
Requires-Dist: pytest-xdist>=3.6; extra == 'dev'
Requires-Dist: pytest>=9.1.1; extra == 'dev'
Requires-Dist: ruff>=0.5; extra == 'dev'
Requires-Dist: textual<9,>=8.2; extra == 'dev'
Requires-Dist: tree-sitter-javascript>=0.25; extra == 'dev'
Requires-Dist: tree-sitter-typescript>=0.23; extra == 'dev'
Requires-Dist: tree-sitter>=0.25; extra == 'dev'
Requires-Dist: types-jsonschema>=4.18; extra == 'dev'
Requires-Dist: types-pyyaml>=6.0; extra == 'dev'
Provides-Extra: experiment
Provides-Extra: explainability
Requires-Dist: aisquare[explainability]>=1.1; extra == 'explainability'
Provides-Extra: gate
Requires-Dist: pyotp>=2.9; extra == 'gate'
Provides-Extra: llm
Requires-Dist: anthropic>=1; extra == 'llm'
Provides-Extra: remote
Provides-Extra: serve
Requires-Dist: mcp<3,>=2.1; extra == 'serve'
Provides-Extra: tui
Requires-Dist: textual<9,>=8.2; extra == 'tui'
Provides-Extra: voice
Requires-Dist: faster-whisper>=1.0; extra == 'voice'
Requires-Dist: segno>=1.6; extra == 'voice'
Requires-Dist: starlette>=0.37; extra == 'voice'
Requires-Dist: uvicorn>=0.30; extra == 'voice'
Requires-Dist: websockets>=12; extra == 'voice'
Description-Content-Type: text/markdown

# aisquare

[![PyPI](https://img.shields.io/pypi/v/aisquare-cli.svg)](https://pypi.org/project/aisquare-cli/)
[![Python versions](https://img.shields.io/pypi/pyversions/aisquare-cli.svg)](https://pypi.org/project/aisquare-cli/)
[![CI](https://github.com/AISquare-Studio/aisquare-cli/actions/workflows/ci.yml/badge.svg)](https://github.com/AISquare-Studio/aisquare-cli/actions/workflows/ci.yml)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/AISquare-Studio/aisquare-cli/blob/main/LICENSE)

**One terminal over your projects and your coding agents: task a manager in
plain words, and it runs the coders, testers and reviewers for you.**

Type `asq` and you get a full-screen, mouse-driven view: your projects on the
left, and on the right a **manager** agent you task in prose — it plans, spawns
coders, testers and reviewers, and loops until the goal is met. Click any of
them and you are inside its *real* Claude Code session, typing at it directly.
Nothing is relayed or re-rendered as a chat.

Underneath, agents get a **memory** that persists across sessions — your
preferences, each project's conventions — so every session starts oriented
instead of cold. The memory also works on its own, without the UI.

## Quickstart 1: memory only

Needs [uv](https://docs.astral.sh/uv/) and
[Claude Code](https://claude.com/claude-code); no installer, no tmux. Run `init`
inside your repo:

```sh
UV_PYTHON_DOWNLOADS=automatic uv tool install --python 3.13 aisquare-cli
cd path/to/your/repo
aisquare init --local --agent claude-code
aisquare remember --user "prefer pytest over unittest"
```

`init` registers the repo you run it in and wires Claude Code's hooks, so every
new session starts with what you told it to remember. `aisquare context list`
shows what is in scope.

## Quickstart 2: the full fleet

One line. It works out what your machine already has, installs only what is
missing, and ends by offering to open the UI:

```sh
curl -fsSL https://raw.githubusercontent.com/AISquare-Studio/aisquare-cli/main/install.sh | sh
```

That installs the latest release. To pin one, every release from 0.9.0 on
carries its own copy: `curl -fsSL https://github.com/AISquare-Studio/aisquare-cli/releases/download/v0.9.2/install.sh | sh`.

macOS, Linux and WSL2. It installs uv, a Python 3.13 for the CLI alone,
`aisquare-cli`, tmux, gh, git and Claude Code, offers Node for browser tools,
then registers the git repo you ran it from and wires Claude Code's hooks. Running
it again is a no-op. To read it before you run it, it is `install.sh` at the root
of this repository.

On Windows, run `irm https://raw.githubusercontent.com/AISquare-Studio/aisquare-cli/main/install.ps1 | iex`
in PowerShell: it runs that installer inside your WSL2 distribution, or prints the
one command that installs WSL2 if there is none.

Then `asq` opens on Welcome, three steps to a running fleet:

1. **Project:** use the folder you are in, or choose another.
2. **Claude Code:** connect it. If it is missing, Welcome names the install
   command; if it is signed out, it offers the sign-in.
3. **Fleet:** press *Start manager*, then *Open the manager* and answer Claude
   Code's one-time question about trusting the folder, then *Start the coders*:
   a manager and two coders, each a real Claude Code session. **Type your goal
   to the manager in prose.**

Click any agent to see and drive its session. **Press `F12`** to hand focus
back to the sidebar, where `w` returns to Welcome and `q` quits. **The agents
keep running**; reopen `asq` and it re-attaches to what it finds. To stop them
spending tokens without losing them, *⚙ Settings ▸ Fleet ▸ Pause all…* exits each
one and keeps its task, worktree and session; *Resume all…* brings each back where
it was.

A few buttons ask before they act, in place rather than in a dialog: *Remove from
fleet*, *Reset all settings*, a role binding's *Clear*, *Take over* and attaching a
persona to a running agent. The first click turns the button into its question
(`Remove? click again`) and says beside it what will happen; click it again, or
double-click it, to go ahead. Esc, or three seconds without that second click, puts
it back.

You can open `asq` over SSH into the same Mac while the Mac's own is open: both
show the same fleet, and a line in the sidebar says where each one runs. Start
the first agent at the Mac, since on macOS an SSH login can't start the fleet's
tmux server (agents in it couldn't read the Keychain).
[Running more than one asq](https://github.com/AISquare-Studio/aisquare-cli/blob/main/docs/multi-instance.md)
has the rest, including what happens when the two run different releases.

The manager never writes code and never merges — a human does that.

## Everything is also a command

Everything the UI does is also a plain command, and every one takes `--json`;
`aisquare --help` lists them:

```sh
aisquare fleet ls                         # this project's agents and their live state
aisquare fleet top                        # what each live agent consumes: CPU, memory, tokens
aisquare fleet relabel coder-1 login fix  # give an agent a name you chose: login-fix
aisquare fleet pause --all                # every project's agents stop, kept for resume
aisquare fleet resume --all               # ...and come back where they were
aisquare fleet attach                     # the same session in raw tmux, full fidelity
aisquare instances                        # the asqs open on this home: at the Mac, over SSH
aisquare outcomes                         # what the agents got done this week, and who steered
aisquare doctor                           # is everything wired? (and how to fix anything)
```

## The captain (experimental, off by default)

One agent above every project: the **captain** runs every fleet for you, and you
talk to it, typed or spoken. `aisquare captain` starts it (or attaches to it),
and `aisquare captain say "what is up"` asks it what needs you, across every
board. Every effect is one of its 26 tools, each leaving one audit event with
your words; `stop`, `spawn` and `restart` happen only when your words name what
they act on, and a refusal is said, never faked. The owner gate is on by default
while the captain is: its acting tools refuse until you run `aisquare captain gate
enroll` (it needs the `gate` extra), or you add `gate = false` under `[captain]` in
`~/.aisquare/config.toml` by hand (`config set` does not take it).

It ships **off**. Turn it on in `asq` under *⚙ Settings ▸ Captain*, at once and
with no restart, or once from a shell, or for one shell with
`AISQUARE_EXPERIMENTAL_CAPTAIN=1`, which wins over the setting; while it is off,
`aisquare captain` refuses with one line saying so, and `asq` shows no captain:

```sh
aisquare config set experimental.captain true
aisquare captain
aisquare captain say "what is up"
```

## What stays free

Everything that runs on your machine — memory, the fleet, the board — is MIT
licensed, needs no account, and stays free. It's a single CLI, local-first,
backed by one SQLite file: no daemon, no cloud dependency. Sign in with
`aisquare login` only when a command needs to act as you on AISquare.

## Requirements

- macOS, Linux, or Windows through WSL2.
- Python 3.11+ if you install by hand (the one-liner brings its own 3.13).
- [Claude Code](https://claude.com/claude-code) for the agents, and tmux 3.2+
  for the fleet.
- Node 22.12+, optional, for browser tools like the Chrome DevTools MCP; the one-liner
  offers both, Node and the MCP registered with Claude Code (`--with chrome-devtools`
  installs them without asking). aisquare itself never runs Node.
- The symbol index (`aisquare code find|refs|similar`) needs nothing extra for Python.

The package is `aisquare-cli`; the command is `aisquare`, with `asq` as the
short alias.

## Documentation

| Page | What is in it |
| --- | --- |
| [Usage sharing](https://github.com/AISquare-Studio/aisquare-cli/blob/main/docs/usage-telemetry.md) | Optional and off by default: anonymous daily counts of how aisquare is used. What is collected, what never is, how to see exactly what would be sent and turn it off |

## Community

Questions and ideas go to
[Discussions](https://github.com/AISquare-Studio/aisquare-cli/discussions), bugs
to [issues](https://github.com/AISquare-Studio/aisquare-cli/issues). Pull
requests are welcome:
[CONTRIBUTING](https://github.com/AISquare-Studio/aisquare-cli/blob/main/CONTRIBUTING.md)
has the setup and the one command CI runs. Releases are in the
[changelog](https://github.com/AISquare-Studio/aisquare-cli/blob/main/CHANGELOG.md);
to report a vulnerability, see
[SECURITY](https://github.com/AISquare-Studio/aisquare-cli/blob/main/SECURITY.md).

## License

[MIT](https://github.com/AISquare-Studio/aisquare-cli/blob/main/LICENSE)
