Jelly Local Sync

A local dashboard for your Jelly annotations. Open it in your browser, point the SDK to the URL it shows, and your feedback streams in as screenshots plus markdown.

Nothing leaves your machine.

npx jelly-local-sync

No clone. No setup. No dependencies. Run the command and the dashboard opens.

Why Local Sync exists

Jelly can send annotations to a hosted server, but sometimes you just want a fast local loop.

Capture feedback on your phone, see it on your laptop, paste it into Cursor or Claude Code, and move on. That is the whole point.

Connect a device

  • Android over USB

    Use adb reverse tcp:7777 tcp:7777. Your phone’s localhost:7777 connects to your laptop over USB. It works on airplane mode, SIM-less devices, and restricted networks.

  • iOS over Wi-Fi

    Keep the device and laptop on the same Wi-Fi, scan the QR code from the dashboard, and allow Local Network access.

  • Web on the same machine

    Paste the URL straight into the web client. CORS is already open, so no tunneling is needed.

What you see

Each annotation appears as a card with the screenshot, comment, intent, severity, element details, and source-file metadata.

You also get a live device list, like Pixel 7 · Android 14, with a status dot so you can quickly see whether the device is still connected.

Send feedback to ClickUp

Turn any annotation into a ClickUp Task or Bug. Jelly uses your comment as the description, maps severity to priority, and attaches the screenshot.

You can also batch multiple annotations into one list. Connect once with a personal API token. Tokens are stored server-side under ~/.jelly-local-sync/, never in the browser.

Local Sync is designed for local QA. The URL token is the access control. Storage is in-memory, with one session per running server. Restart between QA sessions when you want a clean slate. For strict local-only use, bind to 127.0.0.1.