A safe, local web app for reviewing and deleting GitHub forks in bulk.
You need Node.js 20.19 or newer. Run the latest published version directly from npm—no clone or global installation required:
npx delete-github-forks@latestThe command:
- Downloads the package temporarily through npm.
- Starts a local server at
http://127.0.0.1:4173. - Opens the app in your default browser.
- Detects your GitHub CLI authentication automatically.
The server runs only on your computer and stops when you press Ctrl + C. If port 4173 is occupied, the app uses the next available port.
Use a specific port:
npx delete-github-forks@latest --port 8080Start the server without opening a browser:
npx delete-github-forks@latest --no-openAll options:
--port <number> Use a specific port (default: 4173, then next available)
--no-open Do not open the browser automatically
-h, --help Show command help
The app automatically detects an authenticated GitHub CLI session. On a fresh computer, sign in and request repository deletion access in one step:
gh auth login -h github.com -s delete_repo --webIf you are already signed in without the required permission, add it to your existing session:
gh auth refresh -h github.com -s delete_repoNo access token needs to be created, copied, or stored by the app.
If GitHub CLI is unavailable, enter a personal access token in the local webpage. The token is sent only to the server on 127.0.0.1, held in process memory for the current session, and never written to disk, browser storage, logs, cookies, or URLs.
- Classic tokens need the
repoanddelete_reposcopes. - Fine-grained tokens need Metadata: Read, Pull requests: Read, and Administration: Read and write for each repository they may delete.
- The app fetches all public and private forks owned by the authenticated account.
- It checks every fork branch for open pull requests that still depend on it.
- Filter by repository name, visibility, or last activity.
- Select only the repositories you want to delete. Bulk selection skips forks with open pull requests or an unknown check result.
- Review the exact list and type
DELETEto confirm. - The app deletes repositories sequentially and reports every success or failure.
Deletion is irreversible. Nothing is selected by default, and the server only accepts repositories from the list fetched during the current session.
If you prefer to inspect the code before running it, clone the repository and build the application locally instead of executing the published npm package:
git clone https://github.com/yangshun/delete-github-forks.git
cd delete-github-forks
npm install
npm run build
npm startThe app opens automatically at http://127.0.0.1:4173. You can also pass command options through npm:
npm start -- --no-open
npm start -- --port 8080You can also verify the source and local build before running the app:
npm run typecheck
npm test
npm run buildThe frontend uses React, TypeScript, Vite, and Mona Sans. The local API uses Hono on Node.js.
MIT
