Quickstart
Install the reference implementation, run the no-keys demo, then drive a live machine.
The repository ships a reference implementation in Python: the newline-committed stream compiler, the action catalog, an accessibility-tree observer, and a pipelined executor. You can see the core thesis with no API keys and no server first, then wire it up to a live macOS machine.
1. Get the reference implementation
Clone the repo and let uv manage the environment.
The package lives at the repo root as axstream/.
git clone https://github.com/trycua/cua ../cua # only needed for the live pathThe reference impl has no required dependencies for the dry run beyond what
uv resolves from pyproject.toml.
2. Run the dry demo (no keys, no server)
uv run --with pytest python demo_dry.pyThis replays a canned LLM response at a realistic decode speed into the real
compiler and executor, driving a MockComputer. It prints a timeline showing
actions executing mid-stream, then compares the streamed total against a
buffered baseline (wait for the full response, then act):
--- streamed vs buffered ---
decode time (full response): ...s
pure execution time: ...s
buffered baseline (decode+exec): ...s
streamed total (this run): ...s
saved: ...s (…%)No network, no keys, no permissions. It exists to prove that actions execute while the model is still "generating," and that the overlap is real.
3. Run live (macOS)
The live path drives cua's computer-server,
which performs the actual clicks and exposes the accessibility tree.
Start cua's computer-server
Grant the terminal Accessibility and Screen Recording permissions first.
cd ../cua/libs/python/computer-server
uv run python -m computer_server # ws://localhost:8000/wsRun a task against it
In another terminal, set an API key and give it a task:
export ANTHROPIC_API_KEY=...
uv run python demo_live.py --task "open TextEdit and type hello world"demo_live.py also accepts --provider (anthropic / openai / groq),
--model, --max-bursts, and --no-risky to block actions marked
risk:risky instead of executing them.
4. Run the tests
uv run pytest