About cardputer-buddy
cardputer-buddy is a MicroPython app bundle and development skill for Cardputer, with a launcher menu and several example apps. It also includes tools to push files over USB serial, inspect logs, and run REPL scripts.
Key features
- 01Scan apps and show a boot menu
- 02Includes Claude Buddy, Hello, and Snake apps
- 03Push selected files over USB serial
- 04Watch device logs and run REPL scripts
Use cases
- 01Add and run apps on a Cardputer
- 02Push app updates without reflashing
- 03Debug device code and inspect serial output
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ anthropics/ claude-plugins-official --skill cardputer-buddyAfter installing, type/cardputer-buddyin Claude Code to confirm it loaded.
Details
From the project READMECardputer Buddy app bundle
The buddy/ directory in the local build-with-claude clone is the MicroPython payload that m5-onboard installs onto /flash/. Work inside that clone.
Device layout
/flash/
├── main.py launcher menu (replaces UIFlow's boot flow)
├── buddy_*.py shared libs (BLE, UI, state, protocol, chars)
├── burst_frames.py sprite frames
└── apps/
├── claude_buddy.py BLE client → Claude Desktop's Hardware Buddy
├── hello_cardputer.py
└── snake.py
main.py scans /flash/apps/ at boot and lists every .py as a menu entry. Drop a file into buddy/device/apps/, push it, and it appears on next boot.
Adding an app
Crib from buddy/device/apps/hello_cardputer.py — smallest example of keyboard polling, font, and exit conventions. Then push without re-flashing:
python3 onboard/scripts/install_apps.py --port <PORT> --src buddy
<PORT> is whatever detect.py reported last run (e.g. /dev/cu.usbmodem1101, /dev/ttyACM0, COM3).
Dev loop tooling (buddy/scripts/)
# Push a subset of files over USB-serial
python3 buddy/scripts/push.py --port <PORT> --files apps/snake.py
# Watch device logs
python3 buddy/scripts/tail_serial.py --port <PORT>
# One-shot REPL exec
python3 buddy/scripts/repl_run.py --port <PORT> --script "import os; print(os.listdir('/flash'))"