workflow
Optional narration voice using the ElevenLabs API, providing natural multilingual text-to-speech for the cockpit while keeping API keys in the MCP server environment.
Provides local Git operations for selected repositories, including per-repo commit history and commit creation with configured size limits as part of the workflow's commit and publish phases.
Integrates with GitHub through authenticated gh to publish pull requests, create PRs per repo (ideally ≤1000 lines), fill descriptions from PR templates, set the user as assignee and chosen reviewers, and accept GitHub task links as context.
Optional narration voice using OpenAI's gpt-4o-mini-tts model, providing multilingual text-to-speech for the cockpit while keeping API keys server-side.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
claude-workflow
A /workflow skill for Claude Code that moves the conversation out of the terminal and into a local cockpit UI. You stay in charge of every decision and every file without having to read a wall of text.
/workflow ─▶ Context ─▶ Validation ─▶ Plan ─▶ Coding ─▶ Pre-review ─▶ Commits ─▶ Published
(terminal) product+tech narrated file by agents + PRs ≤1k
questions slides file Fix/Dismiss linesContext: Claude says hi and asks for the task (ClickUp/GitHub link or text), the repos (to change, or for context only), designs and a style guide. Previous answers are remembered.
Cockpit: a local web app opens, with the task title, a phase stepper, and a ⚙ to edit the context at any time.
Validation: product questions, then technical ones. Each shows its full context, a "+" example, and 2–4 options plus free text. Answer with the keyboard (1–4), by clicking, or by voice.
Plan: narrated slides covering the feature, edge cases, implementation (with files and mermaid diagrams), tests, and how the work splits into PRs. Press ⌘P (or hold Space) to interrupt with a question. Claude answers and updates the slides.
Coding: each file's diff replays line by line, tagged with the part of the plan it implements. It types at a human pace: → / ← step a line (⇧ for a whole hunk), P pauses. Approve it (⌘⏎) or ask for changes before the next file starts;
[]move between files, andLshows which architecture layer each file is in.Pre-review: parallel reviewer agents check correctness, security, constraints and tests, and the style guide. Numbered findings appear inline, GitHub-style, with Fix / Dismiss / Ask.
Commit history: PRs (ideally ≤1000 lines) and commits (≤300 lines) per repo, with descriptions filled from the PR template, you as assignee, and the reviewers you pick. Then Publish.
How it works
Claude Code session ◀──stdio MCP──▶ workflow server ◀──WebSocket──▶ browser UI
thinks, edits, runs git/gh state machine + memory React
reviewers = subagents (~/.claude-workflow) voice: Web Speech APIClaude Code stays the brain and uses your existing plan and permissions. The MCP server provides waiting tools (workflow_ask, workflow_present_plan, workflow_file_ready, …). Each one puts something on screen and returns when you act, whether you click or speak.
Related MCP server: deepseek-harness-mcp
Install
Requirements: Node 20.19+, 22.13+ or 24+, the Claude Code CLI, and gh (authenticated) for publishing.
git clone --branch v0.1.0 https://github.com/Jamesmoreno21/claude-workflow
cd claude-workflow
npm run install-skillPin to a release tag (see Releases) rather than main. To upgrade later: git fetch --tags && git checkout vX.Y.Z && npm run install-skill.
On a company machine, check that huggingface.co and cdn.jsdelivr.net are reachable if you want the default Kokoro voice (the system voice works offline), and that your Claude Code setup allows user-scoped MCP servers.
This builds the app, links the skill into ~/.claude/skills/workflow, and registers the workflow MCP server at user scope. Open a new Claude Code session in your project and type /workflow.
Voice
Press ⌘P / Ctrl+P to talk and again to send (Esc cancels), or hold Space. Listening uses the browser's Web Speech API, so it works best in Chrome. The 🔊 button in the header picks the narration voice. Claude has no speech API, so narration comes from one of these:
Voice | Setup | Notes |
Kokoro (default) | none | Open-source neural voice that runs in your browser, on the GPU when available. Free and private; about 90 MB downloaded once. English only. |
ElevenLabs |
| The most natural voice; multilingual. Optional |
OpenAI |
|
|
System voice | none | Instant, but robotic. Also used as the fallback whenever another voice fails. |
API keys stay in the MCP server's environment. The browser asks the local server for audio and never sees the keys.
Security
The cockpit can approve code and publish PRs, so it only accepts its own origin: other websites can't drive it over the WebSocket or read its state (DNS rebinding included), and it listens on 127.0.0.1 only. Markdown from task descriptions is sanitized, the UI ships a Content-Security-Policy, file paths are confined to the selected repos, and memory and session files are owner-only. The skill treats task text as data, not instructions, and nothing is pushed until you press Publish. See SECURITY.md to report a vulnerability.
Develop
npm install
npm run demo # build, then run a scripted fake Claude through every phase
npm test # Vitest unit and component tests
npm run test:e2e # Playwright: the demo end to end (run `npx playwright install chromium` once)
npm run lint # ESLint + Prettier check (`npm run format` fixes)
npm run typecheckFor UI work with hot reload, run npm run demo:dev and npm run dev:web in two terminals, then open http://localhost:5173.
CI runs lint, typecheck, unit tests (Node 22 and 24) and the e2e on every push and PR. Dependencies are pinned to patch ranges (~x.y.z); Dependabot proposes updates weekly.
Versioning
Semantic Versioning, with every change noted under ## [Unreleased] in CHANGELOG.md. To cut a release:
npm run release -- patch # or minor, major, or an exact X.Y.Z
git push --follow-tagsThe script bumps all packages together, dates the changelog, runs lint, typecheck and tests, then commits and tags vX.Y.Z. Pushing the tag publishes a GitHub release with those notes. The MCP server reports its version at startup.
Layout
skill/workflow/SKILL.md the playbook Claude follows
shared/ types and constants used by both server and UI
protocol.ts state, events, enums
constants.ts PR/commit size limits, port, routes
tts.ts narration request contract
server/
bin/ stable entry points: mcp.js, demo.js
src/index.ts MCP server entry
src/config/ settings (every env var), constants, paths
src/mcp/ tool registration, input schemas, result hints
src/core/ Workflow operations and the Store (state, events, waiting)
src/services/ git, memory, TTS proxy, browser
src/http/ cockpit server, static files, origin/host checks + CSP
src/demo/ scripted fake Claude and its fixture task
web/src/
App.tsx layout and phase → screen
app/ AppContext, focus
config/settings.ts user preferences (localStorage)
constants/ labels, phases, shortcuts, replay timing, voices
services/ socket, API, storage, speech recognition, tts/
hooks/ connection, push-to-talk, replay, hotkeys
lib/ diff rows and size classes (pure)
components/ CodeView, Markdown, Diagram, Chat, Header, …
screens/ one per phase: ValidationScreen, PlanScreen, …
e2e/ Playwright specLicense
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Source-checked CLI guides and model-aware planning for Claude Code, Codex, and Grok Build.
AI task cockpit: an agent does your tasks and asks before anything irreversible.
Live SEO workflow tools for Claude Code, Codex, and AI agents.
Live React design-system APIs, patterns, and code validation so AI agents build real UI, not slop.
Related MCP Servers
- FlicenseAqualityDmaintenanceEnables Claude Code to generate and preview rich user interfaces via the A2UI protocol, using declarative JSON components and real-time WebSocket updates.7-
- AlicenseNot gradedqualityCmaintenanceEnables Codex to start the local DeepSeek Harness Web UI, delegate coding tasks into visible sessions, and review workspace changes.116 npm11MIT
- FlicenseNot gradedqualityBmaintenanceEnables Claude conversations to send tasks to a local Claude Code CLI instance and retrieve results, bridging chat to laptop-based builds via stdio or HTTPS/tunnel modes.5 npm-
- AlicenseNot gradedqualityDmaintenanceEnables Claude Code sessions to escalate decisions to a local mission-control hub through its request_decision tool, returning the operator's selected choice or typed answer straight back to the waiting tool call.8 npmMIT