mainbound
Health Uyari
- 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 Gecti
- Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Gecti
- Permissions — No dangerous permissions requested
Bu listing icin henuz AI raporu yok.
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.
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.tomlis 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 viapty://data/{id}eventssrc-tauri/src/git.rs— shells out togit(porcelain v2), no libgit2src-tauri/src/github.rs— GitHub REST + GraphQL via reqwest; tokens in Keychain (keyring)src-tauri/src/ai.rs— commit/PR message generation through the localclaudeCLIapp/— 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.
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi