Skip to main content

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/enum models 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 DaemonRequest JSON to POST /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)

Source distribution for goxlrutil-api 0.0.2
File Size Uploaded
goxlrutil_api-0.0.2.tar.gz 29.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for goxlrutil-api 0.0.2
File Interpreter ABI Platform
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 log

Release 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

Release history Release notifications | RSS feed

This release

0.0.2 This release

2 release files

0.0.1

2 release files

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