Skip to main content

Ashlar AO

A local-first agent orchestration platform. Manage multiple AI coding agents (Claude Code, Codex, etc.) across projects from a single browser-based command center.

Spawn agents, monitor their status in real time, approve plans, respond to questions, and coordinate work — all without switching terminals.

Installation

pip install ashlar-ao

Then run:

ashlar

Prerequisites

  • Python 3.11+
  • tmux — used for agent process isolation and output capture
  • At least one agent backend CLI:

If no backend is installed, agents run in demo mode.

Install tmux

# macOS
brew install tmux

# Linux
sudo apt install tmux

Quick Start (from source)

./start.sh

The launch script handles everything: checks dependencies, creates a Python virtual environment, installs the package in editable mode, and starts the server.

Open http://127.0.0.1:5111 in your browser.

Port Conflicts

Port 5000 conflicts with macOS AirPlay Receiver. Ashlar defaults to port 5111 to avoid this. To use a different port:

ASHLAR_PORT=8080 ashlar

Configuration

Config lives at ~/.ashlar/ashlar.yaml (auto-created on first run). Defaults work out of the box.

Optional Environment Variables

Variable Purpose
ASHLAR_PORT Override server port (default: 5111)
XAI_API_KEY Enable LLM-powered agent summaries via xAI Grok

Architecture

Two files make up the core application, packaged as ashlar_ao:

  • ashlar_ao/server.py — Python aiohttp server. Manages agents via tmux, serves the dashboard, provides REST + WebSocket APIs, collects system metrics.
  • ashlar_ao/dashboard.html — Single HTML file with all CSS and JS inline. No build step, no bundler, no node_modules.

Data is persisted in SQLite at ~/.ashlar/ashlar.db.

Usage

  • Spawn agents from the dashboard or command palette (Cmd+K)
  • Monitor status via live-updating cards (planning, working, waiting, error)
  • Respond to agents inline when they need input
  • Push-to-talk with Space for voice commands
  • Keyboard shortcuts: Cmd+N new agent, 1-9 focus agent, Cmd+Shift+A approve

Development

git clone https://github.com/masonwyatt/ashlar-ao.git
cd ashlar-ao
pip install -e ".[dev]"
pytest

See CLAUDE.md for full architecture, data models, API reference, and implementation details.

Metadata

Release files for ashlar-ao 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ashlar-ao 1.0.0
File Size Uploaded Provenance
ashlar_ao-1.0.0.tar.gz 500.0 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for ashlar-ao 1.0.0
File Interpreter ABI Platform
ashlar_ao-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 928.8 kB

Release files / ashlar_ao-1.0.0.tar.gz

Download URL ashlar_ao-1.0.0.tar.gz
Size 500.0 kB
Tags Source
SHA-256 checksum
How to use checksums
f31191a2eadc1b21686694b4de0ab88217348b0619a2bfaec5d025adee077aad
BLAKE2b-256 checksum
How to use checksums
d66e4a03b1c813e6a577c22f0ba88d6a01ca9eb93254d7d80f8ecec776544426
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.1

Release files / ashlar_ao-1.0.0-py3-none-any.whl

Download URL ashlar_ao-1.0.0-py3-none-any.whl
Size 428.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bb97018cc316ebc610a155c50af51598b676622dbd7e6e5b089530864bc913d7
BLAKE2b-256 checksum
How to use checksums
640b4dff907640ca64dacdcb2d2890fd1887c7a65d06273081b303cd8502af3d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.1

Security for ashlar-ao 1.0.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page