Skip to main content

LLM-assisted release note generator and publisher

Project description

Rylees CLI

An LLM-assisted release-note generator and publisher. rylees reads the diff between two points in your Git history, asks an LLM to draft a release note in your project's configured tone, lets you review or edit it, and publishes it to the Rylees backend.

Requirements

  • Python 3.12 or newer
  • A Git repository to generate notes from
  • A Rylees API token and project token (from the developer console)
  • An OpenAI API key

Installation

The CLI is a standard PEP 517 package. Install it from the src/cli directory.

Using a virtual environment (recommended)

cd src/cli
python3.12 -m venv .venv
source .venv/bin/activate
pip install .

For development, install in editable mode with the dev dependencies:

pip install -e ".[dev]"

Using uv

cd src/cli
uv venv
uv pip install -e ".[dev]"

Once installed, the rylees command is available on your PATH (inside the activated environment):

rylees --version

Configuration

rylees reads configuration from a .env file in your current working directory (it searches upward from the cwd, not from the CLI's install location). Copy the bundled example and fill in your values:

cp .env.example .env
Variable Required Description
RYLEES_API_TOKEN yes Authenticates you against the Rylees API.
RYLEES_PROJECT_TOKEN yes Identifies the project to publish notes to.
OPENAI_API_KEY yes Used by the LLM to draft the release note.
RYLEES_API_URL no Override the base API URL. Default: https://api.rylees.ai/v1.
RYLEES_LLM_TEMPERATURE no Override the temperature configured on the project.
RYLEES_LLM_MODEL no Override the model. Default: GPT-5.4.

If a required variable is missing, the CLI exits with an error naming the variable.

Usage

Run rylees from the root of the Git repository you want to generate notes for.

rylees generate --start <ref> [options]

Options

Option Alias Default Description
--start -s (required) Start tag or commit hash.
--end -e HEAD End tag or commit hash.
--type -t tag Reference type: tag or commit.
--major Bump the major version.
--minor (default) Bump the minor version.
--patch Bump the patch version.
--publish -p off Skip the review step and publish immediately.

Only one of --major, --minor, --patch may be set. If none is given, --minor is assumed.

Examples

Generate a note for the changes between two tags and review it interactively:

rylees generate --start v1.2.0 --end v1.3.0 --minor

Generate from a range of commits instead of tags:

rylees generate --type commit --start a1b2c3d --end HEAD

Generate and publish a major release without manual review (use with care — this skips human review and prints a warning to stderr):

rylees generate --start v1.0.0 --major --publish

Interactive review (HITL)

Without --publish, the CLI prints the generated draft and prompts for an action:

[A] Accept and publish   [R] Regenerate     [E] Edit
  • A — publish the current draft to the Rylees backend.
  • R — regenerate a fresh draft from the same diff.
  • E — open the draft in your editor ($EDITOR, default nano), then return to the prompt with your edits.

On a successful publish, the CLI prints the resulting status and version.

How it works

  1. Loads and validates configuration from .env.
  2. Fetches the project's configuration (tone, temperature) from the Rylees API.
  3. Opens the local Git repository and computes the diff between --start and --end.
  4. Strips noise (binary and lock-file diffs) and truncates the diff to fit the LLM context window.
  5. Generates a release-note draft in the project's configured tonality.
  6. Lets you review, regenerate, or edit the draft — then publishes it.

Development

Run the test suite from src/cli:

pip install -e ".[dev]"
pytest

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rylees-0.1.4.tar.gz (95.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rylees-0.1.4-py3-none-any.whl (16.7 kB view details)

Uploaded Python 3

File details

Details for the file rylees-0.1.4.tar.gz.

File metadata

  • Download URL: rylees-0.1.4.tar.gz
  • Upload date:
  • Size: 95.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for rylees-0.1.4.tar.gz
Algorithm Hash digest
SHA256 37e87ecfb0cb78e73f0fe50adb567b7fc511c36e30162db23cc92ab0c69b00f7
MD5 9c00b34f05e067377fa43599e2e2fb9d
BLAKE2b-256 b772a906647bb799c9b2dae4829673fda6a4c3cafe21b191a3d3a3f9fdbea9a2

See more details on using hashes here.

File details

Details for the file rylees-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: rylees-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 16.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for rylees-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 153f160c02174bb5a166db0b9de6801c0d0c382a4923b9e8786346428408cc24
MD5 15f340b2a0c16a170c1e0afafda05694
BLAKE2b-256 c3ad8662908c9ce8a0035fd0ee52a191c00d9658ff1e145aeb64c1fb9a95bd3c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page