npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

squad-center

v0.3.1

Published

Desktop app for orchestrating GitHub Copilot CLI sessions with Squad agent teams

Readme

🎯 Squad Center

Desktop command center for orchestrating GitHub Copilot CLI sessions with Squad agent teams.

Electron React TypeScript TailwindCSS


📖 What is Squad Center?

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.

✨ Features

  • 📁 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

📸 Screenshots

Dashboard

Dashboard Project overview with quick-access cards, session count, and archive management.

Project Details

Project Details Three-column project view: Squad team roster, session launcher with configuration, and session history with resume capability.

Active Session

Active Session Integrated terminal with live Copilot CLI output, activity timeline, token usage stats, and real-time hook events.

🛠️ Tech Stack

| 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) |

🚀 Getting Started

Prerequisites

  • Node.js 22+ and npm
  • GitHub Copilot CLI installed and authenticated
  • Squad agent configuration (optional — for team features)

Install

Choose your preferred installation method:

📦 npm (all platforms)

npm install -g squad-center
squad-center

🍫 Chocolatey (Windows)

choco install squad-center

🪟 winget (Windows)

winget install jmanuelcorral.SquadCenter

🐧 apt (Debian/Ubuntu)

# 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-center

📥 Direct download

Grab 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.AppImage or squad-center_x.y.z_amd64.deb

Development Setup

# 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 dev

The Electron app will launch with hot-reload enabled for both the renderer (React) and main process.

📜 Scripts

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

📂 Project Structure

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

⚙️ 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.

🧪 Testing

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.ts

Test 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 |

🏗️ Building

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 build

The build outputs to:

  • dist/ — Renderer bundle (React app)
  • dist-electron/ — Main process bundle (main.js, preload.js)

🤝 Contributing

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.

📄 License

MIT — see LICENSE for details.