Command-line browser tab control with seamless desktop integration.

TabCtl enables powerful command-line control of browser tabs across Firefox and Chrome-based browsers. Built for developers and power users who prefer keyboard-driven workflows. Currently, for Linux only.

TabCtl in action

Features

  • Universal Browser Support - Works with Firefox, Chrome, Zen, and Brave browsers
  • D-Bus Architecture - Secure local communication without network dependencies
  • Desktop Integration - Automatic window focus and workspace switching
  • Rofi Integration - Lightning-fast fuzzy search across all open tabs
  • Privacy Focused - No data collection, all operations remain local

Quick Start

Installation

Arch Linux (AUR)

# Install from AUR
yay -S tabctl
# or
paru -S tabctl

From Source

# Clone and build
git clone https://github.com/slastra/tabctl
cd tabctl
go build -o tabctl ./cmd/tabctl
go build -o tabctl-mediator ./cmd/tabctl-mediator

Setup

# Install native messaging host
./tabctl install

Installation process

Browser Extensions

Install the extension for your browser:

Or install manually from source:

  • Firefox/Zen: extensions/firefox/
  • Chrome/Brave: Load unpacked from extensions/chrome/

Basic Usage

# List all open tabs
tabctl list

# Activate a specific tab
tabctl activate f.1.234

# Close multiple tabs
tabctl close f.1.234 f.1.235

# Query tabs by title or URL
tabctl query github

Rofi Integration

TabCtl includes powerful Rofi integration for visual tab management:

# X11 with wmctrl
scripts/rofi-wmctrl.sh

# Wayland with Hyprland
scripts/rofi-hyprctl.sh

The Rofi integration provides instant fuzzy search across all tabs with automatic desktop/workspace switching when activating tabs.

Documentation

Contributing

TabCtl is open source software released under the MIT License. Contributions are welcome! Please see our GitHub repository for development guidelines and issue tracking.

Support

Acknowledgments

TabCtl was inspired by BroTab, rewritten in Go with a D-Bus architecture and a Manifest v3 Chrome extension.