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)
| 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)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| 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 logRelease 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 logSecurity 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.
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 logA 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.