pp-vestaboard
Read, render Trigger phrases: `what's on my vestaboard`, `show my vestaboard`, `send a message to my vestaboard`, `post to the vestaboard`, `use vestaboard`, `run vestaboard`.
What this skill does
<!-- GENERATED FILE — DO NOT EDIT.
This file is a verbatim mirror of library/devices/vestaboard/SKILL.md,
regenerated post-merge by tools/generate-skills/. Hand-edits here are
silently overwritten on the next regen. Edit the library/ source instead.
See the repository agent guide, section "Generated artifacts: registry.json, cli-skills/". -->
# Vestaboard — Printing Press CLI
## Prerequisites: Install the CLI
This skill drives the `vestaboard-pp-cli` binary. **You must verify the CLI is installed before invoking any command from this skill.** If it is missing, install it first:
1. Install via the Printing Press installer. It defaults binaries to `$HOME/.local/bin` on macOS/Linux and `%LOCALAPPDATA%\Programs\PrintingPress\bin` on Windows:
```bash
npx -y @mvanhorn/printing-press-library install vestaboard --cli-only
```
2. Verify: `vestaboard-pp-cli --version`
3. Ensure the reported install directory is on `$PATH` for the agent/runtime that will invoke this skill.
If the `npx` install fails (no Node, offline, etc.), fall back to a direct Go install (requires Go 1.26.3 or newer):
```bash
go install github.com/mvanhorn/printing-press-library/library/devices/vestaboard/cmd/vestaboard-pp-cli@latest
```
If `--version` reports "command not found" after install, the runtime cannot see the binary directory on `$PATH`. Do not proceed with skill commands until verification succeeds.
## When to Use This CLI
Use this CLI to read or change what is displayed on a Vestaboard split-flap display: check the current message, render it as text, format text into character codes, post a new message, or adjust the transition style. It is the right tool when an agent needs to observe or update a physical Vestaboard programmatically.
## Anti-triggers
Do not use this CLI for:
- Do not use this CLI for the Vestaboard Local (LAN) API or the Subscription API — it wraps the Cloud Read/Write API only.
- Do not use it to manage multiple boards or board membership; a Cloud token maps to a single board.
## Unique Capabilities
These capabilities aren't available in any other tool for this API.
### Make the board legible
- **`message preview`** — See what's on your Vestaboard right now as readable text instead of a raw integer grid.
_Reach for this before composing or sending — it is the only way to know the board's current contents without decoding codes by hand._
```bash
vestaboard-pp-cli message preview --json
```
- **`characters`** — Print the full Vestaboard character-code table (code to glyph) for hand-building a character-array message.
_Use this when constructing a 'message send' character payload so you map glyphs to the right integer codes._
```bash
vestaboard-pp-cli characters --json
```
## Command Reference
**message** — The message currently shown on the Vestaboard.
- `vestaboard-pp-cli message get` — Read the message currently displayed on the board.
- `vestaboard-pp-cli message send` — Send a new message to the board.
**transition** — Transition animation settings for the board (Flagship and Note devices).
- `vestaboard-pp-cli transition get` — Get the current transition style and speed.
- `vestaboard-pp-cli transition set` — Set the transition style and speed. Both fields are required.
**vbml** — Vestaboard Markup Language (VBML) text formatting service.
- `vestaboard-pp-cli vbml` — Convert a text string into a 2D array of Vestaboard character codes.
### Finding the right command
When you know what you want to do but not which command does it, ask the CLI directly:
```bash
vestaboard-pp-cli which "<capability in your own words>"
```
`which` resolves a natural-language capability query to the best matching command from this CLI's curated feature index. Exit code `0` means at least one match; exit code `2` means no confident match — fall back to `--help` or use a narrower query.
## Recipes
### Read the board as text
```bash
vestaboard-pp-cli message preview
```
Decodes the live layout into a bordered block of glyphs you can read.
### Inspect the raw layout with field selection
```bash
vestaboard-pp-cli message get --agent --select currentMessage.id,currentMessage.layout
```
Pulls just the id and raw character grid for an agent without the surrounding envelope.
### Format then send a message
```bash
vestaboard-pp-cli vbml --message "GM" --json
```
Convert text to a character-code grid on the VBML host, then pass it to 'message send --body-json'.
### Set a transition
```bash
vestaboard-pp-cli transition set --transition wave --transition-speed gentle
```
Change the flip animation style and speed.
## Auth Setup
Create a Cloud API token in the API tab on web.vestaboard.com (or the mobile app under Settings → Advanced Settings), then run 'vestaboard-pp-cli auth set-token <token>'. The token is sent only to cloud.vestaboard.com; the VBML formatter on vbml.vestaboard.com takes no credentials.
Run `vestaboard-pp-cli doctor` to verify setup.
## Agent Mode
Add `--agent` to any command. Expands to: `--json --compact --no-input --no-color --yes`.
- **Pipeable** — JSON on stdout, errors on stderr
- **Filterable** — `--select` keeps a subset of fields. Dotted paths descend into nested structures; arrays traverse element-wise. Critical for keeping context small on verbose APIs:
```bash
vestaboard-pp-cli message get --agent --select id,name,status
```
- **Previewable** — `--dry-run` shows the request without sending
- **Non-interactive** — never prompts, every input is a flag
- **Explicit retries** — use `--idempotent` only when an already-existing create should count as success
## Agent Feedback
When you (or the agent) notice something off about this CLI, record it:
```
vestaboard-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
vestaboard-pp-cli feedback --stdin < notes.txt
vestaboard-pp-cli feedback list --json --limit 10
```
Entries are stored locally at `~/.local/share/vestaboard-pp-cli/feedback.jsonl`. They are never POSTed unless `VESTABOARD_FEEDBACK_ENDPOINT` is set AND either `--send` is passed or `VESTABOARD_FEEDBACK_AUTO_SEND=true`. Default behavior is local-only.
Write what *surprised* you, not a bug report. Short, specific, one line: that is the part that compounds.
## Output Delivery
Every command accepts `--deliver <sink>`. The output goes to the named sink in addition to (or instead of) stdout, so agents can route command results without hand-piping. Three sinks are supported:
| Sink | Effect |
|------|--------|
| `stdout` | Default; write to stdout only |
| `file:<path>` | Atomically write output to `<path>` (tmp + rename) |
| `webhook:<url>` | POST the output body to the URL (`application/json` or `application/x-ndjson` when `--compact`) |
Unknown schemes are refused with a structured error naming the supported set. Webhook failures return non-zero and log the URL + HTTP status on stderr.
## Named Profiles
A profile is a saved set of flag values, reused across invocations. Use it when a scheduled agent calls the same command every run with the same configuration - HeyGen's "Beacon" pattern.
```
vestaboard-pp-cli profile save briefing --json
vestaboard-pp-cli --profile briefing message get
vestaboard-pp-cli profile list --json
vestaboard-pp-cli profile show briefing
vestaboard-pp-cli profile delete briefing --yes
```
Explicit flags always win over profile values; profile values win over defaults. `agent-context` lists all available profiles under `available_profiles` so introspecting agents discover them at runtime.
## Exit Codes
| Code | Meaning |
|------|---------|
| 0 | Success |
| 2 | Usage error (wrong arguments) |
| 3 | Resource not found |
| 4 | Authentication required |
| 5 | API error (upstream issue) |
| 7 | Rate limited (wait and retry) |
| 10 | Config error |
## Argument Parsing
Parse `$ARGUMENTS`:
1. **Empty, `help`, or `--help`** → show `vestaboard-pp-cli --help` output
2. **Starts with `install`** → ends with `mcp` → Related in Image & Video
watch
IncludedWatch a video (URL or local path). Downloads with yt-dlp, extracts auto-scaled frames with ffmpeg, pulls the transcript from captions (or Whisper API fallback), and hands the result to Claude so it can answer questions about what's in the video.
physical-ai-defect-image-generation
IncludedUse when the user wants to orchestrate defect image generation, run associated setup, or handle outputs on OSMO. The Day 0 path handles cold-start with USD-to-ROI, image-edit augmentation, and AnomalyGen to create initial PCBA datasets. The Day 1 path performs inference and labeling on real images. This skill helps with first-time asset setup, creation of finetuning checkpoints, and configuring deployment. Trigger keywords: defect image generation, dig workflow, dig pipeline, defect image detection workflow, aoi pipeline, aoi anomalygen, usd2roi anomalygen, day 0 pcba, day 1 pcba, day 1 real-photo alignment, day 1 manual roi, metal surface anomaly, glass defect, anomalygen finetune, setup_pcb, setup_metal, setup_glass, setup_pretrained, dig setup, dig datasets, dig pretrained checkpoint, dig image-edit endpoint.
accelint-react-best-practices
IncludedReact performance optimization and best practices. ALWAYS use this skill when working with any React code - writing components, hooks, JSX; refactoring; optimizing re-renders, memoization, state management; reviewing for performance; fixing hydration mismatches; debugging infinite re-renders, stale closures, input focus loss, animations restarting; preventing remounting; implementing transitions, lazy initialization, effect dependencies. Even simple React tasks benefit from these patterns. Covers React 19+ (useEffectEvent, Activity, ref props). Triggers - useEffect, useState, useMemo, useCallback, memo, inline components, nested components, components inside components, re-render, performance, hydration, SSR, Next.js, useDeferredValue, combined hooks.
elevenlabs-agents
IncludedBuild conversational AI voice agents with ElevenLabs Platform using React, JavaScript, React Native, or Swift SDKs. Configure agents, tools (client/server/MCP), RAG knowledge bases, multi-voice, and Scribe real-time STT. Use when: building voice chat interfaces, implementing AI phone agents with Twilio, configuring agent workflows or tools, adding RAG knowledge bases, testing with CLI "agents as code", or troubleshooting deprecated @11labs packages, Android audio cutoff, CSP violations, dynamic variables, or WebRTC config. Keywords: ElevenLabs Agents, ElevenLabs voice agents, AI voice agents, conversational AI, @elevenlabs/react, @elevenlabs/client, @elevenlabs/react-native, @elevenlabs/elevenlabs-js, @elevenlabs/agents-cli, elevenlabs SDK, voice AI, TTS, text-to-speech, ASR, speech recognition, turn-taking model, WebRTC voice, WebSocket voice, ElevenLabs conversation, agent system prompt, agent tools, agent knowledge base, RAG voice agents, multi-voice agents, pronunciation dictionary, voice speed control, elevenlabs scribe, @11labs deprecated, Android audio cutoff, CSP violation elevenlabs, dynamic variables elevenlabs, case-sensitive tool names, webhook authentication
humanizer
IncludedHumanize AI-generated text by detecting and removing patterns typical of LLM output. Rewrites text to sound natural, specific, and human. Uses 28 pattern detectors, 560+ AI vocabulary terms across 3 tiers, and statistical analysis (burstiness, type-token ratio, readability) for comprehensive detection. Use when asked to humanize text, de-AI writing, make content sound more natural/human, review writing for AI patterns, score text for AI detection, or improve AI-generated drafts. Covers content, language, style, communication, and filler categories.
generating-mermaid-diagrams
IncludedSalesforce architecture diagrams using Mermaid with ASCII fallback. Use this skill when generating text-based diagrams for Salesforce architecture, OAuth flows, ERDs, integration sequences, or Agentforce structure. TRIGGER when: user says "diagram", "visualize", "ERD", or asks for sequence diagrams, flowcharts, class diagrams, or architecture visualizations in Mermaid. DO NOT TRIGGER when: user wants PNG/SVG image output (use generating-visual-diagrams), or asks about non-Salesforce systems.