Native Shell
Native Shell: AI-generated UI, native in your app, on every platform. Apps on iOS, Android, macOS, Windows and Linux, GPUI apps and web pages load signed, sandboxed TSX modules at run time and draw th
A standalone CLI output parser library for network devices
Translation pending
Developer toolsPythonGitHub @ChartinoLabsOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Muninn is a library that transforms unstructured network device CLI output into structured, type-hinted Python data structures.
Muninn().parse(os, command, output) and you're done.TypedDict return types that describe the parsed data structure, enabling IDE autocompletion and better AI-assisted coding.Muninn can be quickly and easily installed with uv as shown below:
uv add muninn-parsers
Or, if you prefer good old-fashioned pip, you can do so as shown below:
pip install muninn-parsers
Create a Muninn instance and call parse() with an OS identifier, the CLI command, and the raw output. Muninn automatically finds and runs the right parser:
from typing import Any
import muninn
mn = muninn.Muninn()
raw_output = """
Neighbor ID Pri State Dead Time Address Interface
10.1.1.1 1 FULL/DR 00:00:38 192.168.1.1 Ethernet1/1
10.1.1.2 1 FULL/BDR 00:00:33 192.168.1.2 Ethernet1/2
"""
result: dict[str, Any] = mn.parse("nxos", "show ip ospf neighbor", raw_output)
Returns:
{
"10.1.1.1": {
"priority": 1,
"state": "FULL/DR",
"dead_time": "00:00:38",
"address": "192.168.1.1",
"interface": "Ethernet1/1"
},
"10.1.1.2": {
"priority": 1,
"state": "FULL/BDR",
"dead_time": "00:00:33",
"address": "192.168.1.2",
"interface": "Ethernet1/2"
}
}
You can also import a specific parser and call it directly. This gives you access to the parser's TypedDict return type, which enables IDE autocompletion and helps AI coding assistants reason about the structure of the parsed data:
from muninn.parsers.nxos.show_ip_ospf_neighbor import (
ShowIpOspfNeighborParser,
ShowIpOspfNeighborResult,
)
raw_output = """
Neighbor ID Pri State Dead Time Address Interface
10.1.1.1 1 FULL/DR 00:00:38 192.168.1.1 Ethernet1/1
10.1.1.2 1 FULL/BDR 00:00:33 192.168.1.2 Ethernet1/2
"""
result: ShowIpOspfNeighborResult = ShowIpOspfNeighborParser.parse(raw_output)
# IDE autocompletion and type checking work here
Full documentation is available at chartinolabs.github.io/Muninn.
Early development. See the Design Philosophy page for project direction.