Skip to main content

Multi-Agent Collaboration CLI with flock-based locking and event-driven workflow

Project description

Mai CLI

English | 简体中文

PyPI Version License Python

Multi-Agent Coordination CLI — enables multiple AI agents to collaborate autonomously via a standardized command interface, backed by flock-based atomic locking.


✨ Features

  • 🔒 Atomic flock locks — race-condition-free claim/complete via POSIX fcntl.flock()
  • 📋 Standardized commands — full Issue lifecycle, queue scanning, lock management, audit logs, daily summaries
  • 📁 Dual-layer storage.mai/ as internal source, async/ as human-readable mirror
  • ⚙️ JSON configuration — queue SLA, agent heartbeat, issue ID prefix all in config.json
  • 🔄 Concurrent-safe daily summaries — multiple agents write simultaneously with flock protection
  • 🌍 Global Infrastructure — centralized management of global config and project registry in ~/.mai-cli/ (v1.10.3+)
  • Idempotent writes — repeating any operation preserves state
  • 📦 Zero dependencies — Python 3 stdlib only

🏗️ Architecture

flowchart TB
    subgraph Storage
        A[".mai/ — internal source"]
        B["async/ — human-readable mirror"]
    end
    subgraph Core
        C["Issue Queue"]
        D["flock Lock"]
        E["Heartbeat Guardian"]
    end
    subgraph Commands
        F["mai issue"]
        G["mai queue"]
        H["mai lock"]
        I["mai daily-summary"]
    end
    F --> C
    G --> C
    H --> D
    I --> C
    C --> A
    A --> B

🚀 Quick Start

Requirements

  • Python 3.8+ (stdlib only, no external dependencies)
  • Linux / macOS / WSL (POSIX environment)

Install

pip install mai-cli

Minimal Example

# 0. Global setup (v1.10.3+)
mai setup --root admin

# 1. Initialize project (Root required)
mai init -o admin

# 2. Register an agent
mai agent add alice --heartbeat-minutes 30

3. Create an issue

mai issue new questions "Technical review" -o alice

4. Claim issue (auto-locks)

mai issue claim REQ-001 -o alice

5. Complete issue

mai issue complete REQ-001 "Approved for implementation" -o alice

6. Check queue

mai queue check --overdue


---

## 📖 Documentation

| Document | Description |
|:---|:---|
| [Deployment](./docs/DEPLOYMENT.md) | Deployment guide |
| [Command Reference](./docs/references/commands.md) | Full command reference |

---

## 🤝 Contributing

PRs and Issues are welcome!

1. Fork this project
2. Create a feature branch `git checkout -b feature/AmazingFeature`
3. Commit your changes `git commit -m 'feat: Add some AmazingFeature'`
4. Push to the branch `git push origin feature/AmazingFeature`
5. Open a Pull Request

---

## 📄 License

MIT License — see [LICENSE](LICENSE).

---

*Mai CLI v1.10.6*

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mai_cli-1.10.6.tar.gz (44.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mai_cli-1.10.6-py3-none-any.whl (39.8 kB view details)

Uploaded Python 3

File details

Details for the file mai_cli-1.10.6.tar.gz.

File metadata

  • Download URL: mai_cli-1.10.6.tar.gz
  • Upload date:
  • Size: 44.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for mai_cli-1.10.6.tar.gz
Algorithm Hash digest
SHA256 e5b0475f8af9da43b4df79f135bc3049b33849c31a1db9a5f30dd88955282c03
MD5 621ccf51ed5faf29e0b6c6661065f681
BLAKE2b-256 654fedf286394043e16ffc3c2101114beb8d80257ad58a165c936543cddc16fc

See more details on using hashes here.

File details

Details for the file mai_cli-1.10.6-py3-none-any.whl.

File metadata

  • Download URL: mai_cli-1.10.6-py3-none-any.whl
  • Upload date:
  • Size: 39.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for mai_cli-1.10.6-py3-none-any.whl
Algorithm Hash digest
SHA256 c80915493fdfd82fffc6627facf767d59ab1231f2be7ad287c34e7abbbd32975
MD5 6e2d2a98f52897ae48fa3017a8c0fe8a
BLAKE2b-256 622c27c49e1ac7a41b3a564ae8bd2f7d6b5a44c750d3ab368271054d669687cd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page