| name | remarkable-cli |
| description | Interact with a reMarkable Paper Pro tablet. Use this skill whenever the user mentions their reMarkable, wants to manage tablet documents (list, upload, download, delete, move), export handwritten notes, write text onto notebook pages, manage pages and tags, change splash screens, manage SSH access, or monitor the tablet for changes. Also use when the user says "remarkable", "tablet", "e-ink", "paper pro", "my notes on the device", "write on the tablet", or references syncing handwritten content. |
remarkable-cli
Go CLI for reMarkable Paper Pro. One binary, two transports (SSH + Cloud), JSON output by default.
Install: go install github.com/itsfabioroma/remarkable-cli@latest or remarkable if already built.
First-time setup
remarkable connect
remarkable connect --cloud-only
remarkable connect 192.168.1.5 --password "pass"
remarkable connect 192.168.1.5 --ssh-only
connect is an interactive wizard: cloud auth first (works for everyone), then optional SSH for write access (requires developer mode). Saves everything including password. Cloud is the primary transport (~3s), SSH is the power-user fallback (~1s, full access).
Commands
Documents
remarkable ls
remarkable ls --all
remarkable ls --tag "work"
remarkable get "Document Name"
remarkable put report.pdf "Folder"
remarkable rm "Old Draft"
remarkable mv "Draft" "Final"
remarkable mv "Doc" "Folder"
remarkable mkdir "Projects"
Write text onto pages
remarkable write "Notebook" --text "Hello from the agent" --new-page
remarkable write "Notebook" --text "Appended below existing content" --page 2
remarkable write "Notebook" --text "Long text auto-wraps and scales to fit"
Text appears as pen strokes (Fineliner). Auto-scales based on length — short text is large, long text wraps. When writing to an existing page, appends below existing content. Requires SSH.
Export and read handwritten pages
remarkable export "Notebook"
remarkable export "Notebook" --page 19
remarkable export "Notebook" --page 19 --svg
remarkable export "Notebook" -o /tmp/notes
Default output is PNG (readable by AI agents). Falls back to cloud when SSH unavailable. To read a page: export it, then read the PNG file.
Agent workflow to read handwriting:
remarkable export "Main" --page 19 -o /tmp/notes
Page management
remarkable pages "Notebook"
remarkable pages add "Notebook"
remarkable pages add "Notebook" --template "P Grid medium"
remarkable pages add "Notebook" --after 3
remarkable pages rm "Notebook" --page 5
remarkable pages move "Notebook" --page 5 --to 2
remarkable pages copy "Source NB" --page 3 --to "Dest NB"
remarkable pages move-to "Source NB" --page 3 --to "Dest NB"
Requires SSH.
Tag management
remarkable tag "Notebook" "work"
remarkable tag "Notebook" "work" --rm
remarkable tag "Notebook" "important" --page 3
remarkable tags
Requires SSH.
Splash screens
remarkable splash list
remarkable splash set image.png
remarkable splash set image.jpg poweroff
remarkable splash restore
Screens: sleep, poweroff, starting, battery, reboot. Auto-resizes to 1620x2160. Requires SSH.
Read document text
remarkable read "Document Name"
remarkable read "Document Name" --page 5
Extracts text from PDFs (via pdftotext) and EPUBs (built-in). Returns searchable text. Works over SSH and cloud.
Extract highlights
remarkable highlights "Document Name"
remarkable highlights "Document Name" --page 5
remarkable highlights "Document Name" --markdown
Parses .highlights/ folder, merges adjacent highlights (3-char gap tolerance). Requires SSH.
Backup
remarkable backup
remarkable backup /path/to/dir
remarkable backup --raw
Downloads all documents preserving folder structure. Renders notebook pages as PNG. Requires SSH.
Search
remarkable search "meeting"
remarkable search "PMF" --tag work
Case-insensitive substring search across document names. Works over SSH and cloud.
Fetch URL
remarkable fetch https://example.com/paper.pdf
remarkable fetch https://arxiv.org/pdf/2401.12345.pdf "Papers"
Downloads a PDF from a URL and uploads to the device in one command. Direct PDF URLs only.
Document info
remarkable info "Document Name"
Shows: name, path, type, pages, tags, last modified, ID. Quick lookup for agents.
Refresh (reload device UI)
remarkable refresh
Call after put, mkdir, rm, mv, or fetch — especially after bulk operations. Without refresh, uploaded docs won't be visible on the device screen until the next manual reboot.
Device management
remarkable password "newpass"
remarkable setup-key
remarkable watch --on-change "cmd {id}"
remarkable auth
remarkable disconnect
Transport rules
| Transport | Speed | Capabilities |
|---|
| Cloud | ~3s | Read: ls, get, export, read, search |
| SSH | ~1s | Everything (requires developer mode) |
Cloud is the default transport. SSH is optional for write operations: put, rm, mv, mkdir, write, pages, tag, watch, splash, password, setup-key, highlights, backup, fetch, refresh.
All commands auto-detect the best transport. Cloud is tried first, SSH is the fallback.
Output format
JSON by default when stdout is not a terminal. Errors are structured:
{"error": "description with actionable hints", "code": "transport_unavailable"}
Error codes: transport_unavailable, not_found, permission_denied, auth_required, auth_expired, unsupported_operation, corrupted_data, conflict
Every error includes hints about what to run next. The agent reads the error and follows the hint.
Typical agent workflows
Read and process notes
remarkable connect 192.168.1.5
remarkable ls
remarkable export "My Notes" -o /tmp/notes
Write agent output to tablet
remarkable write "Daily Notes" --text "Summary: discussed Q2 targets, action items below" --new-page
remarkable write "Daily Notes" --text "1. Follow up with team\n2. Review budget"
Organize notebooks
remarkable pages add "Work" --template "P Grid medium"
remarkable pages move "Work" --page 5 --to 1
remarkable tag "Work" "priority"
Monitor and react
remarkable watch --on-change "process_notes.sh {id}"