Repository navigation
Releases: gjnail/opal
Release list
opal 1.0.0
Added
- Opal Terminal, opal's own terminal app
(terminal/): tabs and split panes, inline images,
quick select, a command palette over the shared history, desktop
notifications, session restore and a settings page. Release archives for
Windows, macOS and Linux on x86_64 and ARM64. So far it has only been used
on Windows. - Opal Bash: on Windows, Opal Terminal comes with its own bash. It's
MSYS2's bash with coreutils, grep, sed, gawk, findutils, diffutils, less,
tar, gzip and which. It starts with its own startup file and history
instead of~/.bashrc, so it's separate from your other shells, and new
tabs open it unlessshellnames another. Each release carries the source
of its packages. - The install scripts install Opal Terminal too: with a Start menu shortcut
on Windows, in~/Applicationson macOS, and with a menu entry on Linux
desktops.OPAL_NO_TERMINAL=1leaves it out. opal terminalopens Opal Terminal in the current folder.- On macOS, Opal Terminal gives shells a UTF-8 locale when it's opened from
Finder or the Dock, which start apps without one. It finds a shell's
working directory without opal's prompt, plays the alert sound for
bell = "sound", and bounces the Dock icon when a background window wants
attention. - Opal Terminal's command palette lists the aliases and functions opal
defines in the pane's shell, from the enabled plugins and your config,
after its own actions. Enter types one at the prompt and Shift+Enter runs
it; starting the query with$lists only those.
Downloads
The install scripts pick the right file for you (see the README).
| System | File |
|---|---|
| Windows (x64 / ARM64) | opal_windows_amd64.zip / opal_windows_arm64.zip |
| macOS (Intel / Apple Silicon) | opal_darwin_amd64.tar.gz / opal_darwin_arm64.tar.gz |
| Linux (x86_64 / ARM64) | opal_linux_amd64.tar.gz / opal_linux_arm64.tar.gz |
The binaries aren't code-signed. To check that a download was built from this repository, compare it with SHA256SUMS.txt or run gh attestation verify <file> --repo gjnail/opal.
Opal Terminal
The install scripts install it next to opal unless you pass -NoTerminal (PowerShell) or set OPAL_NO_TERMINAL=1 (sh).
| System | File |
|---|---|
| Windows (x64 / ARM64) | opal-terminal_windows_amd64.zip / opal-terminal_windows_arm64.zip |
| macOS (Intel / Apple Silicon) | opal-terminal_darwin_amd64.tar.gz / opal-terminal_darwin_arm64.tar.gz |
| Linux (x86_64 / ARM64) | opal-terminal_linux_amd64.tar.gz / opal-terminal_linux_arm64.tar.gz |
On Windows it comes with Opal Bash, MSYS2's bash and Unix tools, kept separate from any other bash; opal-terminal_shell-sources.tar has their source.
Checksums are in opal-terminal_SHA256SUMS.txt. The macOS app has an ad-hoc signature rather than a Developer ID one, so a copy downloaded with a browser needs xattr -dr com.apple.quarantine "Opal Terminal.app" (or Open Anyway under System Settings > Privacy & Security) before it opens. The Linux build needs the Wayland or X11, xkbcommon and EGL libraries that desktop systems already have.
opal 0.1.0
First public version.
Shells and systems
- zsh, bash (3.2 through 5.x), fish, Windows PowerShell 5.1 and PowerShell 7,
on Windows (including Git Bash), macOS and Linux (including WSL). opal setupadds a marked block to each installed shell's startup file,
finds PowerShell profiles that OneDrive has moved, andopal setup --remove
takes it out again.
Prompt
- Three themes: fire (two lines, gradient path), black (colored blocks) and
boulder (one line). The prompt symbol's color depends on the shell. - Git branch, ahead/behind, staged, modified, untracked, conflicts, stash, and
rebase/merge state.git statusgets a time budget (200 ms by default);
when it's slower, the prompt shows the last known counts and refreshes them
in the background. - Command duration, exit status with signal names, background jobs, Python
virtualenv, and user@host over SSH, in containers or as root/administrator. - Transient prompt in zsh, fish and PowerShell: finished prompts are redrawn
as just the prompt symbol. - OSC 133 command marks and OSC 7 working-directory reports (and OSC 9;9 for
Windows Terminal).
Shell features
- Grey as-you-type suggestions: opal's own engine in zsh, ble.sh in bash when
it's installed, PSReadLine 2.1+ in PowerShell, fish's own. Tab or Right
arrow accepts one. - Tab completion for git (branches, remotes, changed files, stash entries)
and for the git aliases in PowerShell, and for opal's own commands in every
shell. Completion scripts that installed tools can generate (docker,
kubectl, gh, helm, uv, deno, pnpm, just, winget) are cached and loaded on
first use. - One command history shared by every shell, with a full-screen fuzzy search
on Ctrl+R that can narrow to the current directory or shell. Setup imports
the existing PowerShell, bash, zsh and fish histories.
Plugins
- Plugins are TOML files whose aliases and functions opal translates into
each shell's syntax, with per-shell and per-OS variants. - Built in: core, git, jump, python, node, docker, kubectl and pkg.
opal plugin install <user/repo>installs plugins from git;
opal plugin updatepulls them.
Tools
opal open,opal clip,opal extract,opal ports,opal path,
opal pkg(brew, apt, dnf, pacman, zypper, apk, winget, scoop, choco) and
opal js(npm, pnpm, yarn, bun), with the same behavior on every OS.opal doctorshows what opal detected and which features are active.opal updaterebuilds from a source checkout or downloads the latest
release after checking it againstSHA256SUMS.txt.
Downloads
The install scripts pick the right file for you (see the README).
| System | File |
|---|---|
| Windows (x64 / ARM64) | opal_windows_amd64.zip / opal_windows_arm64.zip |
| macOS (Intel / Apple Silicon) | opal_darwin_amd64.tar.gz / opal_darwin_arm64.tar.gz |
| Linux (x86_64 / ARM64) | opal_linux_amd64.tar.gz / opal_linux_arm64.tar.gz |
The binaries aren't code-signed. To check that a download was built from this repository, compare it with SHA256SUMS.txt or run gh attestation verify <file> --repo gjnail/opal.