Gira is a powerful command-line tool that bridges your Git workflow with both Jira and GitHub issues. It helps you automate tasks like creating branches from issue, viewing issue details, and keeping issue tracking in sync with Git β all from your terminal.
Use Gira to speed up development workflows, reduce context switching, and streamline project tracking whether you're using Jira, GitHub, or both.
- π¦ Installation
- β¨ Shell Autocompletion
- π Usage
- βοΈ
config
: Configure Gira profile with accounts and tokens - π±
branch
: Create a new Git branch using issue ID (Jira or GitHub) - π΅οΈ
issue
: Show details of issue (from current branch or specified issue ID) - π
dash
: Open your issue dashboard - π
open
: Open the issue in your browser - π₯·
ninja
: Create a new issue and branch in one go
- βοΈ
You can use Gira either as a native binary or through Docker. Choose what fits your environment best.
Automated install/update, don't forget to always verify what you're piping into bash.
The script installs downloaded binary to HOME directory by default, but it can be changed by setting DIR environment variable.
curl https://raw.githubusercontent.com/Ealenn/gira/master/install_unix.sh | bash
Invoke-RestMethod https://raw.githubusercontent.com/Ealenn/gira/master/install_windows.ps1 | Invoke-Expression
Platform | Download Link | Hash |
---|---|---|
macOS (Intel) | gira-darwin-amd64 | md5 |
macOS (ARM) | gira-darwin-arm64 | md5 |
Linux (x86) | gira-linux-386 | md5 |
Linux (AMD64) | gira-linux-amd64 | md5 |
Linux (ARM64) | gira-linux-arm64 | md5 |
Windows (x86) | gira-windows-386.exe | md5 |
Windows (AMD64) | gira-windows-amd64.exe | md5 |
You can download the latest release directly from GitHub:
curl -sSL https://github.com/Ealenn/gira/releases/latest/download/gira-linux-amd64 -o /usr/local/bin/gira
chmod +x /usr/local/bin/gira
This will place the gira binary in your system path for global use.
If you prefer using Docker, you can run Gira directly without installing it:
docker run -it --rm -v "$HOME:/root" -v "$PWD:/app" -w /app ealen/gira
To make it easier to use Gira like a native CLI, add this alias to your shell config:
# In your ~/.bashrc or ~/.zshrc
alias gira='docker run -it --rm -v "$HOME:/root" -v "$PWD:/app" -w /app ealen/gira'
After reloading your shell, you'll be able to run gira from anywhere.
π‘ Note: The Gira Docker image is also available on GitHub Container Registry.
If your company restricts access to docker.io, you can use the GitHub-hosted image instead by replacing
ealen/gira
withghcr.io/ealenn/gira
in the above commands:alias gira='docker run -it --rm -v "$HOME:/root" -v "$PWD:/app" -w /app ghcr.io/ealenn/gira'
Gira supports autocompletion for major shells like Bash, Zsh, Fish, and PowerShell.
Generate the completion script with:
$ gira completion [shell]
Supported shells: bash
β zsh
β fish
β powershell
Example with ZSH :
# in your ~/.zshrc
eval "$(gira completion zsh)"
This enables tab completion for Gira commands and flags in your shell.
Usage:
gira [command]
Available Commands:
branch Create a new Git branch using issue
completion Generate the autocompletion script for the specified shell
config Configure Gira with accounts and tokens
dash Open your issue dashboard
help Help about any command
issue Show details of an issue (from current branch or specified issue ID)
ninja Create a new issue and associated branch in one command
open Open issue in web browser (from current branch or specified issue ID)
version Display the current Gira version and check for available updates
Flags:
--ai enable AI-powered features, such as branch name suggestions and other smart assistance
-h, --help help for gira
-p --profile string configuration profile to use (default "default")
--verbose print detailed operation logs and debug information
-v, --version version for gira
Use "gira [command] --help" for more information about a command.
π Use the --verbose
flag to display detailed exception or stack traces, which can help you better understand what went wrong.
This information is especially useful before creating a bug issue, as it provides more context for troubleshooting and reporting problems.
Example :
β― gira branch TEST-123 --verbose
[DEBUG] Issue TEST-123 response status 404
[FATAL] Unable to find issue TEST-123
The gira config
command sets up the Gira CLI by allowing you to configure one or more accounts, each with its own credentials.
You can create multiple profiles to connect to different sources, such as Jira
or GitHub
issues, making it easy to switch between environments or accounts.
For each profile, you'll specify the source type along with the necessary credentials:
- For Jira: Provide the Jira host URL and API token.
- For GitHub: Provide optional GitHub personal access token.
This configuration is stored in your local Gira config file and enables the CLI to communicate with the appropriate service when running commands like branch
or issue
.
Usage:
gira config [flags]
Flags:
-l, --list list all available profiles
-r, --remove remove selected profile
Global Flags:
-p, --profile string configuration profile to use (default "default")
Running gira config
w
8000
ith no additional arguments will set up or update your default profile:
You can also configure custom profiles and use them in any Gira command by specifying the --profile
option.
This is useful if you need to work with multiple instances or accounts.
Once configured, you can specify the profile in other commands:
β― gira branch --profile perso
or
β― gira branch -p perso
This flexibility allows you to easily manage and switch between multiple Jira or Github accounts or environments as needed.
Gira can enhance your workflow with AI assistance, helping you generate smarter branch names, commit messages and summaries, all without leaving your terminal.
When enabled via the
--ai
flag, AI features work alongside your Git, Jira, and GitHub integrations.
Available AI-powered capabilities:
- πͺ Branch name suggestions: Automatically generate consistent and descriptive branch names from issue titles and descriptions.
- βοΈ Commit message drafts: Get AI-generated commit messages based on changes and issue context (you can still edit before committing).
- π Smart issue summaries: Summarize long Jira or GitHub issue descriptions into concise overviews.
AI integration is optional and controlled through environment variables.
Environment Variable | Description |
---|---|
GIRA_AI_ENDPOINT |
Base URL of the AI endpoint. Required |
GIRA_AI_MODEL |
Model name to use (depends on provider). Required |
GIRA_AI_APIKEY |
API key for authentication (if required by provider). |
You can connect Gira to both cloud-based APIs and self-hosted models:
(click on the provider to display an example)
LocalAI (Self-hosted, free, private)
-
Runs entirely on your machine.
-
Zero API costs, lower latency, and full privacy.
-
Install: localai.io
export GIRA_AI_ENDPOINT=http://127.0.0.1:8080 export GIRA_AI_MODEL=o4-mini export GIRA_AI_APIKEY=xxxxxxxx
MistralAI (Free-tiers)
- Sign up at console.mistral.ai for your API key.
- See available models: docs.mistral.ai
- Limitations and API cost mistral.ai/plateforme/limits
export GIRA_AI_ENDPOINT=https://api.mistral.ai/v1
export GIRA_AI_MODEL=mistral-small-latest
export GIRA_AI_APIKEY=xxxxxxxx
OpenAI (ChatGPT)
- Get API keys at platform.openai.com
- Model reference: OpenAI models
export GIRA_AI_ENDPOINT=https://api.openai.com
export GIRA_AI_MODEL=o4-mini
export GIRA_AI_APIKEY=sk-xxxxxxxx
Add the environment variables to your shell config (~/.zshrc
, ~/.bashrc
, etc.)
Then reload your shell and use Gira
with the --ai
flag !
π‘ Tip: For maximum privacy, lower latency, and zero API costs, try LocalAI or Ollama. You can run models entirely on your machine, making Giraβs AI features work offline and securely.
Creates a new Git branch based on issue.
The branch name is generated by combining the issue ID with a slugified version of the issue summary (e.g., "feature/ABC-123/fix-login-bug").
This helps enforce consistent naming conventions and improve traceability between code and issues.
Usage:
gira branch [issue] [flags]
Aliases:
branch, checkout
Examples:
gira branch ISSUE-123
gira branch -a ISSUE-123
Flags:
--ai enable AI-powered features
-a, --assign assign the issue to the currently logged-in user after creating the Git branch
-f, --force disable interactive prompts and force branch creation even if checks would normally prevent it
-h, --help help for branch
Displays detailed information about an issue.
- If no issue ID is provided, the issue associated with the current Git branch is used.
- If an issue ID is specified, the command will display information for that issue.
This includes the issue key, summary, description, status, priority, assignee, and other relevant metadata.
Useful for quickly reviewing the context of your work without leaving the terminal.
Usage:
gira issue [issueId] [flags]
Examples:
gira issue
gira issue ABC-123
Flags:
--ai enable AI-powered features
-h, --help help for issue
This command gives you a project-wide snapshot of your issues without leaving the terminal.
It opens an interactive dashboard that lists issues by status (open, in-progress, or closed).
This makes it easy to switch from working on a single issue to seeing the bigger picture of your team's progress.
Usage:
gira dash
Flags:
--ai enable AI-powered features
-s, --status string filter issues by status (default "all")
-h, --help help for issue
The gira open
command quickly opens the web page for the current issue (or a specified one) in your default browser.
It works with both Jira and GitHub Issues, making it easy to jump from the terminal directly to the issue tracker for viewing, editing, or commenting.
- If no issue ID is provided, open uses the issue associated with the current Git branch.
- If an issue ID is specified, it will open that issue directly.
Usage:
gira open [issueId] [flags]
Examples:
gira open
gira open ABC-123
Flags:
-h, --help help for issue
The gira ninja
command speeds up your workflow by creating a new issue (in Jira or GitHub) and immediately generating a Git branch for it, all in a single step.
This is especially useful when starting work on a brand-new task and wanting to dive straight into coding.
Usage:
gira ninja [flags]
Flags:
--ai enable AI-powered features
-f, --force disable interactive prompts and force branch creation even if checks would normally prevent it
-h, --help help for issue