Clean, local-only desktop app for managing GitHub operations through silently executed GitHub CLI (gh) and approved read-only Git backend commands.
Like this project? You can support ongoing development on Ko-fi, helping me maintain existing tools and release more public projects.
GitHub CLI Manager gives non-expert and expert maintainers a simple local workspace for repository, pull request, issue, release, Actions, secrets, variables, project, codespace, gist, key, search, API, extension, alias, and configuration work without memorizing gh commands or opening a terminal.
The MVP is specified in docs/mvp-spec.md, with command-by-command coverage in docs/gh-command-coverage.md. Release readiness is documented in docs/release.md, with notes in CHANGELOG.md.
- The Electron renderer converts a user action into a typed request without constructing shell commands.
- The main process validates repository identifiers and arguments, assigns a risk level, and returns a redacted preview.
- After any required confirmation, the command runner invokes only approved
ghor read-onlygitcommands as argument arrays, without shell interpolation. - The local GitHub CLI uses the user’s existing authentication, and structured results return to the renderer and local activity history.
There is no AI backend, model inference, training pipeline, cloud command relay, or hosted execution service. All command validation and execution are deterministic and local to the desktop app.
Release screenshots are captured headlessly and stored in docs/screenshots.
| Home setup | Releases workspace | Advanced preview |
|---|---|---|
![]() |
![]() |
![]() |
- Front end: Electron desktop renderer with dependency-free HTML, CSS, and browser JavaScript.
- Backend: Electron main process that silently invokes approved local commands as subprocesses with argument arrays, never shell string interpolation.
- Integration: GitHub authentication, repository access, and GitHub API behavior delegated to the installed
ghCLI.
- The app installer or first-run setup wizard should detect and help install the GitHub CLI.
- The setup wizard should detect and help install Git when repository, checkout, clone, sync, or tag features need it.
- The app should guide users through
gh auth loginwithout requiring them to know the command. - Access to target repositories through the authenticated
ghaccount.
This spec was drafted against gh version 2.45.0 and its full command surface from gh help reference.
The MVP must include a beginner-safe setup experience:
- Detect operating system, CPU architecture, installed
gh, installed Git, and app runtime dependencies. - Offer one-click install or copyable guided install steps when a dependency is missing.
- Explain admin permission prompts before they appear.
- Run verification silently after each install step.
- Show plain-language fixes for blocked installs, missing PATH entries, failed auth, or unsupported package managers.
- Keep a manual fallback path for users who cannot grant installer permissions.
Start the local app:
npm install
npm startThis opens the Electron desktop app. There is no product-facing localhost server.
Current implementation validation:
npm run check
npm test
npm run test:e2e
npm run screenshots:capture
npm run package:dir
npm run release:checkFuture validation should add:
- More unit tests for command builders.
- Integration tests with mocked
ghprocess output. - End-to-end tests for primary repository, pull request, issue, release, Actions, secret, variable, and command-runner flows.
None required for the MVP spec. Runtime should prefer gh's existing authentication context instead of duplicating GitHub tokens.
git-release-manager/
README.md
CHANGELOG.md
LICENSE
package.json
playwright.config.js
e2e/
app-shell.spec.js
scripts/
capture-screenshots.mjs
public/
app.js
index.html
styles.css
src/
command-catalog.js
command-manifest.js
command-runner.js
main.js
preload.cjs
setup.js
test/
command-catalog.test.js
command-runner.test.js
user-instructions.md
docs/
architecture.md
gh-command-coverage.md
mvp-spec.md
operations.md
setup.md
- The MVP must not store GitHub credentials.
- The MVP must run locally only; no hosted service, cloud relay, or remote command executor is in scope.
- CLI commands must run silently in the background by default, with output shown only inside the app's Activity and result panels.
- The app may run
ghcommands and approved read-onlygitcommands only. cdis represented by the Working Directory field; the app does not execute shell built-ins.- Every documented
ghcommand is available through the in-app command catalog and guarded Advanced runner. - Destructive actions must require explicit confirmation.
- Secret/token values must be write-only in the UI and redacted from logs.
- Any shell-facing implementation must pass command arguments as arrays and reject untrusted file paths outside user-selected directories.


