A terminal for the browser for organizing tasks that require browser and terminal
  • Shell 37.9%
  • JavaScript 23.6%
  • Python 20.8%
  • HTML 16.6%
  • Dockerfile 1.1%
Find a file
2026-01-13 09:48:06 -05:00
extension update host 2026-01-13 09:48:06 -05:00
host all signing in jenkins 2026-01-12 13:35:38 -05:00
img Add privacy policy 2026-01-09 21:38:50 -05:00
.gitignore initial commit 2026-01-09 11:10:23 -05:00
Dockerfile move installs from jenkins to dockerfile 2026-01-12 13:46:21 -05:00
Jenkinsfile readd zip 2026-01-12 13:49:27 -05:00
PRIVACY.md Add privacy policy 2026-01-09 21:38:50 -05:00
README.md all signing in jenkins 2026-01-12 13:35:38 -05:00
setup_host.sh initial commit 2026-01-09 11:10:23 -05:00
terminal-sidecar.md initial commit 2026-01-09 11:10:23 -05:00

BrowserTerm

A low-latency, fully functional terminal emulator embedded directly in your Chrome Side Panel. This extension bridges Chrome to your local system shell (Bash/Zsh) using the Native Messaging API, allowing you to run CLIs like vi, top, git, and gemini without leaving the browser.

Features

  • Side Panel Integration: Always-available terminal while you browse.
  • Native Performance: Uses xterm.js connected to a local PTY via Python backend.
  • Full Shell Access: Runs your actual system shell (/bin/bash).
  • Interactive: Supports vi, nano, top, htop, etc.
  • Resizing: Dynamic window resizing support (SIGWINCH).
  • Persistent Configuration: Set a persistent startup directory (Gear Icon ⚙).
  • ANSI Colors: Full xterm-256color support.
  • Context Menu: "Send to BrowserTerm" allows piping web text directly to your shell.

Installation

Prerequisites

  • Google Chrome (Linux)
  • Python 3 installed
  • Git

Steps

  1. Clone the Repository:

    git clone https://git.adamoutler.com/aoutler/terminal-sidecar-chrome-extension.git
    cd terminal-sidecar-chrome-extension
    
  2. Install the Chrome Extension:

    • Open Chrome and go to chrome://extensions.
    • Enable Developer mode (top right).
    • Click Load unpacked.
    • Select the extension/ directory from this repository.
    • Copy the generated Extension ID (e.g., aaaaaaai36des4amii3vn3ysckqzojnl).
  3. Register the Native Host:

    • Run the setup script to register the Python backend with Chrome:
      ./setup_host.sh
      
    • Note: The script automatically attempts to detect your Chrome config directory.
  4. Installation Steps:

    • Install the Chrome Extension, open it, download install_host.sh, run bash install_host.sh, then close and reopen the BrowserTerm side panel. No need to restart Chrome or change permissions.

Usage

  1. Open the Panel:

    • Click the "Side Panel" icon in Chrome toolbar.
    • Select "BrowserTerm" from the dropdown.
  2. Configuration:

    • Click the Gear Icon (⚙) to set a persistent Startup Directory (e.g., /home/user/projects).
  3. Context Menu:

    • Highlight any text on a webpage.
    • Right-click -> "Send to BrowserTerm".
    • The text will be pasted into your active shell.

Troubleshooting

  • "Disconnected from Native Host":

    • Ensure the host script was installed correctly (the installer sets executable permissions).
    • Verify host/com.adamoutler.terminal_sidecar.json path matches your actual file location.
    • Restart Chrome.
  • Wrong Colors/Size:

    • The terminal automatically sets TERM=xterm-256color. Try running reset if valid output is garbled.

Security Note

This extension grants the browser access to your local shell.

  • Origin Locking: The native host only accepts connections from the specific Extension ID listed in host/com.adamoutler.terminal_sidecar.json.
  • Input: Input is piped securely to the PTY; however, treat this terminal with the same security caution as your main system terminal.