shipfastlabs/terminal-detector

Detects which terminal emulator is running the current PHP process

Maintainers

Package info

github.com/shipfastlabs/terminal-detector

pkg:composer/shipfastlabs/terminal-detector

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.0 2026-03-05 04:29 UTC

This package is auto-updated.

Last update: 2026-03-05 04:38:52 UTC


README

Terminal Detector

GitHub Workflow Status (master) Total Downloads Latest Version License

Terminal Detector

Detects which terminal emulator is running the current PHP process.

Requires PHP 8.2+

Installation

composer require shipfastlabs/terminal-detector

Usage

use TerminalDetector\TerminalDetector;

$result = TerminalDetector::detect();

if ($result->detected) {
    echo "Running inside: {$result->name}";
}

// Check for a specific known terminal
if ($result->knownTerminal() === \TerminalDetector\KnownTerminal::Ghostty) {
    echo "Hello from Ghostty!";
}

Or use the standalone function:

use function TerminalDetector\detectTerminal;

$result = detectTerminal();

Result Properties

$result->detected;        // true / false
$result->name;            // e.g. 'iterm2', 'ghostty', 'vscode'
$result->version;         // e.g. '3.5.0' (from TERM_PROGRAM_VERSION)
$result->knownTerminal(); // KnownTerminal enum or null

Known Terminals

The KnownTerminal enum provides type-safe identifiers for all supported terminals:

Enum Case Value
KnownTerminal::ITerm2 iterm2
KnownTerminal::AppleTerminal apple-terminal
KnownTerminal::VSCode vscode
KnownTerminal::Hyper hyper
KnownTerminal::WarpTerminal warp
KnownTerminal::WezTerm wezterm
KnownTerminal::Kitty kitty
KnownTerminal::Alacritty alacritty
KnownTerminal::Ghostty ghostty
KnownTerminal::WindowsTerminal windows-terminal
KnownTerminal::JetBrains jetbrains
KnownTerminal::Konsole konsole
KnownTerminal::GnomeTerminal gnome-terminal
KnownTerminal::Tilix tilix
KnownTerminal::Tabby tabby
KnownTerminal::Rio rio
KnownTerminal::Tmux tmux
KnownTerminal::Zellij zellij
KnownTerminal::Screen screen
KnownTerminal::SSHSession ssh
KnownTerminal::Xterm xterm

Supported Terminals

Terminal Detection Method
iTerm2 TERM_PROGRAM
Apple Terminal TERM_PROGRAM
VS Code TERM_PROGRAM
Hyper TERM_PROGRAM
Warp TERM_PROGRAM
WezTerm TERM_PROGRAM
Rio TERM_PROGRAM
Kitty KITTY_WINDOW_ID / TERM
Ghostty GHOSTTY_RESOURCES_DIR / TERM
Windows Terminal WT_SESSION
JetBrains TERMINAL_EMULATOR
Konsole KONSOLE_DBUS_SESSION / KONSOLE_VERSION
Tilix TILIX_ID
GNOME Terminal GNOME_TERMINAL_SCREEN / VTE_VERSION
Tabby TABBY_CONFIG_DIRECTORY
Alacritty TERM
Xterm TERM
tmux TMUX
Zellij ZELLIJ
Screen STY
SSH SSH_CONNECTION / SSH_CLIENT

Custom Override

Set the TERMINAL_DETECTOR environment variable to force a specific terminal name:

TERMINAL_DETECTOR=my-terminal php script.php

License

Terminal Detector is open-sourced software licensed under the MIT license.