Skip to content

Jabito/claude-flightdeck

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

79 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

◈ Claude Flightdeck

License: MIT Node.js React

A visual control panel for Claude Code

Explore your agent ecosystem · Run commands · Schedule automations · Monitor everything in real time


Claude Flightdeck turns your ~/.claude directory into a full-featured workspace. Visualize how your agents, commands, and skills interconnect, edit files with syntax highlighting, execute workflows with live streaming output, and set up automated jobs that run on schedules or respond to webhooks and JIRA tickets.

Note: Claude Flightdeck is a companion tool — it requires a working Claude Code CLI installation. It does not bundle or replace Claude Code itself.


Screenshots

The Chart — Relationship Graph

Visualize your entire ~/.claude ecosystem at a glance. Every agent, command, skill, convention profile, hook, and external service is a node. Edges show how they connect — which agents spawn which workers, which commands use which skills, which hooks run at lifecycle events. The Codex panel on the left lets you browse and edit files directly; the Key of Sigils legend in the top-right decodes node types and edge styles.

The Chart — Relationship Graph

The Chart — Node Focus & Monaco Editor

Click any node to highlight its connections and open a detail panel. Double-click to open the file in the built-in Monaco editor — with parchment light theme and syntax highlighting for Markdown, JSON, JS, TS, and YAML. Multiple files open as tabs alongside the graph.

The Chart — Node Focus with Monaco Editor

Pre-Flight — Command Runner

Select any command from your ~/.claude/commands/ library, add arguments and additional context, attach files as readable context, and choose a target project directory. A live command preview updates as you type. Hit Launch — the run opens immediately in the Logbook.

Pre-Flight — Command Runner

Logbook — Live Streaming Sessions

Every run gets a streaming output pane with real-time SSE output, per-line elapsed timestamps, and collapsible tool-call blocks (Bash, Write, Edit, Read, etc.). When Claude pauses waiting for input, a composer appears at the bottom so you can respond without leaving the browser.

Logbook — Live Sessions

Flight Plans — Templates & Workflows

Save parameterized command templates with named argument slots ({arg.name}) and live preview. Chain multiple templates into multi-step workflows — pass outputs between steps with {{prev.field}} tokens, embed sub-workflows, and tag runs to JIRA tickets for full traceability.

Flight Plans — Templates & Workflows

Autopilot — Scheduled Jobs

Schedule any command to run on a recurring cron timer. Enable JIRA mode to query a JQL filter on each tick — only new matching issues trigger a run, keeping noise low. Each job shows its JQL query in amber monospace, last run time, and next scheduled execution.

Autopilot — Scheduled Jobs

Tower Hails — Webhooks

Create HTTP endpoints that fire Claude commands when called by external services. Each webhook has a unique trigger URL, Mustache-style argument templates resolved against the incoming JSON payload, an optional shared secret, and a test-fire panel for rapid iteration.

Tower Hails — Webhooks

Scrambles — Triggered Event Runs

Unified history of every automation-triggered run — webhooks, polls, schedules, and workflow chains. Full streaming output inline, just like a manual run. Filter by source type: JIRA polls, Bitbucket events, workflow chains, or plain schedule fires.

Scrambles — Triggered Event Runs

Hangars — Projects

Register local project directories and Flightdeck shows their CLAUDE.md inline — so you can pick the right working directory when launching commands without memorizing paths. The directory browser doubles as a quick project selector across Pre-Flight, Webhooks, and Autopilot.

Hangars — Projects

Toolbox — Config Import / Export

Back up your entire automation setup — webhooks, schedules, templates, workflows — as a single JSON file. Restore on another machine or after a fresh install, choosing to merge with or replace existing data.

Toolbox — Config Export/Import

⌘K — Chart a Course

Press ⌘K (or Ctrl+K) from anywhere to open the command palette. All nine sections are instantly searchable by name. Selecting a command node navigates to Pre-Flight with it pre-selected; selecting an agent, skill, or convention opens it in the editor.

⌘K Command Palette

Features

The Chart

Feature Description
Codex (File Explorer) Browse and manage your ~/.claude directory with drag-drop, inline folder creation, and context menus
Relationship Graph Interactive ReactFlow node graph mapping connections between commands, orchestrators, agents, skills, hooks, convention profiles, and external services
Monaco Editor Full-featured editor with parchment light theme and syntax highlighting for Markdown, JSON, JS, TS, YAML — opens as tabs alongside the graph
Node Inspection Click any node to highlight its connections in a detail panel; double-click to open in editor
Focus Mode Clicking a node dims unrelated nodes to low opacity — connected nodes stay prominent
View Modes Switch between Folder (grouped by domain) and Type (grouped by category) layouts
Search & Filter Filter by node type, edge type (spawns/uses/accesses/reads), or search by name with real-time highlighting
Expand/Compact Toggle compact vs. expanded node cards to see labels, domains, and connection counts

