iOS SDK · shake to report
Your users are already telling you what's broken.
They're shaking their phones. RageShake catches the shake, grabs a screenshot, and turns the frustration into a filed Linear issue — device metadata attached — before they rage-quit.
- 1 line
- to install
- < 1s
- shake to issue
- 0 deps
- no SDK bloat
Quickstart
Live in three steps.
No native shake plumbing, no feedback UI to design. Add the package, drop in your ingest key, and reports start flowing to Linear.
Add RageShake to your app with Swift Package Manager. iOS 15+, zero third-party dependencies.
.package( url: "https://github.com/rageshake/rageshake-ios", from: "1.0.0")One call at launch with your ingest key. RageShake handles shake detection, the screenshot, and the feedback sheet.
import RageShake @mainstruct MyApp: App { init() { RageShake.configure( apiKey: "rs_ing_9f2c…" ) }}Point the project at your Linear team. Every shake becomes a filed issue — message, screenshot, and device metadata attached.
// a user just shook their phonereport rp_a1b2 → linear status: delivered issue: RAG-42 screenshot: attached // triage it like any other issueDestinations
Route reports where your team already works.
Each project fans a report out to its enabled destinations on ingest, with retries on failure. Webhook payloads are HMAC-SHA256 signed so you can trust what you receive.
Linear
LiveWebhooks
Live · HMAC-signedX-Rageshake-Signature header and pipe it anywhere.Slack & GitHub destinations — coming soon.
{ "message": "Pay button does nothing", "screenshot_url": "https://blob.rageshake.dev/…", "metadata": { "device": "iPhone 15", "os": "iOS 18.2", "app_version": "3.4.1", "locale": "en_US" }, "received_at": 1753…}Developer surface
Everything the SDK does, you can script.
Projects, keys, destinations, and reports are all first-class REST resources — with an OpenAPI spec, a Go CLI, and a hosted MCP server so your agents can wire themselves up.
REST API
v1 · AIPResource-oriented endpoints following Google AIP conventions.
Go CLI
cobraFull CRUD from your terminal. Table, JSON, or CSV output.
$ rageshake reports list \ --project rageshake-ios \ --format=json $ rageshake destinations test rag_42MCP server
for agentsA hosted, streamable endpoint. One call takes an agent from nothing to a working project.
bootstrap_project // project + key + destconfigure_destinationtest_destinationlist_reports