Skip to content

FAQ

By default, the hosted relay accepts clips up to 20 MB. Self-hosted relays can raise this limit with the MAX_BODY_MB environment variable (up to whatever your server’s RAM allows).

The CLI (cinch push / cinch pull / cinch auth) runs on:

  • macOS (Apple Silicon + Intel)
  • Linux (x86_64, ARM64)
  • Windows (x86_64)

The desktop app (macOS) receives clips automatically and copies them to your clipboard. Linux and Windows builds are planned.

Does Cinch support binary data and images?

Section titled “Does Cinch support binary data and images?”

Yes. cinch push reads raw bytes from stdin and auto-detects the MIME type from the first 512 bytes. Binary data, PNG/JPEG images, and arbitrary files are all supported.

Terminal window
cat screenshot.png | cinch push
cinch pull > screenshot.png

Does the CLI require a GUI or a desktop session?

Section titled “Does the CLI require a GUI or a desktop session?”

No. The CLI is fully headless. It works in SSH sessions, Docker containers, CI runners, and cron jobs — anywhere with outbound HTTPS access.


Only machines paired with the same relay and token. The relay stores clips encrypted at rest (SQLite + filesystem encryption). If you use the hosted relay, Cinch staff have access to the relay infrastructure but not to the content of individual clips.

For maximum privacy, self-host the relay — see Self-hosting.

The hosted relay deletes clips after 7 days. Self-hosted relays default to 7 days and can be configured with RETENTION_DAYS.

Yes. All HTTP and WebSocket traffic is over TLS (HTTPS / WSS). The hosted relay enforces TLS. If you self-host, terminating TLS at a reverse proxy (Caddy, nginx, Cloudflare Tunnel) is recommended.


How do I use Cinch in GitHub Actions or other CI systems?

Section titled “How do I use Cinch in GitHub Actions or other CI systems?”

Set CINCH_TOKEN and CINCH_RELAY_URL as environment variables. The CLI reads them automatically — no config file needed.

.github/workflows/deploy.yml
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install cinch
run: curl -fsSL https://cinchcli.com/install.sh | sh
- name: Push build status
env:
CINCH_TOKEN: ${{ secrets.CINCH_TOKEN }}
CINCH_RELAY_URL: ${{ vars.CINCH_RELAY_URL }}
run: echo "Build ${{ github.run_number }} passed" | cinch push --label "ci"

Get your token from cinch auth status or generate a dedicated one with cinch auth regenerate-pair-token.


This usually means the relay is unreachable. Check:

  1. Is your relay running? Try curl https://your-relay/health.
  2. Is CINCH_RELAY_URL set correctly?
  3. Is port 8080 (or your configured port) open in the firewall?

The relay has no recent clip to return. Push something first, or check cinch auth status to confirm the device is paired.

Run cinch auth logout then re-pair with a fresh token from cinch auth pair.