{"id":51035425,"url":"https://github.com/byte5ai/claudeplex-desktop","last_synced_at":"2026-06-22T05:30:29.677Z","repository":{"id":365674416,"uuid":"1273055619","full_name":"byte5ai/claudeplex-desktop","owner":"byte5ai","description":"Claudeplex Desktop — Electron cockpit for monitoring \u0026 orchestrating multiple Claude Code (Max/Team) accounts","archived":false,"fork":false,"pushed_at":"2026-06-18T10:26:26.000Z","size":154,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-18T12:11:09.075Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/byte5ai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2026-06-18T07:04:37.000Z","updated_at":"2026-06-18T10:26:30.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/byte5ai/claudeplex-desktop","commit_stats":null,"previous_names":["byte5ai/claudeplex-desktop"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/byte5ai/claudeplex-desktop","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/byte5ai%2Fclaudeplex-desktop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/byte5ai%2Fclaudeplex-desktop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/byte5ai%2Fclaudeplex-desktop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/byte5ai%2Fclaudeplex-desktop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/byte5ai","download_url":"https://codeload.github.com/byte5ai/claudeplex-desktop/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/byte5ai%2Fclaudeplex-desktop/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34636427,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-22T02:00:06.391Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2026-06-22T05:30:28.880Z","updated_at":"2026-06-22T05:30:29.671Z","avatar_url":"https://github.com/byte5ai.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Claudeplex Desktop\n\n\u003e An Electron cockpit for monitoring and orchestrating your Claude Code accounts — usage budgets, live sessions, transcripts, agent orchestration, and GitHub triage in one window.\n\nClaudeplex Desktop reads your local Claude Code state **read-only** and turns it into a live dashboard. It discovers every Claude account/config directory on your machine, tracks 5-hour and weekly usage budgets, surfaces running sessions and their transcripts, and lets you spin up and drive interactive `claude` agents — all without ever writing to Claude's own config.\n\n---\n\n## Features\n\n- **Overview cockpit** — a full-width landing screen summarizing every discovered account at a glance.\n- **Accounts + usage budgets** — per-account 5-hour and weekly budget tracking with live refresh and flashing transitions.\n- **Sessions + transcripts** — browse active sessions and render their `.jsonl` transcripts as readable Markdown.\n- **Agent orchestration** — launch interactive `claude` PTY sessions from a new-agent wizard (`n`) and drive them in an embedded xterm terminal that replays history on reopen.\n- **GitHub workflows** — quick issue creation, AI-assisted issue triage, and PR review, scoped to GitHub repositories only.\n- **Command palette** — `⌘K` / `Ctrl+K` for fast navigation.\n\nThe dashboard layer is strictly **read-only** against your Claude config directories. Only the agent layer launches processes — and it does so as ordinary `claude` PTY sessions.\n\n---\n\n## Requirements\n\n- [Bun](https://bun.sh) `≥ 1.3`\n- macOS (primary target; other platforms are untested)\n- [Claude Code](https://github.com/anthropics/claude-code) installed and at least one account configured\n- A C/C++ toolchain for the native `node-pty` rebuild (Xcode Command Line Tools on macOS)\n\n---\n\n## Quick start\n\n```bash\nbun install      # installs deps and rebuilds node-pty against Electron\nbun run dev      # launches the app\n```\n\nThat's it — everything runs from the repository root.\n\n---\n\n## Build a native macOS app\n\nThe dev server (`bun run dev`) is convenient for iteration but runs an unbundled\nReact dev build — for a fast, native-feeling app, package it with\n[electron-builder](https://electron.build):\n\n```bash\n# Build a standalone Claudeplex.app (fastest — no installer)\nbun run pack:mac\nopen release/mac-arm64/Claudeplex.app\n\n# …or build a distributable .dmg installer\nbun run dist:mac          # → release/Claudeplex-\u003cversion\u003e-arm64.dmg\n```\n\nThe build rebuilds `node-pty` for the target Electron ABI and unpacks it from the\nasar archive (a native module can't be `dlopen`'d from inside asar).\n\n**Gatekeeper:** local builds are unsigned, so on first launch macOS warns about an\nunidentified developer — right-click the app → **Open** → **Open**. For real\ndistribution, provide an Apple Developer signing identity via the `CSC_*`\nenvironment variables.\n\n---\n\n## Scripts\n\n| Script | Description |\n|--------|-------------|\n| `bun run dev` | Start the app in development with hot reload (`electron-vite dev`). |\n| `bun run build` | Produce a production bundle in `out/` (`electron-vite build`). |\n| `bun run start` | Preview the production build (`electron-vite preview`). |\n| `bun run pack:mac` | Build a standalone macOS `.app` into `release/` (no installer). |\n| `bun run dist:mac` | Build a distributable macOS `.dmg` installer into `release/`. |\n| `bun run typecheck` | Type-check the project with `tsc --noEmit`. |\n| `bun test` | Run the core library test suite. |\n| `bun run rebuild:native` | Rebuild the `node-pty` native module against Electron's ABI. |\n\n---\n\n## Project structure\n\n```\nclaudeplex-desktop/\n├── package.json              # single root package — install \u0026 run from here\n├── electron.vite.config.ts   # main / preload / renderer build config + aliases\n├── tsconfig.json             # one root tsconfig with path aliases\n├── index.html                # renderer entry\n├── tailwind.config.ts\n├── postcss.config.js\n├── electron/                 # Electron main process (Node side)\n│   ├── main.ts               # window, IPC wiring, snapshot loop\n│   ├── preload.ts            # contextBridge surface\n│   ├── pty.ts · agent*.ts    # interactive claude agent orchestration\n│   ├── github*.ts            # GitHub issue/PR features\n│   └── watcher.ts · usage.ts # filesystem watch + usage accounting\n├── src/                      # React renderer (browser side)\n│   ├── core/                 # framework-free, read-only data logic\n│   ├── shell/                # app frame: Header, ActivityBar, StatusBar, Shell\n│   ├── views/                # Overview, Accounts, Sessions, Cockpit, Settings, github/\n│   ├── components/           # AgentTerminal, SessionRow, …\n│   └── store/                # zustand state\n└── test/                     # core library tests (bun:test)\n```\n\n### Module aliases\n\n| Alias | Resolves to |\n|-------|-------------|\n| `@claudeplex/core` | `src/core/index.ts` — the read-only data layer (account discovery, usage accounting, transcript parsing, i18n, git identity). |\n| `@/…` | `src/…` — renderer source root. |\n\nBoth aliases are defined once in `tsconfig.json` (`paths`) and `electron.vite.config.ts` (`resolve.alias`).\n\n---\n\n## How it works\n\n**`src/core`** is a framework-free, Node-runtime-safe library ported from a Bun CLI. It discovers accounts, collects snapshots, parses and renders transcripts, and computes usage budgets. It only ever **reads** Claude's config directories.\n\n**`electron/main.ts`** runs the Node side: it drives a snapshot loop over `core`, watches the filesystem for changes, and forwards live updates to the renderer over IPC. It also hosts the agent registry that launches interactive `claude` PTY sessions and the GitHub feature handlers.\n\n**`src/` (renderer)** is a React + Tailwind UI backed by a zustand store, rendering the cockpit, accounts, sessions, transcripts, and agent terminals.\n\n`node-pty` is a native module and is intentionally **externalized** from the main/preload bundles so it loads against Electron's ABI at runtime (rebuilt automatically on `bun install`).\n\n---\n\n## Configuration\n\n- Claudeplex auto-discovers Claude accounts from the standard config locations and respects `CLAUDE_CONFIG_DIR`.\n- To pin or override discovered instances, create `~/.config/claudeplex/instances.json`.\n\n---\n\n## Development\n\n```bash\nbun run dev          # iterate with hot reload\nbun run typecheck    # tsc --noEmit, must be clean\nbun test             # core test suite (bun:test)\nbun run build        # verify the full production bundle\n```\n\nIf you change `node-pty` or upgrade Electron, run `bun run rebuild:native`.\n\n---\n\n## License\n\nPrivate / unpublished.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbyte5ai%2Fclaudeplex-desktop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbyte5ai%2Fclaudeplex-desktop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbyte5ai%2Fclaudeplex-desktop/lists"}