Skip to content

Releases: gjnail/opal

opal 1.0.0

Choose a tag to compare

@github-actions github-actions released this 01 Oct 07:45

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 unless shell names another. Each release carries the source
    of its packages.
  • The install scripts install Opal Terminal too: with a Start menu shortcut
    on Windows, in ~/Applications on macOS, and with a menu entry on Linux
    desktops. OPAL_NO_TERMINAL=1 leaves it out.
  • opal terminal opens 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

Choose a tag to compare

@github-actions github-actions released this 30 Sep 06:09

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 setup adds a marked block to each installed shell's startup file,
    finds PowerShell profiles that OneDrive has moved, and opal 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 status gets 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 update pulls 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 doctor shows what opal detected and which features are active.
  • opal update rebuilds from a source checkout or downloads the latest
    release after checking it against SHA256SUMS.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.