Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

OpenSquad

English | 中文

CI License: MIT Release Python 3.11+ Node 18+ Code style: ruff

Stars Forks Issues Last commit PRs Welcome


OpenSquad is a local-first multi-agent collaboration framework. Multiple autonomous agents (PM, Coder, QA, etc.) communicate via group chat to coordinate and complete complex tasks.


OpenSquad overview

OpenSquad Agent Workstation

OpenSquad single-agent web chat


What is OpenSquad

OpenSquad enables multiple AI agents to collaborate like a real team. Each agent runs as an independent process with its own LLM connection, tool set, and memory. Agents communicate through group chat, coordinated by a PM agent, to tackle complex tasks that a single agent cannot handle alone.

What Problems It Solves

A single AI agent has clear limitations when dealing with complex projects:

  • Limited context window — Cannot handle the full context of requirements, coding, and testing simultaneously
  • Role confusion — One agent juggling multiple roles leads to oversight
  • No parallelism — Serial execution results in low efficiency
  • No review process — No independent QA role for quality assurance

OpenSquad solves these through multi-agent collaboration: PM handles task decomposition and coordination, Coder focuses on implementation, QA independently verifies — each with a clear responsibility.

Architecture (overview)

flowchart TB
    User["User / Web UI"] --> GW["Gateway :9555"]
    GW --> LA["Launcher :9600"]
    LA --> PM["PM Agent"]
    LA --> Dev["Coder Agent"]
    LA --> QA["QA Agent"]
    PM & Dev & QA --> IM["Group chat / IM"]
    PM & Dev & QA --> Plugins["Plugins / MCP / Skills"]
    Plugins --> Svc["Service plugins e.g. websearch :9001"]

Details: Architecture · Documentation hub

Key Features

  • Collab Card driven — Predefined workflow templates (software dev, code review, research, etc.) with PM coordinating the team per card protocol
  • Group chat communication — Agents collaborate via natural language group chat with @mentions, sleep/wake, and status queries
  • Independent process architecture — Each agent runs independently, can be restarted and configured separately
  • Long-term memory — Cross-session semantic memory system for agents to accumulate experience and knowledge
  • Interruptible sleep — Agents can proactively sleep and wait for events, auto-waking on new messages
  • Plugin system — 20 built-in plugins covering search, voice, version control, platform integrations, and more
  • Skill system — Reusable task instructions defined via Markdown files
  • MCP support — Dynamically connect external MCP servers to extend tool capabilities
  • Multi-platform access — Web UI, Telegram, Feishu/Lark, QQ, and other interaction channels
  • Local-first — Data and API keys stay on your machine, no third-party upload required

Quick Start (about 10 minutes)

  1. Clone this repository.
  2. Install with uv sync (or install.bat / install.sh).
  3. Configure LLM: copy a model card template and set api_key in src/model_cards/ (see model cards guide).
  4. Initialize workspace: uv run opensquad init (creates ~/.opensquad/workspace by default).
  5. Start services: uv run opensquad start.
  6. Open UI: http://127.0.0.1:5173 (or Gateway port from system_config).

Prerequisites

  • Python 3.11+ (officially tested on 3.11 / 3.12 / 3.13)
  • Node.js 18+ (for frontend development)
  • A compatible LLM API (DeepSeek, GPT-4, Claude, Gemini, GLM, etc.)

Windows

git clone https://github.com/opensquad-ai/opensquad.git && cd opensquad && install.bat

Linux / macOS

git clone https://github.com/opensquad-ai/opensquad.git && cd opensquad && bash install.sh

The script automatically: checks prerequisites → installs dependencies → initializes workspace → starts all services.

Note: After first start, add your LLM API key to a model card under src/model_cards/.

uv is a fast Python package manager. Recommended.

# Install uv (if not already)
pip install uv

# Clone the project
git clone https://github.com/opensquad-ai/opensquad.git
cd opensquad

# Install dependencies (uses uv.lock for reproducible builds)
uv sync

# Install frontend dependencies
cd src/opensquad/gateway/nexuschat-pro && npm install && cd ../../..

# Initialize and start
uv run opensquad init
uv run opensquad start

Option 3: pip

From PyPI — runtime, built web UI and the default resources:

pip install opensquad

opensquad init
opensquad start

Since 0.8.48 the wheel is a complete deployment. It ships the default model_cards/, plugins/, agents/, pymcp/, collab_cards/, role_cards/ and skills/ next to the opensquad package, so opensquad init seeds a runnable workspace and opensquad start finds every service. One gap remains: a fresh pip workspace has no system_config.json (the wheel carries no template), so ports stay on their defaults — gateway 9555, launcher 9600, registry 9720, frontend 5173 — until you save one from the Web UI's Settings.

From a checkout — full deployment, editable install:

git clone https://github.com/opensquad-ai/opensquad.git
cd opensquad

pip install -e .

# Install frontend dependencies
cd src/opensquad/gateway/nexuschat-pro && npm install && cd ../../..

# Initialize and start
opensquad init
opensquad start

Option 4: npm (Node.js users)

