A TUI for Windows to create new repositories by branching off your public GitHub repositories. Written in Rust.
| Previous Challenges | This App’s Solution |
|---|---|
| High cognitive load for a series of tasks, leading to fatigue. | Visualized with a TUI to reduce cognitive load. |
| Time-consuming to find the target repository. | Quickly find the target repo using / for filtering (space-separated AND search). |
| Risk of accidental pushes because the remote still points to the original repo after cloning. | Reconfigure remotes immediately after cloning, deleting upstream. Unify origin’s fetch to HTTPS and push to SSH. |
| Configuration and README can easily become inconsistent when changing to a new repo name. | Changing the repo name with n updates the working directory name, remote settings, and the README.ja.md top header all at once. |
| Time-consuming to confirm changes. | View README preview and diff (delta) on screen, and logs are also retained. |
| Difficult to detect misconfigurations before pushing. | Open the verification screen with Shift + P to check origin / push URL / upstream. If in a dangerous state, a hard guard rejects the push. |
The shortest operational procedure is: Enter to clone → n to name → c to commit → Shift + P to verify → y to push.
Proceeding step-by-step with the TUI reduces the risk of errors or omissions and cognitive load.
upstream is deleted, and origin’s fetch URL is set to HTTPS, push URL to SSH.origin points to the original norenwake source.upstream still exists.cargo)gitgh (GitHub CLI)delta (diff tool)gh is used for API authentication. Tokens are retrieved in the following priority:
GH_TOKENGITHUB_TOKENgh auth tokencargo install --force --git https://github.com/cat2151/norenwake
norenwake
norenwake update
h / l / ← / →: Move focus pane (repos / dir tree / log)j / k / ↑ / ↓: Move within current panePageUp / PageDown: Page movement within current paneEnter (on repos pane): Clone selected repon: Edit new repo namec: CommitShift + P: Pre-push verification and push confirmationShift + L: Copy full log to clipboard/: Open repos filter overlay (space-separated AND search)?: Help overlayq: Quitrepos and Enter to clonenew repo name with ncShift + Py to pushupdate_readme_ja maintains only one of the following norenwake headers at the beginning of README.ja.md.
# <new repo name>
Cloned from the original repo and branched off. Contains history up to the branching point.
If existing headers of the same type are consecutive, they are collapsed to avoid duplication.
README.ja.md, falling back to README.md on failure.%LOCALAPPDATA%\norenwake\