Maestro is a free Linux app, shipped as a single AppImage, for running Claude Code, Codex, and other CLI coding agents in parallel. Each agent (Claude Code, Codex, Cursor, OpenCode, Kimi Code, or Grok Build) works in its own git worktree with its own branch, terminal, chat, and diff.
Apps for running coding agents in parallel have mostly been Mac-only, including Conductor, whose site says it runs agents "on your Mac" (as of October 2026). Maestro runs natively on Linux and adds a few things on top:
node_modules as a copy-on-write clone (cp --reflink). The install takes seconds and uses almost no extra disk. On other filesystems, dependencies install normally.ProxyCommand / ProxyJump..AppImage with the button above. It's a single file with nothing to unpack and no package to install, and it works across distros.
~/Applications. The folder has to be writable by you, because updates replace the file in place. Then run chmod +x Maestro-*.AppImage && ./Maestro-*.AppImage.
git on your PATH to create worktrees, and it runs the agent CLIs you have installed. Commands for each agent are below.
Maestro's AppImage uses the classic type-2 runtime, which mounts the app with FUSE 2
(libfuse.so.2). Many current distros ship only FUSE 3, so if double-clicking
does nothing, or the terminal says AppImages require FUSE to run, install
the FUSE 2 library:
# Ubuntu 24.04+ (the package was renamed)
sudo apt install libfuse2t64
# Ubuntu 22.04, Debian
sudo apt install libfuse2
# Fedora
sudo dnf install fuse fuse-libs
# Arch
sudo pacman -S fuse2
# openSUSE
sudo zypper install libfuse2
Don't remove fuse3 to do this. Both versions install side by side. If you
can't install FUSE at all (in some containers, for example), run
./Maestro-*.AppImage --appimage-extract-and-run. It unpacks to a temporary
folder on every launch, so it's slower.
--no-sandbox?
Usually not. Ubuntu 24.04 and later restrict unprivileged user namespaces through
AppArmor, and that restriction makes many Electron AppImages crash with "The SUID sandbox
helper binary was found, but is not configured correctly". Maestro's AppImage launcher
checks for this before it starts the app (it tries unshare -Ur true). If user
namespaces aren't available, it adds --no-sandbox itself. So Maestro starts
either way, but on those systems Chromium's renderer sandbox is off. If you want it on,
give user namespaces back, either with an AppArmor profile or system-wide (this lowers
your system's protection, so read
Ubuntu's explanation
first):
sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0
The AppImage doesn't register itself with your desktop, so it won't appear in your
launcher until you add an entry. Rename the file to Maestro.AppImage first.
The updater keeps a file name that has no version number and overwrites it in place.
With the versioned file name, each update saves the new version under its own versioned
name and deletes the old file, which breaks any shortcut that points at it.
mkdir -p ~/Applications ~/.local/share/applications ~/.local/share/icons
mv ~/Downloads/Maestro-*.AppImage ~/Applications/Maestro.AppImage
chmod +x ~/Applications/Maestro.AppImage
# pull the icon out of the AppImage
ICON=usr/share/icons/hicolor/1024x1024/apps/maestro.png
cd /tmp && ~/Applications/Maestro.AppImage --appimage-extract "$ICON" \
&& mv "squashfs-root/$ICON" ~/.local/share/icons/maestro.png && rm -rf squashfs-root
cat > ~/.local/share/applications/maestro.desktop <<EOF
[Desktop Entry]
Name=Maestro
Comment=Run CLI coding agents in parallel, each in its own git worktree
Exec=$HOME/Applications/Maestro.AppImage %U
Icon=$HOME/.local/share/icons/maestro.png
Type=Application
Categories=Development;
StartupWMClass=Maestro
Terminal=false
EOF
StartupWMClass=Maestro matches the window class in Maestro's own bundled
desktop entry, so docks group the window under this launcher. Tools like AppImageLauncher
or Gear Lever can do the same job if you prefer a GUI.
These are the vendors' own commands as of October 2026 (sources at the end of this page):
# Claude Code (Anthropic's native installer; apt/dnf/apk repos also exist)
curl -fsSL https://claude.ai/install.sh | bash
# Codex (OpenAI)
curl -fsSL https://chatgpt.com/codex/install.sh | sh
# Cursor agent CLI
curl https://cursor.com/install -fsS | bash
# OpenCode
curl -fsSL https://opencode.ai/install | bash
You can also install from inside Maestro. When a CLI isn't detected, Settings →
Harnesses shows an Install button that runs the install command in a
terminal inside the app: npm install -g … for Claude Code, Codex, OpenCode,
and Kimi Code (so you need Node.js), and the vendor's curl script for Cursor
and Grok Build.
Then sign in. Run the CLI once in a terminal, or use the Sign in button in Settings → Harnesses, which runs the CLI's own login inside the app. Maestro doesn't hold your credentials: each CLI keeps its own sign-in, and your Claude or ChatGPT plan pays for the usage as it does in the terminal. If you'd rather use an API key, save it in Settings and Maestro passes it to the CLI as an environment variable. More on each agent: Claude Code GUI, Codex GUI.
A launcher icon doesn't run your shell's startup files, so Maestro rebuilds your PATH
itself at startup. It runs your login shell ($SHELL -lc env) and copies
PATH, HOME, NVM_DIR, GOPATH, and
SSH_AUTH_SOCK from it. It then appends ~/.local/bin,
~/bin, /usr/local/bin, and its own tools folder. That covers the
default install locations of Claude Code and Cursor (~/.local/bin).
The catch: a login shell reads ~/.profile or ~/.bash_profile
(bash) and ~/.zprofile or ~/.zshenv (zsh), but not the
interactive-only parts of ~/.bashrc or ~/.zshrc. Ubuntu's
default ~/.bashrc returns early for non-interactive shells, so PATH lines that
installers append at its end (nvm, for example) never reach Maestro. If a CLI works in
your terminal but Maestro says it isn't installed, move that PATH line into
~/.profile (bash) or ~/.zprofile (zsh), then restart Maestro.
Run as an AppImage, Maestro updates itself. It checks at launch, every two minutes while
running, and when you focus the window or wake the machine. It downloads the update in the
background, using a block map to fetch only the changed parts when it can, then shows
Restart to update. If you just quit, the update installs on quit. Updates
only work when you launch the .AppImage file itself, and the file and its
folder must be writable by your user. Don't put it in a root-owned /opt.
Run it from a terminal to see the error. AppImages require FUSE means
installing libfuse2. Permission denied means it needs
chmod +x, or the file is on a partition mounted noexec.
It's almost always the PATH note above. Check with
bash -lc 'command -v claude' (use your own shell and CLI name). If that prints
nothing, Maestro can't see the CLI either. Maestro also caches what it detected for a few
minutes, so restart it after fixing PATH.
Install the GitHub CLI (gh) from your
distro or GitHub's packages. On macOS and Windows Maestro can download gh
for you, but that automatic download doesn't cover Linux yet (as of October 2026).
On Linux it runs x-terminal-emulator, which Debian and Ubuntu provide but
many other distros don't. Each workspace's built-in terminal works regardless.
That list comes from lsof. Install it (sudo apt install lsof or
your distro's equivalent).
Settings → Visual effects → Reduced swaps the glass and blur effects for solid surfaces.
Being honest about the rough edges, as of October 2026:
.deb, .rpm, Flatpak, or Snap packages.openssl dgst -sha512 -binary Maestro-*.AppImage | base64 -w0.
To uninstall, delete the AppImage and your .desktop file. Settings and the
database live in ~/.config/Maestro, and worktrees live in
~/maestro. Check those for uncommitted work, delete them, and run
git worktree prune in your repos.
No. Conductor ships only for macOS (as of October 2026). Maestro is a Linux-native alternative that does the same core job, and it also runs on macOS and Windows. Maestro vs Conductor, the full comparison →
Anthropic's Claude desktop app, which includes Claude Code, is in beta on Linux for
Debian-based distros (Ubuntu 22.04+, Debian 12+). It signs in with a claude.ai plan or
SSO, not a Console API key. Maestro runs on any distro that can run the AppImage, drives
the claude CLI with whatever sign-in it accepts, and runs other agents
alongside it. Compare the options →
Yes, two. OpenAI's ChatGPT desktop app, which includes Codex, is in preview on Linux for Ubuntu 24.04 and 26.04, Debian 13, Fedora 43 and 44, and Arch (as of October 2026); here is how to install it. Maestro gives the Codex CLI a GUI on any distro that runs the AppImage, with each session in its own worktree and other agents alongside. More on Codex in Maestro →
Give each session its own git worktree. You can do that by hand with
git worktree add and tmux, as our
parallel Claude Code guide shows, or let Maestro
create a worktree, branch, and terminal per workspace.
Yes. Add the server as an SSH remote and the agent runs there, not on your laptop. Turns keep going after you disconnect. See how to keep Claude Code running.
Any of the supported harnesses you have installed: Claude Code, Codex, Cursor, OpenCode, Kimi Code, and Grok Build. A plain shell workspace works with anything else.
Yes. Maestro is free on all three platforms. Your agent usage is billed by each vendor under your own plan or API key.
--appimage-extract-and-runMaestro is an independent project, not affiliated with Conductor / Melty Labs, Anthropic, OpenAI, or Cursor. Vendor details come from their public docs as of October 12, 2026; agent CLIs change quickly, so check the linked pages if a command fails.