StageHand
The git client that runs the show.
A simple git client for macOS that works the same way with GitHub and GitLab — with AI-written commit messages and pull requests.
- routes/web.phpM
- app/Http/Controllers/ProductsController.phpA
- config/products.phpA
- notes/todo.mdM
@@ -37,7 +37,11 @@Route::get('articles/{url}', [ArticlesController::class, 'getArticle']); Route::get('announcements', [AnnouncementsController::class, 'index']); Route::get('products', [ProductsController::class, 'index']);Route::get('products/{slug}', [ProductsController::class, 'show']);Route::get('products/{slug}/download', [ProductsController::class, 'download']); Route::feeds(); Route::get('{url}', [PagesController::class, 'getPage']);Three steps. No manual.
StageHand gives you one calm workflow for GitHub and GitLab (self-managed too). Check the files you want, let AI write a Conventional Commit from just those changes, then open a pull request with a description that fills in your template. Branches, CI runs and pull requests sit one click away in the sidebar.
-
01
Open a repo
Drag a folder in, or run stagehand from your terminal.
-
02
Check & commit
Tick the files, press ✨, review the message, commit.
-
03
Ship the PR
Write with AI, push, and land in the browser on your new pull request.
Everything it does, nothing it doesn't.
Commits that write themselves
Press ✨ and StageHand writes a Conventional Commit from the diff of the checked files only — reusing the scopes and ticket footers from your recent history.
Split big changes
Changed too much at once? "Suggest commits" proposes focused commits; click one to check just those files and fill in its summary.
PRs & MRs, drafted
Pick a base branch and click "Write with AI". It follows your pull_request_template.md and turns issue numbers into Closes #123 lines.
GitHub and GitLab, the same way
One workflow for both hosts, including self-managed GitLab. Publish a repo to either in a click — it resumes where it stopped if a step fails.
CI at a glance
GitHub Actions and GitLab pipelines per branch, status dots in the branch list, and a macOS notification when a run fails.
Branch clean-up
Filter branches, see what is merged or gone upstream, and clean up local and remote branches in bulk — with a warning before unmerged work goes.
Your AI, your choice
Claude by default, OpenAI or any compatible server, or a local Ollama model. Only the relevant diff is sent, capped at about 60 KB.
Opens from anywhere
stagehand in a terminal, Open With in Finder, a drop on the Dock icon, or the bundled VS Code extension. Keys stay encrypted in the macOS Keychain.
Up and running in a minute.
StageHand isn't notarized by Apple yet, so macOS asks you to confirm the first launch. After that it opens like any other app.
-
01
Drag it to Applications
Open the downloaded
Stagehand-0.1.0-arm64.dmgand drag StageHand into your Applications folder. -
02
Open it once, then allow it
macOS will say it can't verify the developer. Open System Settings → Privacy & Security, scroll down, and click Open Anyway next to StageHand.
-
03
Prefer the terminal?
Clear the quarantine flag instead:
$ xattr -dr com.apple.quarantine "/Applications/Stagehand.app"
- macOS on Apple silicon (M1 or later)
- git (xcode-select --install)
- A GitHub and/or GitLab personal access token
- Optional: a Claude or OpenAI API key, or a local Ollama model