🎉 hyperglass 2.0 is here! This documentation is still in development, though.

Once you’ve gotten started with a basic configuration, you’ll probably want to customize the look and feel of hyperglass by changing the logo or color scheme. Fortunately, there are a lot ways to customize hyperglass.

Configuration Files

File NameDocsPurpose
configConfig File DocsApplication-wide configuration such as logging, web UI customization, etc.
devicesDevices File DocsYour devices and their associated configurations.
directivesDirectives File DocsCustom directives (commands).

File Extensions
All the examples in the docs are provided in YAML format, but TOML, JSON, and Python files are also supported.

Using a Python File

When using a Python file for a hyperglass configuration, one of the following methods may be used:

Define a Function Named main

Example: Using a Python function to define configuration parameters
def main():
  return {
    "org_name": "Your Organization Name",
    "web": {
      "theme": {
        "colors": {
          "blue": "#0000ff",
# The main function can also be an async function.
async def main():
  config = await some_function_to_fetch_config()
  return config

Define a Dictionary Named main

Example: Using a Python dictionary to define configuration parameters
main = {
    "org_name": "Your Organization Name",
    "web": {
      "theme": {
        "colors": {
          "blue": "#0000ff",

Built-in Directives

hyperglass ships with predefined directives for the following platforms:

  • SupportedArista EOS
  • SupportedBIRD
  • SupportedCisco IOS
  • SupportedCisco NX-OS
  • SupportedCisco IOS-XR
  • SupportedFRRouting
  • SupportedHuawei VRP
  • SupportedJuniper Junos
  • SupportedMikrotik
  • SupportedNokia SR OS
  • SupportedOpenBGPD
  • SupportedTNSR
  • SupportedVyOS

All built in directives require that the following attrs be defined on each device using the directive:

source4IPv4 address used to source Ping and Traceroute commands.
source6IPv6 address used to source Ping and Traceroute commands.

If you do not utilize IPv6 in your network, you’ll need to create your own directive that only has IPv4 commands.