Skip to main content

English | 日本語

Downloads PyPI PyPI versions GitHub Discussion Ruff Tests

Simulated Network Operating Systems - SIMNOS

"Reality is merely an illusion, albeit a very persistent one."

~ Albert Einstein

SIMNOS simulates Network Operating Systems interactions. You can simulate network devices like Cisco IOS or Huawei SmartAX interactions over SSH with little effort. This project is mainly intended for testing and development purposes.

Documentation | Examples | Platforms

Origin

SIMNOS is an independent project derived from FakeNOS, created by Denis Mulyalin and maintained by Enric Perpinyà Pitarch. After significant divergence in tooling, platforms, and architecture, it was rebranded as SIMNOS to avoid confusion with the upstream project.

AI Transparency: AI-assisted development (Claude Code, Codex, Gemini, etc.) is actively used in this project. All AI-generated changes are reviewed by a human maintainer before merging.

Key differences from FakeNOS:

  • Package name: simnos (on PyPI)
  • Package manager: uv (migrated from Poetry)
  • Linter/Formatter: Ruff (migrated from Black/Pylint)
  • Python support: 3.13 / 3.14
  • CI: Modernized GitHub Actions workflow
  • NOS platforms: 5 additional platforms enabled (brocade_fastiron, ciena_saos, fortinet, juniper_screenos, ruckus_fastiron)
  • Paramiko: 4.0+ (currently resolving to 5.0.0) with DH Group Exchange server-mode workaround

Why?

Crucial aspect of writing applications or scripts for Network Automation is testing, often testing done using physical or virtual instances of network appliances running certain version of Network Operating System (NOS). That approach, while gives best integration results, in many cases carries a lot of overhead to setup, run and tear down as well as putting significant burden on compute and storage resource utilization.

Other approach is to mock underlying libraries methods to fool applications under testing into believing that it is getting output from real devices. That approach works very well for unit testing, but fails to simulate such aspects as connection establishment and handling.

SIMNOS positions itself somewhere in the middle between full integration testing and testing that mocks device interactions. SIMNOS allows to create NOS plugins to produce pre-defined output to test applications behavior while running servers to establish connections with.

What?

SIMNOS can:

  • Run thousands of servers to stress test applications
  • Simulate Network Operating Systems Command Line Interface (CLI) interactions
  • Provide high-level API to create custom NOS plugins
  • Run in docker container to simplify integration with your infrastructure
  • Make use of SIMNOS CLI tool for quick run and prototype simulations
  • Works on Windows, Mac and Linux under Python 3.13 and 3.14

How?

Send input and get the output - this is how we interact with many Network Operating Systems, SIMNOS allows to pre-define the output to sent in response to certain input commands, making it ideal for isolated feature testing.

SIMNOS is a micro-kernel framework that can be extended using plugins. The core is kept small and optimized while most of the functionality offloaded to plugins.

SIMNOS has these pluggable systems:

  • Server Plugins - plugins responsible for running various servers to connect with
  • Shell Plugins - plugins to simulate command line interface shell
  • NOS plugins - plugins to simulate Network Operating System commands

What not?

SIMNOS is a simulator, it does not emulate any of Network Control, Data or Management planes, it merely takes the commands as input and responds with predefined output.

Acknowledgments

SIMNOS is built upon the work of FakeNOS. We are grateful to the original creators and contributors:

Inspired by and borrowed from

  • sshim - library for testing and debugging SSH automation clients
  • PythonSSHServerTutorial - tutorial on creating paramiko based SSH server
  • fake-switches - pluggable switch/router command-line simulator
  • ncs-netsim - tool to simulate a network of devices
  • cisshgo - concurrent SSH server to emulate network equipment for testing purposes
  • scrapli-replay - tools to enable easy testing of SSH programs and to create semi-interactive SSH servers

Metadata

Release files for simnos 2.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for simnos 2.4.0
File Size Uploaded Provenance Actions
simnos-2.4.0.tar.gz 542.3 kB With provenance Details for simnos-2.4.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for simnos 2.4.0
File Interpreter ABI Platform Actions
simnos-2.4.0-py3-none-any.whl Python 3 none any Details for simnos-2.4.0-py3-none-any.whl

Total release size: 1.1 MB

Release files / simnos-2.4.0.tar.gz

Download URL simnos-2.4.0.tar.gz
Size 542.3 kB
Tags Source
SHA-256 checksum
How to use checksums
f52f3710a90cb053b3c0f48c3a634c2303d6318ca21db3afffb400030dcd2ac4
BLAKE2b-256 checksum
How to use checksums
0eb4a3b3ae5d94aeb055ad7fcba107314b5a46c08f92171036083c8cd58384b1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 10, 2026.

Transparency log

Release files / simnos-2.4.0-py3-none-any.whl

Download URL simnos-2.4.0-py3-none-any.whl
Size 571.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
943bcedbdb87b3150e718704b35ef598f35949b59d7dd86fcc62fba966c1650d
BLAKE2b-256 checksum
How to use checksums
a604a2a23586426b4014d876bfd3c4be4e46e5ff8ceeeab32a2bbdfe0bc155e9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 10, 2026.

Transparency log

Security for simnos 2.4.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for simnos-2.4.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 10, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page