PrismTTY
PrismTTY makes dense SSH, network-device, and Unix/Linux terminal output easier to scan in real time. It is a fast ChromaTerm-style CLI wrapper with network-focused built-in profiles.
Website: prismtty.com.
Quick Demo
Preview
Synthetic terminal previews using documentation-only hostnames and addresses:
What This Is / What This Is Not
PrismTTY is a live terminal-output highlighter for shells, SSH sessions, pipes, and logs.
It highlights output that is already flowing through your terminal, including:
- prompts
- interfaces
- IP addresses
- protocol state
- counters
- severity
- common vendor terms
PrismTTY is not:
- an NMS
- a configuration-management tool
- a source of truth
- a SIEM
- a log platform
- a device inventory system
It does not log in to devices by itself, collect inventory, push configuration, or store operational data.
Install
Homebrew
Install the latest release from the PrismTTY Homebrew tap:
The Homebrew formula installs prismtty, ptty, ct, bundled profiles, and
shell completions. It also installs the required PCRE2 runtime dependency.
Cargo
Install from crates.io:
Cargo builds PrismTTY from source and installs the command binaries. You need
Rust 1.85 or newer plus PCRE2 and pkg-config available on your system.
For cargo install on macOS, install the native build dependencies first:
For cargo install on Debian/Ubuntu, install:
GitHub Release
Prebuilt release archives and checksums are available on the GitHub releases page.
Each release archive contains the binaries, license/readme files, example
profiles, shell completions, and a .tar.gz.sha256 checksum.
Installed commands:
prismtty: highlighter CLI, profile tools, config reload, and benchmarks.ptty: launch an interactive command through PrismTTY.ct: short compatibility alias forprismtty.
Usage
The recommended interactive workflow is to start one wrapped shell from your terminal profile:
From inside that shell, run normal ssh, telnet, or console-wrapper commands.
PrismTTY dynamically switches profiles from observed login banners and prompts,
then keeps the selected remote profile locked for the session.
Use stdin mode for noninteractive output from files or pipes:
|
Important options:
-p, --profile <name>forces one or more profiles.--no-auto-detectuses onlygenericunless profiles are forced.--no-dynamic-profiledisables profile switching inside wrapped interactive shells.-c, --config <file>loads a ChromaTerm-compatible YAML file.--strip-ansiremoves existing ANSI before PrismTTY styles output.--show-profileprints profile selections and transitions to stderr.--local-echolocally echoes printable typed keys for no-echo device sessions.--trace-io <file>appends hex-encoded PTY input/output plus rendered-output diagnostics.-R, --rgbforces RGB color output.--pcreis accepted for ChromaTerm compatibility; PCRE2 is always used.-b, --benchmarkprints per-rule timing and match-count data.-r, --reloadasks running PrismTTY sessions to reload config.
Profile commands:
Configuration
PrismTTY loads built-in profiles first, then user rules. By default it checks:
~/.chromaterm.yml~/.chromaterm.yaml~/.config/chromaterm/chromaterm.yml~/.config/chromaterm/chromaterm.yaml~/.config/prismtty/config.yml~/.config/prismtty/config.yaml/etc/chromaterm/chromaterm.yml/etc/chromaterm/chromaterm.yaml~/.config/prismtty/profiles.d/*.yml~/.config/prismtty/profiles.d/*.yaml
ChromaTerm-style rules are supported directly:
rules:
- description: IPv4
regex: '\b192\.0\.2\.\d+\b'
color: f#00ffff
Native profile files add metadata:
profile:
name: custom-router
inherits:
detection:
- CustomOS
rules:
- description: custom interface
regex: '\bcust\d+/\d+\b'
color: f#00ffff bold
Profiles under ~/.config/prismtty/profiles.d/ are first-class profiles: they
appear in profiles list, can be shown with profiles show, can inherit
built-in or other user profiles, and participate in auto-detection through their
detection hints.
Built-In Profiles
genericjuniperciscoarubacxversaaristafortinetpalo-altolinux-unix
These profiles are clean-room curated rule sets for prompts, interfaces, addresses, protocol states, syslog severity, operational status, counters, and common vendor terms.
Runtime Reload
Long-running ptty /bin/zsh sessions register themselves in a small runtime
directory under /tmp by default. Run this after editing ~/.chromaterm.yml or
files under ~/.config/prismtty/:
The next output chunk in each running PrismTTY session reloads the active config.
Set PRISMTTY_RUNTIME_DIR to override the runtime directory for tests or
isolated sessions.
Feedback Wanted
Testing feedback is especially useful for Cisco, Juniper, Fortinet, Palo Alto, Arista, Aruba CX, Versa, Linux/Unix, and custom profile files for other vendors, appliances, and terminal workflows.
More Information
- Website: prismtty.com
- Source: github.com/inxbit/prismtty
- Releases: github.com/inxbit/prismtty/releases