{"library":"paramiko-expect","title":"paramiko-expect","description":"paramiko-expect is an expect-like extension for the Paramiko SSH library, enabling scripts to interact with remote hosts via a true SSH connection in an interactive, automated fashion. It's particularly useful for automating interactions with command-line applications, shell scripts, or network devices that require 'expect'-style responses to prompts. The current version is 0.3.5, and releases are infrequent, with the last update in late 2022.","language":"python","status":"active","last_verified":"Sun May 17","install":{"commands":["pip install paramiko-expect"],"cli":null},"imports":["from paramiko_expect import SSHClientInteraction"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import paramiko\nimport os\nfrom paramiko_expect import SSHClientInteraction\n\nHOSTNAME = os.environ.get('SSH_HOSTNAME', 'localhost')\nUSERNAME = os.environ.get('SSH_USERNAME', 'testuser')\nPASSWORD = os.environ.get('SSH_PASSWORD', 'testpass')\nPROMPT = r'.*\\$ ' # Example prompt for a Linux shell ending with $ or #\n\nclient = paramiko.SSHClient()\nclient.load_system_host_keys()\nclient.set_missing_host_key_policy(paramiko.AutoAddPolicy())\n\ntry:\n    client.connect(hostname=HOSTNAME, username=USERNAME, password=PASSWORD, timeout=10)\n    print(f\"SSH connection established to {HOSTNAME}\")\n\n    with SSHClientInteraction(client, timeout=10, display=True) as interact:\n        # Wait for the initial prompt after connection\n        interact.expect(PROMPT)\n        print(f\"Initial prompt: {interact.last_match}\")\n\n        # Send a command and wait for the prompt again\n        interact.send('uname -a')\n        interact.expect(PROMPT)\n        print(f\"Uname output:\\n{interact.current_output_clean}\")\n\n        # Send another command\n        interact.send('echo Hello paramiko-expect!')\n        interact.expect(PROMPT)\n        print(f\"Echo output:\\n{interact.current_output_clean}\")\n\nfinally:\n    client.close()\n    print(\"SSH connection closed.\")","lang":"python","description":"This quickstart demonstrates how to establish an SSH connection using Paramiko, then wrap the SSHClient object with SSHClientInteraction to send commands and expect specific prompts. It prints the cleaned output of each command.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-17","installed_version":"0.3.5","pypi_latest":"0.3.5","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":2.8,"avg_import_s":0.01,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"paramiko-expect","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.01,"mem_mb":0.7,"disk_size":"41.8M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"paramiko-expect","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":3,"import_time_s":0.01,"mem_mb":0.7,"disk_size":"42M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"paramiko-expect","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.01,"mem_mb":0.7,"disk_size":"44.6M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"paramiko-expect","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.7,"import_time_s":0.01,"mem_mb":0.7,"disk_size":"45M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"paramiko-expect","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.01,"mem_mb":0.5,"disk_size":"36.3M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"paramiko-expect","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.4,"import_time_s":0.01,"mem_mb":0.5,"disk_size":"37M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"paramiko-expect","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.01,"mem_mb":0.7,"disk_size":"36.0M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"paramiko-expect","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.4,"import_time_s":0.01,"mem_mb":0.5,"disk_size":"36M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"paramiko-expect","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.01,"mem_mb":0.7,"disk_size":"42.1M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"paramiko-expect","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":3.4,"import_time_s":0.01,"mem_mb":0.7,"disk_size":"42M"}]}}