Help us shape the future of Go! Take the 2026 Go Developer Survey

tickerbox-cli

command module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 30, 2026 License: MIT Imports: 3 Imported by: 0

README

tickerbox-cli

Command-line client for a TickerBox device's /rest/ API.

CI Go Reference Go Report Card OpenSSF Scorecard

Table of contents

Quickstart

1. Find the device. device discover probes tickerbox.local and scans the local /24 subnet for anything that answers as a TickerBox, then offers to save each match:

$ tickerbox device discover
HOST            HOSTNAME
192.168.10.89   tickerbox
Add 192.168.10.89 as a device? [y/N]: y
Name for 192.168.10.89: office
added device office (http://192.168.10.89)

2. Check it. status pulls every dashboard endpoint in one call:

$ tickerbox --device office status
Features
Project:            yes
NTP:                yes
OTA:                yes
Upload Firmware:    yes
TickerBox:          yes
Shopify:            no
Extra ETF:          no

System
Platform:          esp32
SDK Version:       v5.1.2
CPU Frequency:     240 MHz
Free Heap:         142.3 KB
Flash Chip Size:   4.0 MB
Filesystem:        612.0 KB / 1.5 MB used

Wi-Fi
Status:        CONNECTED
SSID:          HomeNet
IP Address:    192.168.10.89
RSSI:          -52 dBm
Channel:       6
...

3. Add tickers. tickers add appends one or more symbols that share a type, refresh interval and currency:

$ tickerbox --device office tickers add --type crypto --time 15min --currency EUR BTC ETH
Added 2 ticker(s)

Set office as the default so --device office can be dropped from later commands:

tickerbox device use office

Install

$ go install github.com/openbunny/tickerbox-cli@latest

go install places the tickerbox binary in $(go env GOPATH)/bin. Prebuilt binaries, .deb and .rpm packages are attached to each release.

From a clone:

$ go build -o tickerbox .

Targeting a device

tickerbox resolves the device host once per invocation, in this order:

Precedence Source Example
1 --host URL --host http://192.168.10.89
2 --device NAME (-d) --device office, a name registered with device add
3 TICKERBOX_HOST environment variable TICKERBOX_HOST=http://192.168.10.89 tickerbox status
4 The default device set with device use tickerbox device use office
5 http://tickerbox.local, resolved by the OS's mDNS resolver no flag, no env var, no default set

The first source with a value wins; lower rows are never consulted once a higher one resolves.

$ tickerbox device add office http://192.168.10.89
added device office (http://192.168.10.89)
$ tickerbox device use office
default device set to office
$ tickerbox --device office wifi status

Note device add and device use only edit the local device config file (tickerbox device list shows its path); neither makes a request to the device.

Global flags

These are persistent flags on the root command, so they go before the command group: tickerbox --host http://10.0.0.5 --timeout 5s wifi status.

Flag Effect
--host URL Device base URL. Overrides --device, $TICKERBOX_HOST and the default device.
-d, --device NAME Named device from the config file.
-j, --json Emit raw device JSON instead of a decoded table.
--retry N Retry an idempotent request up to N times on a transient failure (default 2).
--timeout D Per-request timeout, e.g. 5s (default 10s).

Command groups

Group Purpose Example
status Aggregate dashboard: features, system, network, AP, NTP, display and clock state in one call. tickerbox status, or --all for every configured device
wifi Station SSID, credentials, static IP, and network scan. tickerbox wifi scan
ap The device's own access point. tickerbox ap status
ntp NTP sync configuration, including timezone. tickerbox ntp set --tz "Europe/London"
time Set the device wall-clock time; with no argument, sends the current UTC instant. tickerbox time 2026-01-01T00:00:00
tz Timezone lookup and device timezone. tickerbox tz list --grep Europe, tickerbox tz set "Europe/London"
display Ticker screen brightness, rotation interval, sleep schedule. tickerbox display settings
clock Clock screen. tickerbox clock set --enabled
brightness Shortcut for display brightness: set, or step up/down. tickerbox brightness 180, tickerbox brightness up 20
uptime Device uptime since last boot, formatted as 1d 2h 3m 4s. tickerbox uptime
reboot Shortcut for system restart, with a confirmation prompt. tickerbox reboot -y
tickers The asset list shown on the display: add, edit, move, remove, clear, list, export, import, validate, template. tickerbox tickers add --type crypto --time 15min --currency EUR BTC ETH
system Device status, features, and maintenance actions. restart, factory-reset and firmware-upload mutate the device and prompt for confirmation unless --yes/-y is given. tickerbox system info
config Whole-device config as one JSON snapshot, covering every section (tickers, display, clock, ntp, wifi, ap). tickerbox config export --file office.json
profile Named, device-agnostic snapshots stored locally; default section set is tickers/display/clock/ntp (--all or --include widens it). tickerbox profile save office
device The local device registry: add NAME HOST, use NAME, list, rm NAME, ping [NAME|--all], discover (LAN scan for TickerBoxes). tickerbox device discover
doctor Read-only health check (heap, filesystem headroom, wifi, NTP, AP exposure); exits non-zero on a critical finding. tickerbox doctor --all
watch Re-runs a read-only view (status by default) on an interval until interrupted; refuses any command that is not read-only. tickerbox watch tickers list --interval 5s
version CLI build version. tickerbox version
open (alias ui) Opens the device's web UI in the default browser. tickerbox open

tickers add (SYM... form shown above) merges what was formerly a single-ticker add; every symbol given shares one --type/--time/ --currency.

tickers subcommands
Subcommand Effect Example
add SYM... Append tickers sharing one type/time/currency. tickerbox tickers add --type crypto --time 15min --currency EUR BTC ETH
edit <index|sym> Change one entry in place, by index or symbol. tickerbox tickers edit BTC --time 5min
move <from> <to> Reorder the display cycle. tickerbox tickers move 3 1
remove <index|sym> Remove one entry. tickerbox tickers remove BTC
clear Remove every entry. tickerbox tickers clear
list List configured tickers. tickerbox tickers list
export / import Round-trip the list as JSON. tickerbox tickers export --file list.json
validate Report illegal fields and duplicate symbols without changing anything. tickerbox tickers validate
template list / show <name> / apply <name> Built-in presets. tickerbox tickers template apply crypto-majors

Endpoints covered

Command Method Endpoint
status GET features, systemStatus, wifiStatus, apStatus, ntpStatus, settingsState, clockSetupState
wifi status GET wifiStatus
wifi settings GET wifiSettings
wifi set GET, POST wifiSettings
wifi scan GET scanNetworks, listNetworks
ap status GET apStatus
ap settings GET apSettings
ap set GET, POST apSettings
ntp status GET ntpStatus
ntp settings GET ntpSettings
ntp set GET, POST ntpSettings
time POST time
tz set GET, POST ntpSettings, clockSetupState
tz list — bundled timezones.json, no device call
display settings GET settingsState
display set GET, POST settingsState
brightness, brightness up/down GET, POST settingsState
clock settings GET clockSetupState
clock set GET, POST clockSetupState
tickers list/add/edit/move/remove/clear/export/import/validate/template apply GET, POST coinSetupState
tickers template list/show — bundled presets, no device call
system info GET systemStatus
system features GET features
system restart, reboot POST restart
system factory-reset POST factoryReset
system firmware-upload POST (multipart) uploadFirmware
uptime GET ntpStatus
config export/diff/import GET, POST coinSetupState, settingsState, clockSetupState, ntpSettings, wifiSettings, apSettings
profile save/apply/diff GET, POST same section set as config, restricted to what was captured
device discover/ping GET features (probe only, to confirm a host is a TickerBox)
doctor GET features, systemStatus, wifiStatus, apStatus, ntpStatus

device add, device use, device list, device rm, profile list/show/rm, tz list and version make no device call.

Shell completion

tickerbox completion generates a shell completion script; it is a cobra built-in, not a project-specific feature, so its behaviour follows cobra's current documentation for the subcommand of your shell.

Shell Load for this session Install for every session
bash source <(tickerbox completion bash) tickerbox completion bash > /etc/bash_completion.d/tickerbox (Linux) or tickerbox completion bash > $(brew --prefix)/etc/bash_completion.d/tickerbox (macOS); requires the bash-completion package
zsh source <(tickerbox completion zsh) tickerbox completion zsh > "${fpath[1]}/_tickerbox"; requires compinit enabled in ~/.zshrc
fish tickerbox completion fish | source tickerbox completion fish > ~/.config/fish/completions/tickerbox.fish
powershell tickerbox completion powershell | Out-String | Invoke-Expression add that line to your PowerShell profile
$ tickerbox completion bash --help
Generate the autocompletion script for the bash shell.

This script depends on the 'bash-completion' package.
If it is not installed already, you can install it via your OS's package manager.

To load completions in your current shell session:

	source <(tickerbox completion bash)
...

Network behaviour

tickerbox makes network calls only to the device host resolved from --host, --device, $TICKERBOX_HOST, or the default device (see Targeting a device). It never contacts any host outside that resolution and does not phone home.

Two exceptions send LAN broadcasts instead of a request to the resolved host: device discover probes tickerbox.local and every address in the local /24 subnet, and device ping probes each configured device, both looking only for TickerBoxes on the local network.

tickerbox does not check for updates on its own. version reports the build embedded at compile time and makes no request.

Tests

$ go test ./...
ok  	github.com/openbunny/tickerbox-cli/cmd	0.412s
ok  	github.com/openbunny/tickerbox-cli/internal/client	0.038s
ok  	github.com/openbunny/tickerbox-cli/internal/config	0.021s
...

Tests use net/http/httptest; they never contact a device.

Documentation

  • CLI reference — every command and flag, generated from the cobra command tree.
  • Configuration schema — the on-disk device config and profile store: location, permissions, field reference.
  • docs/README.md — index of the above plus the profile-snapshot JSON schema and the timezone-data provenance record.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
docs
gen command
internal
tz

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL