Skip to content

Device Connections

Network automation means talking to devices — routers, switches, firewalls, controllers — across vendors, protocols, and connection libraries. The neops SDK provides a proxy/plugin architecture that decouples your automation logic from the specifics of how connections are established.

Write your function block once. It works across Cisco IOS, FRR, Junos, Arista EOS, or any other platform that has a registered plugin.

Quick Path

If you just want to connect and run a command:

with VersionProxy.connect(device, fallback_to_default=True) as proxy:
    version = proxy.get_version()

Need a command that isn't a built-in capability? Use get_raw_connection() -- see Best Practices.


In This Section

Guide What you'll learn
Obtaining a Connection get_connection(), the connect() context manager, and error handling
Proxies and Capabilities Capability interfaces, proxy composition, and fallback methods
Plugins Base plugins, platform plugins, and the registration decorator
Writing Capabilities Creating new capability interfaces for custom operations
Writing Plugins Implementing plugins for new vendors or connection libraries
Resolution and Defaults The plugin resolution algorithm, defaults, and ambiguity handling
Architecture Deep Dive ProxyMeta metaclass, method delegation, and fallback generation
Best Practices Connection lifecycle, avoiding collisions, and cleanup patterns

Quick start

For a hands-on introduction, see Connecting to Devices in the Getting Started guide.