AI-assisted CLI release manager powered by ai-layer
Project description
Rel-Ease
Rel-Ease (release-cli on PyPI) is a terminal release manager that pairs a Click CLI with an AI agent. The LLM reads your diff, proposes SemVer bumps, updates release_notes.md, stages commits, and for Python packages runs uv build and twine upload — all through explicit tools you control.
Requirements
- Python 3.11+
- Python projects:
uv,twine(and PyPI credentials viaTWINE_USERNAME/TWINE_PASSWORDor standardtwineconfig) - Node/TypeScript:
npm(fornpm install --package-lock-onlyafter version bumps) - Rust: manual
cargo publishafter the assistant bumpsCargo.tomland commits (by design)
Install
cd rel-ease
uv sync
uv pip install -e .
# or: uv tool install .
Quick start
# Sanity-check environment and repo detection
rel-ease doctor .
# Show how the project is classified (no network)
rel-ease detect .
# Run the release assistant (creates/updates agent named `rel-ease`)
rel-ease release .
# Read-only rehearsal
rel-ease release . --dry-run
# Extra guidance for the model
rel-ease release . --hint "User asked for a minor bump for the new API."
Optional: set REL_EASE_ASSISTANT_ID to pin a specific agent UUID after the first run.
Repo detection (deterministic)
Order of precedence from the repository root:
- Rust —
Cargo.tomlwith a[package]version - Python —
pyproject.tomlwith[project].version - Node/TS —
package.jsonwithversion
If the kind is Python, uv_build and twine_upload run for real. For Node or Rust, those tools return a skipped result so the model does not pretend PyPI ran.
Tools exposed to the assistant
| Tool | Role |
|---|---|
get_repo_context |
Refresh kind, version file, current version |
increment_version |
Bump patch / minor / major or set explicit_version |
git_diff |
git diff with optional --stat and path filters |
git_status_files |
Porcelain status per path |
git_add |
Stage explicit paths |
git_commit |
Commit with your message |
uv_build |
Clean dist/ and uv build (Python only) |
release_notes_update |
Create/update release_notes.md (replace or append) |
twine_upload |
Upload artifacts from dist/ (Python only) |
The language model interprets diffs and drives the sequence; every mutation goes through these tools on your machine.
Environment
| Variable | Purpose |
|---|---|
REL_EASE_ASSISTANT_ID |
Optional UUID override |
TWINE_USERNAME / TWINE_PASSWORD |
PyPI upload (if not using another twine config) |
What Rel-Ease does not do
- No automatic
git push, tags, or GitHub releases (keep usingghor CI). - No
cargo publishwrapper yet — the assistant will remind you after a Rust bump.
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rel_ease_agent-0.7.4.tar.gz.
File metadata
- Download URL: rel_ease_agent-0.7.4.tar.gz
- Upload date:
- Size: 16.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
43518eec12b3552e095dd20236e73cc9f0abab5fc1282cae67de01d8214ce5c6
|
|
| MD5 |
6bf0630dd7160ac10ee1d6f91a4143d4
|
|
| BLAKE2b-256 |
52ea8753481c03aeef3e5edeb290e3e69e255c25328ab131fd1b4d18630077b5
|
File details
Details for the file rel_ease_agent-0.7.4-py3-none-any.whl.
File metadata
- Download URL: rel_ease_agent-0.7.4-py3-none-any.whl
- Upload date:
- Size: 21.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7a7911144061f5fe043d93aa5a296704792995b9dc2560d4462b210f94762428
|
|
| MD5 |
a68f7b751f9d4849622e687afe551d94
|
|
| BLAKE2b-256 |
9b38d00d03d3ab01f180af8bc0d7ea2a1439dcbb7c963b96f478887cc2618e7b
|