pragma-sh/pragma

✨✨ Orchestrate Claude Code, Codex, OpenCode, Cursor, and more in parallel worktrees, with terminals, diffs, scratchpads, and pull requests in one native app. Use on mobile with Pragma Go. ✨✨

TypeScript

4

1,088 commits

updated Sep 23, 2026

See the code

See what people are saying

SourceMessageScoreDate

I wanted one place to manage agents, worktrees, PRs, usage limits, and mobile access. Here's what I built. (r/SideProject)

Hello r/SideProject ! Today I’m sharing a project I’ve spent the last few months building called Pragma. Pragma is a terminal-first agentic development environment built around running coding agents in parallel. It keeps each task isolated in its own Git worktree and lets you quickly see when an…

1

Sep 24, 2026

README

Pragma — Run teams of coding agents in parallel.

Run Claude Code, Codex, OpenCode, Cursor and more each in their own worktree.
Agents, terminals, diffs, and pull requests in one workspace.

Download for macOS Download for Windows Download for Linux Download Pragma Go on the App Store Get Pragma Go on Obtainium

Website  ·  Documentation  ·  Download  ·  Plugins  ·  Contributing

Latest release Total downloads Downloads of the latest release

Claude Code plugin 10 agent plugins Agent Skills

CI status License: AGPL-3.0-only Platforms: macOS, Linux, Windows Built with Tauri v2 Rust Bun


Table of Contents

Why Pragma?

You can start five agents in a normal terminal window but it becomes hard to see which agent is doing what. Worse if you are running multipile agents in the same project their changes may collide.

Pragma is an open-source agentic development environment for people running many agents in parallel. Projects, worktrees, terminals, files, diffs, pull requests, and agent status live in one workspace — while every coding agent keeps running through its own native TUI, exactly as its authors shipped it.

There are many tools like Pragma so here is a comparison:

CapabilityPragmaEmdashOrcaSuperset
Native shell
Rust host + the OS webview, not a bundled browser
Tauri + RustElectronElectronElectron
Agents as plugins
Each integration a versioned package with official branding
🟡🟡🟡
Public plugin API
Third-party sidebar tabs, cards, web views, and commands
Programmable automations
Your TypeScript on host events, not just a schedule
🟡🟡🟡
Interactive scratchpads
Agents write MDX with live React you can edit and comment on
Agent board
Prompt to review to pull request as tracked cards
Fanout + comparison view
One prompt into N attempts, compared side by side
🟡
Editing suite
Code, markdown WYSIWYG, PDF, image, video, and audio
🟡🟡🟡
Built-in AI, your key
Inline ⌘K edits, one-click PR drafting, ask from the palette
🟡
Mobile and web client
What ships, and how you reach it off your LAN
iOS, Android, Web
your own tunnel
iOS, Android
needs Tailscale/VPS
iOS only, Pro
hosted relay
Persistent host server
Sessions, tunnels, headless launches survive quitting
🟡🟡🟡
Remote projects
SSH hosts as first-class remote projects
SSHSSHSSH + WSL
User themes
Editable colour tokens per project, not a fixed preset list
🟡🟡🟡
License
What you may do with the source
AGPL-3.0Apache-2.0MITElastic 2.0

✅ yes  ·  🟡 partial  ·  ❌ no

Checked against the generalaction/emdash, stablyai/orca, and superset-sh/superset repositories as of 2026-08-29. These projects ship fast — if something here is out of date, open an issue and we will correct it. On the mobile row: Pragma's tunnel is a command you supply and control (ngrok, cloudflared, a Tailscale funnel — whatever you already run), not a vendor relay you depend on. Orca has no tunnel of its own; remote access means installing Tailscale yourself or running Orca's full server on a VPS. Superset's reaches your machine through Superset's own hosted relay, and the iOS app is Pro-plan only.

Quick Start

  1. Download Pragma for macOS, Windows, or Linux and install it.
  2. Add a project — any git checkout — from the bottom of the sidebar.
  3. Create a worktree, pick an agent, and type a prompt.

The quick start guide walks through the full loop from first prompt to merged pull request.

