review-codecommit
v0.1.3
Published
A TUI tool for reviewing AWS CodeCommit pull requests in the terminal
Maintainers
Readme
review-codecommit
A TUI tool for reviewing AWS CodeCommit pull requests in your terminal.
Overview
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).
Features
- 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
Prerequisites
- 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
Installation
bun install -g review-codecommitOr run directly:
npx review-codecommitUsage
# 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|fishShell Completion
Generate 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)
Keybindings
| 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 |
Screen Flow
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 3Development
# 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 buildTech Stack
| Category | Choice | |----------|--------| | Runtime | Bun | | Language | TypeScript | | TUI Framework | Ink (React for CLI) | | AWS SDK | @aws-sdk/client-codecommit v3 | | Test Framework | Vitest | | Linter | oxlint |
Roadmap
| Version | Feature | Status | |---------|---------|--------| | v0.1.0 | First stable release with complete review workflow | ✅ Released (2026-02-15) |
See docs/roadmap.md for details.
Release Process
This project uses automated npm publishing via GitHub Actions with Trusted Publishers (OIDC).
Release Steps
- 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 origin 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
Verifying Published Package
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 [email protected] --version