Skip to main content

Connpy is a SSH/Telnet connection manager and automation module

Project description

App Logo

Connpy

Connpy is a powerful Connection Manager and Network Automation Platform for Linux, Mac, and Docker. It provides a unified interface for SSH, SFTP, Telnet, kubectl, Docker pods, and AWS SSM.

The v6 release introduces the AI Copilot, an interactive terminal assistant that understands your network context and helps you manage your infrastructure more intelligently.

🤖 AI Copilot (New in v6)

The AI Copilot is deeply integrated into your terminal workflow:

  • Terminal Context Awareness: The Copilot can "see" your screen output, helping you diagnose errors or analyze command results in real-time.
  • Hybrid Multi-Agent System: Automatically escalates complex tasks between the Network Engineer (execution) and the Network Architect (strategy).
  • MCP Integration: Dynamically load tools from external providers (6WIND, AWS, etc.) via the Model Context Protocol.
  • Interactive Chat: Launch with conn ai for a collaborative troubleshooting session.

Core Features

  • Multi-Protocol: Native support for SSH, SFTP, Telnet, kubectl, Docker exec, and AWS SSM.
  • Context Management: Set regex-based contexts to manage specific nodes across different environments (work, home, clients).
  • Advanced Inventory:
    • Organize nodes in folders (@folder) and subfolders (@subfolder@folder).
    • Use Global Profiles (@profilename) to manage shared credentials easily.
    • Bulk creation, copying, moving, and export/import of nodes.
  • Modern UI: High-performance terminal experience with prompt-toolkit, including:
    • Fuzzy search integration with fzf.
    • Advanced tab completion.
    • Syntax highlighting and customizable themes.
  • Automation Engine: Run parallel tasks and playbooks on multiple devices with variable support.
  • Plugin System: Build and execute custom Python scripts locally or on a remote gRPC server.
  • gRPC Architecture: Fully decoupled Client/Server model for distributed management.
  • Privacy & Sync: Local-first encrypted storage (RSA/OAEP) with optional Google Drive backup.

Installation

pip install connpy

Run it in Windows/Linux using Docker

git clone https://github.com/fluzzi/connpy
cd connpy
docker compose build

# Run it like a native app (completely silent)
docker compose run --rm --remove-orphans connpy-app [command]

# Pro Tip: Add this alias for a 100% native experience from any folder
alias conn='docker compose -f /path/to/connpy/docker-compose.yml run --rm --remove-orphans connpy-app'

🔒 Privacy & Integration

Privacy Policy

Connpy is committed to protecting your privacy:

  • Local Storage: All server addresses, usernames, and passwords are encrypted and stored only on your machine. No data is transmitted to our servers.
  • Data Access: Data is used solely for managing and automating your connections.

Google Integration

Used strictly for backup:

  • Backup: Sync your encrypted configuration with your Google Drive account.
  • Scoped Access: Connpy only accesses its own backup files.

Usage

usage: conn [-h] [--add | --del | --mod | --show | --debug] [node|folder] [--sftp]
       conn {profile,move,copy,list,bulk,export,import,ai,run,api,plugin,config,sync,context} ...

Basic Examples:

# Add a folder and subfolder
conn --add @office
conn --add @datacenter@office

# Add a node with a profile
conn --add server1@datacenter@office --profile @myuser

# Connect to a node (fuzzy match)
conn server1

# Start the AI Copilot
conn ai

# Run a command on all nodes in a folder
conn run @office "uptime"

🔌 Plugin System

Connpy supports a robust plugin architecture where scripts can run transparently on a remote gRPC server.

Structure

Plugins must be Python files containing:

  • Class Parser: Defines argparse arguments.
  • Class Entrypoint: Execution logic.
  • Class Preload: (Optional) Hooks and modifications to the core app.

See the Plugin Requirements section for full technical details.


Plugin Requirements for Connpy

Remote Plugin Execution

When Connpy operates in remote mode, plugins are executed transparently on the server:

  • The client automatically downloads the plugin source code (Parser class context) to generate the local argparse structure and provide autocompletion.
  • The execution phase (Entrypoint class) is redirected via gRPC streams to execute in the server's memory.
  • You can manage remote plugins using the --remote flag.

General Structure

  • The plugin script must define specific classes:
    1. Class Parser: Handles argparse.ArgumentParser initialization.
    2. Class Entrypoint: Main execution logic (receives args, parser, and connapp).
    3. Class Preload: (Optional) For modifying core app behavior or registering hooks.

Preload Modifications and Hooks

You can customize the behavior of core classes using hooks:

  • modify(method): Alter class instances (e.g., connapp.config, connapp.ai).
  • register_pre_hook(method): Logic to run before a method execution.
  • register_post_hook(method): Logic to run after a method execution.

Command Completion Support

Plugins can provide intelligent tab completion:

  1. Tree-based Completion (Recommended): Define _connpy_tree(info) returning a navigation dictionary.
  2. Legacy Completion: Define _connpy_completion(wordsnumber, words, info).

⚙️ gRPC Service Architecture

Connpy can operate in a decoupled mode:

  1. Start the API (Server): conn api -s 50051
  2. Configure the Client:
    conn config --service-mode remote
    conn config --remote-host localhost:50051
    

All inventory management and execution will now happen on the server.


🐍 Automation Module (API)

You can use connpy as a Python library for your own scripts.

Basic Execution

import connpy
router = connpy.node("uniqueName", "1.1.1.1", user="admin")
router.run(["show ip int brief"])
print(router.output)

Parallel Tasks with Variables

import connpy
config = connpy.configfile()
nodes = config.getitem("@office", ["router1", "router2"])
routers = connpy.nodes(nodes, config=config)

variables = {
    "router1@office": {"id": "1"},
    "__global__": {"mask": "255.255.255.0"}
}
routers.run(["interface lo{id}", "ip address 10.0.0.{id} {mask}"], variables)

AI Programmatic Use

import connpy
myai = connpy.ai(connpy.configfile())
response = myai.ask("What is the status of the BGP neighbors in the office?")

For detailed developer notes and plugin hooks documentation, see the Documentation.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

connpy-6.0.0b9.tar.gz (171.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

connpy-6.0.0b9-py3-none-any.whl (195.9 kB view details)

Uploaded Python 3

File details

Details for the file connpy-6.0.0b9.tar.gz.

File metadata

  • Download URL: connpy-6.0.0b9.tar.gz
  • Upload date:
  • Size: 171.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for connpy-6.0.0b9.tar.gz
Algorithm Hash digest
SHA256 14d82bf1b83784f68b3fee3f22fbd4295556738bccb11fb35b3fdafe8aea75f7
MD5 af2cdc85595d3edbcb26583b8d281ef5
BLAKE2b-256 d042f5ec4cd20863d1871609f1802e5f6d7bdb2f3af6f92ba303a316131d6664

See more details on using hashes here.

File details

Details for the file connpy-6.0.0b9-py3-none-any.whl.

File metadata

  • Download URL: connpy-6.0.0b9-py3-none-any.whl
  • Upload date:
  • Size: 195.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for connpy-6.0.0b9-py3-none-any.whl
Algorithm Hash digest
SHA256 37c7fd530e912fb53ddae4d41d19eed53a35d926de4e5b2dd9b236c44a608383
MD5 0fc38581096a4858204cbd2d2dffe8a6
BLAKE2b-256 beed37e033ff5de992bc1daa14fc23ac5942bf01e004c4ba70bed13ebe0785e1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page