Marqee accepts posts two ways. They do exactly the same thing — pick whichever fits your tool.
For anything that can make a web request.
POST http://127.0.0.1:17893/
Content-Type: application/json
{"title": "Build finished", "message": "All 25 tests passing"}
For Shortcuts, AppleScript, or anything that can open a URL.
open "marqee://post?title=Build%20finished&message=All%2025%20tests%20passing"
URL-scheme values must be URL-encoded (spaces become %20). In the Shortcuts app, pass your text through the built-in "URL Encode" action first.
One required field, seven optional. In the URL scheme these are query parameters; booleans accept 1 or true.
Four things that make automation posts safe to fire and forget.
Automation posts are deliberately low-priority: while Focus is on they're held and counted, then shown in the digest when Focus ends. Your build notification never interrupts deep work.
If a persistent card is on screen when another arrives, nothing is lost — the newest shows with a "+1" chip and dismissing reveals the next.
Recent Notifications in the menu bar keeps the last 200 cards, including the ones that were held.
The server binds to 127.0.0.1 exclusively; nothing on your network can reach it, and Marqee never makes outbound calls on your behalf. In v1 any local process may post — there's no token yet.
Copy, paste, adjust. Every one is verified against the shipping code.
This is schema v1. Fields will be added over time — always optional — and existing fields will never be renamed, removed, or change meaning.