Desktop command center for orchestrating GitHub Copilot CLI sessions with Squad agent teams.
Squad Center is an Electron desktop application that lets you manage multiple software projects, launch GitHub Copilot CLI sessions, and monitor your Squad agent teams β all from a single interface.
Think of it as a mission control dashboard: you configure projects, spin up Copilot or shell sessions with integrated terminals, track agent activity in real time via Copilot hooks, and get notified when agents finish their work.
- π Project Management β Create, import from folders, configure, and archive projects with
.squad/team detection - π Session Launcher β Start Copilot CLI or shell sessions per project with one click
- π₯οΈ Integrated Terminal β Full interactive terminal powered by xterm.js and node-pty
- π₯ Squad Visualization β See your agent team roster with live status indicators
- π Real-time Notifications β Get alerts when agents complete tasks or encounter errors
- π Copilot Hooks β Live activity timeline tracking prompts, tool usage, and session events
- π Session Stats β Token usage, premium request counts, and per-session metrics
- βοΈ Configurable β Shell selection, terminal fonts (NerdFonts), environment variables, pre-launch commands, Copilot CLI args
- π MCP Servers β View configured MCP servers per project
- βοΈ Azure Account β Display active Azure account context in session sidebar
Project overview with quick-access cards, session count, and archive management.
Three-column project view: Squad team roster, session launcher with configuration, and session history with resume capability.
Integrated terminal with live Copilot CLI output, activity timeline, token usage stats, and real-time hook events.
| Layer | Technology |
|---|---|
| Language | TypeScript 5.8 |
| Framework | React 19 |
| Build Tool | Vite 6 |
| Styling | TailwindCSS v4 |
| Desktop | Electron 35 |
| Terminal | xterm.js 6 + node-pty |
| Routing | React Router v7 (HashRouter) |
| Icons | Lucide React |
| Testing | Playwright (E2E) |
- Node.js 22+ and npm
- GitHub Copilot CLI installed and authenticated
- Squad agent configuration (optional β for team features)
Choose your preferred installation method:
npm install -g squad-center
squad-centerchoco install squad-centerwinget install jmanuelcorral.SquadCenter# Add the GPG key
curl -fsSL https://jmanuelcorral.github.io/squadcenter/gpg-key.public \
| sudo gpg --dearmor -o /usr/share/keyrings/squad-center.gpg
# Add the repository
echo "deb [signed-by=/usr/share/keyrings/squad-center.gpg] https://jmanuelcorral.github.io/squadcenter/apt stable main" \
| sudo tee /etc/apt/sources.list.d/squad-center.list
# Install
sudo apt update && sudo apt install squad-centerGrab the latest installer from GitHub Releases:
- Windows:
Squad-Center-Setup-x.y.z.exe - macOS:
Squad-Center-x.y.z-arm64.dmg - Linux:
Squad-Center-x.y.z.AppImageorsquad-center_x.y.z_amd64.deb
# Clone the repository
git clone https://github.com/jmanuelcorral/squadcenter.git
cd squadCenter
# Install dependencies (includes native module compilation for node-pty)
npm install
# Start in development mode
npm run devThe Electron app will launch with hot-reload enabled for both the renderer (React) and main process.
| Script | Description |
|---|---|
npm run dev |
Start Electron app in development mode with hot-reload |
npm run build |
Build the renderer (Vite) and main process for production |
npm run preview |
Preview the production build |
npm test |
Run the full Playwright E2E test suite |
npm run test:prereqs |
Run only the prerequisites check tests |
npm run test:e2e |
Build then run the full E2E suite |
squadCenter/
βββ electron/ # Electron main process
β βββ main.ts # App entry point, window creation
β βββ preload.ts # IPC bridge (contextBridge)
β βββ hooks-server.ts # HTTP server for Copilot hook callbacks
β βββ ipc/ # IPC handler modules
β β βββ projects.ts # Project CRUD operations
β β βββ sessions.ts # Session lifecycle management
β β βββ filesystem.ts # Folder browsing for import
β β βββ notifications.ts
β β βββ hooks.ts # Hook event queries
β βββ services/ # Core backend services
β βββ session-manager.ts # PTY process management
β βββ storage.ts # JSON file persistence
β βββ squad-reader.ts # .squad/ directory parser
β βββ hook-manager.ts # Copilot hooks lifecycle
β βββ hooks-generator.ts # Hook script generation
β βββ hook-event-store.ts # Hook event storage
β βββ event-bridge.ts # IPC event broadcasting
β βββ environment-info.ts # System context (Azure, MCP)
βββ src/ # React renderer process
β βββ main.tsx # React entry point
β βββ App.tsx # HashRouter, routes, providers
β βββ index.css # Tailwind v4 + custom animations
β βββ pages/
β β βββ Dashboard.tsx # Project grid, modals
β β βββ ProjectView.tsx # Project detail (3-column)
β β βββ SessionView.tsx # Terminal + sidebar panels
β βββ components/
β β βββ Layout.tsx # App shell with sidebar
β β βββ Sidebar.tsx # Navigation + session count
β β βββ SessionTerminal.tsx # xterm.js terminal (PTY/message modes)
β β βββ ActivityTimeline.tsx # Hook event stream
β β βββ ProjectCard.tsx # Dashboard project card
β β βββ TeamPanel.tsx # Agent team roster
β β βββ ... # Modals, panels, inputs
β βββ hooks/
β β βββ useIpcEvents.ts # Electron IPC event subscriptions
β β βββ useNotifications.tsx # Notification context provider
β βββ lib/
β β βββ api.ts # IPC invoke wrappers (23 channels)
β βββ types/
β βββ electron.d.ts # Window.electronAPI declarations
βββ shared/
β βββ types.ts # Shared TypeScript interfaces
βββ e2e/ # Playwright E2E tests (7 spec files, 46 tests)
βββ index.html # Vite entry HTML
βββ vite.config.ts # Vite + Electron plugin config
βββ tsconfig.json # TypeScript config
βββ playwright.config.ts # E2E test configuration
Each project in Squad Center can be individually configured:
interface CopilotConfig {
args: string[]; // Extra Copilot CLI arguments
envVars: Record<string, string>; // Environment variables for sessions
preCommands: string[]; // Commands to run before session start
startCopilot?: boolean; // Auto-start Copilot on project open
shell?: string; // Shell executable (e.g., powershell, bash)
terminalFontFamily?: string; // Terminal font (NerdFont support)
terminalFontSize?: number; // Terminal font size
}Configuration is set per-project through the Project Config modal in the UI.
Squad Center uses Playwright for end-to-end testing against the built Electron application.
# Run all tests
npm test
# Run with build step
npm run test:e2e
# Run a specific test file
npx playwright test e2e/03-dashboard.spec.tsTest coverage β 7 spec files covering:
| File | Scope |
|---|---|
01-prerequisites.spec.ts |
Environment and dependency checks |
02-app-launch.spec.ts |
Electron window creation and loading |
03-dashboard.spec.ts |
Dashboard rendering and interactions |
04-project-management.spec.ts |
Project CRUD operations |
05-project-config.spec.ts |
Configuration modal and persistence |
06-navigation.spec.ts |
Routing and navigation flows |
07-ipc-communication.spec.ts |
IPC channel communication |
08-notifications-hooks.spec.ts |
Notifications pipeline & hooks |
The app is built using Vite with the vite-plugin-electron plugin, which handles both the renderer (React) and main process (Electron) compilation.
# Production build (renderer + main process)
npm run buildThe build outputs to:
dist/β Renderer bundle (React app)dist-electron/β Main process bundle (main.js,preload.js)
Squad Center is built using a Squad agent team workflow. The team configuration lives in .squad/ and includes:
- Neo β Lead architect and coordinator
- Morpheus β Backend developer (Electron main process, IPC, services)
- Trinity β Frontend developer (React, UI components, UX)
- Tank β DevOps engineer (CI/CD, packaging, release pipelines)
Architectural decisions are documented in .squad/decisions.md.
MIT β see LICENSE for details.