A CLI tool to facilitate the developer workflow
Project description
Glu CLI
Glu CLI is a command‑line interface for Glu that streamlines common development workflows by integrating GitHub pull requests, Jira tickets, and AI‑powered content generation.
Installation
Glu CLI is distributed via PyPI. You can install it with:
pipx install glu-cli
Alternatively, to install from source:
git clone https://github.com/BrightNight-Energy/glu.git
cd glu
pip install -e .
After installation, the glu command will be available:
glu --help
Commands
Glu CLI provides four main command groups: init, pr, ticket, and commit. They are registered as
subcommands of the main CLI:
glu init --help
glu pr --help
glu ticket --help
glu commit --help
glu pr
pr create
The only command you need. When you're ready to push and raise a PR, use this. It will:
- Create your commit message based on commit diff (if uncommitted changes)
- Create a ticket in Jira based on PR description (or use the provided ticket #)
- Push a PR based on the git diff and tag your reviewers
- If PR is not a draft, will move your ticket to Ready for review!
...all fully customizable and within your control.
glu pr create [OPTIONS]
Options:
--ticket, -t TEXTJira ticket number--project, -p TEXTJira project (defaults to default project)--draft, -dMark as draft PR--ready-for-review/--no-ready-for-reviewTransition ticket to Ready for review--reviewer, -r TEXTRequested reviewers (repeatable)--provider, -pr TEXTAI model provider--model, -m TEXTLLM model--reviewMove ticket to ready for review (defaults to False)
pr merge
Merge a PR with an AI generated commit message (or handcrafted, your choice) and your Jira ticket number.
Arguments:
pr_numPR number
Options:
--ticket, -t TEXTJira ticket number--project, -p TEXTJira project (defaults to default project)--provider, -pr TEXTAI model provider--model, -m TEXTLLM model--mark-doneMove Jira ticket to done (defaults to False)
[!WARNING] Currently only squash-merges are supported
pr list
List pull requests with optional filters:
glu pr list [OPTIONS]
Options:
--repo, -r TEXTRepo name (defaults to current directory git repository)--only-mine, -mFilter PRs to those assigned to me--no-draft, -dFilter PRs to exclude draft
pr open
Open a PR in the web browser:
glu pr open PR_NUM [OPTIONS]
Options:
--repo, -r TEXTRepo name (defaults to current directory git repository)
pr view
View details of a PR:
glu pr view PR_NUM [OPTIONS]
Options:
--repo, -r TEXTRepo name (defaults to current directory git repository)--checks, --show-checks, -cShow CI checks (not enabled by default for performance reasons)
pr update
Update a PR with an updated description and metadata:
glu pr update PR_NUM [OPTIONS]
Options:
--ticket, -t TEXTJira ticket number--project, -p TEXTJira project (defaults to default Jira project)--draft, -dMark as draft PR--reviewer, -r TEXTRequested reviewers (accepts multiple values)--provider, -pr TEXTAI model provider--model, -m TEXTLLM model--reviewMove ticket to ready for review (defaults to False)
glu ticket
ticket create
Create a Jira ticket, optionally using AI to generate summary and description:
glu ticket create [OPTIONS]
Options:
--summary, --title, -s TEXTIssue summary or title--type, -t TEXTIssue type--body, -b TEXTIssue description--assignee, -a TEXTAssignee--reporter, -r TEXTReporter--priority, -y TEXTPriority--project, -p TEXTJira project--ai-prompt, -ai TEXTAI prompt to generate summary and description--provider, -pr TEXTAI model provider--model, -m TEXTLLM model
The command also accepts additional JIRA fields via --<field> <value>.
ticket list
List Jira tickets with optional filters:
glu ticket list [OPTIONS]
Options:
--project, -p TEXTJira project--only-mine, -mOnly show my tickets--status, -s TEXTFilter tickets by status (multiple values accepted)--priority-orderedOrder by priority (defaults to created date)--show-closed, -cShow closed tickets--priority, -y TEXTFilter tickets by priority (multiple values accepted)--type, -t TEXTFilter tickets by issue type (multiple values accepted)--in-progress, -iShow in progress tickets only
ticket open
Open a Jira ticket in the web browser:
glu ticket open TICKET_NUM [OPTIONS]
Options:
--project, -p TEXTJira project
ticket view
View details of a Jira ticket:
glu ticket view TICKET_NUM [OPTIONS]
Options:
--project, -p TEXTJira project
glu commit
commit list
Display a table of commits, similar to git log but more compact:
glu commit list [OPTIONS]
Options:
--limit, -l NUMBERNumber of commits (defaults to number of commits since main)
commit count
Print the number of commits since checkout to the branch:
glu commit count [OPTIONS]
Options:
--branch, -b TEXTBranch to count from (defaults to default branch)
Configuration (init)
Initialize your Glu configuration interactively (strongly recommended):
glu init
Currently, glu supports the AI providers listed below. The default model for each provider can be customized via config or specified on each command.
| Provider | Default model |
|---|---|
| OpenAI | o4-mini |
| Gemini | gemini-2.0-flash |
| xAI | grok-3-mini-fast |
| Anthropic | claude-sonnet-4-0 |
| Ollama | llama3.2 |
Options:
-
Jira Config
--jira-api-token TEXTJira API token (required)--jira-email, --email TEXTJira email (required)--jira-server TEXTJira server URL (default: https://jira.atlassian.com)--jira-in-progress TEXTJira “in progress” transition name (default: Starting)--jira-ready-for-review TEXTJira “ready for review” transition name (default: Ready for review)--jira-done TEXTJira “done” transition name (default: Finished)--default-jira-project TEXTDefault Jira project key
-
GitHub Config
--github-pat TEXTGitHub Personal Access Token (required)
Preferences
--preferred-provider TEXTPreferred AI provider (optional)--auto-accept-generated-commitsAuto accept generated commit messages--generated-with-glu-tag/--no-generated-with-glu-tag
Add a tag to generated PRs and tickets to spread the word about glu! (default: True)--add-pr-number-on-merge/--no-add-pr-number-on-merge
Add the PR number to merge commits (default: True)
Contributing
Contributions to Glu CLI are welcome! Please follow these guidelines:
- Fork the repository and create your branch:
git checkout -b feature/your-feature
- Make your changes, ensuring that new code includes tests where appropriate.
- Install precommit hooks:
pre-commit install --install-hooks pre-commit install --hook-type commit-msg
- Commit your changes following Conventional Commits.
- Push to your fork and open a Pull Request.
Acknowledgements
Glu CLI is inspired by Jira CLI and GitHub CLI.
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 glu_cli-2.7.5.tar.gz.
File metadata
- Download URL: glu_cli-2.7.5.tar.gz
- Upload date:
- Size: 1.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5cb9d0b0842e45e6320688a53ba12e7790d1725b86816580976408feb370b809
|
|
| MD5 |
047a4ccb6a6e87d196a2d68ce3562fea
|
|
| BLAKE2b-256 |
e54e9f75f794b0ee651a940efcff555f2a22f6dd03bba6b6ca46c2f49d1f4ac8
|
File details
Details for the file glu_cli-2.7.5-py3-none-any.whl.
File metadata
- Download URL: glu_cli-2.7.5-py3-none-any.whl
- Upload date:
- Size: 45.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a2d6793b1616301bff4a06ff7ff75bda7cae8d2d6ab273cf826073fefd99d8f9
|
|
| MD5 |
99f6b97e8f9f3b1fcac7e831c61b65b7
|
|
| BLAKE2b-256 |
7a4c50744ef94620c39ad81b2c34757ce181d12d1c05012c27a619354778dbda
|