External Tools

Optional external tools

orangu integrates with several optional command-line tools. None of them are required, but when present they improve the output of the corresponding commands. The sections below describe each tool and, importantly, how it is configured to be used — installing a tool is not always enough; some must also be wired into your Git configuration.

The interactive setup wizard (orangu --init, short form -i) reports the state of each tool just before writing the configuration:

What “configured to be used” means for each tool:

Tool Used when
git lg the lg alias is set in ~/.gitconfig
delta it is installed and resolves as the Git diff pager (pager.diff, then core.pager)
bat it is installed (no further configuration needed)
gh it is installed and [orangu].platform is github (the default)
glab it is installed and [orangu].platform is gitlab

git lg

git lg is a compact, graph-formatted commit log alias for Git. When it is configured in ~/.gitconfig, orangu will use it automatically for /log output instead of the plain git log fallback.

Setup

Add the alias to your global Git configuration:

git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

This adds the following entry to ~/.gitconfig:

[alias]
    lg = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit

The alias produces a compact, colored, graph-annotated log that shows abbreviated commit hashes in red, branch and tag decorations in yellow, commit subjects, relative timestamps in green, and author names in bold blue.

Once the alias is present, /log picks it up automatically — no further configuration is needed.

delta

delta is an optional pager and syntax-highlighted diff viewer for Git.

If it is installed and configured in your Git setup, orangu will use it for /diff output inside Git repositories.

Installation

Install delta using your platform package manager or one of the installation methods described in the upstream project.

On Fedora, for example:

sudo dnf install git-delta

Then configure Git in ~/.gitconfig to use it. A minimal setup is:

[core]
  pager = delta

[interactive]
  diffFilter = delta --color-only

[delta]
  navigate = true     # use n and N to move between diff sections
  dark = true         # or light = true, or omit for auto-detection
  side-by-side = true
  line-numbers = true

Please refer to the upstream documentation for full installation and configuration details:

https://github.com/dandavison/delta

bat

bat is an optional cat clone with syntax highlighting and Git integration.

If it is installed, orangu will use it for plain /show_file output. No further configuration is required — installing bat is enough for it to be used.

Installation

Install bat using your platform package manager or one of the installation methods described in the upstream project.

On Fedora, for example:

sudo dnf install bat

Please refer to the upstream documentation for full installation and configuration details:

https://github.com/sharkdp/bat/

gh

gh is the official GitHub CLI. It provides commands such as gh repo clone, gh pr create, and gh issue list for interacting with GitHub repositories directly from the terminal.

orangu selects the CLI based on the [orangu].platform setting: github (the default) uses gh, and gitlab uses glab (see GitLab CLI below). The descriptions here apply to gh; the GitLab equivalents are described in the next section.

If it is installed, orangu will use it for /pull to check out pull requests, for /rebase to determine the default branch, for /merge to merge pull requests, and to detect the default branch for the startup sync (see below). Without it, orangu falls back to plain Git for all of these. The /comment command requires gh and runs gh issue comment to add a comment to a GitHub issue; there is no plain Git fallback for it. The /pull_request command also requires gh and runs gh pr create to open a pull request from the current branch; there is no plain Git fallback for it. The /issue command likewise requires gh and runs gh pr edit / gh issue edit to add a reviewer, assignee, or label; there is no plain Git fallback for it.

Installation

gh is not available in the default Fedora repositories. Add the official GitHub CLI repository first, then install the package:

curl -fsSL https://cli.github.com/packages/rpm/gh-cli.repo | sudo tee /etc/yum.repos.d/github-cli.repo
sudo dnf install gh

After installation, authenticate with your GitHub account:

gh auth login

Please refer to the upstream documentation for full installation and configuration details:

https://cli.github.com/manual/

glab

glab is the official GitLab CLI. It provides commands such as glab mr create, glab mr merge, and glab issue note for interacting with GitLab projects directly from the terminal.

Set platform = gitlab in the [orangu] section to drive glab instead of gh. The behaviour mirrors the GitHub integration, mapping each command to its GitLab equivalent:

orangu command GitLab command
/pull <number> glab mr checkout <number>
/pull_request glab mr create --title … --description … --source-branch … --target-branch … --yes
/merge <branch> glab mr merge <branch> --yes
/comment <number> "…" glab issue note <number> --message "…"
/issue reviewer <n> <user> glab mr update <n> --reviewer <user>
/issue assignee <n> <user> glab mr update <n> --assignee <user> / glab issue update <n> --assignee <user>
/issue label <n> <label> glab mr update <n> --label <label> / glab issue update <n> --label <label>

As with gh, /pull and /merge fall back to plain Git when glab is not installed, while /comment, /issue, and /pull_request require it. The default branch used by /rebase and the startup sync is detected through Git (origin/HEAD, then main/master) when running against GitLab.

Installation

sudo dnf install glab

After installation, authenticate with your GitLab account:

glab auth login

Please refer to the upstream documentation for full installation and configuration details:

https://gitlab.com/gitlab-org/cli