OscBacon/tungsten

PR lister / reviewer for the terminal

TypeScript

0

12 commits

updated Sep 19, 2026

See the code

See what people are saying (1)

SourceMessageScoreDate

Show HN: A terminal inbox for a GitHub repo's PRs

1

Sep 19, 2026

README

tungsten

A terminal inbox for a GitHub repo's pull requests.

image

Lists a repo's PRs by bucket, and allow you to open the PR in your browser

tungsten-demo

Requirements

Install

npm 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

Usage

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

Buckets

  • Needs your review
  • Returned to you
  • Approved
  • Waiting for reviewers
  • Drafts
  • Open
  • Recently merged

Each shows up to 25 PRs and the total count.

Keys

KeyAction
↑↓ / j kmove
tcollapse bucket
enteropen PR in browser
/search
ccheck out PR
wopen PR worktree
rrefresh
qquit

/ 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

Checking out

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).

Contributors

OscBacon

12 commits

OscBacon/tungsten

PR lister / reviewer for the terminal

TypeScript

0

12 commits

updated Sep 19, 2026

See the code

See what people are saying (1)

SourceMessageScoreDate

Show HN: A terminal inbox for a GitHub repo's PRs

1

Sep 19, 2026

README

tungsten

A terminal inbox for a GitHub repo's pull requests.

image

Lists a repo's PRs by bucket, and allow you to open the PR in your browser

tungsten-demo

Requirements

Install

npm 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

Usage

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

Buckets

  • Needs your review
  • Returned to you
  • Approved
  • Waiting for reviewers
  • Drafts
  • Open
  • Recently merged

Each shows up to 25 PRs and the total count.

Keys

KeyAction
↑↓ / j kmove
tcollapse bucket
enteropen PR in browser
/search
ccheck out PR
wopen PR worktree
rrefresh
qquit

/ 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

Checking out

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).

Contributors

OscBacon

12 commits

Languages

TypeScript

100.0%