Skip to main content

Guac Bridge

Access an OpenAI-compatible endpoint or SSH service on a server through its Guacamole web terminal.

Install

Install on both your client computer and the server. Requires Python 3.11+ and uv.

uv tool install guac-bridge
uv tool update-shell

The client starts the appropriate server helper automatically. Keep the client running while using the bridge; stop it with Ctrl+C.

For the commands below, copy the full URL from your browser after opening the desired Guacamole connection. Replace CLIENT_ID and YOUR_USERNAME with your connection details. Your Guacamole password is prompted.

Usage: LLM bridge

The server's OpenAI-compatible endpoint should be available at http://127.0.0.1:8000.

On your client computer:

guac-llm-client --url "https://guacamole.example.com/#/client/CLIENT_ID" --username YOUR_USERNAME

Configure your LLM application with:

Setting Value
OpenAI base URL http://127.0.0.1:8000/v1
Chat completions URL http://127.0.0.1:8000/v1/chat/completions
Model A model ID from /v1/models
API key The key required by the server endpoint, or a placeholder if none is required

Requests, streamed responses, and the application's API key are forwarded to the server endpoint.

Use --upstream http://127.0.0.1:9000 for a different server-side endpoint (omit /v1), or --port 18000 for a different local port.

Usage: SSH bridge

The server's SSH service should be reachable at 127.0.0.1:22.

On your client computer:

guac-ssh-client --url "https://guacamole.example.com/#/client/CLIENT_ID" --username YOUR_USERNAME

In another local terminal:

ssh -p 2222 serveruser@127.0.0.1

Use the server's SSH username and its usual password or SSH key. SSH authentication and host-key verification are handled by your SSH client. SCP and SFTP work through the same local port.

To forward the server's OpenAI-compatible endpoint through SSH:

ssh -p 2222 -N -L 8000:127.0.0.1:8000 serveruser@127.0.0.1

Use --target-port to select a different server-side SSH port and --port to change the local listener.

Both bridges support --ca-file company-ca.pem for a custom certificate authority and --transport http to use Guacamole's HTTP tunnel. If a helper is installed outside ~/.local/bin/, pass its full path with --server-command. Run either client with --help for all options.

Contribution

Submit issues and pull requests on GitHub. Include tests for behavior changes.

From a repository checkout, run the test suite in an environment with Bash and PTY support:

uv run python -m unittest discover -s tests -v

Architecture

Each client logs into Guacamole and starts its matching server helper inside the terminal session. Framed, Base64-encoded messages travel through Guacamole's input and output pipes.

Bridge Local listener Server helper
LLM OpenAI-compatible HTTP API Forwards requests and streamed responses to the server endpoint
SSH TCP port for your SSH client Relays bytes to the server's SSH service

Listeners bind to local loopback. Helpers connect to services on the server's loopback interface, so no additional inbound server port is needed. Per-connection flow control bounds buffering; disconnecting Guacamole closes active connections.

Metadata

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

Built distribution (wheel)

Table of built distributions (wheels) for guac-bridge 0.2.0
File Interpreter ABI Platform Actions
guac_bridge-0.2.0-py3-none-any.whl Python 3 none any Details for guac_bridge-0.2.0-py3-none-any.whl

Total release size: 43.2 kB

Release files / guac_bridge-0.2.0.tar.gz

Download URL guac_bridge-0.2.0.tar.gz
Size 23.5 kB
Tags Source
SHA-256 checksum
How to use checksums
956781df3fbd1910f99f8005eb64855423155267aaaf16137ace0b8ae60853f8
BLAKE2b-256 checksum
How to use checksums
b7800e0013a06448cfdcf32b46f6b8fe5281865acae51f30d4df62c2c1f9b678
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 Oct 30, 2026.

Transparency log

Release files / guac_bridge-0.2.0-py3-none-any.whl

Download URL guac_bridge-0.2.0-py3-none-any.whl
Size 19.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c4b3507c8fe957ed508d487679c43b5cac6175b4a11cc60a2afd968061bbf6d0
BLAKE2b-256 checksum
How to use checksums
ffb3b3e686782cfc85c776266788bd29d820a71628a4e7b3fa5b71c200ff4768
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 Oct 30, 2026.

Transparency log

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

Select from 2 files

Attestation for guac_bridge-0.2.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 Oct 30, 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