Skip to content
/

CC Command Center / Local Qwen Advisor

cc-command-center · amahpour/claude-code-command-center · ★ 9

Passive session observability (FTS5 dashboard over JSONL) + inter-LLM delegation (Claude calling Qwen as a cheaper advisory model)

Best whenSeparation of concerns: observability is not workflow. The command center deliberately has no behavioral prescription — it only watches. The Qwen skill treat…
Skip ifNo modification of Claude Code behavior (all hooks are read-only), No workflow prescription or agent methodology
vs seeds
superpowershooks block or enforce behavior (Iron Law, TDD gates); command cent…
Primitive shape 9 total
Skills 1 Hooks 8
00

Summary

CC Command Center / Local Qwen Advisor — Summary

This batch entry corresponds to the Reddit reference "Claude Code command center Qwen advisor." Two distinct GitHub repositories match this description and are analyzed together:

  1. amahpour/claude-code-command-center (5 stars) — A Python/FastAPI web dashboard that hooks into Claude Code's event system to monitor and manage all active sessions in real-time. It installs 8 Claude Code hooks (SessionStart, PreToolUse, PostToolUse, Stop, SubagentStart, SubagentStop, SessionEnd, Notification) via scripts/setup.sh, pipes events through a hook handler to a local SQLite database, and serves a live dashboard at localhost:4700 with session status, cost tracking, live transcripts, full-text search, analytics, and Jira/PR integration.

  2. AshlynYang-dev/claude-code-qwen-skill (4 stars) — A Claude Code skill that calls Alibaba's Qwen model (qwen-max/qwen-plus/qwen-turbo/qwen-long) via the Dashscope API as a "local Qwen advisor." It is installed as ~/.claude/skills/qwen, activated with /qwen, and saves responses to markdown files. The skill targets Chinese-language analysis, domestic market research, and second-opinion use cases where Qwen's training data complements Claude's.

Together, these two items describe a workflow where Claude Code sessions are monitored via a local dashboard, and a secondary Qwen model provides specialized advisory input. Neither framework is in the 11 seeds; the closest seed is ccmemory (persistent storage for Claude Code sessions) for the command center component.

01

Overview

CC Command Center / Local Qwen Advisor — Overview

Component A: Claude Code Command Center (amahpour)

Origin

Authored by amahpour, Python/FastAPI, 5 stars, last pushed 2026-05-03. MIT license.

Philosophy

The README states: "A web-based command center for monitoring and managing multiple Claude Code sessions in real-time."

The core value is observability for parallel Claude Code sessions: when running 3-5 agent sessions simultaneously, users lose track of which session is doing what, how much each costs, and whether any need attention. The dashboard provides a single screen for all session status.

Architecture Philosophy (from ARCHITECTURE.md)

"Claude Code has a hooks system — you can register shell commands that run every time Claude does something. We abuse this to spy on every Claude Code session you run, anywhere on your machine, and pipe the data into a web dashboard."

The hook-handler.py bridge is designed to never block Claude Code: zero dependencies (stdlib only), 5-second timeout, silent failure if the server is down.


Component B: Claude Code Qwen Skill (AshlynYang-dev)

Origin

Authored by AshlynYang-dev, Shell/Markdown, 4 stars, last pushed 2026-03-23. MIT license.

Philosophy

"Claude is great at architecture and reasoning. Qwen excels at Chinese-language analysis, domestic market context, and cross-checking data against Chinese real-world norms. This skill bridges both worlds without leaving your terminal."

