Agent skill · Data & Analytics

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.

歸藏837★ · +98/wk · 1 repos on radarProfile →
claude-codecodexcan modify filesships scriptsNOASSERTION
Install
npx skills add op7418/ai-desk-card --skill card-widget --agent claude-code

Same command for any agent — swap --agent for codex, cursor, copilot.

Facts
Files in the skill folder: 22
SKILL.md size: 12 KB
Bundled scripts: yes
Allowed tools: -Bash-Read-Write
Path: plugin/skills/card-widget/SKILL.md
Open the folder on GitHub →
Where it comes from
Stars: 136
Language: Python

Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.

From the SKILL.md

# 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,

What's inside
Steps it walks through
  1. Transport & latency (v0.8)
  2. Layout cheat-sheet
  3. How to pick a layout
  4. Widget catalog
  5. Work staples
  6. Note-taking & focus
  7. AI monitoring
  8. Disambiguation — common confusions
  9. Pushing — three ways
  10. A. The helper (recommended; validates schema)
  11. B. curl
  12. C. Preview without device
  13. Pushing fields
  14. Failure modes
Ships with 21 files
  • schemas/ai-status.schema.json
  • schemas/ai-tasks.schema.json
  • schemas/break-reminder.schema.json
  • schemas/calendar.schema.json
  • schemas/deadlines.schema.json
  • schemas/focus.schema.json
  • schemas/git-status.schema.json
  • schemas/inbox.schema.json
  • schemas/messages.schema.json
  • schemas/next-meeting.schema.json
  • schemas/now-playing.schema.json
  • schemas/pr-queue.schema.json
  • schemas/scratch.schema.json
  • schemas/system.schema.json
  • schemas/todo.schema.json
  • schemas/weather.schema.json
  • scripts/fetch_notifications.py
  • scripts/fetch_todo_reminders.py
  • scripts/install_firmware.py
  • scripts/push_widget.py
  • themes/minimal.yaml
Commands it runs
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
More from ai-desk-card
All skills →
About this skill
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.

Keep going