Skip to content

Network automation that simply works

Modern Python CLI toolkit for network device automation – concurrent, type-safe, multi-vendor automation in minutes.

Bazing fast execution

Execute sequences of commands across devices and groups of devices. Perform configuration backups and safely issue up/downgrades.

Multi-vendor support

Works with MikroTik, Cisco, Arista, Juniper, and more. Vendor-aware sequences and backups with platform-specific optimizations.

Flexible configuration

YAML/CSV configuration support with tags, groups, and inheritance. Environment variables for credentials and extensive customization options.

Production ready

Comprehensive error handling, secure credential management, extensive testing, and battle-tested in real network environments.

Rich CLI output

Beautiful terminal output with selectable modes, progress indicators, colored syntax highlighting, and structured data visualization.

Type-safe internals

Built with modern Python, full type safety with mypy, rich and pydantic 2 data models.

60-second success

First, install networka:

uv tool install git+https://github.com/narrowin/networka.git

Goal: run a command against a device without creating any files.

nw run --platform mikrotik_routeros 192.0.2.10 "/system/identity/print" --interactive-auth

Expected output (trimmed):

Interactive authentication mode enabled
Username: admin
Password: ********
Executing on 192.0.2.10: /system/identity/print
name="MikroTik"
Command completed successfully
Networka Setup Demo

Networka setup and command execution demonstration

Key features

  • Multi-vendor automation (MikroTik, Cisco, Arista, Juniper, …)
  • Flexible configuration (YAML/CSV), tags and groups
  • Vendor-aware sequences and backups
  • Rich CLI output with selectable output modes
  • Type-safe internals (mypy), clean CLI (Typer + Rich)

Installation

Start with the Installation, then explore the User guide for config, environment variables, output modes, results, and more.

Python 3.11+ is required.