{"id":49916662,"url":"https://github.com/inxbit/prismtty","last_synced_at":"2026-05-30T05:01:09.682Z","repository":{"id":358494229,"uuid":"1237372220","full_name":"inxbit/prismtty","owner":"inxbit","description":"Fast terminal output highlighter focused on network devices and Unix systems","archived":false,"fork":false,"pushed_at":"2026-05-27T05:53:51.000Z","size":514,"stargazers_count":1,"open_issues_count":6,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-27T07:17:10.558Z","etag":null,"topics":["ansi","chromaterm","cisco","cli","devops","fortinet","juniper","network-tools","networking","rust","sre","ssh","sysadmin","terminal","terminal-ui"],"latest_commit_sha":null,"homepage":"https://prismtty.com/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/inxbit.png","metadata":{"files":{"readme":"README.crates.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-13T05:57:23.000Z","updated_at":"2026-05-27T05:53:53.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/inxbit/prismtty","commit_stats":null,"previous_names":["inxbit/prismtty"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/inxbit/prismtty","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inxbit%2Fprismtty","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inxbit%2Fprismtty/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inxbit%2Fprismtty/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inxbit%2Fprismtty/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/inxbit","download_url":"https://codeload.github.com/inxbit/prismtty/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inxbit%2Fprismtty/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33680527,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-30T02:00:06.278Z","response_time":92,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ansi","chromaterm","cisco","cli","devops","fortinet","juniper","network-tools","networking","rust","sre","ssh","sysadmin","terminal","terminal-ui"],"created_at":"2026-05-16T17:09:20.121Z","updated_at":"2026-05-30T05:01:09.676Z","avatar_url":"https://github.com/inxbit.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PrismTTY\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://prismtty.com/assets/prismtty-logo.svg\" alt=\"PrismTTY\" width=\"760\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://prismtty.com/\"\u003e\u003cimg alt=\"website\" src=\"https://img.shields.io/badge/website-prismtty-22d3ee?style=flat-square\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://crates.io/crates/prismtty\"\u003e\u003cimg alt=\"crates.io\" src=\"https://img.shields.io/crates/v/prismtty?style=flat-square\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://docs.rs/prismtty\"\u003e\u003cimg alt=\"docs.rs\" src=\"https://img.shields.io/docsrs/prismtty?style=flat-square\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/inxbit/prismtty/actions/workflows/ci.yml\"\u003e\u003cimg alt=\"CI\" src=\"https://img.shields.io/github/actions/workflow/status/inxbit/prismtty/ci.yml?branch=main\u0026style=flat-square\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/inxbit/prismtty/releases\"\u003e\u003cimg alt=\"release\" src=\"https://img.shields.io/github/v/release/inxbit/prismtty?style=flat-square\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/inxbit/prismtty/blob/main/LICENSE\"\u003e\u003cimg alt=\"license\" src=\"https://img.shields.io/github/license/inxbit/prismtty?style=flat-square\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\nPrismTTY makes dense SSH, network-device, and Unix/Linux terminal output easier\nto scan in real time. It is a fast ChromaTerm-style CLI wrapper with\nnetwork-focused built-in profiles.\n\nWebsite: [prismtty.com](https://prismtty.com/).\n\n## Quick Demo\n\n![Animated PrismTTY terminal demo](https://prismtty.com/assets/prismtty-terminal-demo.svg)\n\n## Preview\n\nSynthetic terminal previews using documentation-only hostnames and addresses:\n\n![Highlighted PrismTTY terminal output](https://prismtty.com/assets/prismtty-terminal-preview.svg)\n\n![Dynamic PrismTTY profile switching](https://prismtty.com/assets/prismtty-profile-switching.svg)\n\n## What This Is / What This Is Not\n\nPrismTTY is a live terminal-output highlighter for shells, SSH sessions, pipes,\nand logs.\n\nIt highlights output that is already flowing through your terminal, including:\n\n- prompts\n- interfaces\n- IP addresses\n- protocol state\n- counters\n- severity\n- common vendor terms\n\nPrismTTY is not:\n\n- an NMS\n- a configuration-management tool\n- a source of truth\n- a SIEM\n- a log platform\n- a device inventory system\n\nIt does not log in to devices by itself, collect inventory, push configuration,\nor store operational data.\n\n## Install\n\n### Homebrew\n\nInstall the latest release from the PrismTTY Homebrew tap:\n\n```sh\nbrew install inxbit/tap/prismtty\n```\n\nThe Homebrew formula installs `prismtty`, `ptty`, `ct`, bundled profiles, and\nshell completions. It also installs the required PCRE2 runtime dependency.\n\n### Cargo\n\nInstall from crates.io:\n\n```sh\ncargo install prismtty\n```\n\nCargo builds PrismTTY from source and installs the command binaries. You need\nRust 1.85 or newer plus PCRE2 and `pkg-config` available on your system.\n\nFor `cargo install` on macOS, install the native build dependencies first:\n\n```sh\nbrew install pcre2 pkg-config\n```\n\nFor `cargo install` on Debian/Ubuntu, install:\n\n```sh\nsudo apt-get install libpcre2-dev pkg-config\n```\n\n### GitHub Release\n\nPrebuilt release archives and checksums are available on the\n[GitHub releases page](https://github.com/inxbit/prismtty/releases).\n\nEach release archive contains the binaries, license/readme files, example\nprofiles, shell completions, and a `.tar.gz.sha256` checksum.\n\nInstalled commands:\n\n- `prismtty`: highlighter CLI, profile tools, config reload, and benchmarks.\n- `ptty`: launch an interactive command through PrismTTY.\n- `ct`: short compatibility alias for `prismtty`.\n\n## Usage\n\n```sh\nptty /bin/zsh\nptty ssh router.example.net\nprismtty --profile cisco \u003c show-tech.txt\nprismtty profiles test cisco fixtures/cisco.txt\nprismtty --reload\n```\n\nThe recommended interactive workflow is to start one wrapped shell from your\nterminal profile:\n\n```sh\nptty /bin/zsh\n```\n\nFrom inside that shell, run normal `ssh`, `telnet`, or console-wrapper commands.\nPrismTTY dynamically switches profiles from observed login banners and prompts,\nthen keeps the selected remote profile locked for the session.\n\nUse stdin mode for noninteractive output from files or pipes:\n\n```sh\nprismtty --profile cisco \u003c show-tech.txt\njournalctl -xe | prismtty --profile linux-unix\n```\n\nImportant options:\n\n- `-p, --profile \u003cname\u003e` forces one or more profiles.\n- `--no-auto-detect` uses only `generic` unless profiles are forced.\n- `--no-dynamic-profile` disables profile switching inside wrapped interactive shells.\n- `-c, --config \u003cfile\u003e` loads a ChromaTerm-compatible YAML file.\n- `--strip-ansi` removes existing ANSI before PrismTTY styles output.\n- `--show-profile` prints profile selections and transitions to stderr.\n- `--local-echo` locally echoes printable typed keys for no-echo device sessions.\n- `--no-minimal-reset` uses full SGR resets in interactive streams for terminal\n  emulators that ignore minimal foreground/background resets. It can also be\n  enabled with `PRISMTTY_NO_MINIMAL_RESET=1` or `PRISMTTY_NO_39_49_RESETS=1`.\n- `--trace-io \u003cfile\u003e` appends hex-encoded PTY input/output plus rendered-output diagnostics.\n- `-R, --rgb` forces RGB color output.\n- `--pcre` is accepted for ChromaTerm compatibility; PCRE2 is always used.\n- `-b, --benchmark` prints per-rule timing and match-count data.\n- `-r, --reload` asks running PrismTTY sessions to reload config.\n\nProfile commands:\n\n```sh\nprismtty profiles list\nprismtty profiles show cisco\nprismtty profiles validate ~/.config/prismtty/profiles.d/my-vendor.yml\nprismtty profiles test cisco fixtures/cisco.txt\n```\n\n## Configuration\n\nPrismTTY loads built-in profiles first, then user rules. By default it checks:\n\n- `~/.chromaterm.yml`\n- `~/.chromaterm.yaml`\n- `~/.config/chromaterm/chromaterm.yml`\n- `~/.config/chromaterm/chromaterm.yaml`\n- `~/.config/prismtty/config.yml`\n- `~/.config/prismtty/config.yaml`\n- `/etc/chromaterm/chromaterm.yml`\n- `/etc/chromaterm/chromaterm.yaml`\n- `~/.config/prismtty/profiles.d/*.yml`\n- `~/.config/prismtty/profiles.d/*.yaml`\n\nChromaTerm-style rules are supported directly:\n\n```yaml\nrules:\n  - description: IPv4\n    regex: '\\b192\\.0\\.2\\.\\d+\\b'\n    color: f#00ffff\n```\n\nNative profile files add metadata:\n\n```yaml\nprofile:\n  name: custom-router\n  inherits: [generic]\n  detection:\n    - CustomOS\nrules:\n  - description: custom interface\n    regex: '\\bcust\\d+/\\d+\\b'\n    color: f#00ffff bold\n```\n\nProfiles under `~/.config/prismtty/profiles.d/` are first-class profiles: they\nappear in `profiles list`, can be shown with `profiles show`, can inherit\nbuilt-in or other user profiles, and participate in auto-detection through their\n`detection` hints.\n\n## Built-In Profiles\n\n- `generic`\n- `juniper`\n- `cisco`\n- `arubacx`\n- `versa`\n- `arista`\n- `fortinet`\n- `palo-alto`\n- `linux-unix`\n\nThese profiles are clean-room curated rule sets for prompts, interfaces,\naddresses, protocol states, syslog severity, operational status, counters, and\ncommon vendor terms.\n\n## Runtime Reload\n\nLong-running `ptty /bin/zsh` sessions register themselves in a small runtime\ndirectory under `/tmp` by default. Run this after editing `~/.chromaterm.yml` or\nfiles under `~/.config/prismtty/`:\n\n```sh\nprismtty --reload\n```\n\nThe next output chunk in each running PrismTTY session reloads the active config.\nSet `PRISMTTY_RUNTIME_DIR` to override the runtime directory for tests or\nisolated sessions.\n\n## Feedback Wanted\n\nTesting feedback is especially useful for Cisco, Juniper, Fortinet, Palo Alto,\nArista, Aruba CX, Versa, Linux/Unix, and custom profile files for other vendors,\nappliances, and terminal workflows.\n\n## More Information\n\n- Website: [prismtty.com](https://prismtty.com/)\n- Source: [github.com/inxbit/prismtty](https://github.com/inxbit/prismtty)\n- Releases: [github.com/inxbit/prismtty/releases](https://github.com/inxbit/prismtty/releases)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finxbit%2Fprismtty","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finxbit%2Fprismtty","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finxbit%2Fprismtty/lists"}