goxlrutil-api
Async Python library for communicating with the GoXLR Utility daemon.
Features
- Three transports: Unix socket, HTTP, WebSocket
- Async-first with optional sync wrappers
- Live state cache: incoming JSON Patch events are applied automatically
- Typed API:
dataclass/enummodels for all commands and responses
Installation
pip install goxlrutil-api
# With demo webapp extras:
pip install "goxlrutil-api[webapp]"
Quick start
import asyncio
from goxlrutil_api import GoXLRClient
from goxlrutil_api.transport import UnixSocketTransport
async def main():
transport = UnixSocketTransport()
async with GoXLRClient(transport) as client:
status = await client.get_status()
for serial, mixer in status.mixers.items():
print(serial, mixer.hardware.device_type)
asyncio.run(main())
Transports
| Class | Usage |
|---|---|
UnixSocketTransport |
Local daemon via /tmp/goxlr.socket |
HttpTransport |
HTTP POST /api/command (local or remote) |
WebSocketTransport |
WebSocket /api/websocket – also receives live Patch events |
Demo webapp
# With Poetry (development):
poetry install --all-extras
poetry run uvicorn apps.demo_webapp.main:app --reload
# Or with pip:
pip install "goxlrutil-api[webapp]"
uvicorn apps.demo_webapp.main:app --reload
Open http://localhost:8000
By default the webapp connects via WebSocket (ws://localhost:14564/api/websocket),
which enables live patch events – including button presses, volume changes, and fader updates.
To force Unix socket instead (no live events, request/response only):
GOXLR_USE_WS=0 poetry run uvicorn apps.demo_webapp.main:app --reload
The app starts even if the GoXLR daemon is not running – it will show a "not connected" status.
Documentation
- Wiki — full API reference, examples, and integration guide
- USAGE.md — single-file version of the same documentation
Development
poetry install
poetry run pytest
poetry run ruff check src
poetry run pyright
Protocol notes
- Unix socket uses a 4-byte big-endian length-prefixed JSON frame.
- HTTP sends the same
DaemonRequestJSON toPOST /api/command. - WebSocket wraps requests in
{"id": <uint>, "data": <DaemonRequest>}. - State updates from WebSocket are RFC 6902 JSON Patch operations.
Metadata
Release files for goxlrutil-api 0.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| goxlrutil_api-0.0.2.tar.gz | 29.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| goxlrutil_api-0.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 64.1 kB
Release files / goxlrutil_api-0.0.2.tar.gz
| Download URL | goxlrutil_api-0.0.2.tar.gz |
|---|---|
| Size | 29.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e67fb1f33d517c6e396d536181d0dd97936290da6bfb582e606eef43cc6ec923
|
|
BLAKE2b-256 checksum How to use checksums |
51231d02fe2d155d4aa31b2dc8920f269c2ca6f10549232e9ffd09a1ee746df2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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 Apr 18, 2026.
Transparency logRelease files / goxlrutil_api-0.0.2-py3-none-any.whl
| Download URL | goxlrutil_api-0.0.2-py3-none-any.whl |
|---|---|
| Size | 34.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5b1ff718f80f92bf3f713c7b7945353e7984b8f6eb4c8f6eb38dafe060f25eca
|
|
BLAKE2b-256 checksum How to use checksums |
85832b1a16c0d4fc5ff63661079c3517a5d0526a8156bac1792cad4ec8762b55
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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 Apr 18, 2026.
Transparency log