🌐 Live: https://gesh75.github.io/multivendor-cli-configurator/docs/ — an animated single-page guide: architecture diagrams, data flow, tech stack, and quickstart.
🗂️ Part of the gesh75 documentation hub — all my network & AI engineering project docs in one place.
A zero-dependency single-file HTML reference for network engineers — 70,000+ CLI commands across 17 vendors & tools in one searchable, comparable, shareable, deep-linkable interface.
🟢 Live demo: gesh75.github.io/multivendor-cli-configurator 📐 Architecture: docs/ARCHITECTURE.md
Cheatsheet (index.html) —
70,006 commands across 17 vendors & tools, searchable, filterable,
deep-linkable, with three view modes:
- Cards (default) — auto-fit grid grouped by category
- Table — sortable, exportable to CSV / Markdown / JSON / TXT
- Compare — row-aligned, concept-aligned side-by-side matrix. N-vendor aware: defaults to the four with deepest coverage (Cisco · Juniper · Arista · FRR) and you filter to any subset of the 17. The view is paginated and virtualized so it stays fast even across the full corpus.
Each command card has:
- Copy / + CLI / See equivalents ↗ — usual operations
- 🔧 Automate — for common patterns, opens a drawer showing the NETCONF XML, ncclient Python snippet, and Ansible task pre-filled with the values from your specific command (extracts your IP, VLAN, ASN, etc. via regex and substitutes into vendor-correct templates).
- 🔐 Secret mode — pick how generated snippets read credentials: Inline
(literals, demo only), .env (python-dotenv, default — safer pasteboard),
or keyring (OS credential store). Toggling re-renders every snippet in
place, with a companion
.env.example/keyring setone-liner alongside.
Opens in any modern browser. No build, no install, zero JS dependencies.
A legacy configurator.html is kept in the repo for archive purposes — a
form-based CLI generator superseded by the cheatsheet's Compare view + Automate
drawer. Not linked from the live site.
All 17 vendors & tools in one table (descending by command count). Network vendors and host/tool surfaces are tagged in the Type column.
| Vendor / Tool | OS / Surface | Type | Commands |
|---|---|---|---|
| Cisco | IOS / IOS-XE (full Master Command List) · ASA 9.24 · NX-OS | Network | 22,145 |
| Arista | EOS | Network | 7,397 |
| VyOS | VyOS (full config tree) | Network | 6,289 |
| Huawei | VRP (bracketed prompts, iStack, Eth-Trunk, OSPF/BGP) | Network | 4,425 |
| Aruba | AOS-CX (1/1/N interfaces, MSTP/RPVST, VSX) |
Network | 4,106 |
| FRR | FRRouting (vtysh) — docs + verified live on a 10-node Docker FRR lab | Network | 3,949 |
| Microsoft | Windows PowerShell networking cmdlets | Host OS | 3,352 |
| Juniper | Junos (MX / EX / QFX / SRX) | Network | 3,217 |
| Extreme | EXOS (VLAN-centric, STP, OSPF, SummitStacking, MLAG, ACLs) | Network | 2,790 |
| Linux | ip / iproute2 / host networking |
Host OS | 2,592 |
| FortiOS | Fortinet (config / set / end blocks, REST cmdb) |
Network | 2,383 |
| Wireshark | tshark capture + display filters |
Tool | 2,130 |
| PAN-OS | Palo Alto firewalls (set rulebase security ..., virtual routers) |
Network | 1,224 |
| Mikrotik | RouterOS (/path syntax, firewall filters, queues) |
Network | 1,216 |
| NVIDIA | Cumulus Linux 5.x with NVUE (nv set/show) |
Network | 1,168 |
| Nokia | SR Linux (declarative) + SR OS (os=sros, classic CLI) |
Network | 1,125 |
| SONiC | OCP / Azure SONiC (Click CLI, show ip ...) |
Network | 459 |
| TOTAL (17) | 70,006 |
By category (top 10): Interfaces 17,490 · Protocols 10,173 · System 7,815 · Troubleshooting 6,513 · Security 4,369 · VLAN 4,208 · Routing 2,806 · BGP 2,153 · Misc 2,018 · OSPF 1,604. Dedicated VXLAN (255) and EVPN (498) categories added.
Modern-ops coverage (new): Telemetry (gNMI/gRPC/NETCONF/RESTCONF) · Automation (on-box Python/eAPI/JSON-RPC) · Provisioning (ZTP/PnP/POAP) · Optics (breakout + transceiver DOM) · Hardening (SSH ciphers/CoPP/MACsec) — spanning Cisco, Juniper, Arista, Nokia SR Linux, NVIDIA Cumulus, SONiC and more.
By role: router 43,008 · switch 22,848 · firewall 4,150.
| Source | Vendor(s) | Commands |
|---|---|---|
| Cisco Press ENCOR / ENARSI Portable Command Guide (Empson + Gargano, 2020) | Cisco | ~1,400 |
| Junos OS CLI Reference (Juniper Networks, official) | Juniper | ~2,000 |
| Day One: Beginner's Guide to Learning Junos + Exploring the Junos CLI | Juniper | ~800 |
| Arista EOS User Guide (Arista Networks, official) | Arista | ~2,800 |
| Cisco Secure Firewall ASA 9.24 CLI Reference (official) | Cisco | ~335 |
| FRR Master CLI Command Reference (docs ∪ live capture from a 10-node Docker FRR lab) | FRR | ~2,230 |
| DCN multivendor corpus — VyOS, Huawei VRP, Aruba AOS-CX, Extreme EXOS, FortiOS, PAN-OS, RouterOS, NVUE, SR Linux, SONiC, plus Microsoft / Linux / Wireshark | Many | ~38,000 |
| Community markdown + hand-curated seed | All | ~600 |
Modern-ops corpus (scripts/parse_modern.py) — telemetry, automation, ZTP, optics/breakout, hardening |
Many | ~75 |
| Cisco IOS Master Command List (official, all-releases index) — full IOS command surface | Cisco | ~17,700 |
Nokia 7750 SR OS Basic System Config Guide (official) — new os=sros surface |
Nokia | ~40 |
All sources are publicly available. The Python pipeline under scripts/ is
reproducible. Two maintenance utilities keep the corpus clean:
scripts/audit_data_quality.py— flags records where description prose has leaked into thetitle/cmdfields, and can quarantine unrecoverable ones.scripts/clean_titles.py— derives clean command labels from thecmdfield for any record whose title is prose. Idempotent; writes.titlebakbackups.scripts/fix_coverage_gaps.py— retags NX-OS/IOS-XE, promotes VXLAN/EVPN cats, collapses STP/VRRP aliases, unescapes placeholders, shortens over-long titles.scripts/expand_thin_vendors.py— curated fills for SONiC, NVIDIA, Huawei, Nokia SR OS, Aruba/Extreme/Mikrotik essentials, and NX-OS/IOS-XE samples.scripts/patch_yang_stack_vendors.py— extends Automate YANG templates to FRR · VyOS · Nokia · Aruba (MY_STACK) and OS-aware Netmiko/Ansible routing.
One static page plus one JSON file. Network engineers use it directly in a
browser; an offline, stdlib-only Python pipeline turns published vendor docs
(and a live FRR lab) into a deduped commands.json; GitHub Pages serves the
artifacts; and generated automation snippets target real devices out-of-band.
flowchart TB
eng["Network Engineers - browse, search, compare"]:::actor
docs["Vendor Docs - Cisco, Junos, EOS, FRR, DCN"]:::source
lab["10-node Docker FRR Lab - live capture"]:::source
subgraph SYS["multivendor-cli-configurator"]
app["index.html - single-file web app"]:::core
data["commands.json - 70,006 records"]:::store
pipe["scripts Python ETL - parse, merge, clean"]:::build
end
pages["GitHub Pages - static host and auto-deploy"]:::ext
devices["Target Devices - Netmiko, Ansible, NETCONF"]:::target
eng -->|"open page"| app
app -->|"fetch once"| data
docs --> pipe
lab --> pipe
pipe -->|"generates"| data
pipe -->|"push to main"| pages
pages -->|"serves"| app
app -.->|"copy snippets - user-run"| devices
classDef actor fill:#0e7490,stroke:#5eead4,color:#fff
classDef source fill:#475569,stroke:#94a3b8,color:#fff
classDef core fill:#15803d,stroke:#39ff14,color:#fff
classDef store fill:#0d9488,stroke:#5eead4,color:#fff
classDef build fill:#a16207,stroke:#ffd152,color:#fff
classDef ext fill:#334155,stroke:#94a3b8,color:#fff
classDef target fill:#b91c1c,stroke:#fb7185,color:#fff
Full diagram set — system context, container/component map, runtime boot sequence, build pipeline, render-dispatch state machine, and the command data model — lives in docs/ARCHITECTURE.md.
- 3 view modes: Cards (default) · Table (sortable, exportable) · Compare (concept-aligned, N-vendor matrix, paginated/virtualized)
- Filter rail: accordion sections for Vendor / OS / Role / Category, with an active-filter chip bar and live counts
- Search prefix operators:
vendor:juniper ospf·os:eos bgp·cat:VLAN·fav: - Cross-vendor "See equivalents ↗" per card — drawer with top-N matches per vendor
- Favorites (★) persisted in localStorage + dedicated filter
- CLI Builder drawer — queue commands across vendors, copy/download as
.txt - Parse Output — paste raw
showoutput, get a structured table - Export menu:
.txt,.md,.csv,.json - Shareable workspace URL — restores filters, view, search, and CLI Builder queue
- Deep-link state:
?cat=BGP&view=compare&v=Juniper - Syntax highlighting with placeholder pills (
[IP],<vlan>, …) - Keyboard:
/search ·c/t/gviews ·bbuilder ·ssidebar ·ffavorites ·Esc - Light/dark mode toggle, persisted
- Accessible & discoverable: valid heading outline,
:focus-visiblerings,aria-livestatus, skip link, plus Open Graph / Twitter / JSON-LD metadata, favicon, web manifest,robots.txtandsitemap.xml
scripts/sources/* # vendor books, docs, exported corpora
│
▼
scripts/parse_*.py # per-source parsers
│
▼
scripts/*.json # intermediate per-source JSON
│
▼
scripts/parse.py / merge_dcn_corpus.py # merge + dedupe across all sources
│
▼
scripts/clean_titles.py # repair prose-in-title records (idempotent)
│
▼
commands.json # single source of truth
│
▼
index.html ←─ fetch('commands.json')
To add a new source:
- Drop the source into
scripts/sources/(gitignored) or add a parser. - Run the relevant
parse_*.py(ormerge_dcn_corpus.py) to regenerate. - Run
python3 scripts/clean_titles.pyandaudit_data_quality.pyto verify quality. - Commit + push to
main— GitHub Pages auto-deploys the live demo.
Single-file HTML, vanilla JS, no framework. Hosted on GitHub Pages. Python 3 + standard library only for the parsing pipeline.
Built and maintained by @gesh75.
