Skip to main content

Create SSH Tunnels to your remote hosts and host as an MCP Server for Agentic AI!

Project description

Tunnel Manager

CLI or API | MCP | Agent

PyPI - Version MCP Server PyPI - Downloads GitHub Repo stars GitHub forks GitHub contributors PyPI - License GitHub GitHub last commit (by committer) GitHub pull requests GitHub closed pull requests GitHub issues GitHub top language GitHub language count GitHub repo size GitHub repo file count (file type) PyPI - Wheel PyPI - Implementation

Version: 2.0.1

Documentation — Installation, deployment, usage across the API, CLI, and MCP and agent interfaces are maintained in the official documentation.


Overview

Tunnel Manager is a production-grade Agent and Model Context Protocol (MCP) server designed to interface directly with Create SSH Tunnels to your remote hosts and host as an MCP Server for Agentic AI!.


Key Features

  • Consolidated Action-Routed MCP Tools: Minimizes token overhead and eliminates tool bloat in LLM contexts by grouping methods into optimized, togglable tool modules.
  • Enterprise-Grade Security: Comprehensive support for Eunomia policies, OIDC token delegation, and granular execution context tracking.
  • Integrated Graph Agent: Built-in Pydantic AI agent supporting the Agent Control Protocol (ACP) and standard Web interfaces (AG-UI).
  • Native Telemetry & Tracing: Out-of-the-box OpenTelemetry exports and native Langfuse tracing.

CLI or API

This agent wraps the Create SSH Tunnels to your remote hosts and host as an MCP Server for Agentic AI! API. You can interact with it programmatically or via its integrated execution entrypoints.

Detailed instructions on how to use the underlying API wrappers, extended schema bindings, and developer SDK references are maintained in docs/index.md.


MCP

This server utilizes dynamic Action-Routed tools to optimize token overhead and maximize IDE compatibility.

Available MCP Tools

Auto-generated from the live MCP server — do not edit by hand.

Condensed action-routed tools (default — MCP_TOOL_MODE=condensed)

MCP Tool Toggle Env Var Description
tm_files FILETOOL Advanced file operations on remote hosts.
tm_hosts HOSTTOOL Manage the local host alias inventory.
tm_inventory INVENTORYTOOL Bulk inventory operations against YAML host groups.
tm_operations OPERATIONSTOOL Operation lifecycle and session management.
tm_remote REMOTETOOL Single-host SSH operations with shared connection params.
tm_security SECURITYTOOL Security scanning and compliance.
tm_system SYSTEMTOOL Remote system intelligence via SSH.

Verbose 1:1 API-mapped tools (MCP_TOOL_MODE=verbose or both)

6 per-operation tools — one per public API method (click to expand)
MCP Tool Toggle Env Var Description
tunnel_manager_add_host HOST_MANAGERTOOL Invoke the add_host operation.
tunnel_manager_get_host HOST_MANAGERTOOL Invoke the get_host operation.
tunnel_manager_list_hosts HOST_MANAGERTOOL Invoke the list_hosts operation.
tunnel_manager_load_inventory HOST_MANAGERTOOL Invoke the load_inventory operation.
tunnel_manager_remove_host HOST_MANAGERTOOL Invoke the remove_host operation.
tunnel_manager_save_inventory HOST_MANAGERTOOL Invoke the save_inventory operation.

7 action-routed tool(s) (default) · 6 verbose 1:1 tool(s). Each is enabled unless its <DOMAIN>TOOL toggle is set false; MCP_TOOL_MODE selects the surface (condensed default · verbose 1:1 · both). Auto-generated — do not edit.

Detailed tool schemas, parameter shapes, and validation constraints are preserved in docs/mcp.md.

Dynamic Tool Selection & Visibility

This MCP server supports dynamic toolset selection and visibility filtering at runtime. This allows you to restrict the set of exposed tools in order to prevent blowing up the LLM's context window.

You can configure tool filtering via multiple input channels:

  • CLI Arguments: Pass --tools or --toolsets (or their disabled counterparts --disabled-tools and --disabled-toolsets) during startup.
  • Environment Variables: Define standard environment variables:
    • MCP_ENABLED_TOOLS / MCP_DISABLED_TOOLS
    • MCP_ENABLED_TAGS / MCP_DISABLED_TAGS
  • HTTP SSE Request Headers: Pass custom headers during transport initialization:
    • x-mcp-enabled-tools / x-mcp-disabled-tools
    • x-mcp-enabled-tags / x-mcp-disabled-tags
  • HTTP SSE Request Query Parameters: Append query parameters directly to your transport connection URL:
    • ?tools=tool1,tool2
    • ?tags=tag1

