Kerbside, a SPICE VDI proxy
Kerbside is a SPICE VDI protocol proxy: a pure-Python control plane (the REST API and the daemon) that supervises a Rust SPICE proxy. It sits out the front of your cloud and provides VDI access to VMs running inside the cluster, determining what VM to proxy your traffic to based on the password you provide when connecting. Unlike layer 4 proxies that pass through unparsed traffic, Kerbside understands the SPICE protocol itself — the proxy terminates TLS, drives the SPICE link handshake, and is an enforcing SPICE application firewall, on by default.
Kerbside currently knows how to proxy console sessions for Shaken Fist, OpenStack, and oVirt. It will mostly be of interest to operators of those clouds who want to offer users rich native SPICE desktops (high resolution, multi-monitor, USB passthrough, audio) instead of HTML5-transcoded consoles. OpenStack is probably the best documented integration at the moment because there are patches to add deployment support for Kerbside to Kolla-Ansible in the kerbside-patches repository.
Kerbside is currently considered experimental: it works, but it has not yet seen large scale deployment.
Installation
pip install kerbside
This installs the Python control plane and a matching prebuilt
kerbside-proxy binary wheel automatically (x86_64 and aarch64). See
docs/installation.md
for the packaging details, OS-level dependencies, and deployment pointers.
Documentation
In the docs/ directory:
- Documentation Index - What Kerbside is, the broker model, and the connection flow
- Kerbside for oVirt - The first of the per-deployment guides: what Kerbside replaces in an oVirt deployment, and how to set it up
- Installation - Packages, OS dependencies, and deployment
- Configuration - Configuration reference, including the SPICE firewall knobs
- Console Sources - Configuring sources.yaml for Shaken Fist, OpenStack, and oVirt
- Proxy Architecture - Internal proxy design, state machine, and firewall
- Database Schema - Tables, columns, and relationships
- SPICE Protocol Documentation - Protocol fundamentals, link handshake, per-channel message formats, compression, capabilities, USB redirection, and the VD agent protocol (under
docs/spice/) - Development - Migrations, building and packaging the Rust proxy, dependency pinning, review tracking, vendored web assets, and debugging
- Testing - Running the test suite, CI tiers and lane mechanics, Ryll harnesses, the oVirt console probe, Tempest, and load-test images
Project reference files:
- ARCHITECTURE.md - High-level system architecture
- AGENTS.md - AI agent guidelines for working on this codebase
- .claude/ - Claude Code project instructions and skills (database migrations, adding source types)
License
Apache-2.0
Release files for kerbside 0.5.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 | |
|---|---|---|---|
| kerbside-0.5.0.tar.gz | 2.5 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| kerbside-0.5.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 4.3 MB
Release files / kerbside-0.5.0.tar.gz
| Download URL | kerbside-0.5.0.tar.gz |
|---|---|
| Size | 2.5 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c3db4147048fcd3e6d3d72239bd35eae587b3ae205eba49cd63e154d6efb4199
|
|
BLAKE2b-256 checksum How to use checksums |
3601f316696fc28d2fa9e406fb013dc2c1059c852b2cdfa770aa08f10e3664ec
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Aug 16, 2026.
Transparency logRelease files / kerbside-0.5.0-py3-none-any.whl
| Download URL | kerbside-0.5.0-py3-none-any.whl |
|---|---|
| Size | 1.8 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1a1a0c97d0b46862a44afa4bcfb4283348dc8b63e65e861471b9527ed4fdf799
|
|
BLAKE2b-256 checksum How to use checksums |
05d13a7cf8cd982f5cc2ad751f315d2e0b07ddf475e2c5f344ebffec69b10c57
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Aug 16, 2026.
Transparency log