ShellBar logo

ShellBar ShellBar

ShellBar centralizes your most frequently used commands into a dedicated action bar within the shell, turning them into instant, one-click shortcuts. Built on libghostty-vt for Linux.

NOT a fork — independent library consumer
C11 GTK4 libghostty-vt Cairo Pango Zig NOT a fork

Description

ShellBar is a tool designed to streamline how developers interact with their projects, especially in complex environments such as monorepos.

In modern development workflows, terminal commands are often long, repetitive, and hard to remember. They are typically scattered across package.json files or internal documentation, forcing developers to spend valuable time searching for how to run common tasks.

ShellBar solves this by centralizing your most frequently used commands into a dedicated action bar within the shell, turning them into instant, one-click shortcuts.

This becomes especially powerful in monorepos or multi-environment projects (local, staging, production), as well as setups that vary by platform (web, desktop, mobile). Instead of repeatedly consulting documentation or navigating through scripts, developers can immediately trigger the right workflow.

The result is a more focused, efficient, and productive environment where operational friction is reduced, allowing developers to concentrate on what truly matters: building software.

Visually it's a Ghostty-like terminal for Linux (GTK4 + libadwaita, dark theme, inline tabs). The difference is the button bar that you configure to run any command on the active terminal.

Screenshots

Features

Configurable Toolbar

Launch any command with a single click. Define buttons in ~/.config/shellbar/config with name, command, and icon.

Ghostty VT Engine

Full VT100-520 emulation, 256 colors, true color, and Kitty graphics protocol — powered by libghostty-vt.

Multiple Tabs

Each tab runs its own shell with independent PTY. Dynamic titles via OSC 0/2. Ctrl+T to create new tabs.

Clipboard UX

Copy-on-select, double-click word, triple-click line. URL hover underline with Ctrl+Click. Middle-click paste. Smooth auto-scroll.

Hot Reload

Edit your config and send SIGHUP to reload buttons and keybinds instantly — no restart needed.

Utility Bar

Auto-detects installed TUI tools (btop, htop, lazygit, vim, tmux…) and launches them in the active terminal.

ShellBar is NOT a fork of Ghostty

ShellBar uses libghostty-vt as a library via CMake FetchContent — no patches, no upstream modifications, no merge conflicts. This keeps the project independent, lightweight, and easy to maintain while benefiting from Ghostty's industry-leading VT engine.

Install

Fedora / RHEL — pre-built .rpm

curl -LO https://github.com/rendergraf/shellbar/releases/latest/download/shellbar-1.6.0-1.x86_64.rpm
sudo rpm -i shellbar-1.6.0-1.x86_64.rpm

Debian / Ubuntu — pre-built .deb

curl -LO https://github.com/rendergraf/shellbar/releases/latest/download/shellbar_1.6.0_amd64.deb
sudo dpkg -i shellbar_1.6.0_amd64.deb
sudo apt-get install -f

Arch Linux — pre-built package

curl -LO https://github.com/rendergraf/shellbar/releases/latest/download/shellbar-1.6.0-1-x86_64.pkg.tar.zst
sudo pacman -U shellbar-1.6.0-1-x86_64.pkg.tar.zst

Build from source

git clone https://github.com/rendergraf/shellbar
cd shellbar
cmake -B build -G Ninja
cmake --build build
./build/shellbar

Configuration

ShellBar uses a key = value format compatible with Ghostty. Create ~/.config/shellbar/config to define your buttons and keybinds.

~/.config/shellbar/config
# Toolbar buttons
toolbar-button = name="Storybook", command="pnpm storybook", icon="media-playback-start"
toolbar-button = name="Build", command="pnpm build", icon="emblem-system"
toolbar-button = name="Test", command="pnpm test", icon="emblem-default"

# Keybinds
keybind = action="copy", key="c", mods="ctrl+shift"
keybind = action="paste", key="v", mods="ctrl+shift"