mainbound

skill
Security Audit
Warn
Health Warn
  • No license — Repository has no license file
  • No description — Repository has no description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 5 GitHub stars
Code Pass
  • Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Pass
  • Permissions — No dangerous permissions requested

No AI report is available for this listing yet.

README.md

Mainbound

Mainbound

From shell to main.

A macOS terminal workspace that carries your whole workflow toward main
terminal, git, and pull requests together, without leaving the app.

Latest release Downloads macOS

Mainbound demo

Terminal → Changes → Commit → Push → PR → CI → Merge

Why Mainbound?

Shipping a branch means juggling three apps: a terminal for the work, a git
client for the changes, and a browser tab for the pull request. Mainbound
collapses that loop into one window. Every session knows its repository,
branch, and open PR — the cockpit shows changes, ahead/behind, reviews, and
CI without you running a single status command.

Features

Real terminal, split everything zsh over a native PTY (xterm.js + WebGL). Sessions per workspace, recursive splits, drag-and-drop pane docking, ⌘F search, full scrollback that survives view switches and app restarts.
PR Cockpit Always-visible strip: branch switcher, local changes, unpushed ↑↓, open PR with review state and CI checks — updates as you work.
File Changes Status badges with ±counts, syntax-highlighted diffs, stage/unstage/discard, commit with AI-generated messages (local claude CLI), history, conflicts.
Pull requests, fully in-app Conversation timeline (comments, reviews, commits), inline threads with reply & resolve, per-file diffs, CI checks, merge with confirmation — GitHub website not required.
Notifications Bell, OSC 9/777, and a "command finished" heuristic → native banner with a branded chime, in-app toast, and sidebar badges. Claude Code asking for permission in a background session? You'll know.
Secure by design GitHub tokens (multi-account) live in the macOS Keychain, never in the webview. Push/pull use your own git credentials. No telemetry.

Install

One line (recommended — no Gatekeeper drama):

curl -fsSL https://raw.githubusercontent.com/codewithrafli/mainbound/main/install.sh | bash

Or download the .dmg from Releases
(Apple Silicon & Intel). Browser downloads aren't notarized yet, so afterwards run:

xattr -dr com.apple.quarantine /Applications/Mainbound.app

Mainbound updates itself in-app (changelog included) — installing is a one-time affair.

Keyboard shortcuts

Shortcut Action
⌘K Command palette — jump to any session, repo, or action
⌘T New session
⌘D / ⇧⌘D Split pane right / down
⌘W Close focused pane
⌘1 / ⌘2 Terminal · File Changes
⌘F Find in terminal
⌘+ / ⌘− / ⌘0 Zoom
⌘↵ Commit (from the commit form)

Development

bun install
bun run tauri dev

Requires Rust (rustup), Bun, and git on PATH.

Note: src-tauri/.cargo/config.toml is machine-specific (local cargo
target dir) and untracked — create your own if you develop from an
external disk.

Releasing: bun run release 0.x.y bumps versions, tags, and pushes — CI
builds, signs, and publishes the update feed.

Architecture

  • src-tauri/src/pty.rs — portable-pty sessions; output streamed per session via pty://data/{id} events
  • src-tauri/src/git.rs — shells out to git (porcelain v2), no libgit2
  • src-tauri/src/github.rs — GitHub REST + GraphQL via reqwest; tokens in Keychain (keyring)
  • src-tauri/src/ai.rs — commit/PR message generation through the local claude CLI
  • app/ — Nuxt 4 SPA (ssr: false), Nuxt UI, Pinia stores

Philosophy

Small and focused. Every feature must answer one question: does it speed up
the journey from terminal to a merged PR?
No code editor, no AI chat, no
dashboards — there are better tools for those.

Reviews (0)

No results found