---
description: Platforms supported by hyperglass
---

import { Code, Table, Td, Th, Tr } from 'nextra/components';
import { Callout } from 'nextra-theme-docs';
import platforms from '~/platforms.json';

export const NotSupported = () => (
  <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#edae49" viewBox="0 0 16 16">
    <path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z" />
    <path d="M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z" />
  </svg>
);

export const Supported = () => (
  <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#35b246" viewBox="0 0 16 16">
    <path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zm-3.97-3.03a.75.75 0 0 0-1.08.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-.01-1.05z" />
  </svg>
);

export const Platforms = () => (
  <Table>
    <tbody>
      <Tr>
        <Th>Platform Keys</Th>
        <Th>Natively Supported</Th>
      </Tr>
      {platforms.map(([platform, native]) => (
        <Tr key={platform}>
          <Td>
            <Code>{platform}</Code>
          </Td>
          <Td align="center">{native ? <Supported /> : <NotSupported />}</Td>
        </Tr>
      ))}
    </tbody>
  </Table>
);

hyperglass uses [Netmiko](https://github.com/ktbyers/netmiko) to interact with devices via SSH/telnet. [All platforms supported by Netmiko](https://github.com/ktbyers/netmiko/blob/develop/PLATFORMS.md) are supported by hyperglass.

## Netmiko Platforms

<Callout type="info">
  Just because Netmiko supports a given platform doesn't mean it will automatically work with
  hyperglass. hyperglass has a limited number of built in directives (listed below). Any platforms
  other than the ones listed below will require you to [add a custom
  directive](/configuration/examples/add-your-own-command) for each command you wish to make
  available.
</Callout>

<br />

<Platforms />

## Other Platforms

| Platform          | Key    |                             Natively Supported                              |
| :---------------- | :----- | :-------------------------------------------------------------------------: |
| FRRouting         | `frr`  |                                <Supported/>                                 |
| BIRD              | `bird` |                                <Supported/>                                 |
| Any HTTP Endpoint | `http` | [See HTTP Device Docs](/configuration/reference/devices#http-configuration) |
