TRCC — Thermalright LCD/LED cooler control (clean-slate build).
Commands that act on a device take its KEY — the USB VID:PID shown by trcc detect, e.g. 0402:3922 — as the first argument.
trcc [OPTIONS] COMMAND [ARGS]...| Option | Description |
|---|---|
--verbose, -v VERBOSE |
Terminal log verbosity: -v shows INFO, -vv shows DEBUG. Without it the terminal stays quiet (warnings + errors only); the rotating log file always keeps the detail. |
--version, -V |
Print the installed TRCC version and exit. |
trcc apitrcc daemontrcc daemon-statustrcc detecttrcc doctortrcc guitrcc killtrcc qtguitrcc quickstarttrcc reporttrcc sensorstrcc servetrcc setuptrcc shelltrcc statustrcc versiontrcc config— command grouptrcc device— command grouptrcc display— command grouptrcc led— command grouptrcc system— command grouptrcc theme— command group
Launch the REST API (FastAPI + uvicorn). Three operating modes: * trcc api — loopback only (127.0.0.1), no auth. Dev default. * trcc api --host 0.0.0.0 --token <secret> — public bind, token required on every request. Use a long random secret. * trcc api --host 0.0.0.0 --token <secret> --pair — same as above plus the pairing endpoint; a 6-char code is shown so a remote app can fetch the token without out-of-band copy/paste. Refusal: --host other than 127.0.0.1 / localhost without --token exits 2 — would otherwise expose every endpoint to LAN.
trcc api [OPTIONS]| Option | Description |
|---|---|
--host, -H HOST |
Bind address |
--port, -p PORT |
Bind port |
--token, -t TOKEN |
Persistent API token. When set, every request must carry X-API-Token: <token>. When omitted with --host 127.0.0.1, the API is unauth'd (loopback dev mode). Omitting it with any other --host is REJECTED — refusing to bind a public interface without auth. Use --token random: to generate. |
--pair |
Show a one-time 6-char pairing code in the terminal. Remote devices POST it to /pair to exchange for the API token. Requires --token. |
Run the background daemon that owns USB + serves CLI/API clients. One process per user. Binds a Unix socket at $XDG_RUNTIME_DIR/trcc.sock and serves Commands until SIGTERM / SIGINT or a remote trcc kill. Sets TRCC_DAEMON=1 to route clients through this daemon.
trcc daemonReport whether the background daemon socket is reachable. Replaces the previous top-level status command, which conflated daemon reachability with app state. Use trcc status for the unified app + device snapshot.
trcc daemon-statusAlias for trcc device list — list attached devices.
trcc detectAlias for trcc system doctor — health checks.
trcc doctorLaunch the legacy Windows-style GUI (port in progress). Today's shell hosts the device sidebar + a diagnostic content area — enough to prove the legacy-on-next/-bus pattern end to end on real hardware. Real feature panels (LCD handler, theme settings, mask, video, LED) land in subsequent passes. --resume starts hidden in the tray (XDG autostart-on-login); bare trcc gui shows the window. --decorated asks the window manager for a normal frame. The default shell is frameless and drags by its top strip, which some window managers will not move at all — leaving the window pinned where it opened with no way to shift it (#231). The capability already existed and two guides already documented the flag; only the flag itself was missing (#247).
trcc gui [OPTIONS]| Option | Description |
|---|---|
--resume, --tray, --minimized |
Start hidden in the system tray instead of showing the window — used by XDG autostart on login. The last-used theme is restored automatically. |
--decorated |
Draw the window with your desktop's normal title bar and borders instead of the frameless Windows-style shell. Use it if the window will not move or your window manager does not decorate frameless windows. |
Ask the running daemon to shut down, return when its socket is gone.
trcc killLaunch the Qt-native GUI (clean-slate, layout-driven). This is the rebuild's GUI — built up over G1–G5 and used during development. See gui for the legacy Windows-style port.
trcc qtguiGuided first-session flow for new users. Runs the doctor, scans for devices, and walks you through what to do next. Pass --yes to also test-connect to the first device found. Safe to re-run any time.
trcc quickstart [OPTIONS]| Option | Description |
|---|---|
--yes, -y |
If a device is found, also connect + push a green test frame. Default: stop after scan so you can inspect what's there. |
Alias for trcc system debug-report — full diagnostic dump.
trcc report [OPTIONS]| Option | Description |
|---|---|
--output, -o OUTPUT |
Write the report to this path instead of stdout. |
--log-lines LOG_LINES |
How many trailing log lines to include. |
Alias for trcc system sensors — print sensor readings.
trcc sensorsAlias for trcc api — launches the REST API + uvicorn. The serve name matches legacy CLI ergonomics; api still works for backwards-compat with existing scripts.
trcc serve [OPTIONS]| Option | Description |
|---|---|
--host, -H HOST |
Bind address |
--port, -p PORT |
Bind port |
--token, -t TOKEN |
Same semantics as trcc api --token — see trcc api --help. |
--pair |
Same semantics as trcc api --pair — see trcc api --help. |
Alias for trcc system setup — OS-specific setup (udev rules on Linux, WinUSB guide on Windows). New users reach for the short form. (#194)
trcc setup [OPTIONS]| Option | Description |
|---|---|
--yes, -y |
Non-interactive (assume yes to prompts) |
Open an interactive prompt sharing one App across commands. Each line is parsed as if it were a fresh trcc invocation, but the App is built once and reused — no per-command handshake. In daemon mode the App is an AppProxy that round-trips each line to the running daemon. Ctrl-D or exit quits.
trcc shellShow unified app + LCD + LED state. Composes ControlCenterSnapshot (app prefs) with per-device LcdSnapshot / LedSnapshot — one round-trip for "what state is everything in right now?". Pass --json for scripts. Use trcc daemon-status for daemon reachability checks.
trcc status [OPTIONS]| Option | Description |
|---|---|
--json |
Emit JSON instead of human text. |
Print the installed TRCC version.
trcc versionApp-global preferences: temp unit, language, GPU, refresh interval.
Set the global LCD overlay date format.
trcc config date-format FMT| Argument | Description |
|---|---|
FMT |
LCD date format, e.g. 'yyyy/MM/dd', 'dd.MM.yyyy', 'MM/dd/yyyy' |
Pick the primary GPU for sensor overlays. Empty string = auto.
trcc config gpu [KEY]| Argument | Description |
|---|---|
KEY |
GPU sensor key (e.g. 'nvidia:0') or '' to clear (optional) |
Set the UI language.
trcc config language LANG| Argument | Description |
|---|---|
LANG |
ISO 639-1 code, e.g. 'en', 'zh', 'fr' |
Set the global metrics-refresh / render-and-send tick interval.
trcc config refresh-interval SECONDS| Argument | Description |
|---|---|
SECONDS |
Seconds between metric refreshes (1 to 100) |
Set the global temperature unit (propagates to every device).
trcc config temp-unit UNIT| Argument | Description |
|---|---|
UNIT |
Either 'C' or 'F' |
Set the global LCD overlay clock format.
trcc config time-format FMT| Argument | Description |
|---|---|
FMT |
LCD clock format: '12h' or '24h' |
Discover and connect to TRCC devices.
Open USB transport and perform the wire-protocol handshake.
trcc device connect KEY| Argument | Description |
|---|---|
KEY |
Device key, e.g. 0402:3922 |
Close the transport and drop the device.
trcc device disconnect KEY| Argument | Description |
|---|---|
KEY |
-- |
Show devices that failed to connect, and why. A connect can fail before anything is watching the bus, so the failure is pulled with a query rather than only published — the same one the GUIs and GET /devices/issues use.
trcc device issuesList devices currently attached to the host.
trcc device listDisconnect + clear cached state for a device. Use this when the LCD seems stuck — drops any cached frame, theme, and runtime counters. Re-running connect after this starts completely fresh.
trcc device reset KEY| Argument | Description |
|---|---|
KEY |
-- |
Persist the active-device selection by ordinal. Multi-device hosts (e.g. two LCDs + one LED controller) need a way to point CLI commands at "the one I'm steering today". Resolves the ordinal against device list and stores the resulting key in AppSettings.active_device.
trcc device select ORDINAL| Argument | Description |
|---|---|
ORDINAL |
1-based ordinal of the attached device to mark active (matches device list output) |
Show what a device IS — identity, connection, handshake geometry. native_resolution is what the product registry claims; resolution is what the panel answered at handshake. When they differ, the handshake wins and the difference is usually the thing worth reporting.
trcc device state KEY| Argument | Description |
|---|---|
KEY |
Device key, e.g. 0402:3922 |
Configure device display (theme / orientation / brightness).
Override the active theme's mask with a user-supplied image.
trcc display apply-mask KEY PATH| Argument | Description |
|---|---|
KEY |
Device key, e.g. 0402:3922 |
PATH |
Image file path (png/jpg/jpeg/bmp/webp) |
Pick what fills the LCD behind overlays.
trcc display background-mode KEY MODE| Argument | Description |
|---|---|
KEY |
Device key, e.g. 0402:3922 |
MODE |
'theme' / 'color' / 'transparent' |
Upload a multi-frame compressed boot animation to a SCSI LCD's flash. The animation plays from device flash on every boot until overwritten. Only SCSI panels with 240×240 / 240×320 / 320×240 / 320×320 resolution support boot animations. Frame files are picked up in alphabetical order from frames_dir — PNG / JPG / JPEG / BMP / WebP. Each frame uses the same dwell time via --delay (per-frame delays via the API only).
trcc display boot-anim [OPTIONS] KEY FRAMES_DIR| Argument | Description |
|---|---|
KEY |
Device key, e.g. 0402:3922 (SCSI only) |
FRAMES_DIR |
Directory of image frames (sorted alphabetically; 1–248 frames) |
| Option | Description |
|---|---|
--delay, -d DELAY_DS |
Dwell time per frame in deciseconds (10 = 1.0 s, max 25 = 2.5 s) |
Display a single solid color on the LCD. Smallest path that exercises the full wire chain (handshake-derived profile + DisplayService encoder + Device.send). Useful diagnostic for confirming a device class works end-to-end on real hardware.
trcc display color KEY HEX_COLOR| Argument | Description |
|---|---|
KEY |
Device key, e.g. 0402:3922 |
HEX_COLOR |
Hex color (e.g. ff0000 for red) |
Set the slideshow theme list + interval.
trcc display configure-slideshow [OPTIONS] KEY THEMES| Argument | Description |
|---|---|
KEY |
Device key, e.g. 0402:3922 |
THEMES |
Theme names (directories under user_content_dir) — order matters |
| Option | Description |
|---|---|
--interval, -i INTERVAL |
Seconds between theme swaps (default 60). |
Periodically resend the device's last frame. Workaround for Bulk/LY firmware that drops the displayed image when the internal buffer ages out. Render at least once before starting the loop so there's a cached frame to resend. count=0 (default) runs open-ended and exits cleanly on Ctrl-C — the Command itself owns the loop + signal handling so the CLI doesn't need a user-space while wrapper.
trcc display keepalive [OPTIONS] KEY| Argument | Description |
|---|---|
KEY |
Device key, e.g. 0402:3922 |
| Option | Description |
|---|---|
--interval, -i INTERVAL |
Seconds between resends. Bulk/LY firmware reverts to the built-in logo after ~2-3 s without a frame; default 0.150 s keeps the screen pinned. |
--count, -c COUNT |
Number of resends; 0 means loop forever (until Ctrl-C). |
--metric-interval METRIC_INTERVAL |
Seconds between overlay re-renders (live sensor refresh). 0 disables — last frame's metrics stay frozen on screen. |
List mask images for the device's resolution. By default, scans both the cloud-downloaded mask dir (data/web/zt{W}{H}) and the user-created mask dir (user_content_dir/data/web/zt{W}{H}).
trcc display list-masks [OPTIONS] [KEY]| Argument | Description |
|---|---|
KEY |
Device key (e.g. 0402:3922) — its resolution scopes the scan. Required unless --dir is given. (optional) |
| Option | Description |
|---|---|
--dir, -d DIRECTORY |
Override: scan an explicit directory instead of the device's mask dirs |
Show a single image on the LCD. Stages the image as a one-file theme so the existing render pipeline handles fit + brightness + rotation. Re-runnable: subsequent loads of the same image are cheap (no re-copy).
trcc display load-image KEY PATH| Argument | Description |
|---|---|
KEY |
Device key, e.g. 0402:3922 |
PATH |
Image file (PNG / JPG / JPEG / BMP / WEBP) |
Load a theme: parse, persist, render+send if device is connected.
trcc display load-theme KEY PATH| Argument | Description |
|---|---|
KEY |
Device key, e.g. 0402:3922 |
PATH |
Theme directory |
Play a video on the LCD as a single-video theme. Transcodes the source to a Theme.zt matching the device's native resolution (.zt inputs are copied as-is), stages a one-file theme, then dispatches LoadTheme. Device must be attached so we know the target resolution.
trcc display load-video [OPTIONS] KEY PATH| Argument | Description |
|---|---|
KEY |
Device key, e.g. 0402:3922 |
PATH |
Video file (MP4 / MOV / WEBM / MKV / AVI / ZT) |
| Option | Description |
|---|---|
--start, -s START_MS |
Clip start in milliseconds (default: 0). |
--end, -e END_MS |
Clip end in milliseconds (default: probe duration, fallback 10s). |
--rotation, -r ROTATION |
Rotation in degrees: 0 / 90 / 180 / 270. |
Toggle whether video wraps at the end or sticks at the last frame.
trcc display loop-video KEY STATE| Argument | Description |
|---|---|
KEY |
Device key |
STATE |
'on' (loop) or 'off' (single-pass) |
Position the mask overlay within the canvas.
trcc display mask-position KEY X Y| Argument | Description |
|---|---|
KEY |
Device key, e.g. 0402:3922 |
X |
X offset in pixels (≥ 0) |
Y |
Y offset in pixels (≥ 0) |
Toggle mask visibility.
trcc display mask-visible KEY STATE| Argument | Description |
|---|---|
KEY |
Device key, e.g. 0402:3922 |
STATE |
'on' or 'off' |
Set the media-player source — a local file or a web URL/stream. Wraps SetMediaPlayer: a local file plays through the video pipeline; a web URL is referenced (persisted so theme save captures it). An empty URI clears the source.
trcc display media-player KEY [URI]| Argument | Description |
|---|---|
KEY |
Device key, e.g. 0402:3922 |
URI |
Source: a local file path, or a web URL/stream. '' clears. (optional) |
Toggle the metric overlay layer.
trcc display overlay KEY STATE| Argument | Description |
|---|---|
KEY |
Device key, e.g. 0402:3922 |
STATE |
'on' or 'off' |
Add a user-edited overlay element to a device.
trcc display overlay-add [OPTIONS] KEY TYPE_| Argument | Description |
|---|---|
KEY |
Device key, e.g. 0402:3922 |
TYPE_ |
'text' / 'metric' / 'clock' |
| Option | Description |
|---|---|
--x X |
X position |
--y Y |
Y position |
--text TEXT |
Text content (type=text) |
--metric METRIC |
Metric id (type=metric) |
--format FMT |
Metric format string |
--source SOURCE |
Clock source: time / weekday / date |
--color COLOR |
-- |
--size SIZE |
-- |
--bold |
-- |
--italic |
-- |
--show-unit |
Draw the metric's unit (°C/%/MHz/RPM) after the number, or the bare number when the unit is baked into the theme art |
--id ELEMENT_ID |
Explicit element id (default: auto-generated UUID) |
Set the solid color used when background-mode=color.
trcc display overlay-background KEY HEX_COLOR| Argument | Description |
|---|---|
KEY |
Device key, e.g. 0402:3922 |
HEX_COLOR |
Hex color (e.g. 000000 for black) |
Remove a user-edited overlay element by id.
trcc display overlay-delete KEY ELEMENT_ID| Argument | Description |
|---|---|
KEY |
-- |
ELEMENT_ID |
ID returned by overlay-add |
Briefly highlight an overlay element in the GUI.
trcc display overlay-flash [OPTIONS] KEY ELEMENT_ID| Argument | Description |
|---|---|
KEY |
-- |
ELEMENT_ID |
-- |
| Option | Description |
|---|---|
--duration, -d DURATION_MS |
Flash duration in milliseconds |
Render a DC config to a PNG preview — no active device required. Mirrors legacy trcc overlay — composites every element from config1.dc onto a solid-black canvas at width × height and writes the result as PNG. Useful when iterating on a theme's metric positions without unplugging the device or sending frames.
trcc display overlay-render [OPTIONS] DC_PATH| Argument | Description |
|---|---|
DC_PATH |
DC file or theme directory containing config1.dc |
| Option | Description |
|---|---|
--output, -o OUTPUT |
Output PNG path for the rendered preview. |
--width, -w WIDTH |
Render canvas width (px) |
--height, -h HEIGHT |
Render canvas height (px) |
Mutate fields on an existing user-edited overlay element.
trcc display overlay-update [OPTIONS] KEY ELEMENT_ID| Argument | Description |
|---|---|
KEY |
-- |
ELEMENT_ID |
ID returned by overlay-add |
| Option | Description |
|---|---|
--x X |
-- |
--y Y |
-- |
--color COLOR |
-- |
--size SIZE |
-- |
--text TEXT |
-- |
--metric METRIC |
-- |
--format FMT |
-- |
--source SOURCE |
-- |
--bold |
-- |
--italic |
-- |
--show-unit |
Draw the metric's unit (°C/%/MHz/RPM) after the number, or the bare number when the unit is baked into the theme art |
Pause or resume video playback.
trcc display pause-video KEY STATE| Argument | Description |
|---|---|
KEY |
Device key |
STATE |
'on' (pause) or 'off' (resume) |
Run the render-and-send ticker until Ctrl-C. Dispatches TickDisplay every tick with live sensors — that Command advances an active video playback and renders, so the loop needs no handle on MediaService. Keeps SCSI devices from timing out (static-blink fix). Stops cleanly on SIGINT.
trcc display play [OPTIONS] KEY| Argument | Description |
|---|---|
KEY |
Device key, e.g. 0402:3922 |
| Option | Description |
|---|---|
--interval, -i INTERVAL |
Tick interval in seconds (default: AppSettings.refresh_interval_s) |
Decode a video and start playing it on the device. Overrides the active theme's background until stop-video runs. Frames advance on each display play tick.
trcc display play-video [OPTIONS] KEY PATH| Argument | Description |
|---|---|
KEY |
Device key, e.g. 0402:3922 |
PATH |
Video path (mp4/mov/webm/mkv/avi/zt) |
| Option | Description |
|---|---|
--fps FPS |
Decode FPS (default: 15) |
Reload the device's persisted theme — convenience after restart.
trcc display restore-theme KEY| Argument | Description |
|---|---|
KEY |
Device key, e.g. 0402:3922 |
Send each detected device's last-used theme (headless, no GUI). Use case: cron / systemd unit / udev hook that runs at boot or after a suspend cycle. Enumerates every TRCC-known device on the bus, connects, and replays the saved theme so the displays come back to their pre-boot / pre-suspend state without the GUI. Bulk/LY devices fade after ~2-3 s without a fresh frame — pair this with trcc display keepalive per device for those, or trcc display play for the full render-loop.
trcc display resume [OPTIONS]| Option | Description |
|---|---|
--retries RETRIES |
Discovery attempts before giving up (1 attempt = 2 s delay) |
Stream a screen region to the LCD until interrupted. Wraps StartScreencast — the GUI ScreencastHandler subscriber drives the per-frame Qt capture timer. Ctrl-C calls StopScreencast for clean teardown.
trcc display screencast [OPTIONS] KEY X Y W H| Argument | Description |
|---|---|
KEY |
Device key, e.g. 0402:3922 |
X |
Top-left X coordinate of capture region (px) |
Y |
Top-left Y coordinate of capture region (px) |
W |
Capture region width (px) |
H |
Capture region height (px) |
| Option | Description |
|---|---|
--audio |
Pipe system audio alongside the video feed (Linux: PipeWire) |
Jump the playback cursor to a specific frame.
trcc display seek-video KEY FRAME| Argument | Description |
|---|---|
KEY |
Device key |
FRAME |
Frame index to jump to |
Push an image to the LCD once — no theme staging, no persistence. Companion to load-image (which materialises a single-image theme and persists DeviceSettings.current_theme). Use this when you want ephemeral display: boot logos, quick previews, API upload pipelines.
trcc display send-image KEY PATH| Argument | Description |
|---|---|
KEY |
Device key, e.g. 0402:3922 |
PATH |
Image file (PNG/JPG/BMP/WEBP) |
Set per-device display brightness.
trcc display set-brightness KEY PERCENT| Argument | Description |
|---|---|
KEY |
Device key, e.g. 0402:3922 |
PERCENT |
Brightness 0–100 |
Set how the background fits the canvas.
trcc display set-fit-mode KEY MODE| Argument | Description |
|---|---|
KEY |
Device key, e.g. 0402:3922 |
MODE |
Fit mode: 'width' (letterbox), 'height' (pillarbox), 'stretch' |
Set per-device rotation.
trcc display set-orientation KEY DEGREES| Argument | Description |
|---|---|
KEY |
Device key, e.g. 0402:3922 |
DEGREES |
Rotation: 0, 90, 180, or 270 |
Blank the panel so it goes dark (the shutdown / turn-off action). Sends a solid-black frame (LCD) or an all-off payload (LED) — the same Command the GUI + daemon fire at PC shutdown so the screen doesn't hold its last image lit. Idempotent; auto-connects in a fresh process.
trcc display sleep KEY| Argument | Description |
|---|---|
KEY |
Device key, e.g. 0402:3922 |
Toggle the per-device slideshow on/off.
trcc display slideshow KEY STATE| Argument | Description |
|---|---|
KEY |
Device key, e.g. 0402:3922 |
STATE |
'on' / 'off' |
Foreground slideshow over a directory of themes. Different from slideshow / configure-slideshow (which persist state). This is a one-shot loop: blocks until Ctrl-C, swaps to the next theme each tick. Useful for demos + smoke tests; the persisted flow is what production users want.
trcc display slideshow-run [OPTIONS] KEY THEMES_DIR| Argument | Description |
|---|---|
KEY |
Device key, e.g. 0402:3922 |
THEMES_DIR |
Directory containing theme subdirectories |
| Option | Description |
|---|---|
--interval, -i INTERVAL |
Seconds between theme switches (default: 30.0) |
Print the persisted LCD state for a device.
trcc display snapshot [OPTIONS] KEY| Argument | Description |
|---|---|
KEY |
Device key, e.g. 0402:3922 |
| Option | Description |
|---|---|
--json |
Emit JSON instead of human text. |
Set the Dynamic Island style (widescreen panels only).
trcc display split-mode KEY MODE| Argument | Description |
|---|---|
KEY |
Device key, e.g. 0402:3922 |
MODE |
0 (off), 1 (style A), 2 (B), 3 (C) |
Stop an active screencast started by another process (daemon/API).
trcc display stop-screencast KEY| Argument | Description |
|---|---|
KEY |
Device key, e.g. 0402:3922 |
Clear the video playback override (returns to the active theme).
trcc display stop-video KEY| Argument | Description |
|---|---|
KEY |
Device key, e.g. 0402:3922 |
Color-cycle the LCD: red → green → blue → black. Smallest end-to-end exercise of the wire chain. Useful when porting a new device class to confirm handshake → frame build → USB send all work before fighting overlay/theme bugs.
trcc display test [OPTIONS] KEY| Argument | Description |
|---|---|
KEY |
Device key, e.g. 0402:3922 |
| Option | Description |
|---|---|
--seconds, -s SECONDS |
Hold each color for this many seconds. |
Print an ANSI true-color preview of the LCD's current render. Same pipeline as display play but stops at the renderer surface — no wire send. Useful for headless / sshell debugging where you can't see the physical device.
trcc display test-lcd [OPTIONS] KEY| Argument | Description |
|---|---|
KEY |
Device key, e.g. 0402:3922 |
| Option | Description |
|---|---|
--cols, -c COLS |
Width of the ANSI preview in terminal cells. |
Flip video playback between paused / playing (single-verb helper).
trcc display toggle-video KEY| Argument | Description |
|---|---|
KEY |
Device key |
Copy a mask into user_content_dir/masks and apply it to the device.
trcc display upload-mask KEY SOURCE| Argument | Description |
|---|---|
KEY |
Device key |
SOURCE |
Mask image file to copy + apply |
Report what the device's video playback is doing (read-only). Answers "is a video loaded, where is it, how fast" without rendering a frame — the query half of the video surface, alongside play-video / stop-video / pause-video / seek-video / loop-video.
trcc display video-status KEY| Argument | Description |
|---|---|
KEY |
Device key, e.g. 0402:3922 |
RGB LED control.
Set the global LED brightness (persists).
trcc led brightness KEY PERCENT| Argument | Description |
|---|---|
KEY |
LED device key, e.g. 0416:8001 |
PERCENT |
Brightness 0-100 |
Set the 12h/24h clock display for LC2-style segment devices.
trcc led clock-format KEY FMT| Argument | Description |
|---|---|
KEY |
LED device key |
FMT |
'12h' or '24h' |
Set the LED color used by STATIC / BREATHING / COLORFUL modes.
trcc led color KEY COLOR| Argument | Description |
|---|---|
KEY |
LED device key, e.g. 0416:8001 |
COLOR |
Hex color (#rrggbb) |
Pick which disk's read/write stats to surface.
trcc led disk-index KEY INDEX| Argument | Description |
|---|---|
KEY |
LED device key |
INDEX |
Disk index (0-based) |
Connect + render one initial frame in a single dispatch. Convenience for boot scripts — equivalent to device connect followed by led render, but in one Command so the caller only inspects one Result. Use this on app start; use the individual commands for finer control.
trcc led initialize KEY| Argument | Description |
|---|---|
KEY |
LED device key, e.g. 0416:8001 |
List every animation mode (STATIC, BREATHING, RAINBOW, …).
trcc led list-modesList every LED style registered in the PM byte registry.
trcc led list-stylesPick the sensor source for LOAD_LINKED mode.
trcc led load-source KEY SOURCE| Argument | Description |
|---|---|
KEY |
LED device key |
SOURCE |
'cpu' or 'gpu' |
Set the DDR memory multiplier for the LED memory gauge.
trcc led memory-ratio KEY RATIO| Argument | Description |
|---|---|
KEY |
LED device key |
RATIO |
DDR multiplier: 1, 2, or 4 |
Set the LED animation mode (persists).
trcc led mode KEY MODE| Argument | Description |
|---|---|
KEY |
LED device key, e.g. 0416:8001 |
MODE |
One of: static, breathing, colorful, rainbow, temp_linked, load_linked |
Run the LED render ticker until Ctrl-C. Mirrors display play — dispatches RenderLed every tick so BREATHING / COLORFUL / RAINBOW animations advance. Stops cleanly on SIGINT.
trcc led play [OPTIONS] KEY| Argument | Description |
|---|---|
KEY |
LED device key, e.g. 0416:8001 |
| Option | Description |
|---|---|
--interval, -i INTERVAL |
Tick interval in seconds (default: AppSettings.refresh_interval_s) |
Render one LED frame from current settings + sensors and send. Reads the device's saved mode / color / brightness from Settings, advances the engine's phase counters on app.led_runtime, and sends one tick. Pass --color to override the saved color (treated as STATIC at full brightness — diagnostic shape).
trcc led render [OPTIONS] KEY| Argument | Description |
|---|---|
KEY |
LED device key, e.g. 0416:8001 |
| Option | Description |
|---|---|
--color, -c COLOR |
Override hex color (#rrggbb); omit to use the saved color |
--phase, -p PHASE |
Rotation phase for multi-phase displays |
Set the currently-selected zone (UI state).
trcc led select-zone KEY ZONE| Argument | Description |
|---|---|
KEY |
LED device key |
ZONE |
Zone index to select |
Push a full LED color update.
trcc led set-colors [OPTIONS] KEY COLORS| Argument | Description |
|---|---|
KEY |
LED device key, e.g. 0416:8001 |
COLORS |
Hex colors (#rrggbb), one per LED |
| Option | Description |
|---|---|
--brightness, -b BRIGHTNESS |
Global brightness 0–100 |
--off |
Force all LEDs off (overrides colors) |
Print the persisted LED state for a device.
trcc led snapshot [OPTIONS] KEY| Argument | Description |
|---|---|
KEY |
LED device key |
| Option | Description |
|---|---|
--json |
Emit JSON instead of human text. |
Pick the sensor source for TEMP_LINKED mode.
trcc led temp-source KEY SOURCE| Argument | Description |
|---|---|
KEY |
LED device key |
SOURCE |
'cpu' or 'gpu' |
Print an ANSI true-color preview of the LED zones in the terminal. Reads the current zone color list from LedSnapshot and paints each zone as a coloured square — handy for visualising multi-zone strips during headless debugging.
trcc led test-led KEY| Argument | Description |
|---|---|
KEY |
LED device key, e.g. 0416:8001 |
Toggle the 4-color diagnostic test cycle.
trcc led test-mode KEY ON| Argument | Description |
|---|---|
KEY |
LED device key, e.g. 0416:8001 |
ON |
Enable (true) or disable (false) |
Turn the LED device (or one zone) on/off.
trcc led toggle [OPTIONS] KEY STATE| Argument | Description |
|---|---|
KEY |
LED device key, e.g. 0416:8001 |
STATE |
'on' or 'off' (or use --zone N to target one zone) |
| Option | Description |
|---|---|
--zone, -z ZONE |
Toggle a single zone (omit for global toggle) |
Flip one segment on/off (segment-display devices).
trcc led toggle-segment KEY INDEX STATE| Argument | Description |
|---|---|
KEY |
LED device key |
INDEX |
Segment index |
STATE |
'on' or 'off' |
Pick the week-start day on devices that show a day-of-week display.
trcc led week-start KEY DAY| Argument | Description |
|---|---|
KEY |
LED device key |
DAY |
'sunday' or 'monday' |
Set one zone's persistent brightness.
trcc led zone-brightness KEY ZONE PERCENT| Argument | Description |
|---|---|
KEY |
LED device key, e.g. 0416:8001 |
ZONE |
Zone index (0-based) |
PERCENT |
Brightness 0-100 |
Set one zone's persistent color.
trcc led zone-color KEY ZONE COLOR| Argument | Description |
|---|---|
KEY |
LED device key, e.g. 0416:8001 |
ZONE |
Zone index (0-based) |
COLOR |
Hex color (#rrggbb) |
Set one zone's persistent animation mode.
trcc led zone-mode KEY ZONE MODE| Argument | Description |
|---|---|
KEY |
LED device key, e.g. 0416:8001 |
ZONE |
Zone index (0-based) |
MODE |
One of: static, breathing, colorful, rainbow, temp_linked, load_linked |
Toggle the zone-sync carousel (optionally set the interval).
trcc led zone-sync [OPTIONS] KEY STATE| Argument | Description |
|---|---|
KEY |
LED device key |
STATE |
'on' or 'off' |
| Option | Description |
|---|---|
--interval, -i INTERVAL |
Set ticks-per-rotation alongside the toggle |
System-level operations (setup, sensors, info).
Manage auto-launch-on-login (XDG .desktop on Linux).
trcc system autostartAsk GitHub Releases whether a newer version is available.
trcc system check-updateGenerate a debug report bundle for GitHub issues.
trcc system debug-report [OPTIONS]| Option | Description |
|---|---|
--output, -o OUTPUT |
Write the report to this path instead of stdout. Recommended when filing a GitHub issue — attach the file. |
--log-lines LOG_LINES |
How many trailing log lines to include (default 1000). |
Run health checks — exits 1 on any FAIL. The reporter-friendly summary tells you what's wrong + how to fix it. For a copy-paste GitHub-issue dump, use system debug-report instead.
trcc system doctorPre-fetch the theme + cloud + mask archives for a resolution. DiscoverDevices runs this implicitly the first time a device of a given resolution attaches. Call it directly to populate the local cache while you have network — handy for headless setups that'll later run offline. Idempotent.
trcc system download WIDTH HEIGHT| Argument | Description |
|---|---|
WIDTH |
Display width (px), e.g. 320 |
HEIGHT |
Display height (px), e.g. 320 |
Show whether trcc has been set up on this machine yet.
trcc system first-run-statusToggle inclusion of HDD metrics in sensor broadcasts.
trcc system hdd-enabled STATE| Argument | Description |
|---|---|
STATE |
'on' or 'off' |
Quick read-only health report — same checks as doctor, no exit code.
trcc system healthConnect to key + print handshake details for a GitHub issue paste. Composes ConnectDevice (returns handshake bytes + parsed resolution / model id / serial) and LcdSnapshot to dump the persisted state. Output is plain text — copy + paste-friendly.
trcc system hid-debug KEY| Argument | Description |
|---|---|
KEY |
Device key, e.g. 0402:3922 |
Show current sensor metrics (CPU/GPU/fan/disk/net readings). Mirrors legacy trcc info — dispatches ReadSensors and prints each reading. Use --metric <prefix> to narrow the output; pass no args for everything. For paths / install info / permissions, see trcc system platform-info.
trcc system info [OPTIONS]| Option | Description |
|---|---|
--metric, -m METRIC |
Filter readings whose sensor_id startswith this prefix (e.g. cpu, gpu, mem, disk, net, fan, time). |
Print the currently-active UI language code. Read-only — for "what language is TRCC in right now?" without digging through snapshot. Use set-language to change it.
trcc system langLED device handshake + zone/segment dump + optional test cycle. Composes ConnectDevice and LedSnapshot for a one- shot diagnostic. Pass --test-colors to cycle the device's test pattern so you can confirm wire-up visually.
trcc system led-debug [OPTIONS] KEY| Argument | Description |
|---|---|
KEY |
LED device key, e.g. 0416:8001 |
| Option | Description |
|---|---|
--test-colors |
After handshake, enable the 4-color test cycle (Ctrl-C to stop). |
List disk partitions (for use with led disk-index).
trcc system list-disksEnumerate every HTTP route the REST API exposes. Builds the FastAPI app (no uvicorn) and walks its router so the output reflects what trcc api / trcc serve would serve.
trcc system list-endpointsList fans the sensors aggregator exposes, with live readings. Read-only diagnostic (#145/#207) — snapshot() maps fans to theme slots automatically (GPU slot follows the picked GPU); this shows what the box exposes.
trcc system list-fansList font families Qt can see.
trcc system list-fontsList GPUs exposed by the sensors aggregator.
trcc system list-gpusList every UI language the i18n table supports.
trcc system list-languagesPrint every sensor the platform enumerates — descriptors only. Read-only enumeration: no polling, no values. Pair with system sensors (or system info --metric <prefix>) when you want the current readings instead.
trcc system list-sensorsTell trcc the welcome flow has been completed.
trcc system mark-setup-doneShow where this install keeps config, data, logs and user content. Answers "where did my theme go?" and "which log do I attach to an issue?" without the user guessing at ~/.trcc versus ~/.trcc-user. With --key the answer is that device's: the resolution comes from its handshake (oriented) and the theme/cloud dirs name its per-SKU library, so the output points at the directories the app actually opens for it.
trcc system paths [OPTIONS]| Option | Description |
|---|---|
--resolution, -r RESOLUTION |
WxH (e.g. 854x480) — also show the per-resolution theme/mask dirs |
--key, -k KEY |
Device key (e.g. 0402:3922) — use that cooler's own artwork libraries, and its resolution when --resolution is omitted |
Show platform info (distro, install method, config dir, permissions).
trcc system platform-infoPrint current sensor readings.
trcc system sensorsRun the OS-specific setup (udev rules on Linux, WinUSB guide on Windows).
trcc system setup [OPTIONS]| Option | Description |
|---|---|
--yes, -y |
Non-interactive (assume yes to prompts) |
Print the AppSettings snapshot (language, GPU, refresh interval).
trcc system snapshot [OPTIONS]| Option | Description |
|---|---|
--json |
Emit JSON instead of human text. |
Upgrade trcc-linux via the detected package manager.
trcc system upgrade [OPTIONS]| Option | Description |
|---|---|
--yes, -y |
Skip confirmation and run the upgrade subprocess. |
--dry-run |
Print the command that would run, don't execute it. |
Save / export / import themes.
List themes in Thermalright's hosted catalog.
trcc theme cloud-list [OPTIONS]| Option | Description |
|---|---|
--category, -c CATEGORY |
Category prefix: 'all' / 'a' / 'b' / 'c' / 'd' / 'e' / 'y' |
Download a cloud theme and load it on a device.
trcc theme cloud-load KEY THEME_ID| Argument | Description |
|---|---|
KEY |
Device key, e.g. 0402:3922 |
THEME_ID |
Cloud theme id, e.g. a001 |
One-shot theme builder: bg + optional mask + overlay metrics → save. Mirrors legacy trcc theme --save. Dispatches a chain of existing Commands: LoadImage for the background, UploadCustomMask if --mask given, AddOverlayElement per --metric arg, then SaveTheme to persist the result. Stops on the first failure and leaves the device in whatever state was reached.
trcc theme create [OPTIONS] KEY NAME| Argument | Description |
|---|---|
KEY |
Device key, e.g. 0402:3922 |
NAME |
Theme name to save as |
| Option | Description |
|---|---|
--bg, -b BACKGROUND |
Background image (PNG/JPG/BMP/WEBP) |
--mask MASK |
Optional mask PNG to overlay (custom_/01.png) |
--metric, -m METRIC |
Overlay metric spec: 'metric_key:x,y[:color[:size]]' — e.g. 'cpu:temp:160,90:#ff8800:24'. color defaults to '#ffffff', size defaults to 16. Repeatable. |
Delete a theme directory. Path-based to match legacy's delete_theme(lcd, path) — the caller already has the resolved path from theme list output.
trcc theme delete PATH| Argument | Description |
|---|---|
PATH |
Absolute path to the theme directory to delete |
Zip a theme into an archive file.
trcc theme export KEY THEME_NAME ARCHIVE_PATH| Argument | Description |
|---|---|
KEY |
Device key (e.g. 0402:3922) whose resolution scopes the lookup |
THEME_NAME |
Theme name (directory under user_theme_dir(w, h)) |
ARCHIVE_PATH |
Destination archive path (e.g. theme.tr) |
Snapshot one device's settings to a JSON file. Captures everything in DeviceSettings: active theme path, brightness, orientation, overlay edits, mask choice, format prefs. Pair with trcc theme import-config to restore on another host or after a wipe.
trcc theme export-config KEY OUTPUT_PATH| Argument | Description |
|---|---|
KEY |
Device key, e.g. 0402:3922 |
OUTPUT_PATH |
Destination JSON path (e.g. mydevice.json) |
Write a theme out as legacy config1.dc for Windows TRCC users.
trcc theme export-dc KEY THEME_NAME OUTPUT_PATH| Argument | Description |
|---|---|
KEY |
Device key (e.g. 0402:3922) — its resolution scopes the lookup and layers the user's overlay elements into the export |
THEME_NAME |
Theme name (directory under user_theme_dir(w, h)) |
OUTPUT_PATH |
Where to write the config1.dc file |
Export just a theme's overlay layout (the metric grid) for sharing — lighter than the whole-theme zip and distinct from the DC binary.
trcc theme export-overlay KEY THEME_NAME OUTPUT_PATH| Argument | Description |
|---|---|
KEY |
Device key (e.g. 0402:3922) — its resolution scopes the lookup |
THEME_NAME |
Theme name (directory under user_theme_dir(w, h)) |
OUTPUT_PATH |
Where to write the overlay layout file |
Unpack a theme archive into the device's per-resolution theme dir.
trcc theme import KEY ARCHIVE_PATH [NAME]| Argument | Description |
|---|---|
KEY |
Device key (e.g. 0402:3922) whose resolution scopes the target |
ARCHIVE_PATH |
Archive to unpack |
NAME |
Theme name (defaults to archive filename stem) (optional) |
Restore one device's settings from an export-config JSON file.
trcc theme import-config KEY INPUT_PATH| Argument | Description |
|---|---|
KEY |
Device key, e.g. 0402:3922 |
INPUT_PATH |
Source JSON written by trcc theme export-config |
List themes for a device resolution. By default scans both data/theme{W}{H} (pkg + GitHub-downloaded) and user_content_dir/data/theme{W}{H} (legacy user-saved location) so installed-user themes show up alongside fresh downloads.
trcc theme list [OPTIONS] [KEY]| Argument | Description |
|---|---|
KEY |
Device key (e.g. 0402:3922) — its resolution scopes the scan. Required unless --dir is given. (optional) |
| Option | Description |
|---|---|
--dir, -d DIRECTORY |
Override: scan an explicit directory instead of the device's theme dirs. |
Duplicate the device's active theme directory under a new name.
trcc theme save KEY NAME| Argument | Description |
|---|---|
KEY |
Device key whose active theme to save |
NAME |
New theme name (directory under user_content_dir) |
| Path | Contents |
|---|---|
~/.trcc/ |
Program + cloud data and config (config.json, logs) |
~/.trcc-user/ |
User-authored themes, backgrounds, and masks |
Report bugs at https://github.com/Lexonight1/thermalright-trcc-linux/issues — include the output of trcc report.