|
1 | 1 | # MarCode |
2 | 2 |
|
3 | | -MarCode is a web GUI for coding agents. On top of a solid foundation, MarCode brings performance optimizations, new integrations, and a refined experience: |
| 3 | +**One window for every AI coding agent. Wired into Jira, Git, and your team's workflow.** |
4 | 4 |
|
5 | | -- **Claude Code CLI** as the default and primary provider |
6 | | -- **Jira Cloud integration** (OAuth 2.0, sprint browsing, `@PROJ-123` mentions in composer) |
7 | | -- **GitLab support** alongside GitHub (auto-detected from remote origin) |
8 | | -- **Preview diff display** for proposed file changes |
9 | | -- **Incremental state updates** for smooth, non-blocking UI during agent work |
10 | | -- **Additional directories in composer** — add extra directories to agent context per thread |
11 | | -- And much more |
| 5 | +MarCode is a desktop-grade GUI that puts Claude Code, Codex, OpenCode, and Cursor under a single, consistent surface — with first-class Jira context, GitHub & GitLab automation, remote control, and a tool-call display that actually makes agent runs readable. |
12 | 6 |
|
13 | | -## Installation |
14 | | - |
15 | | -> [!WARNING] |
16 | | -> MarCode currently supports Codex and Claude. |
17 | | -> Install and authenticate at least one provider before use: |
18 | | -> |
19 | | -> - Codex: install [Codex CLI](https://github.com/openai/codex) and run `codex login` |
20 | | -> - Claude: install Claude Code and run `claude auth login` |
21 | | -
|
22 | | -### Prerequisites |
23 | | - |
24 | | -You need at least one of the following coding agent CLIs installed and authorized: |
25 | | - |
26 | | -- [Claude Code CLI](https://docs.anthropic.com/en/docs/claude-code) |
27 | | -- [Codex CLI](https://github.com/openai/codex) |
28 | | - |
29 | | -For git host integration: |
| 7 | +## The enterprise workflow |
30 | 8 |
|
31 | | -- **PRs (GitHub):** [GitHub CLI (`gh`)](https://cli.github.com/) installed and authenticated |
32 | | -- **MRs (GitLab):** [GitLab CLI (`glab`)](https://gitlab.com/gitlab-org/cli) installed and authenticated (Personal Access Token works for self-hosted instances) |
| 9 | +The whole point: your engineers stay in **one app** from ticket to merge request. |
33 | 10 |
|
34 | | -### Desktop app |
35 | | - |
36 | | -Install the latest version of the desktop app from [GitHub Releases](https://github.com/tyulyukov/marcode/releases), or from your favorite package registry: |
37 | | - |
38 | | -#### Windows (`winget`) |
39 | | - |
40 | | -```bash |
41 | | -winget install tyulyukov.MarCode |
42 | | -``` |
| 11 | +1. **Drop in a Jira ticket.** `@PROJ-123` in the composer pulls the title, description, attachments, and links straight into context. Paste an `*.atlassian.net/browse/...` URL and MarCode auto-detects it. Browse boards and sprints with `/jira` without ever leaving the chat. |
| 12 | +2. **Pick how you want to work.** Run the agent **in-place** against your local checkout, or one-click into an **isolated git worktree** so the agent can refactor without ever touching your working tree. Switch between threads, branches, and worktrees from the sidebar. |
| 13 | +3. **Watch every step in plain English.** File reads, shell commands, web searches, MCP tool calls, and subagent task groups all render as purpose-built cards — not raw JSON. Approve, reject, or revert any checkpoint with one click. |
| 14 | +4. **Ship with one click.** When the work is good, MarCode handles the rest of the chore work for you: it generates a semantic branch name (`feature/PROJ-123-…`), writes a clean commit message that reads naturally, opens a **PR on GitHub** or an **MR on GitLab** — auto-detected from your remote — with the Jira ticket key engraved in the title and the "why" lifted from the ticket description. |
43 | 15 |
|
44 | | -#### macOS (Homebrew) |
| 16 | +The Jira ticket key follows the work end-to-end: classified once on the first turn (so reference tickets don't leak), persisted on the thread, and visible on the chip beside the Commit / Push / MR button so reviewers always know what's being shipped. |
45 | 17 |
|
46 | | -```bash |
47 | | -brew install --cask marcode |
48 | | -``` |
| 18 | +## One GUI, every agent |
49 | 19 |
|
50 | | -#### Arch Linux (AUR) |
| 20 | +| Provider | Status | CLI | |
| 21 | +| --------------- | ------------ | ---------------------------------------------------------- | |
| 22 | +| **Claude Code** | Default | [`claude`](https://docs.anthropic.com/en/docs/claude-code) | |
| 23 | +| **Codex** | Stable | [`codex`](https://github.com/openai/codex) | |
| 24 | +| **OpenCode** | Stable | [`opencode`](https://opencode.ai) | |
| 25 | +| **Cursor** | Early Access | [`cursor-agent`](https://docs.cursor.com/en/cli/overview) | |
51 | 26 |
|
52 | | -```bash |
53 | | -yay -S marcode-bin |
54 | | -``` |
| 27 | +Pick a CLI, pick a model, switch mid-thread. Your agents share one history, one settings panel, and one set of keybindings. |
55 | 28 |
|
56 | | -## Some notes |
| 29 | +## Why MarCode |
57 | 30 |
|
58 | | -We are very very early in this project. Expect bugs. |
| 31 | +- **Rich tool-call display.** Every shell command, file edit, web fetch, MCP call, and subagent spawn renders as a dedicated card with diffs, status, and inline previews — not a wall of JSON. |
| 32 | +- **Native multi-host Git.** GitHub PRs and GitLab MRs from the same composer. The host is auto-detected from `remote.origin.url`; the UI relabels itself accordingly. |
| 33 | +- **Jira-aware end-to-end.** OAuth 2.0 to Atlassian Cloud, sprint browsing, `@PROJ-123` mentions, and ticket-engraved branches / titles / MRs. |
| 34 | +- **Remote control.** Run the server headless on a workstation or build box and connect from another desktop, phone, or tablet over your tailnet. See [REMOTE.md](./REMOTE.md). |
| 35 | +- **Yours to customize.** 24+ themes across Catppuccin, Dracula, Nord, Tokyo Night, Rose Pine, Ayu, Solarized, GitHub, Gruvbox, One Dark, Monokai, and the branded MarCode set. Custom keybindings via [`~/.marcode/keybindings.json`](./KEYBINDINGS.md). |
| 36 | +- **Fast under load.** Incremental event streaming, structural sharing in the store, and virtualized timelines keep the UI smooth through long agent runs. |
59 | 37 |
|
60 | | -We are not accepting contributions yet. |
| 38 | +A full inventory of fork-exclusive features lives in [FEATURES.md](./FEATURES.md). |
61 | 39 |
|
62 | | -Observability guide: [docs/observability.md](./docs/observability.md) |
| 40 | +## Installation |
63 | 41 |
|
64 | | -## If you REALLY want to contribute still.... read this first |
| 42 | +> [!NOTE] |
| 43 | +> MarCode requires at least one coding-agent CLI installed and authenticated. Install whichever you use: |
| 44 | +> |
| 45 | +> - **Claude Code:** install [Claude Code](https://docs.anthropic.com/en/docs/claude-code) and run `claude` |
| 46 | +> - **Codex:** install [Codex CLI](https://github.com/openai/codex) and run `codex login` |
| 47 | +> - **OpenCode:** install [OpenCode](https://opencode.ai) (`npm i -g opencode-ai`) and authenticate |
| 48 | +> - **Cursor (Early Access):** install [Cursor CLI](https://docs.cursor.com/en/cli/installation) and run `agent login` |
65 | 49 |
|
66 | | -Before local development, prepare the environment and install dependencies: |
| 50 | +For Git host integration: |
67 | 51 |
|
68 | | -```bash |
69 | | -# Optional: only needed if you use mise for dev tool management. |
70 | | -mise install |
71 | | -bun install . |
72 | | -``` |
| 52 | +- **GitHub PRs:** [`gh`](https://cli.github.com/) installed and authenticated |
| 53 | +- **GitLab MRs:** [`glab`](https://gitlab.com/gitlab-org/cli) installed and authenticated (Personal Access Token works for self-hosted GitLab) |
73 | 54 |
|
74 | | -Read [CONTRIBUTING.md](./CONTRIBUTING.md) before opening an issue or PR. |
| 55 | +### Desktop app |
75 | 56 |
|
76 | | -Need support? Join the [Discord](https://discord.gg/jn4EGJjrvv). |
| 57 | +Install the latest release from [GitHub Releases](https://github.com/tyulyukov/marcode/releases). |
0 commit comments