Pre-Flight

Feature Description
Command Selector Pick from built-in commands, user commands, and skills — grouped by domain
Arguments & Context Add positional arguments and freeform additional context separately — both are included in the final prompt
File Attachments Drag-drop files to attach as readable context passed to Claude
Project Targeting Choose a working directory from registered projects (Local) or browse Bitbucket repos
Directory Browser Navigate the filesystem inline without leaving the form
Live Preview The resolved command string updates in real time before you launch
Permissions Toggle One-click --dangerously-skip-permissions when you need autonomous operation

Logbook

Feature Description
Live Streaming Real-time SSE output with per-line elapsed timestamps, auto-scroll, and URL auto-linking
Tool Call Blocks Bash, Write, Edit, Read, and other tool invocations rendered as collapsible blocks
Run History Full execution log with status badges, duration, exit codes — re-run any previous execution with one click
Interactive Sessions When Claude pauses waiting for input, respond directly from the Logbook with yes/no or free text
Search & Filter Search output content or filter by status (running / done / error / killed)
Session Resume Resume a paused or interrupted Claude session from the Logbook using Continue Session

Flight Plans

Feature Description
Templates Save parameterized command templates with named argument slots ({arg.name}) and live preview
Workflows Chain multiple templates into multi-step workflows; pass outputs between steps with {{prev.field}} tokens
Sub-workflows Embed one workflow as a step inside another for composable automation chains
JIRA Anchoring Tag a workflow run to a JIRA ticket — the ticket key and summary are stored on the run and shown as a badge
Cumulative Duration Workflows report both active time (steps running) and total wall-clock time so idle gaps are visible

Automation

Feature Description
Autopilot (Schedules) Cron-based scheduling; JIRA mode fires only for new matching issues, not on every tick
Tower Hails (Webhooks) HTTP endpoints with Mustache payload templates, optional shared-secret auth, and one-click test-fire
Scrambles (Triggered Runs) Unified history of all automation-triggered executions with source-type filter tabs

Hangars & Toolbox

Feature Description
Hangars (Projects) Register project directories; view CLAUDE.md snippets inline; one-click path selection across all forms
Bitbucket Integration List repos and branches, clone directly into a local path
Cascade Cleanup Delete a project and automatically clean up associated webhooks, polls, schedules, and run history
Toolbox (Config I/O) Export all automation configs as a timestamped JSON file; import with merge or replace mode

Quick Start

Prerequisites

  • Node.js 18+
  • Claude Code CLI installed and accessible as claude
  • pm2 (optional — npm install -g pm2) for production deployment

Install & Deploy

git clone https://github.com/Jabito/claude-flightdeck.git
cd claude-flightdeck

# Deploy: installs deps, runs tests, builds client, starts via pm2
bash deploy.sh

# Open in browser
open http://localhost:3001

Deploy Commands

bash deploy.sh             # Test + build + start/restart (default)
bash deploy.sh test        # Run integration tests only
bash deploy.sh restart     # Rebuild and restart
bash deploy.sh stop        # Stop the server
bash deploy.sh status      # Show pm2 process info
bash deploy.sh logs        # Tail logs (add number for line count: logs 100)
bash deploy.sh delete      # Remove from pm2 entirely

Development Mode

npm install
cd client && npm install && cd ..
npm run dev    # Starts backend (nodemon :3001) + Vite dev server (:5173) concurrently

Architecture

claude-flightdeck/
├── server.js                # Express backend — API, SSE streaming, process management
├── ecosystem.config.cjs     # pm2 production config
├── deploy.sh                # One-command deploy script
├── __tests__/               # Jest + supertest integration tests
├── client/
│   ├── src/
│   │   ├── App.jsx                          # Main app shell — unified nav, altimeter, ⌘K palette
│   │   ├── api.js                           # API client
│   │   ├── styles/tokens.css                # Design tokens — OKLCH palette + font imports
│   │   └── components/
│   │       ├── Glyph.jsx                    # Aviation SVG sigils (24 icons)
│   │       ├── FileExplorer.jsx             # Codex — tree view with drag-drop
│   │       ├── RelationshipGraph.jsx        # The Chart — ReactFlow node graph
│   │       ├── FileEditor.jsx               # Monaco editor (parchment light theme)
│   │       ├── ClaudeRunner.jsx             # Pre-Flight — command execution form
│   │       ├── RunsPanel.jsx                # Logbook — run history & output viewer
│   │       ├── ScriptsManager.jsx           # Flight Plans — templates & workflows
│   │       ├── WebhookManager.jsx           # Tower Hails — webhook CRUD
│   │       ├── ScheduleManager.jsx          # Autopilot — cron schedule manager
│   │       ├── AutomationRunsPanel.jsx      # Scrambles — unified automation run history
│   │       ├── ProjectsManager.jsx          # Hangars — project browser + Bitbucket clone
│   │       ├── ProjectBrowser.jsx           # Filesystem project selector sub-component
│   │       ├── BitbucketRepoBrowser.jsx     # Bitbucket repo/branch browser
│   │       └── ConfigManager.jsx            # Toolbox — config export/import
│   └── vite.config.js
├── webhooks.json            # Webhook definitions (per-user, gitignored)
├── webhooks.example.json    # Starter template
├── polls.json               # JIRA poll definitions
├── polls.example.json
├── schedules.json           # Scheduled job definitions
├── schedules.example.json
├── templates.json           # Command templates
├── workflows.json           # Multi-step workflow definitions
└── *-runs.json              # Execution history (per category, gitignored)