When query strings or parameters are supplied, an LLM-free Knowledge Graph resolution layer (using DynamicToolOrchestrator) matches query intents against known tool tags, names, or descriptions, with safe fallback and automated 24-hour background cache refreshing.


MCP Configuration Examples

Install the slim [mcp] extra. All examples install tunnel-manager[mcp] — the MCP-server extra that pulls only the FastMCP / FastAPI tooling (agent-utilities[mcp]). It deliberately excludes the heavy agent runtime (pydantic-ai, the epistemic-graph engine, dspy, llama-index), so uvx / container installs are far smaller. Use the full [agent] extra only when you need the integrated Pydantic AI agent.

stdio Transport (local IDEs — Cursor, Claude Desktop, VS Code)

{
  "mcpServers": {
    "tunnel-manager-mcp": {
      "command": "uvx",
      "args": [
        "--from",
        "tunnel-manager[mcp]",
        "tunnel-manager-mcp"
      ],
      "env": {
        "MCP_TOOL_MODE": "condensed",
        "FILETOOL": "True",
        "HOSTTOOL": "True",
        "INVENTORYTOOL": "True",
        "OPERATIONSTOOL": "True",
        "REMOTETOOL": "True",
        "SECURITYTOOL": "True",
        "SYSTEMTOOL": "True",
        "TUNNEL_CERTIFICATE": "",
        "TUNNEL_IDENTITY_FILE": "~/.ssh/id_ed25519",
        "TUNNEL_INVENTORY": "",
        "TUNNEL_INVENTORY_GROUP": "all",
        "TUNNEL_MAX_THREADS": "6",
        "TUNNEL_PARALLEL": "False",
        "TUNNEL_PASSWORD": "",
        "TUNNEL_PROXY_COMMAND": "",
        "TUNNEL_REMOTE_HOST": "",
        "TUNNEL_REMOTE_PORT": "22",
        "TUNNEL_USERNAME": "",
        "XDG_CONFIG_HOME": ""
      }
    }
  }
}

Streamable-HTTP Transport (networked / production)

{
  "mcpServers": {
    "tunnel-manager-mcp": {
      "command": "uvx",
      "args": [
        "--from",
        "tunnel-manager[mcp]",
        "tunnel-manager-mcp",
        "--transport",
        "streamable-http",
        "--port",
        "8000"
      ],
      "env": {
        "TRANSPORT": "streamable-http",
        "HOST": "0.0.0.0",
        "PORT": "8000",
        "MCP_TOOL_MODE": "condensed",
        "FILETOOL": "True",
        "HOSTTOOL": "True",
        "INVENTORYTOOL": "True",
        "OPERATIONSTOOL": "True",
        "REMOTETOOL": "True",
        "SECURITYTOOL": "True",
        "SYSTEMTOOL": "True",
        "TUNNEL_CERTIFICATE": "",
        "TUNNEL_IDENTITY_FILE": "~/.ssh/id_ed25519",
        "TUNNEL_INVENTORY": "",
        "TUNNEL_INVENTORY_GROUP": "all",
        "TUNNEL_MAX_THREADS": "6",
        "TUNNEL_PARALLEL": "False",
        "TUNNEL_PASSWORD": "",
        "TUNNEL_PROXY_COMMAND": "",
        "TUNNEL_REMOTE_HOST": "",
        "TUNNEL_REMOTE_PORT": "22",
        "TUNNEL_USERNAME": "",
        "XDG_CONFIG_HOME": ""
      }
    }
  }
}

Alternatively, connect to a pre-deployed Streamable-HTTP instance by url:

{
  "mcpServers": {
    "tunnel-manager-mcp": {
      "url": "http://localhost:8000/tunnel-manager-mcp/mcp"
    }
  }
}

Deploying the Streamable-HTTP server via Docker:

docker run -d \
  --name tunnel-manager-mcp-mcp \
  -p 8000:8000 \
  -e TRANSPORT=streamable-http \
  -e HOST=0.0.0.0 \
  -e PORT=8000 \
  -e MCP_TOOL_MODE=condensed \
  -e FILETOOL=True \
  -e HOSTTOOL=True \
  -e INVENTORYTOOL=True \
  -e OPERATIONSTOOL=True \
  -e REMOTETOOL=True \
  -e SECURITYTOOL=True \
  -e SYSTEMTOOL=True \
  -e TUNNEL_CERTIFICATE="" \
  -e TUNNEL_IDENTITY_FILE=~/.ssh/id_ed25519 \
  -e TUNNEL_INVENTORY="" \
  -e TUNNEL_INVENTORY_GROUP=all \
  -e TUNNEL_MAX_THREADS=6 \
  -e TUNNEL_PARALLEL=False \
  -e TUNNEL_PASSWORD="" \
  -e TUNNEL_PROXY_COMMAND="" \
  -e TUNNEL_REMOTE_HOST="" \
  -e TUNNEL_REMOTE_PORT=22 \
  -e TUNNEL_USERNAME="" \
  -e XDG_CONFIG_HOME="" \
  knucklessg1/tunnel-manager:mcp

Auto-generated from the code-read env surface (MCP_TOOL_MODE + package vars) — do not edit.

Additional Deployment Options

tunnel-manager can also run as a local container (Docker / Podman / uv) or be consumed from a remote deployment. The Deployment guide has full, copy-paste mcp_config.json for all four transports — stdio, streamable-http, local container / uv, and remote URL:

  • Local container / uv — launch the server from mcp_config.json via uvx, docker run, or podman run, or point at a local streamable-http container by url.
  • Remote URL — connect to a server deployed behind Caddy at http://tunnel-manager-mcp.arpa/mcp using the "url" key.

Inventory

tunnel-manager works from a single shared YAML inventory that maps short host aliases (e.g. r820) to their SSH connection details. Every ecosystem surface reads the same file — the HostManager API, the tunnel-manager CLI, the MCP server, container-manager-mcp (its cm_* host aliases), and the ssh-bootstrap skill — so you define your fleet once.

  • Location~/.config/agent-utilities/inventory.yml (.yml preferred). A legacy inventory.yaml at the same path is still read when no .yml exists, so existing installs keep working. Override with TUNNEL_INVENTORY.

  • Manage it with the inventory subcommand:

    tunnel-manager inventory init     # write a commented inventory.yml template (--force to overwrite)
    tunnel-manager inventory doctor   # validate hosts/groups; --fix migrates legacy .yaml -> .yml
    tunnel-manager inventory show     # print the resolved path + host/group summary
    

Full schema, every host field, the copy-paste template, and override options live in the Inventory guide.


Environment Variables

Package environment variables

Variable Example Description
HOST 0.0.0.0
PORT 8000
TRANSPORT stdio options: stdio, streamable-http, sse
ENABLE_OTEL True
OTEL_EXPORTER_OTLP_ENDPOINT http://localhost:8080/api/public/otel
OTEL_EXPORTER_OTLP_PUBLIC_KEY pk-...
OTEL_EXPORTER_OTLP_SECRET_KEY sk-...
OTEL_EXPORTER_OTLP_PROTOCOL http/protobuf
EUNOMIA_TYPE none options: none, embedded, remote
EUNOMIA_POLICY_FILE mcp_policies.json
EUNOMIA_REMOTE_URL http://eunomia-server:8000
TUNNEL_IDENTITY_FILE ~/.ssh/id_ed25519
DEBUG False
PYTHONUNBUFFERED 1
TUNNEL_REMOTE_HOST default remote host (e.g. 192.168.1.10)
TUNNEL_REMOTE_PORT 22 default SSH port
TUNNEL_USERNAME default SSH username
TUNNEL_PASSWORD default SSH password (prefer key-based auth)
TUNNEL_CERTIFICATE path to an SSH certificate file
TUNNEL_PROXY_COMMAND SSH ProxyCommand for jump-host/bastion connections
TUNNEL_INVENTORY path to the inventory file (defaults to XDG config path)
TUNNEL_INVENTORY_GROUP all inventory host group to target
TUNNEL_PARALLEL False run host operations in parallel
TUNNEL_MAX_THREADS 6 max worker threads when TUNNEL_PARALLEL=True
XDG_CONFIG_HOME base config dir (defaults to ~/.config) for inventory resolution
HOSTTOOL True Grouped condensed-surface toggles, one per register__tools registrar.
REMOTETOOL True
INVENTORYTOOL True
OPERATIONSTOOL True
SYSTEMTOOL True
FILETOOL True
SECURITYTOOL True

Inherited agent-utilities variables (apply to every connector)

Variable Example Description
MCP_TOOL_MODE condensed Tool surface: condensed
MCP_ENABLED_TOOLS Comma-separated tool allow-list
MCP_DISABLED_TOOLS Comma-separated tool deny-list
MCP_ENABLED_TAGS Comma-separated tag allow-list
MCP_DISABLED_TAGS Comma-separated tag deny-list
MCP_CLIENT_AUTH Outbound MCP auth (oidc-client-credentials for fleet calls)
OIDC_CLIENT_ID OIDC client id (service-account auth)
OIDC_CLIENT_SECRET OIDC client secret (service-account auth)
MCP_URL http://localhost:8000/mcp URL of the MCP server the agent connects to
PROVIDER openai LLM provider for the agent
MODEL_ID gpt-4o Model id for the agent
ENABLE_WEB_UI True Serve the AG-UI web interface

32 package + 12 inherited variable(s). Auto-generated from .env.example + the shared agent-utilities set — do not edit.

Every variable the server reads, grouped by purpose. See .env.example for a copy-paste starting point.

SSH connection & credentials

Variable Description Default
TUNNEL_IDENTITY_FILE Path to the SSH private key ~/.ssh/id_ed25519
TUNNEL_USERNAME SSH username
TUNNEL_PASSWORD SSH password (when not using a key)
TUNNEL_CERTIFICATE Path to an SSH certificate
TUNNEL_REMOTE_HOST Default remote host
TUNNEL_REMOTE_PORT Default remote SSH port 22
TUNNEL_PROXY_COMMAND SSH ProxyCommand for jump hosts

Inventory & parallelism

Variable Description Default
TUNNEL_INVENTORY Path to the shared inventory (.yml preferred, .yaml legacy fallback) ~/.config/agent-utilities/inventory.yml
TUNNEL_INVENTORY_GROUP Default inventory host group
TUNNEL_PARALLEL Run bulk operations in parallel
TUNNEL_MAX_THREADS Max concurrent SSH worker threads
XDG_CONFIG_HOME Base config dir used to resolve the inventory ~/.config

MCP server / transport

Variable Description Default
TRANSPORT stdio, streamable-http, or sse stdio
HOST Bind host (HTTP transports) 0.0.0.0
PORT Bind port (HTTP transports) 8000
MCP_TOOL_MODE Tool surface: condensed, verbose, or both condensed
MCP_ENABLED_TOOLS / MCP_DISABLED_TOOLS Comma-separated tool allow/deny list
MCP_ENABLED_TAGS / MCP_DISABLED_TAGS Comma-separated tag allow/deny list
DEBUG Verbose logging False
PYTHONUNBUFFERED Unbuffered stdout (recommended in containers) 1

Tool toggles

Each action-routed tool can be disabled individually via its toggle env var (set to false). The full list is in the Available MCP Tools table above (HOSTTOOL, REMOTETOOL, INVENTORYTOOL, OPERATIONSTOOL, SYSTEMTOOL, FILETOOL, SECURITYTOOL).

Telemetry & governance

Variable Description Default
ENABLE_OTEL Enable OpenTelemetry export True
OTEL_EXPORTER_OTLP_ENDPOINT OTLP collector endpoint
OTEL_EXPORTER_OTLP_PUBLIC_KEY / OTEL_EXPORTER_OTLP_SECRET_KEY OTLP auth keys
OTEL_EXPORTER_OTLP_PROTOCOL OTLP protocol (e.g. http/protobuf)
EUNOMIA_TYPE Authorization mode: none, embedded, remote none
EUNOMIA_POLICY_FILE Embedded policy file mcp_policies.json
EUNOMIA_REMOTE_URL Remote Eunomia server URL

Agent runtime (full [agent] runtime only)

Variable Description Default
MCP_URL URL of the MCP server the agent connects to http://localhost:8000/mcp
PROVIDER LLM provider (e.g. openai) openai
MODEL_ID Model id (e.g. gpt-4o) gpt-4o
ENABLE_WEB_UI Serve the AG-UI web interface True

Agent

This repository features a fully integrated Pydantic AI Graph Agent. It communicates over the Agent Control Protocol (ACP) and interacts seamlessly with the Agent Web UI (AG-UI) and Terminal interface.

Running the Agent CLI

To start the interactive command-line agent:

# Set credentials
export TUNNEL_IDENTITY_FILE="your_value"
export DEBUG="your_value"
export PYTHONUNBUFFERED="your_value"

# Run the agent server
tunnel-manager-agent --provider openai --model-id gpt-4o

Docker Compose Orchestration

The following docker/agent.compose.yml configures the Agent, Web UI, and Terminal Interface together:

version: '3.8'

services:
  tunnel-manager-mcp:
    image: knucklessg1/tunnel-manager:mcp
    container_name: tunnel-manager-mcp
    hostname: tunnel-manager-mcp
    restart: always
    env_file:
      - ../.env
    environment:
      - PYTHONUNBUFFERED=1
      - HOST=0.0.0.0
      - PORT=8000
      - TRANSPORT=streamable-http
    ports:
      - "8000:8000"
    healthcheck:
      test: ["CMD", "python3", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/health')"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 10s
    logging:
      driver: json-file
      options:
        max-size: "10m"
        max-file: "3"

  tunnel-manager-agent:
    image: knucklessg1/tunnel-manager:latest
    container_name: tunnel-manager-agent
    hostname: tunnel-manager-agent
    restart: always
    depends_on:
      - tunnel-manager-mcp
    env_file:
      - ../.env
    command: [ "tunnel-manager-agent" ]
    environment:
      - PYTHONUNBUFFERED=1
      - HOST=0.0.0.0
      - PORT=9002
      - MCP_URL=http://tunnel-manager-mcp:8000/mcp
      - PROVIDER=${PROVIDER:-openai}
      - MODEL_ID=${MODEL_ID:-gpt-4o}
      - ENABLE_WEB_UI=True
      - ENABLE_OTEL=True
    ports:
      - "9002:9002"
    healthcheck:
      test: ["CMD", "python3", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:9002/health')"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 10s
    logging:
      driver: json-file
      options:
        max-size: "10m"
        max-file: "3"

Detailed graph node architecture explanations, custom skill configurations, and agentic trace guides are available in docs/agent.md.


Security & Governance

Built directly upon the enterprise-ready agent-utilities core, standard security parameters are fully supported:

Access Control & Policy Enforcement

  • Eunomia Policies: Fine-grained, policy-driven tool authorization. Supports none, local embedded (mcp_policies.json), or centralized remote modes.
  • OIDC Token Delegation: Compliant with RFC 8693 token exchange for flowing authenticating user credentials from Web UI / ACP → Agent → MCP.
  • Scoped Credentials: Execution context runs restricted to the specific caller identity.

Runtime Security Grid

Feature Functionality Enablement
Tool Guard Sensitivity inspection with human-in-the-loop validation Enabled by default
Prompt Injection Defense Input scanning, repetition monitoring, and recursive loop blocks Enabled by default
Context Safety Guard Stuck-loop detectors and contextual overflow preemptive alerts Enabled by default

Installation

Pick the extra that matches what you want to run:

Extra Installs Use when
tunnel-manager[mcp] Slim MCP server only (agent-utilities[mcp] — FastMCP/FastAPI) You only run the MCP server (smallest install / image)
tunnel-manager[agent] Full agent runtime (agent-utilities[agent,logfire] — Pydantic AI + the epistemic-graph engine) You run the integrated agent
tunnel-manager[all] Everything (mcp + agent + logfire) Development / both surfaces
# MCP server only (recommended for tool hosting — slim deps)
uv pip install "tunnel-manager[mcp]"

# Full agent runtime (Pydantic AI + epistemic-graph engine)
uv pip install "tunnel-manager[agent]"

# Everything (development)
uv pip install "tunnel-manager[all]"      # or: python -m pip install "tunnel-manager[all]"

Container images (:mcp vs :agent)

One multi-stage docker/Dockerfile builds two right-sized images, selected by --target:

Image tag Build target Contents Entrypoint
knucklessg1/tunnel-manager:mcp --target mcp tunnel-manager[mcp]slim, no engine/pydantic-ai/dspy/llama-index/tree-sitter tunnel-manager-mcp
knucklessg1/tunnel-manager:latest --target agent (default) tunnel-manager[agent]full agent runtime + epistemic-graph engine tunnel-manager-agent
docker build --target mcp   -t knucklessg1/tunnel-manager:mcp    docker/   # slim MCP server
docker build --target agent -t knucklessg1/tunnel-manager:latest docker/   # full agent

docker/mcp.compose.yml runs the slim :mcp server; docker/agent.compose.yml runs the agent (:latest) with a co-located :mcp sidecar.

Knowledge-graph database (epistemic-graph)

The full agent ([agent] / :latest) embeds the epistemic-graph engine (pulled in transitively via agent-utilities[agent]). For production — or to share one knowledge graph across multiple agents — run epistemic-graph as its own database container and point the agent at it instead of embedding it. Deployment recipes (single-node + Raft HA), connection config, and the full database architecture (with diagrams) are documented in the epistemic-graph deployment guide. The slim [mcp] server does not require the database.


Documentation

The complete documentation is published as the official documentation site and is the recommended reference for installation, deployment, and day-to-day operation.

Page Contents
Installation pip, source, extras, prebuilt Docker image
Inventory the shared inventory.yaml — default location, how to create it, formats, overrides
Deployment run the MCP and agent servers, Compose, Caddy + Technitium, env config
Usage the MCP tools, the HostManager / Tunnel API, the CLI
Overview ecosystem role, distributed SSH swarm scaling, MCP configuration
Teleport Architecture certificate, proxy and cross-OS connection model
Concepts concept registry (CONCEPT:TUN-*)

AGENTS.md is the canonical contributor/agent guidance.

Repository Owners

GitHub followers GitHub User's stars


Contribute

Contributions are welcome! Please ensure code quality by executing local checks before submitting pull requests:

  • Format code using ruff format .
  • Lint code using ruff check .
  • Validate type-safety with mypy .
  • Execute test suites using pytest

Deploy with agent-os-genesis

This package can be provisioned for you — skill-guided — by the agent-os-genesis universal skill (its single-package deploy mode): it picks your install method, seeds secrets to OpenBao/Vault (or .env), trusts your enterprise CA, registers the MCP server, and verifies it — the same machinery that stands up the whole Agent OS, narrowed to just this package. Ask your agent to "deploy tunnel-manager with agent-os-genesis".

Install mode Command
Bare-metal, prod (PyPI) uvx tunnel-manager-mcp · or uv tool install tunnel-manager
Bare-metal, dev (editable) uv pip install -e ".[all]" · or pip install -e ".[all]"
Container, prod deploy knucklessg1/tunnel-manager:latest via docker-compose / swarm / podman / podman-compose / kubernetes
Container, dev (editable) deploy docker/compose.dev.yml (source-mounted at /src; edits live on restart)

Secrets are read-existing + seeded via vault_sync — you are only prompted for what's missing.

Project details


Release history Release notifications | RSS feed

This version

2.0.1

Download files

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

Source Distribution

tunnel_manager-2.0.1.tar.gz (111.3 kB view details)

Uploaded Source

Built Distribution

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

tunnel_manager-2.0.1-py3-none-any.whl (104.3 kB view details)

Uploaded Python 3

File details

Details for the file tunnel_manager-2.0.1.tar.gz.

File metadata

  • Download URL: tunnel_manager-2.0.1.tar.gz
  • Upload date:
  • Size: 111.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for tunnel_manager-2.0.1.tar.gz
Algorithm Hash digest
SHA256 455c6b2913f0c0a698f02b56cb089ae1fbd178f1f0cd16132c3e0ca08d16815e
MD5 c3093ceed200b2863935a702366bf1c7
BLAKE2b-256 2f8ea11bd4a6a251e8664c68c2b3a8dd11b09a5d8f7c161e090f77b7d80dd8ad

See more details on using hashes here.

File details

Details for the file tunnel_manager-2.0.1-py3-none-any.whl.

File metadata

  • Download URL: tunnel_manager-2.0.1-py3-none-any.whl
  • Upload date:
  • Size: 104.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for tunnel_manager-2.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 26cc826a90a48cb30fb3bcbf55fd2caa4bff1ea8d8c52851d6d239aafec70388
MD5 7cf20a59a2c0fbb069a7f9af7f310e14
BLAKE2b-256 d69228596585acf1ceab28a509f0779c60c5efb47b8f8b55cf813deb54e733ce

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