Run AI coding agents autonomously for days.
Maestro is a cross-platform desktop app for orchestrating your fleet of AI agents and projects. It's a high-velocity solution for hackers who are juggling multiple projects in parallel. Designed for power users who live on the keyboard and rarely touch the mouse.
Collaborate with AI to create detailed specification documents, then let Auto Run execute them automatically, each task in a fresh session with clean context. Allowing for long-running unattended sessions, my current record is nearly 24 hours of continuous runtime.
Run multiple agents in parallel with a Linear/Superhuman-level responsive interface. Currently supporting Claude Code, OpenAI Codex, and OpenCode with plans for additional agentic coding tools (Aider, Gemini CLI, Qwen3 Coder) based on user demand.
Download the latest release for your platform from the Releases page:
.dmg or .zip.exe installer.AppImage, .deb, or .rpmmaestro-cli) for headless operation. List agents/groups, run playbooks from cron jobs or CI/CD pipelines, with human-readable or JSONL output for scripting.Cmd+J.Cmd+K quick actions, rapid agent switching, and focus management designed for flow state.@ mentions.Note: Maestro supports Claude Code, OpenAI Codex, and OpenCode. Support for additional agents (Aider, Gemini CLI, Qwen3 Coder) may be added in future releases based on community demand.
Maestro enables a specification-first approach to AI-assisted development. Instead of ad-hoc prompting, you collaboratively build detailed specs with the AI, then execute them systematically:
┌─────────────────────────────────────────────────────────────────────┐
│ 1. PLAN 2. SPECIFY 3. EXECUTE 4. REFINE │
│ ───────── ────────── ───────── ───────── │
│ Discuss the Create markdown Auto Run works Review │
│ feature with docs with task through tasks, results, │
│ the AI agent checklists in fresh session update specs │
│ your Auto Run per task and repeat │
│ folder │
└─────────────────────────────────────────────────────────────────────┘
Why this works:
- Deliberate planning — Conversation forces you to think through requirements before coding
- Documented specs — Your markdown files become living documentation
- Clean execution — Each task runs in isolation with no context bleed
- Iterative refinement — Review, adjust specs, re-run—specs evolve with your understanding
Example workflow:
This approach mirrors methodologies like Spec-Kit, but with a graphical interface, real-time AI collaboration, and multi-agent parallelism.
| Concept | Description |
|---|---|
| Agent | A workspace tied to a project directory and AI provider (Claude Code, Codex, or OpenCode). Contains one Command Terminal and one AI Terminal with full conversation history. |
| Group | Organizational container for agents. Group by project, client, or workflow. |
| Group Chat | Multi-agent conversation coordinated by a moderator. Ask questions across multiple agents and get synthesized answers. |
| Git Worktree | An isolated working directory linked to a separate branch. Worktree sub-agents appear nested under their parent in the session list and can create PRs. |
| AI Terminal | The conversation interface with your AI agent. Supports @ file mentions, slash commands, and image attachments. |
| Command Terminal | A PTY shell session for running commands directly. Tab completion for files, git branches, and command history. |
| Session Explorer | Browse all past conversations for an agent. Star, rename, search, and resume any previous session. |
| Auto Run | Automated task runner that processes markdown checklists. Spawns fresh AI sessions per task. |
| Playbook | A saved Auto Run configuration with document order, options, and settings for repeatable batch workflows. |
| History | Timestamped log of all actions (user commands, AI responses, Auto Run completions) with session links. |
| Remote Control | Web interface for mobile access. Local network or remote via Cloudflare tunnel. |
| CLI | Headless command-line tool for scripting, automation, and CI/CD integration. |
Maestro features a three-panel layout:
@ file mentions, image attachments, slash commands, and draft auto-save.Each session shows a color-coded status indicator:
All these screenshots were captured in the them "Pedurple". For screenshots of other themes, see THEMES.md. Also note that these screenshots are probably dated as the project is evolving rapidly.
| Action | macOS | Windows/Linux |
|---|---|---|
| Quick Actions | Cmd+K |
Ctrl+K |
| Toggle Sidebar | Cmd+B |
Ctrl+B |
| Toggle Right Panel | Cmd+\ |
Ctrl+\ |
| New Agent | Cmd+N |
Ctrl+N |
| Kill Agent | Cmd+Shift+Backspace |
Ctrl+Shift+Backspace |
| Move Agent to Group | Cmd+Shift+M |
Ctrl+Shift+M |
| Previous Agent | Cmd+[ |
Ctrl+[ |
| Next Agent | Cmd+] |
Ctrl+] |
| Jump to Agent (1-9, 0=10th) | Opt+Cmd+NUMBER |
Alt+Ctrl+NUMBER |
| Switch AI/Command Terminal | Cmd+J |
Ctrl+J |
| Show Shortcuts Help | Cmd+/ |
Ctrl+/ |
| Open Settings | Cmd+, |
Ctrl+, |
| View All Agent Sessions | Cmd+Shift+L |
Ctrl+Shift+L |
| Jump to Bottom | Cmd+Shift+J |
Ctrl+Shift+J |
| Cycle Focus Areas | Tab |
Tab |
| Cycle Focus Backwards | Shift+Tab |
Shift+Tab |
| Action | macOS | Windows/Linux |
|---|---|---|
| Go to Files Tab | Cmd+Shift+F |
Ctrl+Shift+F |
| Go to History Tab | Cmd+Shift+H |
Ctrl+Shift+H |
| Go to Auto Run Tab | Cmd+Shift+1 |
Ctrl+Shift+1 |
| Toggle Markdown Raw/Preview | Cmd+E |
Ctrl+E |
| Insert Checkbox (Auto Run) | Cmd+L |
Ctrl+L |
| Action | Key |
|---|---|
| Send Message | Enter or Cmd+Enter (configurable in Settings) |
| Multiline Input | Shift+Enter |
| Navigate Command History | Up Arrow while in input |
| Slash Commands | Type / to open autocomplete |
| Focus Output | Esc while in input |
| Focus Input | Esc while in output |
| Open Output Search | Cmd+F while in output |
| Scroll Output | Up/Down Arrow while in output |
| Page Up/Down | Alt+Up/Down Arrow while in output |
| Jump to Top/Bottom | Cmd+Up/Down Arrow while in output |
The Command Terminal provides intelligent tab completion for faster command entry:
| Action | Key |
|---|---|
| Open Tab Completion | Tab (when there's input text) |
| Navigate Suggestions | Up/Down Arrow |
| Select Suggestion | Enter |
| Cycle Filter Types | Tab (while dropdown is open, git repos only) |
| Cycle Filter Backwards | Shift+Tab (while dropdown is open) |
| Close Dropdown | Esc |
Completion Sources:
- History - Previous shell commands from your session
- Files/Folders - Files and directories in your current working directory
- Git Branches - Local and remote branches (git repos only)
- Git Tags - Available tags (git repos only)
In git repositories, filter buttons appear in the dropdown header allowing you to filter by type (All, History, Branches, Tags, Files). Use Tab/Shift+Tab to cycle through filters or click directly.
In AI mode, use @ to reference files in your prompts:
| Action | Key |
|---|---|
| Open File Picker | Type @ followed by a search term |
| Navigate Suggestions | Up/Down Arrow |
| Select File | Tab or Enter |
| Close Dropdown | Esc |
Example: Type @readme to see matching files, then select to insert the file reference into your prompt. The AI will have context about the referenced file.
| Action | Key |
|---|---|
| Navigate Agents | Up/Down Arrow while in sidebar |
| Select Agent | Enter while in sidebar |
| Open Session Filter | Cmd+F while in sidebar |
| Navigate Files | Up/Down Arrow while in file tree |
| Open File Tree Filter | Cmd+F while in file tree |
| Open File Preview | Enter on selected file |
| Close Preview/Filter/Modal | Esc |
| Action | macOS | Windows/Linux |
|---|---|---|
| Copy File Path | Cmd+P |
Ctrl+P |
| Open Search | Cmd+F |
Ctrl+F |
| Scroll | Up/Down Arrow |
Up/Down Arrow |
| Close | Esc |
Esc |
Most shortcuts are customizable in Settings > Shortcuts
Maestro tracks your keyboard shortcut usage and rewards you for becoming a power user! As you use more shortcuts, you'll level up through the mastery ranks:
| Level | Threshold | Name | Description |
|---|---|---|---|
| 0 | 0% | Beginner | Just starting out |
| 1 | 25% | Student | Learning the basics |
| 2 | 50% | Performer | Getting comfortable |
| 3 | 75% | Virtuoso | Almost there |
| 4 | 100% | Keyboard Maestro | Complete mastery |
When you reach a new level, you'll see a celebration with confetti! Your progress is tracked in the Shortcuts Help modal (Cmd+/ or Ctrl+/), which shows your current mastery percentage and hints at shortcuts you haven't tried yet.
Why keyboard shortcuts matter: Using shortcuts keeps you in flow state, reduces context switching, and dramatically speeds up your workflow. Maestro is designed for keyboard-first operation—the less you reach for the mouse, the faster you'll work.
Maestro includes an extensible slash command system with autocomplete. Type / in the input area to open the autocomplete menu, use arrow keys to navigate, and press Tab or Enter to select.
Create your own slash commands in Settings > Custom AI Commands. Each command has a trigger (e.g., /deploy) and a prompt that gets sent to the AI agent.
Commands support template variables that are automatically substituted at runtime:
| Variable | Description |
|---|---|
{{AGENT_NAME}} |
Agent name |
{{AGENT_PATH}} |
Agent home directory path (full path to project) |
{{AGENT_GROUP}} |
Agent's group name (if grouped) |
{{AGENT_SESSION_ID}} |
Agent session ID (for conversation continuity) |
{{TAB_NAME}} |
Custom tab name (alias: SESSION_NAME) |
{{TOOL_TYPE}} |
Agent type (claude-code, codex, opencode) |
| Variable | Description |
|---|---|
{{CWD}} |
Current working directory |
{{AUTORUN_FOLDER}} |
Auto Run documents folder path |
| Variable | Description |
|---|---|
{{DOCUMENT_NAME}} |
Current Auto Run document name (without .md) |
{{DOCUMENT_PATH}} |
Full path to current Auto Run document |
{{LOOP_NUMBER}} |
Current loop iteration (starts at 1) |
| Variable | Description |
|---|---|
{{DATE}} |
Current date (YYYY-MM-DD) |
{{TIME}} |
Current time (HH:MM:SS) |
{{DATETIME}} |
Full datetime (YYYY-MM-DD HH:MM:SS) |
{{TIMESTAMP}} |
Unix timestamp in milliseconds |
{{DATE_SHORT}} |
Short date (MM/DD/YY) |
{{TIME_SHORT}} |
Short time (HH:MM) |
{{YEAR}} |
Current year (YYYY) |
{{MONTH}} |
Current month (01-12) |
{{DAY}} |
Current day (01-31) |
{{WEEKDAY}} |
Day of week (Monday, Tuesday, etc.) |
| Variable | Description |
|---|---|
{{GIT_BRANCH}} |
Current git branch name (requires git repo) |
{{IS_GIT_REPO}} |
"true" or "false" |
{{CONTEXT_USAGE}} |
Current context window usage percentage |
Example: A custom /standup command with prompt:
It's {{WEEKDAY}}, {{DATE}}. I'm on branch {{GIT_BRANCH}} at {{AGENT_PATH}}.
Summarize what I worked on yesterday and suggest priorities for today.
Git worktrees enable true parallel development by letting you run multiple AI agents on separate branches simultaneously. Each worktree operates in its own isolated directory, so there's no risk of conflicts between parallel work streams.
When you're done with work in a worktree:
The PR modal shows:
- Source branch (your worktree branch)
- Target branch (configurable)
- Auto-generated title and description based on your work
Requirements: GitHub CLI (gh) must be installed and authenticated. Maestro will detect if it's missing and show installation instructions.
| Scenario | How Worktrees Help |
|---|---|
| Background Auto Run | Run Auto Run in a worktree while working interactively in the main repo |
| Feature Branches | Spin up a sub-agent for each feature branch |
| Code Review | Create a worktree to review and iterate on a PR without switching branches |
| Parallel Experiments | Try different approaches simultaneously without git stash/pop |
~/worktrees/)Auto Run is a file-system-based document runner that lets you batch-process tasks using AI agents. Select a folder containing markdown documents with task checkboxes, and Maestro will work through them one by one, spawning a fresh AI session for each task.
Cmd+Shift+1).md file becomes a selectable documentUse markdown checkboxes in your documents:
# Feature Implementation Plan
- [ ] Implement user authentication
- [ ] Add unit tests for the login flow
- [ ] Update API documentation
Tip: Press Cmd+L (Mac) or Ctrl+L (Windows/Linux) to quickly insert a new checkbox at your cursor position.
Auto Run supports running multiple documents in sequence:
Save your batch configurations for reuse:
The runner will:
- Process tasks serially from top to bottom
- Skip documents with no unchecked tasks
- Show progress: "Document X of Y" and "Task X of Y"
- Mark tasks as complete (- [x]) when done
- Log each completion to the History panel
Each task executes in a completely fresh AI session with its own unique session ID. This provides:
This isolation is critical for playbooks with Reset on Completion documents that loop indefinitely. Without it, the AI might "remember" completing a task and skip re-execution on subsequent loops.
Maestro sets environment variables that your agent hooks can use to customize behavior:
| Variable | Value | Description |
|---|---|---|
MAESTRO_SESSION_RESUMED |
1 |
Set when resuming an existing session (not set for new sessions) |
Example: Conditional Hook Execution
Since Maestro spawns a new agent process for each message (batch mode), agent "session start" hooks will run on every turn. Use MAESTRO_SESSION_RESUMED to skip hooks on resumed sessions:
# In your agent's session start hook
[ "$MAESTRO_SESSION_RESUMED" = "1" ] && exit 0
# ... rest of your hook logic for new sessions only
This works with any agent provider (Claude Code, Codex, OpenCode) since the environment variable is set by Maestro before spawning the agent process.
Each completed task is logged to the History panel with:
- AUTO label indicating automated execution
- Session ID pill (clickable to jump to that AI conversation)
- Summary of what the agent accomplished
- Full response viewable by clicking the entry
Keyboard navigation in History:
- Up/Down Arrow - Navigate entries
- Enter - View full response
- Esc - Close detail view and return to list
Documents auto-save after 5 seconds of inactivity, and immediately when switching documents. Full undo/redo support with Cmd+Z / Cmd+Shift+Z.
Paste images directly into your documents. Images are saved to an images/ subfolder with relative paths for portability.
Click the Stop button at any time. The runner will:
- Complete the current task before stopping
- Preserve all completed work
- Allow you to resume later by clicking Run again
Auto Run can execute in parallel across different agents without conflicts—each agent works in its own project directory, so there's no risk of clobbering each other's work.
Same project, parallel work: To run multiple Auto Runs in the same repository simultaneously, create worktree sub-agents from the git branch menu (see Git Worktrees). Each worktree operates in an isolated directory with its own branch, enabling true parallel task execution on the same codebase.
Group Chat lets you coordinate multiple AI agents in a single conversation. A moderator AI orchestrates the discussion, routing questions to the right agents and synthesizing their responses.
@Frontend, @Backend)The moderator is an AI that controls the conversation flow:
The moderator won't return to you until your question is properly answered—it will keep going back to agents as many times as needed.
You: "How does @Maestro relate to @RunMaestro.ai?"
Moderator: "Let me gather information from both projects.
@Maestro @RunMaestro.ai - please explain your role in the ecosystem."
[Agents work in parallel...]
Maestro: "I'm the core Electron desktop app for AI orchestration..."
RunMaestro.ai: "I'm the marketing website and leaderboard..."
Moderator: "Here's how they relate:
- Maestro is the desktop app (the product)
- RunMaestro.ai is the website (discovery and community)
- They share theme definitions for visual consistency
Next steps: Would you like details on any specific integration?"
Maestro features a conductor-themed achievement system that tracks your cumulative Auto Run time. The focus is simple: longest run wins. As you accumulate Auto Run hours, you level up through 11 ranks inspired by the hierarchy of orchestral conductors.
| Level | Rank | Time Required | Example Conductor |
|---|---|---|---|
| 1 | Apprentice Conductor | 15 minutes | Gustavo Dudamel (early career) |
| 2 | Assistant Conductor | 1 hour | Marin Alsop |
| 3 | Associate Conductor | 8 hours | Yannick Nézet-Séguin |
| 4 | Resident Conductor | 24 hours | Jaap van Zweden |
| 5 | Principal Guest Conductor | 1 week | Esa-Pekka Salonen |
| 6 | Chief Conductor | 30 days | Andris Nelsons |
| 7 | Music Director | 3 months | Sir Simon Rattle |
| 8 | Maestro Emeritus | 6 months | Bernard Haitink |
| 9 | World Maestro | 1 year | Kirill Petrenko |
| 10 | Grand Maestro | 5 years | Riccardo Muti |
| 11 | Titan of the Baton | 10 years | Leonard Bernstein |
Since Auto Runs can execute in parallel across multiple Maestro sessions, achieving Titan of the Baton (Level 11) is technically feasible in less than 10 calendar years. Run 10 agents simultaneously with worktrees and you could theoretically hit that milestone in about a year of real time.
But let's be real—getting to Level 11 is going to take some serious hacking. You'll need a well-orchestrated fleet of agents running around the clock, carefully crafted playbooks that loop indefinitely, and the infrastructure to keep it all humming. It's the ultimate test of your Maestro skills.
The achievement panel shows your current rank, progress to the next level, and total accumulated time. Each rank includes flavor text and information about a legendary conductor who exemplifies that level of mastery.
Context management lets you combine or transfer conversation history between sessions and agents, enabling powerful workflows where you can:
When your conversation approaches context limits, you can compress it while preserving essential information:
Cmd+K / Ctrl+K) → "Context: Compact"When to use:
- The context warning sash appears (yellow at 60%, red at 80% usage)
- You want to continue a long conversation without losing important context
- You need to free up context space for new tasks
What gets preserved:
- Key decisions and their rationale
- Code changes and file modifications
- Important technical details and constraints
- Current task state and next steps
Combine context from multiple sessions or tabs into one:
Cmd+K / Ctrl+K) → "Merge with another session"The merged context creates a new tab in the target session with conversation history from both sources. Use this to consolidate related conversations or bring context from an older session into a current one.
What gets merged:
- Full conversation history (user messages and AI responses)
- Token estimates are shown before merge to help you stay within context limits
Tips:
- You can merge tabs within the same session or across different sessions
- Large merges (100k+ tokens) will show a warning but still proceed
- Self-merge (same tab to itself) is prevented
Transfer your context to a different AI agent:
Cmd+K / Ctrl+K) → "Send to another agent"Context Grooming:
When transferring between different agent types, the context can be automatically "groomed" to:
- Remove agent-specific artifacts and formatting
- Condense verbose output while preserving key information
- Optimize for the target agent's capabilities
Grooming is enabled by default but can be skipped for faster transfers.
Use Cases:
- Start a task in Claude Code, then hand off to Codex for a different perspective
- Transfer a debugging session to an agent with different tool access
- Move context to an agent pointing at a different project directory
Maestro includes a CLI tool (maestro-cli) for managing agents and running playbooks from the command line, cron jobs, or CI/CD pipelines. The CLI requires Node.js (which you already have if you're using Claude Code).
The CLI is bundled with Maestro as a JavaScript file. Create a shell wrapper to run it:
# macOS (after installing Maestro.app)
printf '#!/bin/bash\nnode "/Applications/Maestro.app/Contents/Resources/maestro-cli.js" "$@"\n' | sudo tee /usr/local/bin/maestro-cli && sudo chmod +x /usr/local/bin/maestro-cli
# Linux (deb/rpm installs to /opt)
printf '#!/bin/bash\nnode "/opt/Maestro/resources/maestro-cli.js" "$@"\n' | sudo tee /usr/local/bin/maestro-cli && sudo chmod +x /usr/local/bin/maestro-cli
# Windows (PowerShell as Administrator) - create a batch file
@"
@echo off
node "%ProgramFiles%\Maestro\resources\maestro-cli.js" %*
"@ | Out-File -FilePath "$env:ProgramFiles\Maestro\maestro-cli.cmd" -Encoding ASCII
Alternatively, run directly with Node.js:
node "/Applications/Maestro.app/Contents/Resources/maestro-cli.js" list groups
# List all groups
maestro-cli list groups
# List all agents
maestro-cli list agents
maestro-cli list agents --group <group-id>
# Show agent details (history, usage stats, cost)
maestro-cli show agent <agent-id>
# List all playbooks (or filter by agent)
maestro-cli list playbooks
maestro-cli list playbooks --agent <agent-id>
# Show playbook details
maestro-cli show playbook <playbook-id>
# Run a playbook
maestro-cli playbook <playbook-id>
# Dry run (shows what would be executed)
maestro-cli playbook <playbook-id> --dry-run
# Run without writing to history
maestro-cli playbook <playbook-id> --no-history
# Wait for agent if busy, with verbose output
maestro-cli playbook <playbook-id> --wait --verbose
# Debug mode for troubleshooting
maestro-cli playbook <playbook-id> --debug
By default, commands output human-readable formatted text. Use --json for machine-parseable JSONL output:
# Human-readable output (default)
maestro-cli list groups
GROUPS (2)
🎨 Frontend
group-abc123
⚙️ Backend
group-def456
# JSON output for scripting
maestro-cli list groups --json
{"type":"group","id":"group-abc123","name":"Frontend","emoji":"🎨","timestamp":...}
{"type":"group","id":"group-def456","name":"Backend","emoji":"⚙️","timestamp":...}
# Running a playbook with JSON streams events
maestro-cli playbook <playbook-id> --json
{"type":"start","timestamp":...,"playbook":{...}}
{"type":"document_start","timestamp":...,"document":"tasks.md","taskCount":5}
{"type":"task_start","timestamp":...,"taskIndex":0}
{"type":"task_complete","timestamp":...,"success":true,"summary":"...","elapsedMs":8000}
{"type":"document_complete","timestamp":...,"tasksCompleted":5}
{"type":"complete","timestamp":...,"totalTasksCompleted":5,"totalElapsedMs":60000}
# Run a playbook every hour (use --json for log parsing)
0 * * * * /usr/local/bin/maestro-cli playbook <playbook-id> --json >> /var/log/maestro.jsonl 2>&1
Each AI agent has unique capabilities and limitations. Maestro adapts its UI based on what each provider supports.
| Feature | Support |
|---|---|
| Image attachments | ✅ New and resumed sessions |
| Session resume | ✅ --resume flag |
| Read-only mode | ✅ --permission-mode plan |
| Slash commands | ✅ /help, /compact, etc. |
| Cost tracking | ✅ Full cost breakdown |
| Model selection | ✅ --model flag (via custom CLI args) |
| Feature | Support |
|---|---|
| Image attachments | ⚠️ New sessions only (not on resume) |
| Session resume | ✅ exec resume <id> |
| Read-only mode | ✅ --sandbox read-only |
| Slash commands | ⚠️ Interactive TUI only (not in exec mode) |
| Cost tracking | ❌ Token counts only (no pricing) |
| Model selection | ✅ -m, --model flag |
Notes:
- Codex's resume subcommand doesn't accept the -i/--image flag. Images can only be attached when starting a new session. Maestro hides the attach image button when resuming Codex sessions.
- Codex has slash commands (/compact, /undo, /diff, etc.) but they only work in interactive TUI mode, not in exec mode which Maestro uses.
| Feature | Support |
|---|---|
| Image attachments | ✅ New and resumed sessions |
| Session resume | ✅ --session flag |
| Read-only mode | ✅ --agent plan |
| Slash commands | ❌ Not investigated |
| Cost tracking | ✅ Per-step costs |
| Model selection | ✅ --model provider/model |
Note: OpenCode uses the run subcommand which auto-approves all permissions (similar to Codex's YOLO mode).
Settings are stored in:
~/Library/Application Support/maestro/%APPDATA%/maestro/~/.config/maestro/Maestro can sync settings, sessions, and groups across multiple devices by storing them in a cloud-synced folder like iCloud Drive, Dropbox, or OneDrive.
Setup:
Cmd+,) → General tab~/Library/Mobile Documents/com~apple~CloudDocs/Maestro~/Dropbox/Maestro~/OneDrive/MaestroWhat syncs:
- Settings and preferences
- Session configurations
- Groups and organization
- Agent configurations
- Session origins and metadata
What stays local:
- Window size and position (device-specific)
- The bootstrap file that points to your sync location
Important limitations:
- Single-device usage: Only run Maestro on one device at a time. Running simultaneously on multiple devices can cause sync conflicts where the last write wins.
- No conflict resolution: If settings are modified on two devices before syncing completes, one set of changes will be lost.
- Restart required: Changes to storage location require an app restart to take effect.
To reset to the default location, click Use Default in the Storage Location settings.
Maestro includes a built-in web server for mobile remote control:
cloudflared CLI)The mobile web interface provides:
- Real-time session monitoring and command input
- Device color scheme preference support (light/dark mode)
- Connection status indicator with automatic reconnection
- Offline queue for commands typed while disconnected
- Swipe gestures for common actions
- Quick actions menu for the send button
To access Maestro from outside your local network (e.g., on mobile data or from another location):
brew install cloudflared (macOS) or download for other platformsIf you encounter deep-seated issues that are difficult to diagnose, Maestro can generate a Debug Package—a compressed bundle of diagnostic information that you can safely share when reporting bugs.
To create a Debug Package:
1. Press Cmd+K (Mac) or Ctrl+K (Windows/Linux) to open Quick Actions
2. Search for "Create Debug Package"
3. Choose a save location for the .zip file
4. Attach the file to your GitHub issue
The debug package collects metadata and configuration—never your conversations or sensitive data:
| File | Contents |
|---|---|
system-info.json |
OS, CPU, memory, Electron/Node versions, app uptime |
settings.json |
App preferences with sensitive values redacted |
agents.json |
Agent configurations, availability, and capability flags |
external-tools.json |
Shell, git, GitHub CLI, and cloudflared availability |
sessions.json |
Session metadata (names, states, tab counts—no conversations) |
processes.json |
Active process information |
logs.json |
Recent system log entries |
errors.json |
Current error states and recent error events |
storage-info.json |
Storage paths and sizes |
The debug package is designed to be safe to share publicly:
[REDACTED]~[SET] or [NOT SET] shown, not actual valuesExample path sanitization:
- Before: /Users/johndoe/Projects/MyApp
- After: ~/Projects/MyApp
See CONTRIBUTING.md for development setup, architecture details, and contribution guidelines.