
Product
Socket Threat Intel Now Shows Which Malware Campaigns Were Blocked or Detected
Socket Threat Intel now shows which malware campaigns were blocked or detected in your organization, with links to scans and Firewall events.
@flightdeck-ai/flightdeck
Advanced tools
[!WARNING] This is purely AI generated code. Use the project with this understanding in mind.
A real-time web UI that orchestrates teams of Copilot CLI agents — each with a specialized role, its own context window, and the ability to collaborate through structured messaging. A Project Lead agent breaks down your task, assembles a team of developers, architects, reviewers, and more, then coordinates their work while you stay in the loop.
Why Flightdeck? Instead of one AI agent doing everything sequentially, Flightdeck runs multiple agents in parallel — each focused on what they do best. A developer writes code while a reviewer checks it, an architect designs the system, and a secretary tracks progress. The result: faster, higher-quality work with built-in checks and balances.
Status: Active development on branch
team-work-3.
PROGRESS auto-reads DAG state when one exists. DAG auto-links to agents via DELEGATE/CREATE_AGENT — no manual tracking needed.@ in chat to autocomplete agent names; mentioned agents receive the message@user; these render with accent border + background to stand out from system reactionsCREW_UPDATE messages include a health summary: completion %, agent fleet status, pending decisions, blocked tasksPROGRESS command auto-reads DAG state, eliminating the need for separate queriesCOMMIT command executes git add only on files the agent has locked, then commits and runs post-commit verification (git diff --name-only HEAD~1) to confirm the expected files actually landed. Prevents git add -A from leaking other agents' uncommitted work.WorktreeManager.merge() validates that only locked files were modified — defense-in-depth against accidental cross-contaminationWorktreeManager) but not yet active in production. Agents currently share the repository working directory. See the Coordination guide for details.npm install
npm run build
npm start
This starts the server and opens the web UI. Options: --port=4000, --no-browser.
For development with hot reload:
npm run dev
http://localhost:3001http://localhost:5173 (dev) or http://localhost:3001 (production)Monorepo (npm workspaces):
| Package | Description |
|---|---|
packages/server | Express 5 + WebSocket server, ACP agent management, SQLite/Drizzle ORM |
packages/web | React 19 + Vite frontend, Tailwind CSS 4, Zustand state, ReactFlow DAG, Mission Control |
Tech stack: Node.js · TypeScript · Express 5 · SQLite (WAL) · Drizzle ORM · React 19 · Vite · Tailwind CSS 4 · Zustand · ReactFlow · WebSocket (ws)
React UI ←→ WebSocket ←→ Node.js Server ←→ ACP ←→ Copilot CLI ×N
│
AgentManager (TypedEmitter)
┌─────┴──────┐
MessageBus ActivityLedger (batched writes)
DecisionLog FileLockRegistry
Scheduler ContextRefresher
ProjectRegistry ChatGroupRegistry
CommandDispatcher TimelineStore
DeferredIssueRegistry EventPipeline
AlertEngine TimerRegistry
| Component | Responsibility |
|---|---|
| AgentManager | Spawns agents, routes messages, manages delegations. Cascade termination with visited-set guard. |
| CommandDispatcher | Thin router (~193 lines) that delegates to 7 command modules. Parses triple-bracket commands from agent output. |
| Command Modules | AgentCommands, CommCommands, TaskCommands, CoordCommands, SystemCommands, DeferredCommands, TimerCommands — domain-grouped command handlers |
| Agent | Wraps a Copilot CLI process (ACP) with lifecycle management, message buffering, and memory bounds |
| RoleRegistry | Role definitions with system prompts, icons, colors, default models. receivesStatusUpdates flag for secretary auto-refresh. |
| MessageBus | Routes inter-agent messages and group chats |
| FileLockRegistry | Pessimistic file locking with TTL, glob support, expiry notifications. SQLite-backed. |
| WorktreeManager | ⚠️ In development. Per-agent git worktrees — create/merge/cleanup lifecycle. Wired into AgentManager but not yet enabled. |
| ChatGroupRegistry | Group lifecycle — create, archive, role-based membership, auto-creation for parallel work. Auto-adds new agents matching group role criteria. |
| ActivityLedger | Batched activity logging (flushes every 250ms or 64 entries) |
| DecisionLog | Decision tracking with accept/reject/reason workflow |
| AlertEngine | Proactive detection: stuck agents (with exemptions for leads, new agents, prompting agents), context pressure, duplicate edits, idle+ready mismatch, stale decisions |
| ContextRefresher | Re-injects crew context with health header after compaction events. Auto-refreshes secretary roles. |
| Scheduler | Background tasks: expired lock cleanup, activity pruning, delegation cleanup |
| ProjectRegistry | Persistent project management — CRUD, session tracking, briefing generation |
| HeartbeatMonitor | DAG-aware stall detection — nudges idle leads with remaining work |
| EventPipeline | Reactive event handlers: run CI after commits, log summaries on task completion, trigger webhooks |
| CapabilityRegistry | Tracks acquired agent expertise (files, technologies, domains) for smart matching |
| EagerScheduler | Pre-assigns upcoming tasks to idle agents before they become active |
| TaskTemplates | Reusable task templates with natural-language decomposition |
| SearchEngine | Full-text search across messages, tasks, decisions, and activity |
| PerformanceScorecard | Agent performance metrics: throughput, first-pass rate, velocity, cost efficiency |
| DecisionRecords | ADR-style structured decision records with status tracking |
| CoverageTracker | Test coverage monitoring with regression detection and trend analysis |
| ComplexityMonitor | File complexity analysis with 4-tier scoring and hotspot detection |
| NotificationManager | User notification preferences, quiet hours, priority-based routing |
| EscalationManager | Auto-escalation for stale decisions and blocked tasks |
| ModelSelector | Auto-picks optimal model based on task complexity, agent role, and budget |
| TokenBudgetOptimizer | Priority-weighted token allocation across active agents |
| ParallelAnalyzer | DAG bottleneck detection with critical path analysis |
| ReportGenerator | Session report generation in HTML and Markdown |
| KnowledgeTransfer | Cross-project knowledge sharing and context reuse |
See the Architecture Decisions page for the rationale behind key design choices.
Each agent is assigned a role with a specialized system prompt. The lead creates agents and assigns them tasks.
| Role | Icon | Focus | Default Model |
|---|---|---|---|
| Project Lead | 👑 | Orchestration, delegation, team coordination | Claude Opus 4.6 |
| Developer | 💻 | Code implementation, tests, bug fixes | Claude Opus 4.6 |
| Architect | 🏗️ | System design, technical debt, architecture decisions. Can delegate tasks. | Claude Opus 4.6 |
| Code Reviewer | 📖 | Readability, maintainability, code patterns | Gemini 3 Pro |
| Critical Reviewer | 🛡️ | Security, performance, edge cases | Gemini 3 Pro |
| Product Manager | 🎯 | User needs, product quality, UX review | GPT-5.3 Codex |
| Technical Writer | 📝 | Documentation, API design review, developer experience | GPT-5.2 |
| Designer | 🎨 | UI/UX, interaction design, accessibility | Claude Opus 4.6 |
| Generalist | 🔧 | Cross-disciplinary problem solving | Claude Opus 4.6 |
| Radical Thinker | 🚀 | Challenge assumptions, propose bold alternatives | Gemini 3 Pro |
| Secretary | 📋 | Plan tracking, status reports, session summaries | GPT-4.1 |
| QA Tester | 🧪 | Test strategy, quality assurance, coverage analysis | Claude Sonnet 4.6 |
Custom roles can be created via the Settings UI with your own system prompts, colors, and icons.
Agents communicate via structured triple-bracket commands detected in their output stream. Commands are parsed by the CommandDispatcher and routed to the appropriate subsystem.
| Command | Description |
|---|---|
CREATE_AGENT {"role": "developer", "task": "..."} | Spawn a new agent with a specific role. Optionally assign a task and model. |
DELEGATE {"to": "agent-id", "task": "...", "context": "..."} | Assign a task to an existing agent. Leads and architects can delegate. |
TERMINATE_AGENT {"id": "agent-id", "reason": "..."} | Terminate an agent and free its slot. Logs session ID for potential resume. |
| Command | Description |
|---|---|
AGENT_MESSAGE {"to": "agent-id", "content": "..."} | Send a direct message to another agent by ID. |
DIRECT_MESSAGE {"to": "agent-id-prefix", "content": "..."} | Queue a message to another agent without interrupting their current work. Matches by ID prefix. |
BROADCAST {"content": "..."} | Send a message to all active agents. |
CREATE_GROUP {"name": "...", "members": ["id1"], "roles": ["developer"]} | Create a named chat group. Specify members by ID, by role, or both. Lead is auto-included. |
GROUP_MESSAGE {"group": "...", "content": "..."} | Send a message to all members of a group. Sender must be a member. |
ADD_TO_GROUP {"group": "...", "members": ["id"]} | Add agents to an existing group. New members receive recent message history. |
REMOVE_FROM_GROUP {"group": "...", "members": ["id"]} | Remove agents from a group. The lead cannot be removed. |
QUERY_GROUPS | List all groups the agent belongs to, with member counts and last message preview. |
QUERY_PEERS | Discover other active agents for direct messaging. |
| Command | Description |
|---|---|
DECLARE_TASKS {"tasks": [...]} | Declare a task DAG with dependencies. Tasks have id, title, depends_on. |
PROGRESS {"summary": "..."} | Report progress. Auto-reads DAG state when a DAG exists — no need to query separately. |
COMPLETE_TASK {"id": "task-id", "summary": "...", "output": "..."} | Mark a DAG task as done. Non-lead agents relay to parent's DAG with auth validation. Supports id, summary, status, output fields. (Any agent) |
TASK_STATUS | Query current task DAG status. |
PAUSE_TASK {"taskId": "..."} | Pause a pending/ready task in the DAG. (Lead-only) |
RETRY_TASK {"taskId": "..."} | Retry a failed task. (Lead-only) |
SKIP_TASK {"taskId": "..."} | Skip a task and unblock dependents. (Lead-only) |
ADD_TASK {"task": {...}} | Add a new task to an existing DAG. (Lead-only) |
CANCEL_TASK {"taskId": "..."} | Cancel a task. (Lead-only) |
RESET_DAG | Reset the entire DAG (clear all tasks). (Lead-only) |
DECISION {"title": "...", "rationale": "..."} | Log a decision. Users can accept/reject with a reason comment from the dashboard. |
QUERY_TASKS | Query current task DAG status (alias for TASK_STATUS). |
CANCEL_DELEGATION {"delegationId": "...", "reason": "..."} | Cancel an active delegation. |
| Command | Description |
|---|---|
LOCK_FILE {"filePath": "...", "reason": "..."} | Acquire a file lock. Prevents other agents from editing the same file. |
UNLOCK_FILE {"filePath": "..."} | Release a file lock. |
COMMIT {"message": "..."} | Scoped git commit — executes git add only on locked files, commits, then verifies files landed via git diff --name-only HEAD~1. Warns if expected files are missing. |
QUERY_CREW | Get the current roster of agents with IDs, roles, models, and status. |
DEFER_ISSUE {"description": "...", "severity": "P2"} | Flag a quality issue for later resolution. Tracked per-project with severity levels. |
QUERY_DEFERRED {"status": "open"} | List deferred issues. Optional status filter (open/resolved/dismissed). |
RESOLVE_DEFERRED {"id": 42} | Mark a deferred issue as resolved. Use "dismiss": true to dismiss instead. |
| Command | Description |
|---|---|
ACQUIRE_CAPABILITY {"capability": "code-review", "reason": "..."} | Temporarily gain capabilities beyond the agent's role (code-review, architecture, delegation, testing, devops). |
RELEASE_CAPABILITY {"capability": "code-review"} | Release a previously acquired capability. |
LIST_CAPABILITIES | List currently held capabilities. |
SET_TIMER {"label": "name", "delay": 300, "message": "...", "repeat": false} | Set a reminder that fires after a delay (in seconds). Optionally repeats. |
CANCEL_TIMER {"name": "name"} | Cancel an active timer. |
LIST_TIMERS | List all active timers. |
| View | Description |
|---|---|
| Lead Dashboard | Chat with the lead, decisions panel (accept/reject with reasons), team/comms/groups/DAG/tokens tabs, three-tier message hierarchy, catch-up banner |
| Mission Control | Single-screen project overview: health summary, agent fleet, token economics, proactive alerts, activity feed, DAG minimap, comm heatmap, performance scorecards. Drag-and-drop panel reorder. |
| Agents | Unified list with hierarchy, model selector, plan progress, agent controls, project grouping |
| Tasks | Per-project task tabs with DAG status, progress badges, project grouping, duplicate detection |
| Timeline | Swim-lane visualization — filter by role/comm-type/status, brush time selector, keyboard navigation (←→ pan, +/- zoom), live auto-scroll mode, idle hatch patterns, hover tooltips |
| Group Chat | Tabbed group chat with human participation, project-level tab grouping, real-time messaging |
| Overview | Progress tracking, decision timeline grouped by project, global search |
| Settings | Concurrency limits (1–50 agents), model defaults, theme (Light/Dark/System), custom role editor, draggable dashboard panel layout |
busy_timeout, foreign_keys, synchronous=NORMAL)main and team-work-* branches — typecheck, unit tests, coverage upload| Document | Description |
|---|---|
| REST API Reference | Full REST API reference for all endpoints |
| Architecture Decisions | Key architecture decision records (ADRs) |
| Agent Communication | ACP agent communication protocol details |
| Coordination | File locking, delegation, and coordination primitives |
| Database Schema | SQLite schema and Drizzle ORM setup |
| UI Design | Frontend component architecture and design tokens |
FAQs
Flightdeck - AI crew management platform
The npm package @flightdeck-ai/flightdeck receives a total of 14 weekly downloads. As such, @flightdeck-ai/flightdeck popularity was classified as not popular.
We found that @flightdeck-ai/flightdeck demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Product
Socket Threat Intel now shows which malware campaigns were blocked or detected in your organization, with links to scans and Firewall events.

Security News
Fixes for eMudhra and Brotli are out. Getting them everywhere they’re needed means tracking down bundled libraries, runtimes, and certificate stores.

Threat Research
/Security News
Socket uncovered secret-stealing workflows that ran in LiteLLM’s GitHub repository 11 days before the supply chain attack on PyPI and Docker.