Name | glu-cli JSON |
Version |
2.6.0
JSON |
| download |
home_page | None |
Summary | A CLI tool to facilitate the developer workflow |
upload_time | 2025-07-27 20:15:36 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.10 |
license | None |
keywords |
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# 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:
```bash
pipx install glu-cli
```
Alternatively, to install from source:
```bash
git clone https://github.com/BrightNight-Energy/glu.git
cd glu
pip install -e .
```
After installation, the `glu` command will be available:
```bash
glu --help
```
## Commands
Glu CLI provides four main command groups: `init`, `pr`, `ticket`, and `commit`. They are registered as
subcommands of the main CLI:
```bash
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:
1. Create your commit message based on commit diff (if uncommitted changes)
2. Create a ticket in Jira based on PR description (or use the provided ticket #)
3. Push a PR based on the git diff and tag your reviewers
4. If PR is not a draft, will move your ticket to Ready for review!
...all fully customizable and within your control.
<img align="center" alt="glu ticket creation demo" src=".github/assets/pr-creation-demo.gif" /><br/><br/>
```bash
glu pr create [OPTIONS]
```
Options:
- `--ticket, -t TEXT` Jira ticket number
- `--project, -p TEXT` Jira project (defaults to default project)
- `--draft, -d` Mark as draft PR
- `--ready-for-review/--no-ready-for-review` Transition ticket to Ready for review
- `--reviewer, -r TEXT` Requested reviewers (repeatable)
- `--provider, -pr TEXT` AI model provider
- `--model, -m TEXT` LLM model
- `--review` Move 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_num` PR number
Options:
- `--ticket, -t TEXT` Jira ticket number
- `--project, -p TEXT` Jira project (defaults to default project)
- `--provider, -pr TEXT` AI model provider
- `--model, -m TEXT` LLM model
- `--mark-done` Move Jira ticket to done (defaults to False)
> [!WARNING]
> Currently only squash-merges are supported
#### `pr list`
List pull requests with optional filters:
```bash
glu pr list [OPTIONS]
```
Options:
- `--repo, -r TEXT` Repo name (defaults to current directory git repository)
- `--only-mine, -m` Filter PRs to those assigned to me
- `--no-draft, -d` Filter PRs to exclude draft
#### `pr open`
Open a PR in the web browser:
```bash
glu pr open PR_NUM [OPTIONS]
```
Options:
- `--repo, -r TEXT` Repo name (defaults to current directory git repository)
#### `pr view`
View details of a PR:
```bash
glu pr view PR_NUM [OPTIONS]
```
Options:
- `--repo, -r TEXT` Repo name (defaults to current directory git repository)
- `--checks, --show-checks, -c`
Show CI checks (not enabled by default for performance reasons)
#### `pr update`
Update a PR with an updated description and metadata:
```bash
glu pr update PR_NUM [OPTIONS]
```
Options:
- `--ticket, -t TEXT` Jira ticket number
- `--project, -p TEXT` Jira project (defaults to default Jira project)
- `--draft, -d` Mark as draft PR
- `--reviewer, -r TEXT` Requested reviewers (accepts multiple values)
- `--provider, -pr TEXT` AI model provider
- `--model, -m TEXT` LLM model
- `--review` Move ticket to ready for review (defaults to False)
### `glu ticket`
#### `ticket create`
Create a Jira ticket, optionally using AI to generate summary and description:
<img align="center" alt="glu ticket creation demo" src=".github/assets/ticket-creation-demo.gif" /><br/><br/>
```bash
glu ticket create [OPTIONS]
```
Options:
- `--summary, --title, -s TEXT` Issue summary or title
- `--type, -t TEXT` Issue type
- `--body, -b TEXT` Issue description
- `--assignee, -a TEXT` Assignee
- `--reporter, -r TEXT` Reporter
- `--priority, -y TEXT` Priority
- `--project, -p TEXT` Jira project
- `--ai-prompt, -ai TEXT` AI prompt to generate summary and description
- `--provider, -pr TEXT` AI model provider
- `--model, -m TEXT` LLM model
The command also accepts additional JIRA fields via `--<field> <value>`.
#### `ticket list`
List Jira tickets with optional filters:
```bash
glu ticket list [OPTIONS]
```
Options:
- `--project, -p TEXT` Jira project
- `--only-mine, -m` Only show my tickets
- `--status, -s TEXT` Filter tickets by status (multiple values accepted)
- `--priority-ordered` Order by priority (defaults to created date)
- `--show-closed, -c` Show closed tickets
- `--priority, -y TEXT` Filter tickets by priority (multiple values accepted)
- `--type, -t TEXT` Filter tickets by issue type (multiple values accepted)
- `--in-progress, -i` Show in progress tickets only
#### `ticket open`
Open a Jira ticket in the web browser:
```bash
glu ticket open TICKET_NUM [OPTIONS]
```
Options:
- `--project, -p TEXT` Jira project
#### `ticket view`
View details of a Jira ticket:
```bash
glu ticket view TICKET_NUM [OPTIONS]
```
Options:
- `--project, -p TEXT` Jira project
### `glu commit`
#### `commit list`
Display a table of commits, similar to `git log` but more compact:
<img align="center" alt="glu commit list" src=".github/assets/commit-list.png" /><br/><br/>
```bash
glu commit list [OPTIONS]
```
Options:
- `--limit, -l NUMBER` Number of commits (defaults to number of commits since main)
#### `commit count`
Print the number of commits since checkout to the branch:
```bash
glu commit count [OPTIONS]
```
Options:
- `--branch, -b TEXT` Branch to count from (defaults to default branch)
### Configuration (`init`)
Initialize your Glu configuration interactively (strongly recommended):
```bash
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 TEXT` Jira API token (required)
- `--jira-email, --email TEXT` Jira email (required)
- `--jira-server TEXT` Jira server URL (default: https://jira.atlassian.com)
- `--jira-in-progress TEXT` Jira “in progress” transition name (default: Starting)
- `--jira-ready-for-review TEXT` Jira “ready for review” transition name (default: Ready for review)
- `--jira-done TEXT` Jira “done” transition name (default: Finished)
- `--default-jira-project TEXT` Default Jira project key
- **GitHub Config**
- `--github-pat TEXT` GitHub Personal Access Token (required)
**Preferences**
- `--preferred-provider TEXT` Preferred AI provider (optional)
- `--auto-accept-generated-commits` Auto 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:
1. Fork the repository and create your branch:
```bash
git checkout -b feature/your-feature
```
2. Make your changes, ensuring that new code includes tests where appropriate.
3. Install precommit hooks:
```bash
pre-commit install --install-hooks
pre-commit install --hook-type commit-msg
```
4. Commit your changes following Conventional Commits.
5. Push to your fork and open a Pull Request.
## Acknowledgements
Glu CLI is inspired by [Jira CLI](https://github.com/ankitpokhrel/jira-cli) and
[GitHub CLI](https://github.com/cli/cli).
Raw data
{
"_id": null,
"home_page": null,
"name": "glu-cli",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": null,
"author": null,
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/e2/a5/da3384e9012f21e80bde1d04b6e19ec5e9c7d5156ae4d9c3e0fa555f9a68/glu_cli-2.6.0.tar.gz",
"platform": null,
"description": "# Glu CLI\n\n\n\n\nGlu CLI is a command\u2011line interface for Glu that streamlines common development workflows by integrating \nGitHub pull requests, Jira tickets, and AI\u2011powered content generation.\n\n## Installation\n\nGlu CLI is distributed via PyPI. You can install it with:\n\n```bash\npipx install glu-cli\n```\n\nAlternatively, to install from source:\n\n```bash\ngit clone https://github.com/BrightNight-Energy/glu.git\ncd glu\npip install -e .\n```\nAfter installation, the `glu` command will be available:\n\n```bash\nglu --help\n```\n\n## Commands\n\nGlu CLI provides four main command groups: `init`, `pr`, `ticket`, and `commit`. They are registered as \nsubcommands of the main CLI:\n\n```bash\nglu init --help\nglu pr --help\nglu ticket --help\nglu commit --help\n```\n\n### `glu pr`\n\n#### `pr create`\n\nThe only command you need. When you're ready to push and raise a PR, use this. It will:\n\n1. Create your commit message based on commit diff (if uncommitted changes)\n2. Create a ticket in Jira based on PR description (or use the provided ticket #)\n3. Push a PR based on the git diff and tag your reviewers\n4. If PR is not a draft, will move your ticket to Ready for review!\n\n...all fully customizable and within your control.\n\n<img align=\"center\" alt=\"glu ticket creation demo\" src=\".github/assets/pr-creation-demo.gif\" /><br/><br/>\n\n```bash\nglu pr create [OPTIONS]\n```\n\nOptions:\n\n- `--ticket, -t TEXT` Jira ticket number \n- `--project, -p TEXT` Jira project (defaults to default project) \n- `--draft, -d` Mark as draft PR \n- `--ready-for-review/--no-ready-for-review` Transition ticket to Ready for review \n- `--reviewer, -r TEXT` Requested reviewers (repeatable) \n- `--provider, -pr TEXT` AI model provider \n- `--model, -m TEXT` LLM model \n- `--review` Move ticket to ready for review (defaults to False) \n\n#### `pr merge`\n\nMerge a PR with an AI generated commit message (or handcrafted, your choice) and your Jira ticket number.\n\nArguments:\n\n- `pr_num` PR number\n\nOptions:\n\n- `--ticket, -t TEXT` Jira ticket number \n- `--project, -p TEXT` Jira project (defaults to default project) \n- `--provider, -pr TEXT` AI model provider \n- `--model, -m TEXT` LLM model \n- `--mark-done` Move Jira ticket to done (defaults to False) \n\n> [!WARNING]\n> Currently only squash-merges are supported\n\n#### `pr list`\n\nList pull requests with optional filters:\n\n```bash\nglu pr list [OPTIONS]\n```\n\nOptions:\n\n- `--repo, -r TEXT` Repo name (defaults to current directory git repository)\n- `--only-mine, -m` Filter PRs to those assigned to me\n- `--no-draft, -d` Filter PRs to exclude draft\n\n#### `pr open`\n\nOpen a PR in the web browser:\n\n```bash\nglu pr open PR_NUM [OPTIONS]\n```\n\nOptions:\n\n- `--repo, -r TEXT` Repo name (defaults to current directory git repository)\n\n#### `pr view`\n\nView details of a PR:\n\n```bash\nglu pr view PR_NUM [OPTIONS]\n```\n\nOptions:\n\n- `--repo, -r TEXT` Repo name (defaults to current directory git repository)\n- `--checks, --show-checks, -c`\n Show CI checks (not enabled by default for performance reasons)\n\n#### `pr update`\n\nUpdate a PR with an updated description and metadata:\n\n```bash\nglu pr update PR_NUM [OPTIONS]\n```\n\nOptions:\n\n- `--ticket, -t TEXT` Jira ticket number\n- `--project, -p TEXT` Jira project (defaults to default Jira project)\n- `--draft, -d` Mark as draft PR\n- `--reviewer, -r TEXT` Requested reviewers (accepts multiple values)\n- `--provider, -pr TEXT` AI model provider\n- `--model, -m TEXT` LLM model\n- `--review` Move ticket to ready for review (defaults to False)\n\n### `glu ticket`\n\n#### `ticket create`\n\nCreate a Jira ticket, optionally using AI to generate summary and description:\n\n<img align=\"center\" alt=\"glu ticket creation demo\" src=\".github/assets/ticket-creation-demo.gif\" /><br/><br/>\n\n```bash\nglu ticket create [OPTIONS]\n```\n\nOptions:\n\n- `--summary, --title, -s TEXT` Issue summary or title \n- `--type, -t TEXT` Issue type \n- `--body, -b TEXT` Issue description \n- `--assignee, -a TEXT` Assignee \n- `--reporter, -r TEXT` Reporter \n- `--priority, -y TEXT` Priority \n- `--project, -p TEXT` Jira project \n- `--ai-prompt, -ai TEXT` AI prompt to generate summary and description \n- `--provider, -pr TEXT` AI model provider \n- `--model, -m TEXT` LLM model \n\nThe command also accepts additional JIRA fields via `--<field> <value>`.\n\n#### `ticket list`\n\nList Jira tickets with optional filters:\n\n```bash\nglu ticket list [OPTIONS]\n```\n\nOptions:\n\n- `--project, -p TEXT` Jira project\n- `--only-mine, -m` Only show my tickets\n- `--status, -s TEXT` Filter tickets by status (multiple values accepted)\n- `--priority-ordered` Order by priority (defaults to created date)\n- `--show-closed, -c` Show closed tickets\n- `--priority, -y TEXT` Filter tickets by priority (multiple values accepted)\n- `--type, -t TEXT` Filter tickets by issue type (multiple values accepted)\n- `--in-progress, -i` Show in progress tickets only\n\n#### `ticket open`\n\nOpen a Jira ticket in the web browser:\n\n```bash\nglu ticket open TICKET_NUM [OPTIONS]\n```\n\nOptions:\n\n- `--project, -p TEXT` Jira project\n\n#### `ticket view`\n\nView details of a Jira ticket:\n\n```bash\nglu ticket view TICKET_NUM [OPTIONS]\n```\n\nOptions:\n\n- `--project, -p TEXT` Jira project\n\n### `glu commit`\n\n#### `commit list`\n\nDisplay a table of commits, similar to `git log` but more compact:\n\n<img align=\"center\" alt=\"glu commit list\" src=\".github/assets/commit-list.png\" /><br/><br/>\n\n```bash\nglu commit list [OPTIONS]\n```\n\nOptions:\n\n- `--limit, -l NUMBER` Number of commits (defaults to number of commits since main)\n\n\n#### `commit count`\n\nPrint the number of commits since checkout to the branch:\n\n```bash\nglu commit count [OPTIONS]\n```\n\nOptions:\n\n- `--branch, -b TEXT` Branch to count from (defaults to default branch)\n\n### Configuration (`init`)\n\nInitialize your Glu configuration interactively (strongly recommended):\n\n```bash\nglu init\n```\n\nCurrently, glu supports the AI providers listed below. The default model for each provider can be\ncustomized via config or specified on each command.\n\n| Provider | Default model |\n|:----------|:------------------|\n| OpenAI | o4-mini |\n| Gemini | gemini-2.0-flash |\n| xAI | grok-3-mini-fast |\n| Anthropic | claude-sonnet-4-0 |\n| Ollama | llama3.2 |\n\nOptions:\n\n- **Jira Config** \n - `--jira-api-token TEXT` Jira API token (required) \n - `--jira-email, --email TEXT` Jira email (required) \n - `--jira-server TEXT` Jira server URL (default: https://jira.atlassian.com) \n - `--jira-in-progress TEXT` Jira \u201cin progress\u201d transition name (default: Starting) \n - `--jira-ready-for-review TEXT` Jira \u201cready for review\u201d transition name (default: Ready for review) \n - `--jira-done TEXT` Jira \u201cdone\u201d transition name (default: Finished) \n - `--default-jira-project TEXT` Default Jira project key \n\n- **GitHub Config** \n - `--github-pat TEXT` GitHub Personal Access Token (required)\n\n**Preferences** \n - `--preferred-provider TEXT` Preferred AI provider (optional) \n - `--auto-accept-generated-commits` Auto accept generated commit messages \n - `--generated-with-glu-tag/--no-generated-with-glu-tag` \n Add a tag to generated PRs and tickets to spread the word about glu! (default: True) \n - `--add-pr-number-on-merge/--no-add-pr-number-on-merge` \n Add the PR number to merge commits (default: True) \n\n## Contributing\n\nContributions to Glu CLI are welcome! Please follow these guidelines:\n\n1. Fork the repository and create your branch:\n ```bash\n git checkout -b feature/your-feature\n ```\n2. Make your changes, ensuring that new code includes tests where appropriate.\n3. Install precommit hooks:\n ```bash\n pre-commit install --install-hooks\n pre-commit install --hook-type commit-msg\n ```\n4. Commit your changes following Conventional Commits.\n5. Push to your fork and open a Pull Request.\n\n## Acknowledgements\n\nGlu CLI is inspired by [Jira CLI](https://github.com/ankitpokhrel/jira-cli) and \n[GitHub CLI](https://github.com/cli/cli).\n",
"bugtrack_url": null,
"license": null,
"summary": "A CLI tool to facilitate the developer workflow",
"version": "2.6.0",
"project_urls": null,
"split_keywords": [],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "6e126092c7986dc3686d329b69fe862431c7eb28426b1a9cb5d1578db4154fc5",
"md5": "7d45b50376081b29fdfba998d40e32e9",
"sha256": "a3b826bf855b3a6f2458c584ce17ef97625c6fbe6d8baf6dd1012f3a1ef68a56"
},
"downloads": -1,
"filename": "glu_cli-2.6.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "7d45b50376081b29fdfba998d40e32e9",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 44078,
"upload_time": "2025-07-27T20:15:34",
"upload_time_iso_8601": "2025-07-27T20:15:34.929699Z",
"url": "https://files.pythonhosted.org/packages/6e/12/6092c7986dc3686d329b69fe862431c7eb28426b1a9cb5d1578db4154fc5/glu_cli-2.6.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "e2a5da3384e9012f21e80bde1d04b6e19ec5e9c7d5156ae4d9c3e0fa555f9a68",
"md5": "d15ce8e1a33838f8b3fd4c34e62fbc09",
"sha256": "d9da15b309d65b53c7e4ecd765097aae13a71c62f30b20266dba4ad7eb9b58a0"
},
"downloads": -1,
"filename": "glu_cli-2.6.0.tar.gz",
"has_sig": false,
"md5_digest": "d15ce8e1a33838f8b3fd4c34e62fbc09",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 1150520,
"upload_time": "2025-07-27T20:15:36",
"upload_time_iso_8601": "2025-07-27T20:15:36.011535Z",
"url": "https://files.pythonhosted.org/packages/e2/a5/da3384e9012f21e80bde1d04b6e19ec5e9c7d5156ae4d9c3e0fa555f9a68/glu_cli-2.6.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-27 20:15:36",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "glu-cli"
}