Terminal UI for helixgen: tone library, setlists, and Line 6 Helix Stadium device control.
Project description
helixgen-tui
A terminal UI for helixgen: manage your tone library, setlists, and a Line 6 Helix Stadium over the LAN — from the terminal, no editor app.
⚠️ Unofficial tool — use at your own risk. Not affiliated with or endorsed by Line 6 / Yamaha. Line 6, Helix, and HX are trademarks of Yamaha Guitar Group, Inc. The MIT LICENSE disclaims all warranty.
Repo family
| Repo | What it is |
|---|---|
| helixgen-core | The helixgen Python package: libs, CLI, MCP server |
| helixgen | The Claude Code plugin — /tone, /setup, /device skills + marketplace |
| helixgen-tui (this repo) | Terminal UI for tones, setlists, and device control |
Install
uv tool install helixgen-tui
# or
pipx install helixgen-tui
Then run it as helixgen-tui or the shorter hxg.
Usage
The app is the librarian: browse and manage tones, setlists, and device sync, plus setting the active tone on the hardware — all inside a tabbed shell:
| Tab | Key | What it does |
|---|---|---|
| Library | 1 |
Browse tones, view details, filter, make a tone active, sync it to the device |
| Setlists | 2 |
Manage setlist membership and order, sync a setlist or all setlists |
| IRs | 3 |
Push local IRs to the device, rename/delete/prune device IRs |
| Device | 4 |
Device info, active tone, backup/restore, lock status, retry connect |
Press ? anywhere for the full key-binding reference, q to quit.
Offline-first: the app works fully with no device on the LAN — Library,
Setlists, and IRs stay browsable from local state. Device-mutating actions
(activate, sync, push, backup, restore, ...) simply refuse with a reason in
the status bar when no Helix is reachable, and reconnect automatically (or
via r on the Device tab) once one is.
Design principle: slots are invisible. The UI speaks in tones and
setlists only — slot addresses like 5A are an implementation detail the
user never sees or types.
Note: device restore and device-side tone delete are not yet wired — they await core-side verbs (a restore that carries its target preset, and a single-pool-preset delete). The UI surfaces a clear reason until then. See
docs/BACKLOG.md#6.
The long-term goal is full parity with the Helix Stadium desktop app
(tracked in helixgen-core's docs/stadium-app-parity.md); this v1 ships the
librarian, with more screens (signal-flow editor, global settings,
tuner/meters) to follow. See docs/BACKLOG.md.
Development
Managed with uv; the package layout is
src/helixgen_tui/, depending on helixgen[device] from PyPI (never vendor
core source here).
uv run pytest # test suite
uv run ruff check . # lint
uv run helixgen-tui # run the app
uv build # sdist + wheel
CI (GitHub Actions) runs ruff + pytest on every PR and push to main;
publish.yml releases to PyPI via OIDC trusted publishing on v* tags.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file helixgen_tui-0.2.0.tar.gz.
File metadata
- Download URL: helixgen_tui-0.2.0.tar.gz
- Upload date:
- Size: 42.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6c18fcf6eed351b5489b7d8efeec46c9c3a21d3a904289f3bec9c9e3f9d7c9eb
|
|
| MD5 |
463699a201318ec7ac29679449d7c1c6
|
|
| BLAKE2b-256 |
f5784d90e9b00dca23e5f06793a528ca8d1832193c3018cd84b3fda7256bb4d6
|
Provenance
The following attestation bundles were made for helixgen_tui-0.2.0.tar.gz:
Publisher:
publish.yml on sheax0r/helixgen-tui
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
helixgen_tui-0.2.0.tar.gz -
Subject digest:
6c18fcf6eed351b5489b7d8efeec46c9c3a21d3a904289f3bec9c9e3f9d7c9eb - Sigstore transparency entry: 2195084008
- Sigstore integration time:
-
Permalink:
sheax0r/helixgen-tui@7675f99e8ee88ce476faeab5f9d74d4d8593a27d -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/sheax0r
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@7675f99e8ee88ce476faeab5f9d74d4d8593a27d -
Trigger Event:
push
-
Statement type:
File details
Details for the file helixgen_tui-0.2.0-py3-none-any.whl.
File metadata
- Download URL: helixgen_tui-0.2.0-py3-none-any.whl
- Upload date:
- Size: 48.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7daa98652a02f038670554c0fce933c860f0091c263bd88f8abfe020a1aabb80
|
|
| MD5 |
03b1d4ad776fbbccb3ce62fff323f248
|
|
| BLAKE2b-256 |
2d935e1ae118d007fea61e40769a60f735e6c222511bbf478794651cacd01496
|
Provenance
The following attestation bundles were made for helixgen_tui-0.2.0-py3-none-any.whl:
Publisher:
publish.yml on sheax0r/helixgen-tui
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
helixgen_tui-0.2.0-py3-none-any.whl -
Subject digest:
7daa98652a02f038670554c0fce933c860f0091c263bd88f8abfe020a1aabb80 - Sigstore transparency entry: 2195084016
- Sigstore integration time:
-
Permalink:
sheax0r/helixgen-tui@7675f99e8ee88ce476faeab5f9d74d4d8593a27d -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/sheax0r
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@7675f99e8ee88ce476faeab5f9d74d4d8593a27d -
Trigger Event:
push
-
Statement type: