# Propr [![crates.io](https://img.shields.io/crates/v/propr.svg)](https://crates.io/crates/propr) [![npm](https://img.shields.io/npm/v/@segersniels/propr)](https://www.npmjs.com/package/@segersniels/propr) ![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/segersniels/propr-cli/ci.yml) Generate GitHub PR descriptions from the command line with the help of AI. `propr` aims to populate a basic PR description right from your terminal so you can focus on more important things.

## Install ```bash sh -c "$(curl -fsSL https://raw.githubusercontent.com/segersniels/propr-cli/master/scripts/install.sh)" ``` ### Cargo ```bash cargo install propr ``` ### NPM ```bash npm install -g @segersniels/propr ``` ### Binary Grab a binary from the [releases](https://github.com/segersniels/propr-cli/releases) page and move it into your desired bin (eg. /usr/local/bin) location. ```bash mv propr- /usr/local/bin/propr chmod +x /usr/local/bin/propr ``` ## Usage ``` Generate your PRs from the command line with AI Usage: propr Commands: init Initializes propr with a base configuration create Creates a PR with a generated description generate Generates a PR description and outputs it config Configure propr to your liking help Print this message or the help of the given subcommand(s) Options: -h, --help Print help -V, --version Print version ``` ### Creating a PR Creating a PR from the CLI is as easy as running `propr create`. If you want to specify which base branch to target you can provide the `--branch` flag. By default `propr` assumes that the main branch of the repository needs to be targeted. ``` Creates a PR with a generated description Usage: propr create [OPTIONS] Options: -b, --branch The base branch to point your changes to -m, --model Instructs propr to use a specific model [possible values: gpt-3.5-turbo, gpt-3.5-turbo-16k, gpt-4, gpt-4-32k] -h, --help Print help ``` You can regenerate a PR description at any time, even after the PR has already been created using `propr generate`. #### Automatically generating a title There is the option to allow `propr` to automatically generate a PR title based on the generated description. To enable this refer to `propr config generate-title`. #### Using an assistant You can configure `propr` to use a custom assistant using `propr config assistant`. This may be interesting if you want to share prompts and templates between devices and/or want to control everything externally.