A terminal inbox for a GitHub repo's pull requests.
Lists a repo's PRs by bucket, and allow you to open the PR in your browser
gh auth login); 2.98 or newer for wnpm i -g @oscbacon/tungsten
Or from the source:
git clone git@github.com:OscBacon/tungsten.git
cd tungsten
bun install
bun link # links `tungsten` into ~/.bun/bin; make sure that's on your PATH
tungsten # repo from the current clone's git remotes, like gh
tungsten -R cli/cli # or pick one: [HOST/]OWNER/REPO
tungsten --demo # sample data, no clone or network
tungsten --show-git-prompt # let c and w ask for ssh passphrases or credentials
Each shows up to 25 PRs and the total count.
| Key | Action |
|---|---|
| ↑↓ / j k | move |
| t | collapse bucket |
| enter | open PR in browser |
| / | search |
| c | check out PR |
| w | open PR worktree |
| r | refresh |
| q | quit |
/ opens a prompt; enter searches GitHub, esc clears the search and goes back to the
PRs from before it without refetching them (r refreshes them).
fix token words in the title
@login PRs by that author (several @logins: any of them)
#123 that PR, looked up directly
Both keys work from a clone of the repo on screen, and hand the PR to gh pr checkout,
so forks and remotes behave as they do there.
c checks the PR out in the current clone.w opens the worktree that already has the PR's branch, or creates one at
~/worktrees/<repo>/<branch> (slashes in the branch become dashes). Inside tmux it opens a
new window there; otherwise it shows the path.The app stays on screen while gh works, so git can't prompt: a checkout that needs an ssh
passphrase, a new host key or a password fails with that error instead. Load the key into
ssh-agent or set up a credential helper, or run tungsten --show-git-prompt to answer the
prompts (the app is hidden while they run).
12 commits
TypeScript
100.0%
A terminal inbox for a GitHub repo's pull requests.
Lists a repo's PRs by bucket, and allow you to open the PR in your browser
gh auth login); 2.98 or newer for wnpm i -g @oscbacon/tungsten
Or from the source:
git clone git@github.com:OscBacon/tungsten.git
cd tungsten
bun install
bun link # links `tungsten` into ~/.bun/bin; make sure that's on your PATH
tungsten # repo from the current clone's git remotes, like gh
tungsten -R cli/cli # or pick one: [HOST/]OWNER/REPO
tungsten --demo # sample data, no clone or network
tungsten --show-git-prompt # let c and w ask for ssh passphrases or credentials
Each shows up to 25 PRs and the total count.
| Key | Action |
|---|---|
| ↑↓ / j k | move |
| t | collapse bucket |
| enter | open PR in browser |
| / | search |
| c | check out PR |
| w | open PR worktree |
| r | refresh |
| q | quit |
/ opens a prompt; enter searches GitHub, esc clears the search and goes back to the
PRs from before it without refetching them (r refreshes them).
fix token words in the title
@login PRs by that author (several @logins: any of them)
#123 that PR, looked up directly
Both keys work from a clone of the repo on screen, and hand the PR to gh pr checkout,
so forks and remotes behave as they do there.
c checks the PR out in the current clone.w opens the worktree that already has the PR's branch, or creates one at
~/worktrees/<repo>/<branch> (slashes in the branch become dashes). Inside tmux it opens a
new window there; otherwise it shows the path.The app stays on screen while gh works, so git can't prompt: a checkout that needs an ssh
passphrase, a new host key or a password fails with that error instead. Load the key into
ssh-agent or set up a credential helper, or run tungsten --show-git-prompt to answer the
prompts (the app is hidden while they run).
12 commits
TypeScript
100.0%