freshcrate
Skin:/
Home > Frameworks > squad-station

squad-station

Message routing and orchestration for AI agent squads

Why this rank:Release freshnessHealthy release cadenceStrong adoption

Description

Message routing and orchestration for AI agent squads

Release History

VersionChangesUrgencyDate
v0.10.0 Validate agent model IDs at `squad-station init` against a provider-scoped whitelist, and ship a human-readable `.squad/models.md` reference so users can discover and pick valid IDs without guessing. Addresses the class of silent failures where an invalid model in `squad.yml` would only surface at runtime. ### Added - `valid_models_for(provider)` whitelist in `src/config.rs` covering Claude Code, Codex, and Gemini CLI with verified model IDs (sourced from official docs; speculative IDs removedHigh4/24/2026
0.9.1Imported from npm (0.9.1)Low4/21/2026
v0.9.1 Detect and auto-repair stale squad-station hook binary paths in `.claude/settings.json`. Resolves a class of failures where hooks point to moved or deleted binaries (e.g. after upgrading from `~/.cargo/bin` to `~/.squad/bin` in v0.8.17). ### Added - New `src/hook_parser.rs` module: `extract_binary_path`, `is_stale`, `heal_stale_squad_paths` - `squad-station doctor` Hooks check now has a phase-2 scan that validates each hook's binary exists and is executable; reports `[FAIL]` with location (`StMedium4/10/2026
v0.9.1 Detect and auto-repair stale squad-station hook binary paths in `.claude/settings.json`. Resolves a class of failures where hooks point to moved or deleted binaries (e.g. after upgrading from `~/.cargo/bin` to `~/.squad/bin` in v0.8.17). ### Added - New `src/hook_parser.rs` module: `extract_binary_path`, `is_stale`, `heal_stale_squad_paths` - `squad-station doctor` Hooks check now has a phase-2 scan that validates each hook's binary exists and is executable; reports `[FAIL]` with location (`StMedium4/10/2026
v0.9.1 Detect and auto-repair stale squad-station hook binary paths in `.claude/settings.json`. Resolves a class of failures where hooks point to moved or deleted binaries (e.g. after upgrading from `~/.cargo/bin` to `~/.squad/bin` in v0.8.17). ### Added - New `src/hook_parser.rs` module: `extract_binary_path`, `is_stale`, `heal_stale_squad_paths` - `squad-station doctor` Hooks check now has a phase-2 scan that validates each hook's binary exists and is executable; reports `[FAIL]` with location (`StMedium4/10/2026
v0.9.1 Detect and auto-repair stale squad-station hook binary paths in `.claude/settings.json`. Resolves a class of failures where hooks point to moved or deleted binaries (e.g. after upgrading from `~/.cargo/bin` to `~/.squad/bin` in v0.8.17). ### Added - New `src/hook_parser.rs` module: `extract_binary_path`, `is_stale`, `heal_stale_squad_paths` - `squad-station doctor` Hooks check now has a phase-2 scan that validates each hook's binary exists and is executable; reports `[FAIL]` with location (`StMedium4/10/2026
v0.9.0 Health-check tooling for squad-station projects: validate SDD playbooks during init, and diagnose setup issues with the new doctor subcommand. ### Added - `squad-station doctor` subcommand — runs 6 health checks (config, SDD playbooks, tmux, database, hooks, version) with `--json` support - `sdd-playbook` config field in squad.yml — declare required SDD playbooks (bmad, superpowers, gsd, openspec) - SDD playbook validation during `squad-station init` — blocks init if declared playbooks are notMedium4/10/2026
v0.8.22 Fix PATH auto-setup to use `.zshenv` instead of `.zshrc` so Claude Code agents in tmux sessions can find the `squad-station` binary. Non-interactive shells (used by Claude Code's Bash tool) only source `.zshenv`, not `.zshrc`. ### Fixed - **PATH setup uses `.zshenv`** — On macOS, install now writes `export PATH` to `~/.zshenv` instead of `~/.zshrc`, ensuring AI agents in tmux sessions can find `squad-station` binary in non-interactive shells - **Settings.json uses relative binary name** — HooMedium4/6/2026
v0.8.21 Improved install reliability: auto-adds PATH to shell profile, ignores npx cache wrappers in duplicate detection, and makes init more resilient. ### Fixed - **Auto PATH setup** — Install now auto-appends `~/.squad/bin` to shell profile (`~/.zshrc`/`~/.bashrc`) instead of just printing instructions - **npx cache bypass** — `verifyInPath` and `checkDuplicateBinary` now ignore npx cache / `node_modules/.bin` wrappers when checking PATH - **Resilient init** — `squad-station init` handles edge casMedium4/6/2026
v0.8.20Release v0.8.20 Medium4/6/2026
v0.8.19Release v0.8.19 Medium4/6/2026
v0.8.18 Moved duplicate binary detection from `squad-station init` health check to the npm install flow, where it belongs. ### Changed - **Duplicate detection in install flow** — `npx squad-station install` now warns when `which squad-station` resolves to a different binary than the one just installed, with instructions to remove the conflicting copy - **Removed from init health check** — `squad-station init` no longer checks for duplicate binaries (moved to install) --- Medium4/6/2026
v0.8.17 Improved binary installation, added uninstall command, and duplicate binary detection. ### Added - **Uninstall command** — `npx squad-station uninstall` finds and removes all squad-station binaries across known locations (including legacy paths) with interactive confirmation - **Duplicate binary detection** — Health check now warns when multiple squad-station binaries exist at different paths, showing which is active and which to remove ### Changed - **Install to ~/.squad/bin** — Default biMedium4/6/2026
v0.8.16 Fix hook commands resolving symlinks to dev build path instead of using the installed path. ### Fixed - **Stop resolving symlinks in `resolve_binary_path()`** — Remove `canonicalize()` so hooks use the installed path (e.g. `~/.cargo/bin/squad-station`) instead of resolving to `target/release/squad-station` --- Medium4/6/2026
v0.8.15 Two bug fixes: reliable Telegram notification content and non-destructive hook installation. ### Fixed - **Telegram notification content** — Use `last_assistant_message` from stdin with blocking read and collect all text blocks, replacing broken thread+timeout approach that was missing agent response content - **Idempotent hook installation** — `squad-station init` now merges into existing hook configs instead of overwriting them, preserving user-added entries via new `upsert_hook_entry`/`repMedium4/5/2026
v0.8.14 Fix hook commands failing when `squad-station` binary is not on PATH in the hook execution environment. ### Fixed - **Use absolute binary path in hook commands** — Hook install now resolves the full path to `squad-station` (e.g. `/Users/you/.cargo/bin/squad-station`) instead of relying on PATH, preventing "command not found" errors in provider hook environments --- Medium4/4/2026
v0.8.13 Fix `run.js` VERSION still pointing to `0.8.11`, causing `npx squad-station` to download the wrong binary. ### Fixed - **Sync `run.js` VERSION to `0.8.13`** — Ensures `npx squad-station install` downloads the correct release binary --- Medium4/4/2026
v0.8.12## What's New **Detailed Telegram notifications with transcript reading** ### Changes - Read hook input JSON from stdin (Claude Code passes transcript_path) - Parse JSONL transcript files to extract last assistant message - Fallback chain: transcript > hook message > generic finished - HTML escape for Telegram safety - TTY guard + 2s timeout to prevent stdin blocking - Remove redundant --event flag - update command re-installs telegram hooks ### Fixes - Fix stdin blocking when no pipe connectMedium4/4/2026
v0.8.0Release v0.8.0 Medium4/4/2026
v0.8.11 Remove accidentally committed Telegram Bot Token and prevent future secret leaks. ### Fixed - **Remove leaked Telegram Bot Token** — Deleted `scripts/hook-notify-agent/` directory which contained a `.env` file with a Telegram Bot Token (GitHub secret scanning alert) - **Add `.env` to `.gitignore`** — Prevents future accidental commits of environment files containing secrets --- Medium4/4/2026
v0.8.10 Harden notify-telegram hook to never fail the provider, and clean up codebase duplication ahead of public release. ### Fixed - **notify-telegram always exits 0** — Silently ignores `send_telegram` errors so provider hooks never fail due to Telegram API issues ### Changed - **Extract shared `log_to_squad()` helper** — Replaces 3 duplicate logging functions (`log_signal`, `log_notify`, `log_watch`) with a single shared implementation in `helpers.rs` - **Remove duplicate `pad_colored()`** — `lMedium4/4/2026
v0.8.9 Remove dead code and unused dependencies to slim down the binary and simplify the CLI surface. ### Removed - **CLI subcommands:** `ui` (TUI dashboard), `view` (tmux tiled view), `register` (runtime agent registration), `reset` (overlapped with `clean`) - **Dependencies:** `ratatui` and `crossterm` crates no longer needed --- Medium4/3/2026
v0.8.8 Replaces the shell-based notify-telegram.sh with a native Rust notify-telegram subcommand for faster, more reliable Telegram notifications. Also fixes init to clean up stale Codex hooks from previous installations. ### Added - **Native `notify-telegram` Rust subcommand** — Replaces the external `notify-telegram.sh` shell script with a built-in subcommand, eliminating the shell dependency and improving reliability and performance. ### Fixed - **Stale Codex hook cleanup on re-init** — `squad-Medium4/3/2026
v0.8.7 Prevents spurious Telegram notifications when the hook fires outside tmux agent sessions (e.g., from the orchestrator or a non-agent terminal). ### Fixed - **Telegram hook now exits early for non-agent sessions** — When `TELE_NOTIFY_AGENTS` is set to a specific agent list (not `all`), sessions without a tmux session name (i.e., not running inside an agent pane) now exit immediately instead of falling through to the notification logic. --- Medium4/2/2026
v0.8.6 Removes the PostToolUse hook from Codex provider hook installation. Codex agents run in `--yolo` mode (full auto-approve) and never stop to ask for user input. The `Bash` matcher — the only one available for Codex PostToolUse — fired on every tool call, sending duplicate `[SQUAD INPUT NEEDED]` signals that confused the orchestrator. ### Fixed - **Removed PostToolUse hook for Codex provider** — `install_codex_hooks()` no longer installs a PostToolUse hook with the `Bash` matcher. This was a deMedium4/1/2026
v0.8.5 Fixes the root cause of broken signal delivery when agents run inside a git worktree. `find_project_root()` now detects worktrees and resolves to the main working tree, ensuring all commands share the same database regardless of which cwd they run from. ### Fixed - **Worktree-aware project root resolution** — `find_project_root()` uses `git rev-parse --git-dir` vs `--git-common-dir` to detect worktrees and prefer the main repo's `squad.yml` and `.squad/station.db`. Previously, running from a Medium3/31/2026
v0.8.4 Fixes silent Telegram notification failure when Claude Code runs hooks from a git worktree. The generated hook command used a relative path (`"."`) for `SQUAD_PROJECT_ROOT`, which resolves to the wrong directory when the hook runner's cwd differs from the project root. ### Fixed - **Telegram hook uses absolute paths** — `install_telegram_hooks()` now canonicalizes `project_root` so the generated `SQUAD_PROJECT_ROOT` and script path in `settings.json` are always absolute, regardless of how theMedium3/31/2026
v0.8.3 Fixes two issues disrupting user workflows: the bootstrap block that was auto-injecting into CLAUDE.md on every `squad-station init`, and Telegram notification hooks firing on every tool call instead of only on task completion. ### Fixed - **Removed bootstrap block injection** — `squad-station init` no longer writes a `<!-- squad-station:bootstrap-start -->` block into the user's CLAUDE.md / GEMINI.md / AGENTS.md. The orchestrator context is available via the slash command file, making the boMedium3/30/2026
v0.8.2 Fixes a UX bug where `npx squad-station@latest install` skipped example configs, SDD playbooks, and rules when they already existed, requiring `--force`. These are package-provided reference templates that should always be refreshed on install. ### Fixed - **examples/ always overwritten** — Example config templates are now refreshed on every install without `--force` - **sdd/ always overwritten** — Playbook documentation is now refreshed on every install (also fixed in `bin/run.js` which stilMedium3/30/2026
v0.8.1 Fixes version mismatches introduced in v0.8.0, adds Telegram notification templates to all example configs, and cleans up code style (fmt + clippy). ### Fixed - **Version sync** — `run.js` and root `package.json` now correctly report v0.8.1 (were stuck on v0.7.23 in v0.8.0) - **Code style** — Applied `cargo fmt` formatting and fixed clippy `unnecessary_map_or` warning ### Added - **Telegram config in examples** — All example `squad.yml` files now include the `telegram:` section template - *Medium3/30/2026
v0.7.23 Reinforced the "no polling" message in `squad-orchestrator.md` so the orchestrator stops using `tmux capture-pane` loops to check agent progress. ### Changed - **Orchestrator context: "NO POLLING" section** — Replaced soft "you DO NOT need to" with explicit `CRITICAL: DO NOT poll agents`. Shorter, more direct, harder to ignore. --- Medium3/29/2026
v0.7.22 Simplified the init session conflict detection — now uses a straightforward name match against live tmux sessions instead of querying each session's working directory. ### Changed - **Conflict check uses name-only matching** — Replaced CWD-based comparison (`session_cwd` + `canonicalize`) with a simple `list_live_session_names().contains()` check. Much less code, same result. - Removed unused `tmux::session_cwd()` helper. --- Medium3/29/2026
v0.7.21 `squad-station init` now checks if planned tmux session names are already in use by another project, preventing accidental collisions when `squad.yml` is copied without changing the `project:` field. ### Added - **Session conflict detection** — Before creating any sessions, `init` queries each planned session's CWD via `tmux display-message`. If a session exists but its working directory differs from the current project root, init aborts with a clear error showing which sessions conflict and Medium3/29/2026
v0.7.20 Refined all bundled SDD (Solution Design Document) playbooks with streamlined content. ### Changed - **bmad-playbook.md** — Streamlined BMAD method playbook - **gsd-playbook.md** — Streamlined GSD playbook - **openspec-playbook.md** — Streamlined OpenSpec playbook - **superpowers-playbook.md** — Streamlined Superpowers playbook --- Medium3/29/2026
v0.7.19 `squad-station update` now installs hooks for all providers (not just the orchestrator's), and Codex agents get the required `config.toml` feature flag so their Stop hook actually fires. ### Fixed - **Update housekeeping only installed hooks for orchestrator provider** — `run_housekeeping` called `auto_install_hooks` with only the orchestrator's provider (e.g. `claude-code`), skipping worker providers like `codex` or `gemini-cli`. Now it collects all unique providers across orchestrator + worMedium3/29/2026
v0.7.18 `squad-station update` now regenerates `squad-orchestrator.md` after every run, so the orchestrator always sees the current agent list including newly added or removed agents. ### Fixed - **`squad-orchestrator.md` not updated after `update`** — Adding a new agent via `update` launched the session and updated the monitor, but the orchestrator's context file still listed the old agents. Now `context::run(false)` is called after every `update` (both the changes path and no-changes path), ensurinMedium3/29/2026
v0.7.17 `squad-station update` now rebuilds the monitor session whenever the agent set changes, so new agents appear as panes immediately after update. ### Fixed - **Monitor not updated after adding new agent** — When `update` detected new/removed/provider-changed agents, the monitor session was left stale. Now `ensure_monitor(force: true)` kills and recreates the monitor after any agent changes so its panes always reflect the current squad. - **No-change path unaffected** — When there are no agent cMedium3/29/2026
v0.7.16 Antigravity is not a CLI agent and has been completely removed from squad-station. All providers now use tmux sessions — the DB-only mode is gone. ### Removed - **`antigravity` provider** — Removed from `VALID_PROVIDERS`, `is_db_only()` method, all conditional branches in `init`, `signal`, `notify`, `helpers`, and `update` - **`is_db_only()` method** on `AgentConfig` — No longer needed; every provider is tmux-based - **DB-only orchestrator path** in `init` — Orchestrator always launches in a Medium3/29/2026
v0.7.15 `squad-station update` now automatically recreates the monitor session if it is missing or dead, completing the full recovery from the v0.7.12 bug. ### Fixed - **Monitor session not recovered after update** — Even after v0.7.13 stopped killing the monitor, a monitor that was already dead (killed by the v0.7.12 bug) would remain dead after every `update` call. `update` now calls `ensure_monitor()` which checks if `<project>-monitor` is alive and recreates it via `tmux create_view_session` if nMedium3/29/2026
v0.7.14 Adds a regression test that enforces `run_housekeeping` must never kill any tmux sessions, preventing a repeat of the v0.7.12 monitor-killing bug. ### Added - **Regression test `test_housekeeping_never_kills_any_sessions`** — `run_housekeeping` now returns `Vec<String>` (killed sessions) instead of `()`. The test asserts this Vec is always empty. If anyone re-adds `kill_session` to housekeeping, the test fails immediately with a descriptive message. - **`debug_assert!` in production path** — Medium3/29/2026
v0.7.13 Fixes a bug where `squad-station update` would kill the monitor tmux session without relaunching it, causing the monitor to go missing after every update call. ### Fixed - **`squad-station update` kills monitor session** — `run_housekeeping` was killing `<project>-monitor` tmux session as part of cleanup but never relaunching it. Removed the kill-monitor logic since `update` has no responsibility over the monitor session — it should be left running untouched. --- Medium3/29/2026
v0.7.12 Adds `squad-station update` — a soft update that syncs a running squad with changes in `squad.yml` without tearing down existing sessions. ### Added - **`squad-station update`** — Soft squad update command: - Diffs `squad.yml` agents against DB agents and categorises each as: `[NEW]`, `[REMOVED]`, `[WARN] provider changed`, or `[OK] unchanged` - Launches new agents that appear in `squad.yml` but not in DB - Kills and relaunches agents whose provider has changed - Skips agents currentlMedium3/29/2026
v0.7.11 Adds `squad-station uninstall` to cleanly remove squad-station from a project without leaving behind stale hooks, files, or running sessions. ### Added - **`squad-station uninstall`** — Full project teardown command: - Kills all squad tmux sessions and stops watchdog daemon - Removes squad-station hook entries from provider settings (`.claude/settings.json`, `.codex/hooks.json`, `.gemini/settings.json`) — preserves non-squad hooks - Removes the bootstrap block (`<!-- squad-station:bootsMedium3/28/2026
v0.7.10 SDD playbooks are now always overwritten on every `npx squad-station install`, ensuring users always get the latest version without needing `--force`. ### Fixed - **SDD playbooks not updating on reinstall** — Previously, `install` skipped `.squad/sdd/*.md` files if they already existed, silently leaving users on outdated playbooks. Now they are always overwritten since SDD files are managed entirely by squad-station and not user-editable. --- Medium3/28/2026
v0.7.9 Fixes the Codex agent launch command from `--full-auto` to `--yolo`. ### Fixed - **Codex launch flag** — `squad-station init` now launches Codex agents with `codex --yolo` (was incorrectly using `codex --full-auto` which is not a valid flag) --- Medium3/28/2026
v0.7.8 Adds OpenAI Codex CLI as a first-class provider alongside `claude-code` and `gemini-cli`. Codex agents can now be orchestrated end-to-end: auto-installed hooks, model validation, launch command generation, and context injection. ### Added - **Codex provider support** — `provider: codex` is now a valid first-class provider in `squad.yml` - **7 Codex model slugs** — validated in config: `gpt-5.4`, `gpt-5.4-mini`, `gpt-5.3-codex`, `gpt-5.2-codex`, `gpt-5.2`, `gpt-5.1-codex-max`, `gpt-5.1-codex-mMedium3/28/2026
v0.7.7## OpenAI Codex Integration + README Rewrite v0.7.7 adds **OpenAI Codex** as a first-class provider, making Squad Station the first orchestration tool to natively support Claude Code, Gemini CLI, and Codex in a single unified workflow. ### Added — Codex Provider - **New provider: `codex`** — Full integration with OpenAI Codex CLI hooks system - **Hook auto-install** — `squad-station init` automatically creates `.codex/hooks.json` with Stop + PostToolUse hooks - **Model validation** — 7 supporMedium3/28/2026
v0.7.6 Added tiered tool model for the orchestrator template — orchestrator acts as a PM who reads dashboards, not a developer who reads code. ### Fixed - **Orchestrator self-research gap** — The generated `squad-orchestrator.md` forbade writing code but did not prevent the orchestrator from using Read, Bash, grep, or other tools to self-research. Result: orchestrator would read files and run git commands directly instead of delegating to agents. ### Added - **Tiered tool restrictions section** — Medium3/25/2026
v0.7.5 Removes RECONCILE logic that was prematurely completing tasks and causing signal loss. Strips the watchdog down to a pure health monitor. ### Fixed - **RECONCILE causing signal loss** — RECONCILE was marking tasks as completed BEFORE agents actually finished. When the real stop hook fired, it found no pending task and skipped orchestrator notification. Removed all task-completion logic from both `reconcile` (when called by watchdog) and the watchdog itself. ### Changed - **Watchdog is now hMedium3/25/2026
v0.7.4 Fixes bootstrap block writing to the wrong file path and strengthens orchestrator compliance language. ### Fixed - **Bootstrap block file path** — `inject_bootstrap_block()` was writing to `.claude/CLAUDE.md` and `.gemini/GEMINI.md` inside subdirectories, but Claude Code reads `CLAUDE.md` from the project root and Gemini reads `GEMINI.md` from the project root. Fixed `provider_doc_paths()` to return the correct root-level paths. ### Changed - **Bootstrap block wording** — Replaced passive "Medium3/24/2026
v0.7.3 Ensures the orchestrator automatically knows its role after `/clear` and context compact — no manual re-prompting needed. ### Added - **Orchestrator bootstrap block** — `squad-station init` now injects a lightweight bootstrap section into the provider's project doc file (`.claude/CLAUDE.md` for Claude Code, `.gemini/GEMINI.md` for Gemini CLI). This file is always loaded into context, surviving `/clear` and context compact. Includes a tmux session-name guard so worker agents ignore it. IdempotMedium3/24/2026
v0.7.2 Fixes npm installer issues that prevented clean upgrades and macOS Gatekeeper blocks on downloaded binaries. ### Fixed - **Binary upgrade removes stale symlinks** — `npx squad-station install` now unlinks the old binary before downloading when a version mismatch is detected. Fixes upgrade failures when `~/.cargo/bin/squad-station` is a symlink from `cargo install`. - **macOS Gatekeeper bypass** — Strips `com.apple.quarantine` and `com.apple.provenance` xattr after downloading the binary, prevMedium3/24/2026
v0.7.0Auto-install SDD git workflow rules during squad initialization, plus three watchdog reliability fixes. ### Added - **SDD git workflow rules auto-install** — During `squad-station init`, for each SDD entry in squad.yml, copies the matching rule template from `.squad/rules/git-workflow-<name>.md` into provider-specific rules directories (`.claude/rules/`, `.gemini/rules/`). Ships with 4 built-in rule templates: get-shit-done, bmad-method, openspec, superpowers. - **SDD templates versioned** — `Medium3/24/2026
v0.6.10Three fixes for watchdog false alarms and orphaned agent states. ### Fixed - **Orphan busy state reset** — Reconcile and watchdog now detect agents marked "busy" in DB with zero processing messages (signal completed the task but failed to reset status). Resets to idle immediately without heuristics. - **Pane capture window 5→20 lines** — `pane_looks_idle()` captured only 5 lines, missing Claude Code's prompt behind 4-5 status bar lines. Switched from `-l 5` to `-S -20` for broader tmux versionMedium3/24/2026
v0.6.9 Simplifies watchdog by removing idle nudge notifications. Watchdog now focuses solely on stuck-agent detection with tiered escalation. ### Changed - **Watchdog simplified** — Removed idle nudge (Pass 2) that sent "System idle for Xm" notifications to the orchestrator. Watchdog now only monitors for stuck agents: log-only at 10m, auto-heal at 30m, orchestrator alert at 60m. - **`--stall-threshold` hidden** — CLI arg kept for backwards compatibility but hidden from help output (no longer functiMedium3/23/2026

Dependencies & License Audit

Loading dependencies...

Similar Packages

squad-station-2Message routing and orchestration for AI agent squads2.0.3
arkaosThe Operating System for AI Agent Teamsv4.0.1
penclipPaperclip CN CLI — orchestrate AI agent teams to run a businessv2026.605.0
paperclipaiPaperclip CLI — orchestrate AI agent teams to run a businessv2026.529.0
fideliosFideliOS CLI — orchestrate AI agent teams to run a businessv0.0.54

More in Frameworks

spec_driven_developSpec-Driven Develop is a platform-agnostic AI agent skill that automates the pre-development workflow for large-scale complex tasks. It is not a framework, not a runtime, not a package manager — it is
deer-flowAn open-source long-horizon SuperAgent harness that researches, codes, and creates. With the help of sandboxes, memories, tools, skill, subagents and message gateway, it handles different levels of ta
tqdmFast, Extensible Progress Meter
simBuild, deploy, and orchestrate AI agents. Sim is the central intelligence layer for your AI workforce.