Orchestra is a local-first desktop application designed for local development. It is installed and executed entirely on your local machine.
When working on modern projects, you often need to run multiple commands at the same timeβsuch as starting a backend database, spinning up an API server, running build steps, and launching a frontend web server. Managing multiple terminal tabs, running commands in the correct sequence, and troubleshooting startup errors can be tedious.
Orchestra simplifies this process by providing a visual, node-based editor. You can map out all your commands, define which tasks depend on others (for example, starting the database before launching the server), and run your entire environment with a single click. Each task runs in its own live terminal window inside the app, letting you easily monitor logs and test your project on localhost.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β ORCHESTRA COMMAND HUB :: DAEMON :: ACTIVE (:3030) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β [ PostgreSQL (5432) ] ββββΊ [ API Server (3000) ] ββββΊ [ Web (6080) ] β
β (Ready: Port 5432) (Ready: HTTP /health) (Ready: Exit) β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β LIVE TERMINAL STREAMS: β
β βΈ [PostgreSQL] LOG: database system is ready to accept connections β
β βΈ [APIServer] LOG: Server running on http://localhost:3000 β
β βΈ [WebClient] LOG: Local server ready at http://localhost:6080 β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Orchestra features a native, local-first Model Context Protocol (MCP) server. This allows AI assistants (such as Claude Desktop, Cursor, Antigravity, and Windsurf) to introspect, construct, run, and monitor local development workflows directly on your machine.
| Tool Category | Tools | Description |
|---|---|---|
| Workflow Control | start_workflow, stop_workflow, run_workflow |
Start, halt, or execute local DAG workflow runs |
| Task Management | list_tasks, get_task_status, create_task, update_task, delete_task |
Full CRUD operations on local tasks and ready checks |
| YAML Management | yaml_import, yaml_export, load_workspace_workflow, import_yaml_workspace |
Load and export Orchestra .yaml workflow specifications |
| Process Control | kill_process, get_process_tree |
Inspect and terminate local child process trees safely |
| System Telemetry | system_health, list_system_resources |
Monitor local CPU, RAM, and port bindings |
Orchestra provides two local MCP transport mechanisms:
- Stdio Transport (CLI): Recommended for Claude Desktop and Cursor.
- HTTP/SSE Transport: High-performance HTTP loopback listener bound to
127.0.0.1:3030with Bearer token authentication.
{
"mcpServers": {
"orchestra": {
"command": "orchestra-mcp"
}
}
}{
"mcpServers": {
"orchestra": {
"command": "orchestra-mcp"
}
}
}POST /mcp HTTP/1.1
Host: 127.0.0.1:3030
Authorization: Bearer <YOUR_MCP_TOKEN>
Content-Type: application/json- Shell: Electron (for desktop integration)
- Frontend: React + TypeScript + Vite
- Styling: Tailwind CSS 4 + shadcn/ui
- State Management: Zustand
- Execution Engine: Node.js child processes +
node-pty(for running local commands) - Visualization: React Flow (for the interactive workspace)
orchestra/
βββ main.js # Electron main process entry
βββ packages/
β βββ electron/ # Main-process services, IPC handlers, and execution logic
β βββ client/ # React renderer application source
β βββ shared/ # Shared TypeScript types and state interfaces
β βββ web/ # Web version source code
βββ tests/ # Integration test suite
βββ assets/ # Application icons and static resources
- Node.js: 20.x or higher
- npm: 10.x or higher
- Platforms: Linux, macOS, Windows
Install dependencies for all workspace packages:
npm installThe application requires concurrent processes during development:
-
Frontend Dev Server:
npm run client:dev
-
Electron App: (In a new terminal)
npm start
Electron will automatically load the frontend from http://localhost:6080.
npm run electron:buildnpm run client:buildnpm run buildTo package the application for your current platform:
npm run distDistributables will be generated in the dist/ directory.
npm start: Builds Electron and launches the app.npm run build: Compiles both Electron and Frontend assets.npm run dist: Packages the application for distribution usingelectron-builder.npm test: Runs integration test suite.
npm run dev: Starts the Vite development server.npm run build: Generates the production bundle for the frontend.npm run lint: Runs ESLint for code quality checks.npm run typecheck: Validates TypeScript types.
This project is licensed under the MIT License.