Skip to content

gesh75/multivendor-cli-configurator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

49 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

multivendor-cli-configurator β€” architecture

Multivendor Network CLI Tools

πŸ“– Live documentation

Multivendor CLI Configurator β€” live documentation

🌐 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

Architecture


What's here

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 set one-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.


Command coverage

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.


Where the data comes from

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 the title/cmd fields, and can quarantine unrecoverable ones.
  • scripts/clean_titles.py β€” derives clean command labels from the cmd field for any record whose title is prose. Idempotent; writes .titlebak backups.

πŸ›οΈ Architecture

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
Loading

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.


Cheatsheet features

  • 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 show output, 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/g views Β· b builder Β· s sidebar Β· f favorites Β· Esc
  • Light/dark mode toggle, persisted
  • Accessible & discoverable: valid heading outline, :focus-visible rings, aria-live status, skip link, plus Open Graph / Twitter / JSON-LD metadata, favicon, web manifest, robots.txt and sitemap.xml

Pipeline architecture

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:

  1. Drop the source into scripts/sources/ (gitignored) or add a parser.
  2. Run the relevant parse_*.py (or merge_dcn_corpus.py) to regenerate.
  3. Run python3 scripts/clean_titles.py and audit_data_quality.py to verify quality.
  4. Commit + push to main β€” GitHub Pages auto-deploys the live demo.

Tech

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.

About

70,000+ CLI commands across 17 network vendors & tools (Cisco, Juniper, Arista, FRR, VyOS, Huawei, Aruba, Fortinet, Palo Alto, Nokia, Mikrotik, Extreme, NVIDIA, SONiC + PowerShell/Linux/Wireshark). Searchable cheatsheet with concept-aligned N-vendor compare + per-command NETCONF/ncclient/Ansible Automate drawer. Single HTML, zero deps.

Resources

License

Stars

10 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors