Check lets you share plans and annotations with teammates two ways:

  • Share a link — hand someone a read-only snapshot of your plan + annotations. By default this is a short, end-to-end-encrypted link backed by the paste service; a self-contained hash URL is the fallback when the paste service is unavailable.
  • Collaborate live — open a real-time session (check annotate --collab) that teammates join by link to annotate the same document at once. See Real-time collaboration below.

How sharing works

When you share a plan, the markdown + annotations are serialized to a compact JSON format, compressed with deflate-raw (the browser’s native CompressionStream), and base64url-encoded.

By default that payload is then encrypted and uploaded to the paste service, producing a short link:

https://share.check.pleaseai.dev/p/aBcDeFgH#key=...

The encryption key lives only in the URL fragment (#key=...) and never reaches the server, so the paste service only ever holds ciphertext it cannot read.

The compressed payload can also be carried entirely in the URL hash with no upload at all:

https://share.check.pleaseai.dev/#eNqrVkrOz0nV...

This hash form is the automatic fallback when the paste service is unavailable. Either way the share portal is a static page that decodes the link client-side.

Sharing a plan

  1. Click Export in the header bar (or use the dropdown arrow for quick actions)
  2. In the Export modal, go to the Share tab
  3. Check automatically creates an encrypted short link — copy it and send it to your teammate
  4. The full hash URL is shown below as a backup (and is used automatically if the paste service is unavailable)

The short link is the default because it stays short enough for any messaging app and keeps the plan end-to-end encrypted. Everything is encrypted in your browser before upload — see Privacy & encryption.

Importing a teammate’s review

When a teammate shares their annotated plan with you:

  1. Click the Export dropdown arrow → Import Review
  2. Paste the share URL
  3. Their annotations load into your current session

This lets you see exactly what a teammate flagged, merge their feedback with your own, and send a combined review back to the agent.

Disabling sharing

If you want to prevent sharing (e.g., for sensitive plans), set:

export CHECK_SHARE=disabled

Or set it persistently in ~/.check/config.json:

{ "share": "disabled" }

The environment variable takes precedence over the config file.

When sharing is disabled:

  • The Share tab is hidden from the Export modal
  • The “Copy Share Link” quick action is removed
  • The Import Review option is hidden

The Share tab creates a short link by storing the compressed, encrypted plan in a paste service. Short links stay well within the length limits of messaging apps like Slack and WhatsApp (long hash URLs can be truncated), so Check generates one automatically.

How it works

  1. Click ExportShare
  2. Check uploads the encrypted plan and shows a short URL like share.check.pleaseai.dev/p/aBcDeFgH
  3. The full hash URL is shown beneath it as a backup
  4. The stored paste is automatically deleted after the configured TTL

If the paste service can’t be reached, Check silently falls back to the full hash URL — sharing still works, the link is just longer.

Privacy & encryption

  • Plans are end-to-end encrypted (AES-256-GCM) in your browser before upload — the paste service stores only ciphertext it cannot read
  • A single-use encryption key is generated in your browser via the Web Crypto API. The key never leaves the browser — it is never sent to the paste service or any server. It exists only in the URL fragment (#key=...), which browsers never include in HTTP requests per the HTTP specification. Not even the service operator can decrypt stored plans.
  • Nothing is uploaded until you open the Share tab; if you never share, no data leaves your machine. Set CHECK_SHARE=disabled to turn sharing off entirely.
  • Pastes auto-expire and are permanently deleted (hosted: 7 days, self-hosted: configurable via PASTE_TTL_DAYS)
  • The paste service is fully open source — you can audit exactly what it does
  • Self-hosters can run their own paste service for complete control — see the self-hosting guide
  • If the paste service is unavailable, the full hash URL is always available as fallback

Real-time collaboration

For a working session where several people review the same plan at once, start a collaborative annotate session instead of passing a snapshot back and forth:

check annotate --collab path/to/plan.md
  • A shareable link is printed; teammates open it to join the same live document
  • Everyone annotates simultaneously — each comment is tagged with its author
  • Only the host submits, sending one merged, author-tagged set of feedback to the agent
  • Recipients work on the shared session in real time (unlike a share link, which is a read-only snapshot the recipient annotates on their own copy)

Collaboration runs through the same server Check already starts locally. In remote setups the session must be reachable by your teammates — see Remote & devcontainers for binding and port details.

Self-hosting the share portal

By default, share URLs point to https://share.check.pleaseai.dev. You can self-host the portal and point Check at your instance. See the self-hosting guide for details.

Privacy model

  • Sharing is end-to-end encrypted: the plan is encrypted in your browser before any upload, and the key stays in the URL fragment — the paste service only ever stores ciphertext it cannot read (and the hash-URL fallback is never uploaded at all)
  • The share portal is a static page — it only decodes the link and renders client-side
  • No analytics, no tracking, no cookies on the share portal
  • Short links are created only when you open the Share tab, and use end-to-end encryption (AES-256-GCM) — the decryption key is embedded in the URL fragment and never sent to the server. The paste service stores only opaque ciphertext, similar to PrivateBin (see Short links for details)
  • Set CHECK_SHARE=disabled to disable sharing entirely

Built by