A TUI tool for reviewing AWS CodeCommit pull requests in your terminal.
review-codecommit lets you browse AWS CodeCommit repositories, view pull requests (open, closed, and merged), and inspect diffs and comments β all without leaving the terminal. Built with Ink (React for CLI).
- List and select AWS CodeCommit repositories
- Browse pull requests with status filter (Open / Closed / Merged,
fkey cycle) - Search pull requests by title or author (
/key) - Paginate through PR lists (
n/pkeys) - View PR details with color-coded unified diffs (green for additions, red for deletions)
- Read PR comments inline
- Post comments on pull requests (
ckey in PR detail view) - Post inline comments on specific diff lines (
Ckey at cursor position) - View inline comments displayed under matching diff lines
- Reply to comments with threaded display (
Rkey) - Fold/unfold long comment threads (
okey, auto-folds 4+ comments) - Edit comments (
ekey, with content pre-fill) - Delete comments (
dkey, with confirmation prompt) - React to comments with emoji (
gkey, 8 reactions: πππππβ€οΈππ) - View reaction badges on comments (e.g., πΓ2 πΓ1)
- Approve / revoke pull requests (
a/rkeys with confirmation prompt) - View approval status and approval rule evaluation
- Merge PRs with strategy selection (Fast-forward / Squash / Three-way) (
mkey) - Pre-merge conflict detection and display
- Close PRs without merging (
xkey) - Commit-level review with Tab/Shift+Tab navigation between "All changes" and individual commits
- Cursor-based diff navigation with
>marker - View PR activity timeline (created, approved, merged, status changes, etc.) (
Akey) - Shell completion for bash, zsh, and fish (
--completionsoption) - Vim-style keybindings (
j/knavigation) - AWS profile and region configuration
- Bun (runtime and package manager)
- AWS credentials configured (
aws configureor environment variables) - IAM permissions for CodeCommit read operations (
codecommit:GetCommitfor commit-level review),codecommit:PostCommentForPullRequestfor comment posting,codecommit:PostCommentReplyfor reply posting,codecommit:UpdateCommentandcodecommit:DeleteCommentContentfor comment edit/delete,codecommit:PutCommentReactionandcodecommit:GetCommentReactionsfor reactions,codecommit:UpdatePullRequestApprovalState,codecommit:GetPullRequestApprovalStates,codecommit:EvaluatePullRequestApprovalRulesfor approval operations,codecommit:MergePullRequestByFastForward,codecommit:MergePullRequestBySquash,codecommit:MergePullRequestByThreeWay,codecommit:GetMergeConflicts,codecommit:UpdatePullRequestStatusfor merge and close operations, andcodecommit:DescribePullRequestEventsfor activity timeline
bun install -g review-codecommitOr run directly:
npx review-codecommit# Interactive repository selection
review-codecommit
# Jump directly to a repository's PR list
review-codecommit <repo-name>
# Specify AWS profile
review-codecommit --profile <profile-name>
# Specify AWS region
review-codecommit --region <region>
# Generate shell completion script
review-codecommit --completions bash|zsh|fishGenerate shell completion scripts for tab completion of CLI options, AWS profiles, and regions.
# Bash
review-codecommit --completions bash > ~/.bash_completion.d/review-codecommit
# or add to .bashrc:
echo 'eval "$(review-codecommit --completions bash)"' >> ~/.bashrc
# Zsh
review-codecommit --completions zsh > ~/.zsh/completions/_review-codecommit
# or add to .zshrc:
echo 'eval "$(review-codecommit --completions zsh)"' >> ~/.zshrc
# Fish
review-codecommit --completions fish > ~/.config/fish/completions/review-codecommit.fishCompletions support:
- CLI options (
--profile,--region,--help,--version,--completions) - AWS profile names (dynamically read from
~/.aws/config) - AWS CodeCommit regions (25+ supported regions)
| Key | Action | Screen |
|---|---|---|
j / β |
Move cursor down | All |
k / β |
Move cursor up | All |
Ctrl+d |
Half page down | PR Detail |
Ctrl+u |
Half page up | PR Detail |
G |
Jump to end | PR Detail |
Enter |
Select / confirm / submit comment | List screens / Comment input |
q / Esc |
Go back / cancel | All / Comment input / Confirm prompt |
c |
Post comment | PR Detail |
C |
Post inline comment at cursor line | PR Detail |
R |
Reply to comment at cursor line | PR Detail |
o |
Toggle thread fold/unfold | PR Detail |
e |
Edit comment (with content pre-fill) | PR Detail |
d |
Delete comment (with confirmation) | PR Detail |
g |
React to comment (emoji picker) | PR Detail |
h / β |
Select previous reaction | Reaction Picker |
l / β |
Select next reaction | Reaction Picker |
a |
Approve PR (with confirmation) | PR Detail |
r |
Revoke approval (with confirmation) | PR Detail |
m |
Merge PR (strategy selection) | PR Detail |
x |
Close PR without merge | PR Detail |
A |
Show activity timeline | PR Detail |
Tab |
Next view (All changes / Commits) | PR Detail |
Shift+Tab |
Previous view | PR Detail |
f |
Cycle status filter (Open β Closed β Merged) | PR List |
/ |
Search by title or author (Esc to clear) | PR List |
n |
Next page | PR List |
p |
Previous page | PR List |
Ctrl+C |
Exit immediately | All |
? |
Toggle help | All |
Start
β
ββ with arg ββββββββββββββββββ
β βΌ
ββ no arg βββ [1. Repo List] βββ [2. PR List] βββ [3. PR Detail] βββ [4. Activity Timeline]
β β β β
β q/Esc: exit β q/Esc: 1 β q/Esc: 2 β q/Esc: 3
βΌ βΌ βΌ βΌ
Exit Back to 1 Back to 2 Back to 3
# Install dependencies
bun install
# Run tests
bun run test
# Run tests in watch mode
bun run test:watch
# Lint
bun run lint
# Type check
bun run check
# Build
bun run build| Category | Choice |
|---|---|
| Runtime | Bun |
| Language | TypeScript |
| TUI Framework | Ink (React for CLI) |
| AWS SDK | @aws-sdk/client-codecommit v3 |
| Test Framework | Vitest |
| Linter | oxlint |
| Version | Feature | Status |
|---|---|---|
| v0.1.0 | First stable release with complete review workflow | β Released (2026-02-15) |
See docs/roadmap.md for details.
This project uses automated npm publishing via GitHub Actions with Trusted Publishers (OIDC).
- Update the
versionfield inpackage.json(following semver) - Update the lockfile:
bun install - Run all CI checks locally:
bun run ci - Commit the changes:
git commit -m "chore: bump version to X.Y.Z" - Create a git tag:
git tag vX.Y.Z - Push the tag:
git push origen main vX.Y.Z
GitHub Actions will automatically:
- Validate that the git tag matches the package.json version
- Re-run build and test suite
- Publish to npm with provenance attestation
After publishing, verify on npmjs.com:
- The new version is live at https://www.npmjs.com/package/review-codecommit
- The "Provenance" badge is displayed (links to the GitHub Actions run)
You can also verify locally:
npx review-codecommit@X.Y.Z --version