Skip to content

Repository files navigation

MonoCode

MonoCode

A desktop UI for your coding agents.

Screenshot 2026-09-04 at 06 34 00

Works with your subscriptions on Claude Code, Codex, Cursor, Grok Build, OpenCode, Antigravity, Pi, omp, fx, and Hermes Agent. If they’re installed and logged in, MonoCode can run them. Tabs are sessions. The composer is the input. MonoCode does not sell tokens.

Install

Install and log in to at least one provider first:

  • Claude Code - claude auth login
  • Codex - codex login
  • Cursor CLI - agent login
  • Grok Build - curl -fsSL https://x.ai/cli/install.sh | bash then grok login
  • OpenCode - opencode auth login
  • Antigravity (macOS/Linux) - curl -fsSL https://antigravity.google/cli/install.sh | bash, then run agy once to sign in
  • Pi - npm install -g @earendil-works/pi-coding-agent
  • omp - curl -fsSL https://omp.sh/install | sh
  • fx - curl -fsSL https://fx.sh/setup.sh | bash then fx login
  • Hermes Agent - macOS/Linux: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash; Windows PowerShell: iex (irm https://hermes-agent.nousresearch.com/install.ps1); then run hermes model

macOS (Apple Silicon): download MonoCode.dmg, open it, drag MonoCode to Applications.

macOS (Intel): download MonoCode_x64.dmg, open it, drag MonoCode to Applications.

Linux (x86_64): download the .deb or AppImage from GitHub Releases. Install the .deb with sudo apt install ./MonoCode_*.deb, or make the AppImage executable with chmod +x MonoCode_*.AppImage and run it directly. On Fedora and Enterprise Linux 10, download the .rpm from the same release page — see Fedora / Enterprise Linux packages for the one extra repository step Enterprise Linux needs.

Windows (x86_64): download the NSIS installer from GitHub Releases and run it.

Some notes

Experimental remote sessions: run agents on an always-on Windows, Linux, or macOS machine and connect from the desktop. See remote access setup and current limitations.

This is very early and you should expect bugs.

Agent access to MonoCode

Type /operator at the start of a composer message to enable MonoCode access in that thread. For example, /operator start two Codex sessions: one to inspect the API and one to review the UI, or /operator list my notes. The slash picker also offers this command. The transcript shows only the request text in a translucent amber bubble; MonoCode removes the command from the request sent to the agent and supplies the local app CLI path and instructions on that turn. Later turns in the same thread can use the CLI without repeating /operator; other threads receive no CLI instructions or app access. The CLI can act only during an active agent turn. The agent can run the shown app --help command for the exact JSON input fields.

  • models.list shows available providers, models, settings, and permission modes.
  • sessions.start opens a tab in the current project with a prompt. Set placement: "right" or placement: "down" to split the calling session's pane instead; besideSessionId selects another visible session pane in the project. Reuse the returned session ID as the next besideSessionId to build nested layouts. By default it submits the prompt; set draft: true to save it unsent without starting an agent turn. It accepts a provider, model, effort or other model settings, permission mode, and current checkout or new worktree choice. Set worktreeCwd to a path from worktrees.list for a specific existing checkout. Use worktrees.create to create a worktree on a named new or existing local branch, then pass its path as worktreeCwd. Omit runtimeMode to inherit the calling session's permission mode, or set it explicitly to override. It returns the new session ID as soon as the pane and prompt are accepted, so the agent can move it into a folder immediately.
  • sessions.list shows project sessions. sessions.read returns up to three recent user/assistant exchanges, with a cursor for older exchanges and a per-message character cap. sessions.send submits a follow-up to an idle session, while sessions.draft saves an unsent message for the user to review. folders.list and folders.move organize project sessions in sidebar folders, including a new folder.
  • notes.list returns titles and short previews; notes.read returns one full note by ID.

Orchestration workers keep their existing scoped control workflow and do not receive this app access.

Small, focused pull requests are welcome. Anything large is worth an issue first - see CONTRIBUTING.md.

Build from source

Supports macOS, Linux, and Windows.

Need Node.js 20+ and a current stable Rust toolchain. On Linux, ensure standard Tauri prerequisites are installed (e.g. libwebkit2gtk-4.1-dev, libgtk-3-dev, libsoup-3.0-dev, libjavascriptcoregtk-4.1-dev). On Windows, the installer bootstraps the WebView2 runtime when it is missing.

npm install
npm run tauri dev

Ubuntu / Debian packages

On an Ubuntu/Debian workstation, the repository can install the native Tauri prerequisites and build distributable Linux packages directly:

npm run setup:linux:deb
npm ci
npm run build:linux

The Linux build emits .deb and AppImage bundles under target/release/bundle/. Tauri loads src-tauri/tauri.linux.conf.json automatically for Linux development and builds.

Fedora / Enterprise Linux packages

On Fedora, or on an Enterprise Linux 10 system (registered RHEL, Rocky, Alma, CentOS Stream, Oracle), install the release .rpm from GitHub Releases. Enterprise Linux needs EPEL first, because webkit2gtk4.1 is an EPEL package there — CRB is not needed to run MonoCode. On Oracle Linux 10, epel-release does not enable ol10_developer_EPEL, which is the repository that provides that package. Enable it before installing the rpm:

# Enterprise Linux 10 only; skip on Fedora.
sudo dnf install -y epel-release   # RHEL: sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-10.noarch.rpm
# Oracle Linux 10, instead of epel-release:
# sudo dnf install -y oracle-epel-release-el10 dnf-plugins-core
# sudo dnf config-manager --set-enabled ol10_developer_EPEL
sudo dnf install ./MonoCode-*.rpm

The .rpm declares its own runtime dependencies, so dnf pulls the WebKitGTK stack for you. GitHub Releases builds that package on Enterprise Linux 10 so it loads on Fedora and EL 10. Building natively links the system WebKitGTK instead of the Ubuntu-built libraries shipped in the AppImage, which avoids graphics issues (e.g. Could not create default EGL display) on newer Mesa/Wayland systems.

To build it yourself instead — which also enables EPEL 10 and CRB automatically, since the -devel packages need CRB:

npm run setup:linux:fedora
npm ci
npm run build:fedora

That emits a .rpm under target/release/bundle/rpm/, installable with sudo dnf install ./target/release/bundle/rpm/MonoCode-*.rpm. EL 9 and older are unsupported (webkit2gtk4.1-devel only exists in EPEL 10).

Troubleshooting on Fedora / Wayland

The portable AppImage bundles Ubuntu-built Wayland libraries that can fail against newer Mesa drivers: the app aborts at startup with Could not create default EGL display: EGL_BAD_PARAMETER, or opens a blank window. The native .rpm above links the system WebKitGTK stack and does not have this problem — prefer it on Fedora.

Windows packages

npm ci
npm run build:windows

The Windows build emits an NSIS installer under target/release/bundle/nsis/. Tauri loads src-tauri/tauri.windows.conf.json automatically for Windows development and builds.

License

MIT. Provider names and logos are trademarks of their owners - see NOTICE.

About

A GUI for your coding agents

Resources

Code of conduct

Contributing

Security policy

Stars

1.7k stars

Watchers

5 watching

Forks

Releases

Packages

Contributors

Languages