Caret mark Caret Docs

Documentation

Caret speaks to a backend you control.

Caret is a compose surface for iOS: speak an intent at the cursor, preview, insert a finished message. Every request goes to the backend you configure — there is no mandatory first-party cloud. These pages document the wire contract between the Caret keyboard and any conforming backend.

Your Agent — implement the Caret APIcaret/v1

The complete contract for backend implementers and agents: base URL and versioning, auth, Ask (/v1/draft) and Imagine (/v1/imagine) with request/response JSON, async polling, idempotency, the error envelope, and migration notes from the legacy Klaw Keyboard shape.

Read the implementation guide →

The three modes

ModeWhat happensContract surface
Dictate Speech → polished, insert-ready text. Audio is captured by the containing app, chunk-uploaded with SHA-256 verification, transcribed and cleaned server-side. /v1/dictation/*
Ask An instruction → one insert-ready message, drafted with whatever context your backend can reach. Always previewed before insertion. /v1/draft
Imagine A spoken or typed prompt → a generated image, delivered through the containing app and the pasteboard. /v1/imagine

Design principles of the contract

Hosted endpoints

Caret also operates a managed backend at api.typewithcaret.com (hosted subscription tier, Dictate only — Ask and Imagine are BYOB surfaces). Its health probe is public:

curl -s https://api.typewithcaret.com/v1/health