The npm package is a thin bootstrap: on first run it installs the matching Python opensquad CLI, then forwards every command to it.

npm install -g opensquad-ai

opensquad init
opensquad start

Requires Node.js 18+ and Python 3.11+. npx opensquad-ai works too, with no global install.

Option 5: Docker

git clone https://github.com/opensquad-ai/opensquad.git
cd opensquad

# Start (auto-builds image)
docker compose up -d

# View logs
docker compose logs -f

After start, visit http://localhost:9555. Data is persisted in Docker volumes.

Custom configuration:

# Edit config
cp src/system_config.example.json src/system_config.json
# Fill in your LLM API Key...

# Mount config and start
docker run -d \
  -p 9555:9555 -p 9600:9600 -p 9720:9720 \
  -v opensquad-data:/data \
  -v ./src/system_config.json:/app/src/system_config.json:ro \
  opensquad

Updating

Use the row that matches how you installed OpenSquad:

Installed via Update with Notes
Desktop app (installer) In-app Check for updates, or opensquad update Fully automatic: it downloads the installer, installs it silently and relaunches the app. Builds older than v0.8.43 must download the installer once by hand — the relaunch-on-update logic shipped in that version.
pip install opensquad pip install --upgrade opensquad
npm install -g opensquad-ai npm install -g opensquad-ai@latest The wrapper re-installs the matching Python package when the versions differ.
git clone (uv sync / pip install -e .) git pull, then re-run the same install command Re-run npm install under src/opensquad/gateway/nexuschat-pro if the frontend changed; npm run build there to serve the UI statically instead of through Vite.
Docker git pull && docker compose up -d --build The image is built from the local Dockerfile, not pulled from a registry.

opensquad update only installs anything for the packaged desktop app. It cannot rewrite a pip / npm / source install, so on those it prints the command from the table and exits — without touching your environment or your git state.


Services

opensquad start launches all 4 services:

Service Port Description
Gateway Backend 9555 FastAPI backend (WebSocket + HTTP)
Plugin Registry 9720 Plugin store API
Frontend Dev 5173 Vite React frontend
Launcher 9600 Agent process manager

Open http://127.0.0.1:5173 in your browser to create and configure agents via the Web UI.


CLI Commands

Command Description
opensquad init [--workspace <path>] Initialize workspace (default: ~/.opensquad/workspace)
opensquad start [--port <port>] Start all services
opensquad stop Stop all OpenSquad services (frontend, gateway, launcher, adapters, agent processes)
opensquad status Show agent and service status
opensquad plugin list List installed plugins
opensquad plugin install <id> Install a plugin from the store or Git URL
opensquad plugin uninstall <id> Uninstall a plugin

Run without installing:

python -m opensquad.cli start

Configuration

Copy system_config.example.json to your workspace or src/system_config.json (see architecture-paths):

{
  "hosts": { "gateway": "127.0.0.1" },
  "ports": { "gateway": 9555, "launcher": 9600, "websearch": 9001 },
  "auth": { "node_secret": "your-secret-here" }
}

Never commit real system_config.json, auth.json, or model cards with API keys.

LLM API keys live in model cards (src/model_cards/*.json). Agents are created via the Web UI at runtime.


Documentation

Start here: Documentation hub → Getting started (EN)

Document Description
Architecture System design and module map
Collaboration Multi-agent workflows
Plugin ecosystem Built-in plugins vs Registry
Contributing How to contribute
Releasing Maintainer release checklist

Contributing

Issues and Pull Requests are welcome! Please read the Contributing Guide and Code of Conduct first.


License

MIT License — see LICENSE for details.

Powered by OpenSquad Core

Metadata

Release files for opensquad 0.8.50b1

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

Source distribution (sdist)

Source distribution for opensquad 0.8.50b1
File Size Uploaded
opensquad-0.8.50b1.tar.gz 4.0 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for opensquad 0.8.50b1
File Interpreter ABI Platform
opensquad-0.8.50b1-py3-none-any.whl Python 3 none any Details

Total release size: 8.4 MB

Release files / opensquad-0.8.50b1.tar.gz

Download URL opensquad-0.8.50b1.tar.gz
Size 4.0 MB
Tags Source
SHA-256 checksum
How to use checksums
4fdaaab80cb6ed295307d9a33156f5c5b386dab1bf77b604423eed2bcbb82c7f
BLAKE2b-256 checksum
How to use checksums
11410fbef012e82ff5e15cf037e5e83888620db2405ae3e2b38c1256d7180528
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.

Transparency log

Release files / opensquad-0.8.50b1-py3-none-any.whl

Download URL opensquad-0.8.50b1-py3-none-any.whl
Size 4.3 MB
Tags Python 3
SHA-256 checksum
How to use checksums
ad5427868a1e10d527d246a7f03f8f368d2bd1e00ba14ada61f90810cdef55a8
BLAKE2b-256 checksum
How to use checksums
e0a5af6f62a2b59d09c0fd6448672ab9134149b979027f43e0499bc44f392239
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.

Transparency log
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