Use Cases

  • Chinese industry research (trained on massive Chinese-language corpus)
  • Domestic market benchmarks (restaurant, retail, manufacturing norms)
  • Regulatory & compliance questions (Chinese law, standards, business practices)
  • Second opinion on numbers (cross-check estimates against Qwen's training data)
  • Chinese-language writing (native fluency, not translation)
02

Architecture

CC Command Center / Local Qwen Advisor — Architecture

Component A: Command Center Architecture

Distribution

  • pip: pip install git+https://github.com/amahpour/claude-code-command-center.git
  • Local clone + pip install .

Required Runtime

  • Python 3.12+
  • Claude Code CLI

Tech Stack

Layer Technology
Backend Python 3.12+ / FastAPI / uvicorn / aiosqlite
Frontend Vanilla HTML/CSS/JS with xterm.js (CDN, no build step)
Database SQLite with FTS5 full-text search
Testing pytest + pytest-asyncio (unit), Playwright (e2e)

How It Works

Claude Code runs in any terminal
    │
    ▼ (hooks fire on every event)
hook-handler.py (stdlib only, zero deps)
    │ (POST to localhost:4700/api/hooks, 5s timeout, silent fail)
    ▼
FastAPI server (localhost:4700)
    │ (store in SQLite, broadcast via WebSocket)
    ▼
Browser dashboard (real-time updates)

Structure

claude-code-command-center/
├── server/
│   ├── main.py          # FastAPI app
│   ├── sessions.py      # Session state management
│   ├── watcher.py       # JSONL file watcher
│   ├── hooks.py         # Hook event handler
│   ├── db.py            # SQLite + FTS5
│   └── routes/          # API endpoints
├── scripts/
│   ├── setup.sh         # Install hooks into ~/.claude/settings.json
│   ├── hook-handler.py  # Bridge (zero deps, never blocks Claude Code)
│   └── uninstall.sh     # Remove hooks
└── public/              # Dashboard HTML/CSS/JS

Component B: Qwen Skill Architecture

Distribution

git clone https://github.com/AshlynYang-dev/claude-code-qwen-skill ~/.claude/skills/qwen

Required Runtime

  • Claude Code
  • curl + jq
  • Dashscope API key (QWEN_API_KEY)

Structure

claude-code-qwen-skill/
├── SKILL.md           # Claude Code skill definition
├── scripts/
│   └── ask_qwen.sh    # Shell script calling Dashscope API
└── .config.example    # API key template
03

Components

CC Command Center / Local Qwen Advisor — Components

Component A: Command Center Components

Hooks (8) — installed into ~/.claude/settings.json

Event Purpose
SessionStart Capture new session initialization
PreToolUse Capture tool call intent
PostToolUse Capture tool call results (cost, tokens)
Stop Capture session completion
SubagentStart Capture subagent launch
SubagentStop Capture subagent completion
SessionEnd Capture session close
Notification Capture agent notifications

All hooks use matcher: "" (match everything, no filtering).

REST API Endpoints

Endpoint Method Purpose
/api/health GET Health check
/api/sessions GET List active sessions
/api/sessions/:id GET Session with events
/api/sessions/:id/transcript GET Full transcript
/api/hooks POST Receive hook events
/api/history GET Paginated session history
/api/search?q=query GET Full-text transcript search
/api/settings GET/PUT App settings
/api/analytics/summary GET Token/cost summary
/api/analytics/daily GET Daily usage breakdown

Dashboard Features

Feature Description
Live Dashboard All active Claude Code sessions: status, context usage, cost
Live Transcripts Real-time conversation view with collapsible tool calls
Session History Past sessions with full-text search
Analytics Token usage, costs, session patterns (interactive charts)
Jira Integration Auto-detect ticket IDs from git branch names
PR/MR Links GitHub/GitLab pull request links on session cards

Session Status Flow

Working (green) → Waiting (yellow) → Idle (blue) → Stale (grey) → Completed (grey)


Component B: Qwen Skill Components

Skill: qwen

Component Description
SKILL.md Skill definition with activation triggers and usage instructions
ask_qwen.sh Shell script calling Dashscope API (curl + jq)
.config.example API key configuration template

Models Supported

Model Use Case
qwen-max Most capable, complex analysis (default)
qwen-plus Balanced speed/quality
qwen-turbo Fast, simple questions
qwen-long Long-context documents
05

Prompts

CC Command Center / Local Qwen Advisor — Prompts

Excerpt 1 — Qwen SKILL.md (how Claude calls Qwen)

# Qwen — Alibaba Cloud AI Assistant

Call Alibaba's Qwen (通义千问) model for Chinese business analysis, industry research, 
and general questions.

## When to use this skill

Use Qwen when:
- You need a second opinion on Chinese industry data (餐饮、零售、制造等)
- Researching Chinese market norms, regulations, or business practices
- Validating business logic against Chinese real-world context
- Getting Chinese-language analysis or writing assistance
- Cross-checking numbers/benchmarks against Qwen's training data

## How to call the script

Script path:

~/.claude/skills/qwen/scripts/ask_qwen.sh


Minimal invocation:
```bash
QWEN_API_KEY=sk-xxxx ~/.claude/skills/qwen/scripts/ask_qwen.sh "你的问题"

The script prints on success:

output_path=<path to markdown file>

Read the file at output_path to get Qwen's response.


**Prompting technique**: Tool-as-skill pattern. The skill defines an external tool invocation as a Claude Code skill, allowing Claude to call a separate LLM via shell script. The `output_path=<path>` return convention is a structured machine-readable response format that Claude can parse reliably — the skill is designed as an inter-LLM API.

## Excerpt 2 — ARCHITECTURE.md Hook Design Rationale

```markdown
Critical design constraint: **it must never block Claude Code.** If the server is down, 
it silently exits. 5-second timeout on the HTTP request. No retries. No logging. 
If it fails, Claude Code never notices.

Prompting technique: Failure-safe infrastructure design documented as behavioral constraint. The "never block Claude Code" rule is both a safety guarantee and an architectural constraint that flows through every design decision (no dependencies, short timeout, silent failure). This is infrastructure documentation as agent behavioral instruction.

Excerpt 3 — Command Center CLAUDE.md Pipeline Rules

## Who Does What

**Claude Code** - writes code, opens PRs, merges when CI passes
**Command Center** - observes, indexes, and surfaces session analytics

## Monitoring Guidelines

The dashboard reads from ~/.claude/projects/ — do not delete session files.
Hook events are fire-and-forget; the server processes them asynchronously.

Prompting technique: Role-separation documentation. Even for an observability tool, the CLAUDE.md defines what the tool does vs. what Claude Code does, preventing Claude from trying to "help" with monitoring infrastructure.

09

Uniqueness

CC Command Center / Local Qwen Advisor — Uniqueness

What Makes This Entry Distinct

This entry covers two small, independently developed repositories that together represent a unique combination not found in any seed framework:

  1. Pure observability without workflow prescription (command center)
  2. Inter-LLM delegation via skill (Qwen advisor)

Component A: Command Center — Pure Observability Layer

The Gap It Fills

Every seed framework (superpowers, bmad-method, agent-os, taskmaster-ai, etc.) is prescriptive — it tells the agent what to do and how to behave. None of them provide a retroactive observability layer that indexes what the agent actually did across sessions.

The command center is the only tool in the corpus whose sole purpose is observation — no workflow, no methodology, no behavioral prescription. It answers: "What has Claude Code been doing, and what did it produce?"

Searchable Session History

SQLite FTS5 full-text search across all indexed JSONL transcripts is unique in the corpus. Other frameworks with memory (ccmemory, asynkor) store structured state or task records. The command center indexes complete Claude Code transcripts — every assistant turn, every tool call — making them searchable retroactively.

Hook-as-Observer Pattern

The 8-hook configuration covers the full Claude Code lifecycle without modifying any behavior. This is a strict read-only hook usage. In contrast, flokay's hooks validate behavior (write-guard), shep-cli's hooks enforce formatting (PostToolUse → format-tsp.sh), and asynkor's hooks drive coordination. The command center uses hooks purely as a telemetry side channel.


Component B: Qwen Skill — Cross-Model Advisory

The Gap It Fills

No seed framework delegates to a non-Claude LLM from within a Claude Code session. The Qwen skill is the only example in the corpus of:

  • Claude Code calling a different vendor's model (Alibaba Qwen via Dashscope)
  • A skill acting as a router to a specialized second model
  • Cost arbitrage: use a cheaper model (qwen-turbo) for advisory tasks, freeing Claude tokens for implementation

Multi-Model Without Multi-Agent

The Qwen skill achieves a form of multi-model reasoning without multi-agent orchestration. There is no second Claude Code instance, no agent spawning, no coordinator. Claude Code remains the single agent; Qwen is an external oracle it can consult via a synchronous skill call.

This is meaningfully different from codeg (which manages multiple agent instances) or asynkor (which coordinates concurrent Claude Code processes). The Qwen skill is a single-agent, multi-model pattern.


Comparison to Seeds

Dimension Closest Seed Difference
Observability ccmemory ccmemory stores structured task memory; command center indexes raw transcripts + full-text search
Hook usage superpowers superpowers hooks enforce behavior; command center hooks only observe
Secondary LLM none No seed framework uses a non-Claude model from within Claude Code
Workflow prescription none Command center deliberately has no workflow prescription — this is its defining characteristic

Limitations

  • Low adoption: Combined 9 stars across both repos (5 + 4). Both are proof-of-concept quality.
  • No integration: The two components are not integrated with each other. A Qwen skill call does not appear in the command center dashboard (unless the ask_qwen.sh shell execution is captured by the Bash hook).
  • Stateless Qwen: No cross-session Qwen memory. Each call is independent.
  • Dashboard is read-only: The command center cannot trigger actions, modify sessions, or control Claude Code behavior.
04

Workflow

CC Command Center / Local Qwen Advisor — Workflow

Command Center Workflow

Install

pip install git+https://github.com/amahpour/claude-code-command-center.git
bash scripts/setup.sh          # Adds 8 hooks to ~/.claude/settings.json
uvicorn server.main:app --port 4700

Open localhost:4700 in browser.

Runtime

  1. User runs Claude Code in any terminal (as normal)
  2. Each Claude Code event fires a hook → hook-handler.py → POST to dashboard
  3. Dashboard updates in real-time via WebSocket
  4. User monitors all sessions from one screen

Session History

  • The JSONL watcher monitors ~/.claude/projects/ for transcript changes
  • Historical sessions are indexed in SQLite FTS5 for search

Qwen Advisor Workflow

Install

git clone https://github.com/AshlynYang-dev/claude-code-qwen-skill ~/.claude/skills/qwen
cp ~/.claude/skills/qwen/.config.example ~/.claude/skills/qwen/.config
# Edit .config: add QWEN_API_KEY

Register in ~/.claude/settings.json:

{ "skills": ["~/.claude/skills/qwen"] }

Usage

/qwen 分析中国餐饮行业2025年的外卖市场规模

Or call directly:

~/.claude/skills/qwen/scripts/ask_qwen.sh "问题" --model qwen-max

Output: a markdown file at output_path=<path>. Claude reads the file.

Combined Workflow

User asks Claude Code a question
Claude uses its own knowledge first
If Chinese market context needed: /qwen <question>
ask_qwen.sh calls Dashscope API
Response saved to markdown file
Claude reads file, incorporates into response

Approval Gates

Neither component has approval gates — both operate as passive instruments (command center observes; Qwen skill responds on demand).

06

Memory Context

CC Command Center / Local Qwen Advisor — Memory & Context

Component A: Command Center Memory

State Storage

State Storage Persistence
Session metadata SQLite Project/Global
Hook events SQLite Project/Global
Session transcripts (indexed) SQLite FTS5 Project/Global
Active session state In-memory (FastAPI) Session
Analytics data SQLite (computed from events) Project/Global

JSONL Source Truth

The actual Claude Code transcripts live in ~/.claude/projects/ as JSONL files. The command center reads these files (via file watcher) and indexes them into SQLite. The JSONL files are the canonical source; SQLite is a derived index.

SQLite FTS5 enables full-text search across all indexed transcripts. This provides a searchable memory of all past Claude Code interactions.


Component B: Qwen Skill Memory

State Storage

State Storage Persistence
Qwen responses Markdown files (path from output_path=) Session
API key ~/.claude/skills/qwen/.config Global

Memory Model

The Qwen skill has no persistent memory — each call is stateless. The response markdown file is the output artifact, and Claude Code reads it to incorporate the response into its current context. There is no cross-session Qwen memory.

07

Orchestration

CC Command Center / Local Qwen Advisor — Orchestration

Orchestration Pattern

Neither component implements multi-agent orchestration. They are additive tools layered on top of Claude Code, not orchestration frameworks.

Component Role Pattern
Command Center Passive observer Event-driven hook consumer
Qwen Skill Synchronous advisor One-shot LLM call

Execution Mode

Command Center: event-driven

The FastAPI server runs as a background daemon. Claude Code hooks POST events to http://localhost:4700/webhook as they fire. The command center processes events asynchronously, indexes JSONL transcripts via file watcher, and updates its SQLite database. No agent logic runs inside the command center — it is a pure observer.

Qwen Skill: one-shot

When Claude Code invokes the Qwen skill, ask_qwen.sh fires synchronously:

  1. Reads the input prompt from a file (path passed as argument)
  2. Calls the Dashscope API (qwen-turbo or qwen-max depending on config)
  3. Writes the Qwen response to a markdown file at output_path=
  4. Exits — no state persists

Claude Code then reads the output file to incorporate the Qwen response into its context.

Multi-Model Delegation

The Qwen skill is the only point of multi-model delegation in this combined system:

Claude Code → invokes skill → ask_qwen.sh → Dashscope API → Qwen model
                                                              ↓
Claude Code ← reads output_path= file ← Qwen response markdown

This is a pull model: Claude Code decides when to ask Qwen and what to ask. Qwen has no visibility into Claude Code's current context beyond the explicit prompt string passed to the skill.

Agent Count

  • Subagents: 0
  • External agents: 1 (Qwen, via API, not a Claude Code agent)
  • Claude Code instances: 1 (the primary instance the user is running)

Hooks as Orchestration Boundary

The 8 hooks in the command center define the entire integration surface:

Hook Event Effect
PreToolUse Before any tool Log tool call intent
PostToolUse After any tool Log tool result
PreToolUse (file ops) File read/write/edit Log file access
PreToolUse (bash) Bash execution Log command
Stop Session end Flush session record
Notification Claude notification Log notification
SubagentStop Subagent stops Log subagent completion
PreCompact Context compaction Log compaction event

These hooks feed the command center database. They do not gate or modify Claude Code behavior — they are read-only side channels.

No Approval Gates

Neither component implements approval gates. The command center observes but never blocks. The Qwen skill advises but Claude Code is not required to act on the advice.

08

Ui Cli Surface

CC Command Center / Local Qwen Advisor — UI & CLI Surface

Component A: Command Center Web Dashboard

URL: http://localhost:4700

Tech stack: Python 3.12+ / FastAPI / aiosqlite / SQLite FTS5 / vanilla HTML+CSS+JS / xterm.js

Dashboard Pages

Page Path Description
Overview / Active sessions, event counts, recent activity
Sessions /sessions List of all indexed Claude Code sessions
Session detail /sessions/{id} Full transcript, hook events timeline, tool usage
Search /search Full-text search across all indexed transcripts (SQLite FTS5)
Analytics /analytics Aggregated metrics: tokens used, tools called, session durations
Terminal /terminal xterm.js embedded terminal (WebSocket bridge to server process)

REST API (FastAPI)

All endpoints under http://localhost:4700:

Method Path Purpose
POST /webhook Receive hook events from Claude Code
GET /api/sessions List sessions
GET /api/sessions/{id} Session detail + transcript
GET /api/search?q= Full-text search
GET /api/analytics Aggregated stats
WS /ws/terminal WebSocket terminal bridge

Installation & Launch

# Clone and install
git clone https://github.com/amahpour/claude-code-command-center
cd claude-code-command-center
pip install -r requirements.txt

# Start server
python main.py  # binds to localhost:4700

# Configure hooks in Claude Code settings.json
# (see 03-components.md for hook configuration)

No CLI Binary

The command center has no dedicated CLI binary. It is launched via python main.py directly. There are no subcommands.


Component B: Qwen Skill

No UI

The Qwen skill has no web dashboard, no CLI binary, and no interactive interface. It is a pure shell script invoked by Claude Code's skill system.

Skill Invocation (Claude Code)

Claude Code invokes the skill via its built-in skill runner. The user types a prompt in the Claude Code conversation referencing the Qwen skill, or a CLAUDE.md instruction triggers it.

# Example invocation pattern (in Claude Code conversation)
Use the qwen skill to review this architecture decision: [...]

Configuration File

~/.claude/skills/qwen/.config

Contains:

API_KEY=<dashscope api key>
MODEL=qwen-turbo   # or qwen-max

Output Artifact

The skill writes its response to a markdown file. The output_path= argument in the skill invocation determines the path. Claude Code reads this file after the skill exits.

Installation

# Clone and copy skill
git clone https://github.com/AshlynYang-dev/claude-code-qwen-skill
cp -r qwen-skill ~/.claude/skills/qwen

# Set API key
mkdir -p ~/.claude/skills/qwen
echo "API_KEY=<your-key>" > ~/.claude/skills/qwen/.config

Related frameworks

same archetype · same primary tool · same memory type

CodeMachine CLI ★ 2.5k

JavaScript-DSL workflow orchestration engine that captures repeatable AI coding agent workflows with tracks, condition groups,…

Codexia ★ 690

Tauri desktop app providing visual control plane, task scheduler, git worktree manager, and headless REST API for Codex CLI +…

Kagan ★ 88

Kanban TUI for AI coding agents with a structurally enforced human review gate (REVIEW → DONE cannot be automated) — one git…

oh-my-claudecode (Yeachan-Heo) ★ 35k

Zero-learning-curve teams-first multi-agent orchestration for Claude Code with autopilot (6-phase lifecycle), ralph (PRD-driven…

Paseo ★ 6.8k

Multi-provider AI coding agent orchestration daemon with cross-device access (phone/desktop/CLI) and git worktree isolation.

CCG Workflow ★ 5.4k

Routes Claude + Codex + Gemini to task-appropriate collaboration strategies (direct-fix through full-collaborate) with hook-based…