card-widget
Push live data to the user's ai-desk-card M5Paper e-ink companion display. Use whenever the user asks to show todos, calendar, weather, AI status, inbox counts, next meeting, or any glanceable info on their card / 卡片 / 副屏 / 墨水屏 / e-ink display. 16 widget types available; AI picks slot + widget type, fills data, POSTs to the local card daemon (default 127.0.0.1:9877). Communicates over loopback, so individual widget writes don't trigger AI agent approval prompts.
npx skills add op7418/ai-desk-card --skill card-widget --agent claude-code
Same command for any agent — swap --agent for codex, cursor, copilot.
Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.
# card-widget — drive the M5Paper 副屏 The card is a 540 × 960 e-ink panel sitting next to the user's monitor. You push 1-4 widgets and the daemon renders a single frame; transfer time depends on the transport. ## Transport & latency (v0.8) The daemon auto-picks Wi-Fi > USB > BLE at startup. Each path has different per-push characteristics — be aware: | Transport | Single-widget update | Full frame | Power use | |---|---|---|---| | **Wi-Fi** (HTTP) | ~0.2 s | ~2 s | high while connected | | **USB serial** @ 115200 | ~1 s region / ~32 s full | 32 s | n/a | | **BLE** (small cmds only) | works for commands; **frame data hangs** | broken | low | The daemon also runs a **dirty-region diff** so unchanged pixels don't re-transmit — typical "one widget updated" push is 5-30 KB instead of the 250 KB full frame. You don't manage this; the daemon decides per push. **Push frequency rules** (e-ink hardware): - Per-widget content change: fine, push freely (debounced internally at 1.5 s) - Per-keystroke streaming: NO. Each push triggers e-ink refresh which damages the panel over time. - ai-status taking off / completion: one push at start, one at end. - For sub-minute "live" info (timer countdowns,
- Transport & latency (v0.8)
- Layout cheat-sheet
- How to pick a layout
- Widget catalog
- Work staples
- Note-taking & focus
- AI monitoring
- Disambiguation — common confusions
- Pushing — three ways
- A. The helper (recommended; validates schema)
- B. curl
- C. Preview without device
- Pushing fields
- Failure modes
todo --slot bottom --data-stdin <<EOF curl -sf -X POST http://127.0.0.1:9877/widget \ curl -sf -X POST http://127.0.0.1:9877/widgets/preview -o /tmp/p.png && open /tmp/p.png bash $CLAUDE_PLUGIN_ROOT/skills/card-onboard/scripts/probe.sh --quick
What does the card-widget skill do?
Push live data to the user's ai-desk-card M5Paper e-ink companion display. Use whenever the user asks to show todos, calendar, weather, AI status, inbox counts, next meeting, or any glanceable info on their card / 卡片 / 副屏 / 墨水屏 / e-ink display. 16 widget types available; AI picks slot + widget type, fills data, POSTs to the local card daemon (default 127.0.0.1:9877). Communicates over loopback, so individual widget writes don't trigger AI agent approval prompts.
How do I install it?
Run `npx skills add op7418/ai-desk-card --skill card-widget --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.
Where does this skill come from?
From op7418/ai-desk-card, a repository with 136 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.
Is a popular skill a good skill?
Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.