SkillAgentSearch skills...

Netdriver

NetDriver is a project designed for connecting network devices and executing CLI commands. Developers can make calls through the HTTP RESTful interface, which simplifies the development of network device automation and enhances security.

Install / Use

/learn @OpenSecFlow/Netdriver
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

NetDriver

<img width="1050" height="600" alt="Netdriver Logo" src="https://github.com/user-attachments/assets/14acbef4-ab66-4777-9434-e0f194967a71" />

<a name="top"></a>

Python uv License Build & Test Contributions Welcome Last Commit Release Release Date Discord

⭐ Star us on GitHub — your support motivates us a lot! 🙏😊

Share Share Share Share Share

Table of Contents

About

NetDriver is an advanced open-source framework for automating network devices. Its main purpose is to use a high-level HTTP RESTful interface to make it easier to execute low-level commands on different networking equipment. This architecture makes it easier to develop generalised automation solutions and integrate third parties. Its design is centred on features that guarantee operational efficiency and stability, such as advanced session management that keeps persistent connections to enhance system performance and a command queue to avoid configuration conflicts during concurrent operations. Its plugin architecture enables simple extensibility to support a broad and changing range of vendor hardware, and its asynchronous foundation provides desirable concurrency.

NetDriver adopts a Monorepo architecture consisting of multiple sub-projects:

  • netdriver-agent - Provides REST APIs for device connectivity testing and command execution
  • netdriver-simunet - Simulates network device terminals for automated testing and other scenarios requiring device emulation

Features:

  • 🌐 HTTP RESTful API : Easy integration with third-party platforms
  • 🔄 Session Management : Customizable session persistence for improved efficiency, eliminating repeated connections per command
  • 📋 Command Queue : Ensures sequential command execution on devices, preventing configuration errors and failures caused by concurrent modifications
  • AsyncSSH Foundation : Superior concurrency capabilities through asynchronous SSH implementation
  • 🔌 Plugin Architecture : Simplified and accelerated development of new vendor support

Comparison

| Feature | NetDriver | Netmiko | |------------|:--------:|:----:| | HTTP RESTful API for third-party integration | ✅ | ❌ | | Session persistence with customizable duration | ✅ | ❌ | | Python-based implementation | ✅ | ✅ | | Command execution queue to prevent concurrent conflicts | ✅ | ❌ | | Plugin architecture for easier device support development | ✅ | ✅ | | Standard CLI automation | ✅ | ✅ | | Open source | ✅ | ✅ | | AsyncSSH-based architecture for high concurrency | ✅ | ❌ |

Architecture

┌─────────────────┐
│  Your App/Tool  │
└────────┬────────┘
         │ HTTP API
         ▼
┌─────────────────┐
│ NetDriver Agent │
└────────┬────────┘
         │ SSH
    ┌────┴────┐
    │         │
    ▼         ▼
┌────────┐ ┌────────┐
│SimuNet │ │ Real   │
│Devices │ │Devices │
└────────┘ └────────┘

Support Devices

NetDriver currently supports a wide range of network devices from major vendors. The plugin architecture makes it easy to add support for new devices.

Supported Vendors and Models

| Vendor | Model | Device Type | Description | |--------|-------|-------------|-------------| | Cisco | ASA | Firewall | Cisco Adaptive Security Appliance | | | ASR | Router | Cisco Aggregation Services Router | | | Catalyst | Switch | Cisco Catalyst Series Switches | | | ISR | Router | Cisco Integrated Services Router | | | Nexus | Switch | Cisco Nexus Data Center Switches | | Huawei | CE | Switch | Huawei CloudEngine Series Switches | | | USG | Firewall | Huawei Unified Security Gateway | | Juniper | EX | Switch | Juniper EX Series Ethernet Switches | | | MX | Router | Juniper MX Series Universal Routing Platforms | | | QFX | Switch | Juniper QFX Series Data Center Switches | | | SRX | Firewall | Juniper SRX Series Services Gateways | | Fortinet | FortiGate | Firewall | Fortinet FortiGate Next-Generation Firewalls | | Palo Alto | PA | Firewall | Palo Alto Networks Next-Generation Firewalls | | Arista | EOS | Switch | Arista Networks EOS-based Switches | | H3C | SecPath | Firewall | H3C SecPath Series Firewalls | | | VSR | Router | H3C Virtual Services Router | | Check Point | Security Gateway | Firewall | Check Point Security Gateway | | Hillstone | SG | Firewall | Hillstone StoneOS-based Security Gateways | | DPTech | FW | Firewall | DPTech Firewall Series | | Topsec | NGFW | Firewall | Topsec Next-Generation Firewalls | | Venustech | USG | Firewall | Venustech Unified Security Gateway | | Maipu | NSS | Switch | Maipu Network Security Switch | | Array | AG | Gateway | Array Application Gateway | | Chaitin | CTD-SG | Gateway | Chaitin SafeLine Security Gateway | | Qianxin | NSG | Gateway | Qianxin Next-Generation Security Gateway | | Leadsec | PowerV | Firewall | Leadsec PowerV Series |

Plugin Architecture

The plugin system allows for easy extension and customization:

  • Vendor Base Plugins: Common functionality shared across device models from the same vendor
  • Model-Specific Plugins: Device-specific implementations for unique features and behaviors
  • Pattern Matching: Automatic plugin selection based on vendor/model/version detection
  • Extensible: Add new device support by creating a new plugin class

Adding Device Support

To add support for a new device, create a plugin in components/netdriver/plugins/{vendor}/ that inherits from the vendor base class or Base plugin. See Development Guidelines for more information.

Quick Start

We can first run the Simunet service to obtain simulated network devices for testing, then use the Agent to connect and execute commands. Of course, if you have real devices that are on the support devices, you can skip the Simunet guide and start using the Agent service directly.

Contributions and Requests

Your contributions matter!Our project can always be better so we would be happy to recive your help!Please take a look at contributing guide before submiting a pull request! For questions, issues, or feature requests, please open an issue on the project repository.

License

This project is licensed under the Apache License 2.0.

Contacts

We look forward to assisting you and ensuring your experience with our products is successful and enjoyable!

Join our groupchats to recive latest updates and engage in discussions!

Discord [![LinkedIn](https://img.shields.io/badge/Linkedin-white.svg?logo=data:image/svg%2bxml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIwLjQ0NyAyMC40NTJoLTMuNTU0di01LjU2OWMwLTEuMzI4LS4wMjctMy4wMzctMS44NTItMy4wMzctMS44NTMgMC0yLjEzNiAxLjQ0NS0yLjEzNiAyLjkzOXY1LjY2N0g5LjM1MVY5aDMuNDE0djEuNTYxaC4wNDZjLjQ3Ny0uOSAxLjYzNy0xLjg1IDMuMzctMS44NSAzLjYwMSAwIDQuMjY3IDIuMzcgNC4yNjcgNS40NTV2Ni4yODZ6TTUuMzM3IDcuNDMzYTIuMDYyIDIuMDYyIDAgMCAxLTIuMDYzLTIuMDY1IDIuMDY0IDIuMDY0IDAgMSAxIDIuMDYzIDIuMDY1em0xLjc4MiAxMy4wMTlIMy41NTVWOWgzLjU2NHYxMS40NTJ6TTIyLjIyNSAwSDEuNzcxQy43OTIgMCAwIC43NzQgMCAxLjcyOXYyMC41NDJDMCAyMy4yMjcuNzkyIDI0IDEuNzcxIDI0aDIwLjQ1MUMyMy4yIDI0IDI0IDIzLjIyNyAyNCAyMi4yNzFWMS43MjlDMjQgLjc3NCAyMy4yID

Related Skills

View on GitHub
GitHub Stars62
CategoryDevelopment
Updated8h ago
Forks5

Languages

Python

Security Score

100/100

Audited on Apr 1, 2026

No findings