Features

🌿 Parallel by default

Launch Claude Code, Codex, OpenCode, Cursor, and friends in separate branches and worktrees. No collisions, no stashing, no "wait, which agent touched this file?"

🔀 Fanout — one prompt, many attempts

Send a single prompt to several isolated attempts, compare their terminals, diffs, and scratchpads side by side, then keep the strongest result and throw the rest away.

🔌 Persistent sessions

Terminals and scrollback live on the host, not in the window. Close the app, drop the network, move to another machine — the agent keeps working and the scrollback is still there.

🔍 One review surface

Inspect diffs, stage files, commit, push branches, and manage GitHub pull requests beside the agent that wrote the code.

🛰️ Local-first, and anywhere

Run on your machine, over SSH, or inside WSL. Desktop app on macOS, Linux, and Windows, with companion access from iOS, Android, and the browser.

🧩 Extensible

Plugins add UI, commands, agents, and themes. Automations run scheduled and event-driven host tasks. The CLI and the typed @pragma-sh/sdk drive all of it from scripts.

▶ Watch the feature tour →

Supported Agents

Every agent runs through its own native CLI. Pragma adds a plugin so it reports status and shows up in the launcher.

Missing yours? Agent plugins are ordinary TypeScript packages — see the plugin guide.

Download

Signed installers for every platform are attached to each GitHub Release. The links below always fetch the newest one.

PlatformDownload
macOSApple silicon (.dmg) · Intel (.dmg)
Windowsx64 installer (.exe)
Linuxx64: .deb · .rpm — ARM64: .deb · .rpm

Pragma updates itself in place once installed. Release notes and older builds are on the releases page.

Pragma Go (mobile)

Pragma Go pairs with your desktop so you can launch agents, watch sessions, and answer their questions from your phone — see the mobile guide.

Android with Obtainium

Obtainium installs Android apps straight from their GitHub releases and keeps them updated.

  1. Install Obtainium from its releases page or F-Droid.
  2. Tap Add app and enter https://github.com/pragma-sh/pragma as the source URL.
  3. This repository also publishes desktop and plugin releases, so set:
    • Filter release titles by regular expression^pragma-go
    • Filter APKs by regular expression\.apk$
    • Fallback to older releases → on
    • Version detectionUse release date as version string
  4. Tap Add, then Install. Obtainium notifies you whenever a new Pragma Go release is published.

The Android install guide explains each option and why it is needed.

Documentation

ResourceWhat it covers
WebsiteProduct overview and feature tour
DocumentationMain documentation hub
User guideProjects, worktrees, agents, review, and settings
CLI referenceControl Pragma and report agent status from a terminal
TypeScript SDKBuild typed integrations with @pragma-sh/sdk
Plugin developmentAdd UI, commands, agents, themes, and integrations
Plugin galleryBrowse available Pragma plugins
AutomationsRun scheduled and event-driven host tasks
Architecture wikiDesktop, server, gateway, and protocol layers
Issue trackerReport bugs and request features

Build From Source

Prerequisites:

git clone https://github.com/pragma-sh/pragma.git
cd pragma
bun install
bun run dev

See CONTRIBUTING.md for mobile, web, and docs dev workflows.

Contributing

Read CONTRIBUTING.md first — it covers the contribution policy, prerequisites, running the desktop app and Pragma Go, the project tour, style guidelines, commit style, and how to open a pull request.

Policy in short: we only accept small features. Bug fixes and other small, focused changes are the most likely to be merged; large features and sweeping refactors will almost certainly be declined. Open an issue before building anything non-trivial.

Before opening a pull request:

bun run check
bun run test
bun run rust:test

Use Conventional Commits and include focused tests with behavior changes. AGENTS.md (and the per-package AGENTS.md files) hold the deeper architecture and platform rules for human and AI contributors alike. Bugs and ideas start in the issue tracker.

License

GNU Affero General Public License v3.0.

If Pragma saves you a tab, give it a star. ⭐

Built with Tauri, Rust, React, and Bun.

Contributors

pragma-sh/pragma

✨✨ Orchestrate Claude Code, Codex, OpenCode, Cursor, and more in parallel worktrees, with terminals, diffs, scratchpads, and pull requests in one native app. Use on mobile with Pragma Go. ✨✨

TypeScript

4

1,088 commits

updated Sep 23, 2026

See the code

See what people are saying

SourceMessageScoreDate

I wanted one place to manage agents, worktrees, PRs, usage limits, and mobile access. Here's what I built. (r/SideProject)

Hello r/SideProject ! Today I’m sharing a project I’ve spent the last few months building called Pragma. Pragma is a terminal-first agentic development environment built around running coding agents in parallel. It keeps each task isolated in its own Git worktree and lets you quickly see when an…

1

Sep 24, 2026

README

Pragma — Run teams of coding agents in parallel.

Run Claude Code, Codex, OpenCode, Cursor and more each in their own worktree.
Agents, terminals, diffs, and pull requests in one workspace.

Download for macOS Download for Windows Download for Linux Download Pragma Go on the App Store Get Pragma Go on Obtainium

Website  ·  Documentation  ·  Download  ·  Plugins  ·  Contributing

Latest release Total downloads Downloads of the latest release

Claude Code plugin 10 agent plugins Agent Skills

CI status License: AGPL-3.0-only Platforms: macOS, Linux, Windows Built with Tauri v2 Rust Bun


Table of Contents

Why Pragma?

You can start five agents in a normal terminal window but it becomes hard to see which agent is doing what. Worse if you are running multipile agents in the same project their changes may collide.

Pragma is an open-source agentic development environment for people running many agents in parallel. Projects, worktrees, terminals, files, diffs, pull requests, and agent status live in one workspace — while every coding agent keeps running through its own native TUI, exactly as its authors shipped it.

There are many tools like Pragma so here is a comparison:

CapabilityPragmaEmdashOrcaSuperset
Native shell
Rust host + the OS webview, not a bundled browser
Tauri + RustElectronElectronElectron
Agents as plugins
Each integration a versioned package with official branding
🟡🟡🟡
Public plugin API
Third-party sidebar tabs, cards, web views, and commands
Programmable automations
Your TypeScript on host events, not just a schedule
🟡🟡🟡
Interactive scratchpads
Agents write MDX with live React you can edit and comment on
Agent board
Prompt to review to pull request as tracked cards
Fanout + comparison view
One prompt into N attempts, compared side by side
🟡
Editing suite
Code, markdown WYSIWYG, PDF, image, video, and audio
🟡🟡🟡
Built-in AI, your key
Inline ⌘K edits, one-click PR drafting, ask from the palette
🟡
Mobile and web client
What ships, and how you reach it off your LAN
iOS, Android, Web
your own tunnel
iOS, Android
needs Tailscale/VPS
iOS only, Pro
hosted relay
Persistent host server
Sessions, tunnels, headless launches survive quitting
🟡🟡🟡
Remote projects
SSH hosts as first-class remote projects
SSHSSHSSH + WSL
User themes
Editable colour tokens per project, not a fixed preset list
🟡🟡🟡
License
What you may do with the source
AGPL-3.0Apache-2.0MITElastic 2.0

✅ yes  ·  🟡 partial  ·  ❌ no

Checked against the generalaction/emdash, stablyai/orca, and superset-sh/superset repositories as of 2026-08-29. These projects ship fast — if something here is out of date, open an issue and we will correct it. On the mobile row: Pragma's tunnel is a command you supply and control (ngrok, cloudflared, a Tailscale funnel — whatever you already run), not a vendor relay you depend on. Orca has no tunnel of its own; remote access means installing Tailscale yourself or running Orca's full server on a VPS. Superset's reaches your machine through Superset's own hosted relay, and the iOS app is Pro-plan only.

Quick Start

  1. Download Pragma for macOS, Windows, or Linux and install it.
  2. Add a project — any git checkout — from the bottom of the sidebar.
  3. Create a worktree, pick an agent, and type a prompt.

The quick start guide walks through the full loop from first prompt to merged pull request.

Features

🌿 Parallel by default

Launch Claude Code, Codex, OpenCode, Cursor, and friends in separate branches and worktrees. No collisions, no stashing, no "wait, which agent touched this file?"

🔀 Fanout — one prompt, many attempts

Send a single prompt to several isolated attempts, compare their terminals, diffs, and scratchpads side by side, then keep the strongest result and throw the rest away.

🔌 Persistent sessions

Terminals and scrollback live on the host, not in the window. Close the app, drop the network, move to another machine — the agent keeps working and the scrollback is still there.

🔍 One review surface

Inspect diffs, stage files, commit, push branches, and manage GitHub pull requests beside the agent that wrote the code.

🛰️ Local-first, and anywhere

Run on your machine, over SSH, or inside WSL. Desktop app on macOS, Linux, and Windows, with companion access from iOS, Android, and the browser.

🧩 Extensible

Plugins add UI, commands, agents, and themes. Automations run scheduled and event-driven host tasks. The CLI and the typed @pragma-sh/sdk drive all of it from scripts.

▶ Watch the feature tour →

Supported Agents

Every agent runs through its own native CLI. Pragma adds a plugin so it reports status and shows up in the launcher.

Missing yours? Agent plugins are ordinary TypeScript packages — see the plugin guide.

Download

Signed installers for every platform are attached to each GitHub Release. The links below always fetch the newest one.

PlatformDownload
macOSApple silicon (.dmg) · Intel (.dmg)
Windowsx64 installer (.exe)
Linuxx64: .deb · .rpm — ARM64: .deb · .rpm

Pragma updates itself in place once installed. Release notes and older builds are on the releases page.

Pragma Go (mobile)

Pragma Go pairs with your desktop so you can launch agents, watch sessions, and answer their questions from your phone — see the mobile guide.

Android with Obtainium

Obtainium installs Android apps straight from their GitHub releases and keeps them updated.

  1. Install Obtainium from its releases page or F-Droid.
  2. Tap Add app and enter https://github.com/pragma-sh/pragma as the source URL.
  3. This repository also publishes desktop and plugin releases, so set:
    • Filter release titles by regular expression^pragma-go
    • Filter APKs by regular expression\.apk$
    • Fallback to older releases → on
    • Version detectionUse release date as version string
  4. Tap Add, then Install. Obtainium notifies you whenever a new Pragma Go release is published.

The Android install guide explains each option and why it is needed.

Documentation

ResourceWhat it covers
WebsiteProduct overview and feature tour
DocumentationMain documentation hub
User guideProjects, worktrees, agents, review, and settings
CLI referenceControl Pragma and report agent status from a terminal
TypeScript SDKBuild typed integrations with @pragma-sh/sdk
Plugin developmentAdd UI, commands, agents, themes, and integrations
Plugin galleryBrowse available Pragma plugins
AutomationsRun scheduled and event-driven host tasks
Architecture wikiDesktop, server, gateway, and protocol layers
Issue trackerReport bugs and request features

Build From Source

Prerequisites:

git clone https://github.com/pragma-sh/pragma.git
cd pragma
bun install
bun run dev

See CONTRIBUTING.md for mobile, web, and docs dev workflows.

Contributing

Read CONTRIBUTING.md first — it covers the contribution policy, prerequisites, running the desktop app and Pragma Go, the project tour, style guidelines, commit style, and how to open a pull request.

Policy in short: we only accept small features. Bug fixes and other small, focused changes are the most likely to be merged; large features and sweeping refactors will almost certainly be declined. Open an issue before building anything non-trivial.

Before opening a pull request:

bun run check
bun run test
bun run rust:test

Use Conventional Commits and include focused tests with behavior changes. AGENTS.md (and the per-package AGENTS.md files) hold the deeper architecture and platform rules for human and AI contributors alike. Bugs and ideas start in the issue tracker.

License

GNU Affero General Public License v3.0.

If Pragma saves you a tab, give it a star. ⭐

Built with Tauri, Rust, React, and Bun.

Contributors

Languages

TypeScript

64.9%

Rust

29.5%

MDX

2.3%

Shell

2.2%