Skip to main content
Deno 2 is finally here 🎉️
Learn more

PR-CLI

Pull Request - Command Line Interface

✨ Functionality

Picking commits (pr-cli pick)

Quickly cherry-pick one or more commits from your current branch onto a new one and create a pull request for these commits.

Very useful when doing a quick bugfix/cleanup/change unrelated to your branch. Or when creating frequent, small commits.

  • No need to leave your current branch!
  • Uncommitted changes are not a problem, no need to stash

pr-cli achieves this by creating a new worktree in a temporary directory, so that your main worktree is completely unaffected

  • Interactive settings / confirmation screen

It also has all the PR title/body features of pr-cli pr

Usage

  1. Run pr-cli pick (or pr-cli p) in a git repository
  2. Choose the commits you want to pick (If there is more than one)
  3. Choose how to set the pull request title (will also be used as branch name)
  4. Confirm/Change settings
  5. Press Enter to create Pull Request

Creating a pull request (pr-cli pr)

Create a GitHub pull request based on your current branch, like gh pr create but better.

  • Quick options for setting the PR title
    • Use one of the commit’s titles
    • Use the branch name
    • Type a custom one
  • Automatically generate PR body based on all commits

Demo

pr-cli pick demo

📥 Installation

Installing from a local checkout
Installing from a local checkout of this repository requires specifying `--config=deno.json` during installation. (see https://github.com/denoland/deno/issues/26212)


  ```shell
  deno install --global --name pr-cli --allow-run --allow-read --allow-env --config=deno.json ./main.ts
  ```

⬆️ Upgrading

To upgrade your installation to the latest version:

deno install --reload --force --global --name pr-cli --allow-run --allow-read --allow-env https://deno.land/x/prcli/main.ts

🔲 Completions

Enable auto-completion of pr-cli commands by running the command for your shell:

Bash

echo 'source <(pr-cli completions bash)' >> ~/.bashrc

ZSH

echo 'source <(pr-cli completions zsh)' >> ~/.zshrc

Fish

echo 'source (pr-cli completions fish | psub)' >> ~/.config/fish/config.fish: