Skip to main content

🐸 Guac Bridge

SSH and OpenAI-compatible endpoints through Guacamole.

Expose a remote server’s SSH service or OpenAI-compatible API on your computer through its Guacamole web terminal. Use your usual SSH tools or LLM applications with the local port.

First-time setup

On Windows x86-64, run the installer from Releases. Select Add Guac Bridge to my user PATH if desired. On Linux x86-64, extract the native release archive.

Alternatively, install on either client with uv:

uv tool install guac-bridge
uv tool update-shell

No installation is needed on the server. The client uploads its bundled Linux x86-64 helper through the Guacamole terminal and reuses it on later connections. The server needs a normal shell and core utilities, with an executable user cache directory; no Python, uv, root access or internet connection is required there.

Open the desired Guacamole terminal in your browser and copy its full URL. Use it as CONNECTION_URL below.

SSH bridge

Connect

guac-bridge ssh --url CONNECTION_URL

Enter your Guacamole username and password. In another terminal:

ssh -p 2222 SERVER_USERNAME@127.0.0.1

Keep the bridge running while connected. Stop it with Ctrl+C.

Use an SSH config

Add to ~/.ssh/config, replacing the URL and both usernames:

Host guac-server
    HostName 127.0.0.1
    Port 2222
    User SERVER_USERNAME

Match originalhost guac-server exec "guac-bridge ssh --ensure-running --save-password --url CONNECTION_URL --username GUACAMOLE_USERNAME --port %p"
Match all

Connect with ssh guac-server. The hook starts or reuses the background bridge. On first login it prompts in the calling console and saves your password to the system credential store after successful authentication.

The bridge stays running after SSH exits. Check or stop it with:

guac-bridge ssh --status --port 2222
guac-bridge ssh --stop --port 2222

Use a dedicated local port for each destination. Windows users can add --show-console to see the background bridge in a separate console.

LLM bridge

guac-bridge llm --url CONNECTION_URL

Enter your Guacamole credentials. The default local port is 8000, forwarding the server’s HTTP endpoint at 127.0.0.1:8000, including streamed responses. Use --target-port for a different server port and --port for a different local port.

Keep the bridge running while using the application. Stop it with Ctrl+C.

The commands guac-ssh-client and guac-llm-client also work. Run any client with --help for credential storage, certificates, background operation and transport tuning.

Contribution

The native CLI, helper and shared transport live in one Cargo package. Python packaging uses maturin to install the same executables.

See Building, Testing and Benchmarking. Submit issues and pull requests on GitHub.

Architecture

Each bridge opens a Guacamole WebSocket connection, checks or uploads its bundled helper, and runs it inside the remote terminal. Both bridge types forward TCP streams with bounded flow control; HTTP headers, bodies and streaming responses pass through unchanged. The helper exits with the session; only its cached executable remains.

See Connection details for diagrams, loopback interfaces and process lifetimes.

Metadata

Release files for guac-bridge 1.0.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 guac-bridge 1.0.0
File Size Uploaded Provenance Actions
guac_bridge-1.0.0.tar.gz 696.7 kB With provenance Details for guac_bridge-1.0.0.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for guac-bridge 1.0.0
File Interpreter ABI Platform Actions
guac_bridge-1.0.0-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details for guac_bridge-1.0.0-py3-none-win_amd64.whl
guac_bridge-1.0.0-py3-none-manylinux_2_28_x86_64.whl Python 3 none Linux glibc 2.28+ x86-64 Details for guac_bridge-1.0.0-py3-none-manylinux_2_28_x86_64.whl

Total release size: 18.8 MB

Release files / guac_bridge-1.0.0.tar.gz

Download URL guac_bridge-1.0.0.tar.gz
Size 696.7 kB
Tags Source
SHA-256 checksum
How to use checksums
064c1c234162dd3eea0f5decc6536121619a18db6b298d544da3bf59a9d22748
BLAKE2b-256 checksum
How to use checksums
3f6ea8f084d56c65605eacfb3ad93dddd1bee92d9c8a5fbda7a660e675f91ec5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 1, 2026.

Transparency log

Release files / guac_bridge-1.0.0-py3-none-win_amd64.whl

Download URL guac_bridge-1.0.0-py3-none-win_amd64.whl
Size 8.6 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
49be0cf4110f8eb59d6410b8f71b885ceab019373ae60e472f6524345da4543c
BLAKE2b-256 checksum
How to use checksums
6eefe83f252bf1bc58e39e8508384a3b052305779fdb7aa48ab974cc4f4f59e6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 1, 2026.

Transparency log

Release files / guac_bridge-1.0.0-py3-none-manylinux_2_28_x86_64.whl

Download URL guac_bridge-1.0.0-py3-none-manylinux_2_28_x86_64.whl
Size 9.5 MB
Tags Linux glibc 2.28+ x86-64 Python 3
SHA-256 checksum
How to use checksums
3eebfdc4ebe61ea345eac842cd8d7da85d3cd5b4e3177ea32d636b9287f0a299
BLAKE2b-256 checksum
How to use checksums
60e865b511dda6c4a93ff7e49219a2a1842d1ed05b3af95f70b075072a5ae4fb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 1, 2026.

Transparency log

Security for guac-bridge 1.0.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 3 files in this release have been uploaded with provenance metadata.

Select from 3 files

Attestation for guac_bridge-1.0.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 Nov 1, 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