Expected Claude File Locations

Claude Flightdeck reads from and manages the standard Claude Code directory at ~/.claude/:

~/.claude/
├── CLAUDE.md                    # Global instructions loaded in every session
├── settings.json                # Permissions, env vars, hooks, MCP servers
├── plugins.local.md             # Local credentials (Jira/Confluence PATs) — not synced
├── agents/                      # Agent definitions (orchestrators + workers)
│   ├── task-director.md
│   ├── backend-engineer.md
│   └── ...
├── commands/                    # Slash command entry points
│   ├── dev/
│   │   ├── plan.md              # /dev:plan
│   │   ├── implement.md         # /dev:implement
│   │   └── ...
│   └── doc/
│       └── ...
├── skills/                      # Domain reference knowledge injected into agents
│   ├── dev/
│   ├── docs/
│   └── ...
├── conventions/                 # Team-specific convention profiles (rendered as convention nodes)
│   ├── atlassian.md             # Jira + Confluence base URLs, auth method
│   ├── jira.md                  # Project keys, status workflow, branch prefix
│   ├── bitbucket.md             # Workspaces, repo root, service URL
│   └── confluence.md            # Default space keys, template names
└── hooks/                       # Hook scripts (lifecycle event handlers)
    ├── cl-observe.sh
    └── cl-stop.sh

plugins.local.md — Credential Format

Required for JIRA polls and Confluence integrations:

confluence_url: https://your-confluence.example.com/confluence
confluence_pat: YOUR_CONFLUENCE_PAT
jira_url: https://your-jira.example.com/jira
jira_pat: YOUR_JIRA_PAT

For Jira Cloud (email + API token), configure instead in ~/.claude/settings.json:

{
  "env": {
    "ATLASSIAN_BASE_URL": "https://yourorg.atlassian.net",
    "ATLASSIAN_EMAIL": "you@example.com",
    "ATLASSIAN_API_TOKEN": "your-api-token"
  }
}

Integrations

Service Capabilities
Jira JQL polling, issue token templates, ticket-driven automation (Server/DC + Cloud)
Confluence Service discovery, documentation workflows
Bitbucket Repo listing, branch browsing, clone to local path
GitHub Service discovery and metadata

Tech Stack

Layer Technology
Backend Node.js + Express
Frontend React 18 + Vite
Editor Monaco Editor
Graph ReactFlow
Streaming Server-Sent Events (SSE)
Process Manager pm2

Configuration

Per-user files (gitignored — each user maintains their own)

File Purpose
polls.json Your JIRA poll configurations
webhooks.json Your webhook configurations
schedules.json Your schedule configurations
templates.json Your command templates
workflows.json Your multi-step workflow definitions
command-runs.json Local command run history
poll-runs.json Local poll run history
schedule-runs.json Local schedule run history
webhook-runs.json Local webhook run history
workflow-runs.json Local workflow run history

Copy the provided .example.json files as starting points:

cp polls.example.json polls.json
cp webhooks.example.json webhooks.json
cp schedules.example.json schedules.json

Port

Default port is 3001. Override via environment variable:

PORT=4000 bash deploy.sh

Keyboard Shortcuts

Shortcut Action
⌘K / Ctrl+K Open command palette — navigate to any section or node
⌘S / Ctrl+S Save active file in the editor
⌘1⌘9 Jump directly to nav sections (1=The Chart … 9=Toolbox)
? Toggle keyboard shortcuts overlay
Esc Close palette / overlay

Contributing

Contributions are welcome! Please read CONTRIBUTING.md before submitting a PR.

Security

To report a vulnerability, see SECURITY.md. Please do not open public issues for security concerns.

License

MIT

About

Browser-based control panel for managing and monitoring Claude Code multi-agent pipelines

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages