{"id":45764147,"url":"https://github.com/johannesjo/parallel-code","last_synced_at":"2026-04-09T10:21:05.129Z","repository":{"id":339662935,"uuid":"1160727878","full_name":"johannesjo/parallel-code","owner":"johannesjo","description":"Run Claude Code, Codex, and Gemini side by side — each in      its own git worktree","archived":false,"fork":false,"pushed_at":"2026-04-01T10:54:20.000Z","size":53035,"stargazers_count":467,"open_issues_count":14,"forks_count":56,"subscribers_count":5,"default_branch":"main","last_synced_at":"2026-04-01T12:36:02.943Z","etag":null,"topics":["ai-agents","ai-coding","ai-tools","claude-code","codex-cli","coding-agent","developer-tools","gemini-cli","git-worktree","terminal"],"latest_commit_sha":null,"homepage":"https://parallelcode.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/johannesjo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["johannesjo"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":null,"thanks_dev":null,"custom":null}},"created_at":"2026-02-18T09:53:27.000Z","updated_at":"2026-04-01T10:54:18.000Z","dependencies_parsed_at":null,"dependency_job_id":"56e87075-534b-4e70-aa23-80bbc061221c","html_url":"https://github.com/johannesjo/parallel-code","commit_stats":null,"previous_names":["johannesjo/parallel-code"],"tags_count":21,"template":false,"template_full_name":null,"purl":"pkg:github/johannesjo/parallel-code","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johannesjo%2Fparallel-code","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johannesjo%2Fparallel-code/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johannesjo%2Fparallel-code/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johannesjo%2Fparallel-code/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/johannesjo","download_url":"https://codeload.github.com/johannesjo/parallel-code/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johannesjo%2Fparallel-code/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31305973,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T09:48:21.550Z","status":"ssl_error","status_checked_at":"2026-04-02T09:48:19.196Z","response_time":89,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-agents","ai-coding","ai-tools","claude-code","codex-cli","coding-agent","developer-tools","gemini-cli","git-worktree","terminal"],"created_at":"2026-02-26T00:00:39.357Z","updated_at":"2026-04-02T12:05:48.357Z","avatar_url":"https://github.com/johannesjo.png","language":"TypeScript","readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"build/logo-text-squared.svg\" alt=\"Parallel Code\" height=\"76\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  Turn wait time into parallel progress.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Electron-47848F?logo=electron\u0026logoColor=white\" alt=\"Electron\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/SolidJS-2C4F7C?logo=solid\u0026logoColor=white\" alt=\"SolidJS\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/TypeScript-3178C6?logo=typescript\u0026logoColor=white\" alt=\"TypeScript\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Platform-macOS%20%7C%20Linux-lightgrey\" alt=\"macOS | Linux\"\u003e\n  \u003cimg src=\"https://img.shields.io/github/license/johannesjo/parallel-code\" alt=\"License\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://youtu.be/sLf0tsQA3pU\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Watch%20Intro-YouTube-red?logo=youtube\u0026logoColor=white\u0026style=for-the-badge\" alt=\"Watch intro on YouTube\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"screens/longer-video.gif\" alt=\"Parallel Code demo\" width=\"800\"\u003e\n\u003c/p\u003e\n\n**Parallel Code** is a desktop app that gives every AI coding agent its own git branch and worktree — automatically.\n\n## Screenshots\n\n| Agent working on a task                     | Commit \u0026 merge workflow           |\n| ------------------------------------------- | --------------------------------- |\n| ![Agent working](screens/agent-working.png) | ![Workflow](screens/workflow.png) |\n| **Direct mode (main branch)**               | **Themes**                        |\n| ![Direct mode](screens/direct-mode.png)     | ![Themes](screens/themes.png)     |\n\n## Why Parallel Code?\n\n- **Use the AI coding tools you already trust** — [Claude Code](https://docs.anthropic.com/en/docs/claude-code), [Codex CLI](https://github.com/openai/codex), [Gemini CLI](https://github.com/google-gemini/gemini-cli) — all from one interface.\n- **Free and open source** — no extra subscription required. MIT licensed.\n- **Keep every change isolated and reviewable** — each task gets its own git branch and worktree automatically.\n- **Run agents in parallel, not in sequence** — five agents on five features at the same time, zero conflicts.\n- **See every session in one place** — switch context without losing momentum.\n- **Control everything keyboard-first** — every action has a shortcut, mouse optional.\n- **Monitor progress from your phone** — scan a QR code, watch agents work over Wi-Fi or Tailscale.\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eHow does it compare?\u003c/strong\u003e\u003c/summary\u003e\n\n| Approach                                           | What's missing                                                                          |\n| -------------------------------------------------- | --------------------------------------------------------------------------------------- |\n| **Multiple terminal windows / tmux**               | No GUI, no automatic git isolation — you manage worktrees, branches, and merges by hand |\n| **VS Code extensions** (Kilo Code, Roo Code, etc.) | Tied to VS Code; no true parallel worktree isolation between agents                     |\n| **Running agents sequentially**                    | One task at a time — blocks your workflow while each agent finishes                     |\n\n\u003c/details\u003e\n\n## How it works\n\nWhen you create a task, Parallel Code:\n\n1. Creates a new git branch from your main branch\n2. Sets up a [git worktree](https://git-scm.com/docs/git-worktree) so the agent works in a separate directory\n3. Symlinks `node_modules` and other gitignored directories into the worktree\n4. Spawns the AI agent in that worktree\n\nWhen you're happy with the result, merge the branch back to main from the sidebar.\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eMore features\u003c/strong\u003e\u003c/summary\u003e\n\n- Tiled panel layout with drag-to-reorder\n- Built-in diff viewer and changed files list per task\n- Shell terminals per task, scoped to the worktree\n- Direct mode for working on the main branch without isolation\n- Six themes — Minimal, Graphite, Classic, Indigo, Ember, Glacier\n- State persists across restarts\n- macOS and Linux\n\n\u003c/details\u003e\n\n## Demo\n\n\u003cp align=\"center\"\u003e\n  \u003cvideo src=\"screens/showcase.mp4\" width=\"800\" controls\u003e\u003c/video\u003e\n\u003c/p\u003e\n\n## Getting Started\n\n1. **Download** the latest release for your platform from the [releases page](https://github.com/johannesjo/parallel-code/releases/latest):\n   - **macOS** — `.dmg` (universal)\n   - **Linux** — `.AppImage` or `.deb`\n\n2. **Install at least one AI coding CLI:** [Claude Code](https://docs.anthropic.com/en/docs/claude-code), [Codex CLI](https://github.com/openai/codex), or [Gemini CLI](https://github.com/google-gemini/gemini-cli)\n\n3. **Open Parallel Code**, point it at a git repo, and start dispatching tasks.\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eBuild from source\u003c/strong\u003e\u003c/summary\u003e\n\n```sh\ngit clone https://github.com/johannesjo/parallel-code.git\ncd parallel-code\nnpm install\nnpm run dev\n```\n\nRequires [Node.js](https://nodejs.org/) v18+.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eKeyboard Shortcuts\u003c/strong\u003e\u003c/summary\u003e\n\n`Ctrl` = `Cmd` on macOS.\n\n| Shortcut              | Action                         |\n| --------------------- | ------------------------------ |\n| **Tasks**             |                                |\n| `Ctrl+N`              | New task                       |\n| `Ctrl+Shift+A`        | New task (alternative)         |\n| `Ctrl+Enter`          | Send prompt                    |\n| `Ctrl+Shift+M`        | Merge task to main             |\n| `Ctrl+Shift+P`        | Push to remote                 |\n| `Ctrl+W`              | Close focused terminal session |\n| `Ctrl+Shift+W`        | Close active task              |\n| **Navigation**        |                                |\n| `Alt+Arrows`          | Navigate between panels        |\n| `Ctrl+Alt+Left/Right` | Reorder active task            |\n| `Ctrl+B`              | Toggle sidebar                 |\n| **Terminals**         |                                |\n| `Ctrl+Shift+T`        | New shell terminal             |\n| `Ctrl+Shift+D`        | New standalone terminal        |\n| **App**               |                                |\n| `Ctrl+,`              | Open settings                  |\n| `Ctrl+/` or `F1`      | Show all shortcuts             |\n| `Ctrl+0`              | Reset zoom                     |\n| `Ctrl+Scroll`         | Adjust zoom                    |\n| `Escape`              | Close dialog                   |\n\n\u003c/details\u003e\n\n---\n\nIf Parallel Code saves you time, consider giving it a [star on GitHub](https://github.com/johannesjo/parallel-code). It helps others find the project.\n\n## License\n\nMIT\n","funding_links":["https://github.com/sponsors/johannesjo"],"categories":["Parallel Agent Runners","TypeScript","📚 Tools","Desktop Applications",":tada: New","Companion Apps \u0026 GUIs","Multi-Agent \u0026 Orchestration"],"sub_categories":["🌟 What You'll Find Here:","CLI Utilities","Quick Setup with cc-safe-setup","Other IDEs"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohannesjo%2Fparallel-code","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjohannesjo%2Fparallel-code","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohannesjo%2Fparallel-code/lists"}