π 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 β 69,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) β
69,854 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,135 |
| Arista | EOS | Network | 7,397 |
| VyOS | VyOS (full config tree) | Network | 6,289 |
| Huawei | VRP (bracketed prompts, iStack, Eth-Trunk, OSPF/BGP) | Network | 4,407 |
| Aruba | AOS-CX (1/1/N interfaces, MSTP/RPVST, VSX) |
Network | 4,096 |
| FRR | FRRouting (vtysh) β docs + verified live on a 10-node Docker FRR lab | Network | 3,947 |
| 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,782 |
| Linux | ip / iproute2 / host networking |
Host OS | 2,592 |
| FortiOS | Fortinet (config / set / end blocks, REST cmdb) |
Network | 2,380 |
| Wireshark | tshark capture + display filters |
Tool | 2,130 |
| PAN-OS | Palo Alto firewalls (set rulebase security ..., virtual routers) |
Network | 1,220 |
| Mikrotik | RouterOS (/path syntax, firewall filters, queues) |
Network | 1,210 |
| NVIDIA | Cumulus Linux 5.x with NVUE (nv set/show) |
Network | 1,153 |
| Nokia | SR Linux (declarative) + SR OS (os=sros, classic CLI) |
Network | 1,101 |
| SONiC | OCP / Azure SONiC (Click CLI, show ip ...) |
Network | 446 |
| TOTAL (17) | 69,854 |
By category (top 10): Interfaces 17,585 Β· Protocols 10,246 Β· System 7,942 Β· Troubleshooting 6,516 Β· Security 4,367 Β· VLAN 4,257 Β· Routing 2,907 Β· BGP 2,339 Β· Misc 2,022 Β· OSPF 1,602.
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,055 Β· switch 22,656 Β· firewall 4,143.
| 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.
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 - 69,854 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.
