vestaboard.tools
>
vesta

Vestaboard layouts from JSON, CSV, or text.

vesta is a Python CLI for formatting data, previewing output, and publishing to Vestaboard.

JSON / CSV / textpreview firstflagship + notecloud + local
Get started
$ pip install vestaboard-tools
$ cat metrics.json | vesta render
$ cat metrics.json | vesta post-cloud --token $VESTABOARD_TOKEN
Commands

Four commands. Every formatting flag on this page works the same way in all of them, so a layout you like in the terminal is the layout that reaches the board.

vesta render

Format your data and preview the finished board in the terminal. Compact numbers, labels, tables, titles, timestamps, and color tiles all happen here.

No key needed. Nothing leaves your machine.
vesta post-cloud

Publish through the Vestaboard Cloud API. This is the normal path for scripts, cron jobs, and anything running away from your home network.

$VESTABOARD_TOKENor --token. Your Cloud read/write key.
vesta post-local

Publish over your local network, with optional flip animations. Requires the Local API enabled on the board.

$VESTABOARD_LOCAL_API_KEYor --api-key. A separate key from the Cloud one.
vesta read-cloud

Fetch what is on the board right now and preview it in the terminal. Worth running before you overwrite a board someone else is looking at.

$VESTABOARD_TOKENor --token. Same key as post-cloud.
metrics_styled.json
$ vesta render --input testdata/metrics_styled.json --valign center --align center --timestamp
{
  "revenue_curr": 184210.50,
  "sessions": 10823,
  "conversion_pct": 13.2,
  "bounce_rate_pct": 48.4,
  "_style": {
    "revenue_curr": "good",
    "conversion_pct": { "good": 8, "bad": 2 },
    "bounce_rate_pct": { "good": 30, "bad": 80 }
  }
}
home.json
$ vesta render --input testdata/home.json --columns 2 --title "home" --title-color "green,blue,violet" --subtitle time --subtitle-color violet
{
  "temp": "68F",
  "hum_pct": 42,
  "co2": "820",
  "noise": "38db",
  "doors": "shut",
  "light": "on",
  "heat": "off",
  "fans": "on"
}
server.json
$ cat testdata/server.json | vesta render --title "Server" --title-color none --separator rainbow --align center
{
  "uptime_pct": 99.97,
  "render ms": 15.3,
  "error_pct": 0.13,
  "rps": 1847,
  "_style": {
    "uptime_pct": { "good": 100, "bad": 95, "decimals": 2 },
    "render ms": { "good": 10, "bad": 100 },
    "error_pct": { "good": 0, "bad": 5 }
  }
}
stocks.json
$ cat testdata/stocks.json | vesta render --title 'stonks' --title-color blue,red
[
  { "ticker": "AAPL", "price_curr": 262.45, "change_pct": 1.23 },
  { "ticker": "NVDA", "price_curr": 185.20, "change_pct": -2.14 },
  { "ticker": "MSFT", "price_curr": 415.80, "change_pct": 1.87 },
  { "ticker": "TSLA", "price_curr": 378.50, "change_pct": -3.45 }
]
metrics_note.json
$ vesta render --input testdata/metrics_note.json --profile note
{
  "temp": 72.0,
  "humidity_pct": 54.0,
  "change_pct": -2.1
}
Quick start
Start with vesta.

Install the package, export your token, then read from and post to cloud.

$ pip install vestaboard-tools
$ export VESTABOARD_TOKEN=your_token_here
$ vesta read-cloud
$ cat data.json | vesta post-cloud
Cookbook

Browse more layouts for text, dashboards, tables, color tiles, and the Note profile.

View more examples