boox
how to send documents to the user boox e ink tablet. Use when the user mentions boox, eink, e-ink tablet, USB file transfer to the tablet, or wants a PDF on the Boox. Also use for BooxDrop (Wi-Fi tran
SKILL.mdskills/boox/SKILL.md
GitHubboox
Send files to Tommy's ONYX Boox Go 10.3. Prefer USB when the tablet is plugged in. Use BooxDrop over Wi-Fi when it is not. Use Google Drive last.
USB upload with gphoto2
macOS Finder does not mount the Boox. It uses MTP. Do not wait for a
volume in /Volumes.
Check the tablet is on USB:
ioreg -p IOUSB -l -w0 | awk -F'"' '/USB Product Name|USB Vendor Name/ {print $4}'
A connected Go 10.3 shows vendor ONYX. Product name is often
KHAJE-IDP _SN:.... libmtp/gphoto2 may label it Google Inc Nexus/Pixel (MTP).
Upload into Books:
gphoto2 --folder '/store_00010001/Books' --upload-file "/path/to/file.pdf"
gphoto2 --folder '/store_00010001/Books' --list-files
gphoto2 is on Homebrew (brew install gphoto2). Install it if missing.
USB gotchas
- Unlock the tablet. Keep the screen on. Set USB to File Transfer.
- Use a data cable. Plug direct into the Mac, not a hub.
- If File Transfer is missing: Developer Options → Default USB configuration → File Transfer.
mtp-sendfile/mtp-connect --sendfilefail on this device (PTP Invalid Object Handle). Always use gphoto2.adbonly works if USB debugging is on. Do not depend on it.- If
ioreghas no ONYX device, USB is not enumerating. Switch cable or skip to Drive.
Wi-Fi upload with BooxDrop
Use this when no Boox is on USB, or when the user asks for BooxDrop. The user must open BooxDrop on the tablet, on the same Wi-Fi as the Mac.
bun ~/.config/opencode/skills/boox/booxdrop.ts find
bun ~/.config/opencode/skills/boox/booxdrop.ts send /path/to/file.pdf
bun ~/.config/opencode/skills/boox/booxdrop.ts send a.epub b.pdf --dir /storage/emulated/0/Books
bun ~/.config/opencode/skills/boox/booxdrop.ts send file.pdf --url http://192.168.1.50:8085
- The script tries the cached URL in
~/.cache/booxdrop.json, then scans each LAN/24on port 8085 withGET /api/device(VPN tunnels are skipped). - Upload is
POST /api/storage/upload(multipartfile, optionaldir). Default folder isBooks. Output shows the saved path on the device. - The IP comes from router DHCP. It is usually stable, but it can change.
- If the scan finds nothing: ask the user for the URL that BooxDrop shows on
screen and pass
--url. The tablet turns Wi-Fi off when it sleeps, so keep the screen on. Guest networks with client isolation block the scan.
Google Drive fallback
If USB and BooxDrop both fail, copy PDFs to:
/Users/morse/Documents/googledrive/
Drive syncs them. Example with critique:
critique --pdf /Users/morse/Documents/googledrive/changes-name.pdf