Skip to main content

🐸 Guac Bridge

OpenAI-compatible endpoints and SSH through Guacamole.

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 web terminal connection. Replace SERVER_URL 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://SERVER_URL" --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://SERVER_URL" --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.

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

Other Remarks

Both bridges support --ca-file company-ca.pem for a custom certificate authority and --transport http to use Guacamole's HTTP tunnel instead of websockets. If the server-side 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.1

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.1
File Size Uploaded Provenance Actions
guac_bridge-0.2.1.tar.gz 24.8 kB With provenance Details for guac_bridge-0.2.1.tar.gz

Built distribution (wheel)

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

Total release size: 45.9 kB

Release files / guac_bridge-0.2.1.tar.gz

Download URL guac_bridge-0.2.1.tar.gz
Size 24.8 kB
Tags Source
SHA-256 checksum
How to use checksums
590ca6f7cb96ec8313bc632d82c8ceae7e5609a80b3cfe6807cbe989b5d76542
BLAKE2b-256 checksum
How to use checksums
07012daa503d58c05de3ec33fee2c5d35c36198c3b47c4ad28fa9f0dbdb54d8d
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.1-py3-none-any.whl

Download URL guac_bridge-0.2.1-py3-none-any.whl
Size 21.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b81e78025c85e41f5f18ea9e69aee31aca87a3b4598fe8aeb8d5ce0124a36603
BLAKE2b-256 checksum
How to use checksums
add535f1dbc7b86f32264d06a235a86d04fd8a861a8a769e77554b068665a149
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.1

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.1.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