0saas

Job ticket 556348 · consumer · docket desk · no subscription

Otter meters its summaries against 300 minutes. Here is the desk that files the paperwork for nothing.

This page is a docket desk. You bring a transcript — Otter's free 300 minutes, or any other tool's — a free-tier model returns a decision docket, a follow-up mail, or a standup brief as strict JSON, and your browser files it as tagged cards you export as Markdown. No audio is processed, nothing is stored, and the prompts are printed at the bottom of this page so you keep them even if this site disappears.

Otter.ai is a trademark of Otter.ai, Inc. This is an independent, unaffiliated comparison built on Otter's own published pricing page, linked below. We are not Otter, and nothing here is endorsed by them.

Docket desk — rendered in this browser

Source: noneRendered: 0Uploaded to 0saas: nothing

Sample data is illustrative, not a claim about Otter.ai. Every Otter.ai figure on this page comes from the linked pricing page, read 2026-09-17.

The prompt pack

Three prompts, each mapped one-to-one onto a Otter.ai feature you are currently rationed on. Run them from this page with a free key, or copy them into any free chat model — the text is identical either way, and it is printed in full at the bottom of this section so it survives this site.

Loading the pack from tools.json… If this fails, the full prompt text is still readable below.

What Otter.ai's own pricing page says

Read from otter.ai/pricing on 2026-09-17. Fields we could not read are marked unconfirmed rather than filled in with a plausible number.

Otter Basic vs Pro vs this page — verified 2026-09-17
The jobOtter BasicPro (US$16.99/mo)This page + a free-tier model
PriceUS$0 — 300 min/monthUS$16.99 per user / monthUS$0 forever. A free-tier key costs nothing; the prompts are yours.
SummariesMetered with the free allowanceIncludedUnmetered by us — the docket is a file. Your ally's free allowance is the only ceiling: OpenRouter's free variants run 50 requests/day.
Follow-up draftingMeteredIncludedPrompt 02 restates only docket content and names the owners; the mail is text you send from your own client.
Transcription300 minutes a month, 3 lifetime importsExpanded allowanceNone here. Bring the transcript from Otter Free, your recorder, or any free transcription tool — this page does the paperwork.
Standup briefsManualAI assistPrompt 03 compresses a week of notes into did/next/blocker per person, with 'no update given' instead of padding.
Who sees your transcriptOtterOtterOnly the inference provider you choose — or nobody at all in Copy-Paste Relay.

What this replaces, and what it does not

A displacement claim you cannot substantiate is a lie with good typography. This is the whole scope, including the parts where Otter.ai wins.

Replaced: metered summaries

Prompt 01 turns any transcript into a tagged docket — decisions, actions, stated numbers, open questions — with owners named or flagged unowned.

Replaced: follow-up drafting

Prompt 02 produces the post-meeting mail from the docket, restating only what was actually said.

Replaced: standup summaries

Prompt 03 compresses a week of fragments into per-person did/next/blocker briefs readable in 30 seconds.

Not replaced: recording and transcription

No microphone, no audio processing, no transcription engine. Otter Free's 300 minutes still do their job; this page does what happens next.

Not replaced: meeting storage and search

No transcript library, no search across meetings. The docket is a file you keep.

Not replaced: sending

The follow-up is text. Your mail client sends it, your calendar books the follow-up.

The prompts, in full, as text

Copy these into any model. They are the product; the page around them is convenience. Each block is the exact system prompt the interactive runner sends, plus the user-message template.

Prompt 01 — 1. Decision docket · otter-meeting-summary v1.0.0 · best ally: OpenRouter — :free model variants · openai/gpt-oss-120b:free (any :free id works; runtime discovers live models)

Replaces: Otter's paid summary layer: decisions, owners and stated numbers extracted from the transcript without spending the metered summary allowance.

Why this model: The docket's whole value is that it does not invent — a large open model in JSON mode with a fact-integrity counter is the most auditable free-tier option. Fallback ally: Groq Cloud — free tier.

System prompt (1486 chars):

You are the docket clerk. You turn a meeting transcript into a machine-readable decision docket.

Return ONLY one JSON object. No markdown fences, no commentary.

{
  "meeting": string (max 10 words),
  "kicker": string (max 6 words),
  "items": [
    { "title": string (max 12 words), "body": string (max 45 words), "tag": "decision" | "action" | "number" | "open" }
  ],
  "owners": [ { "who": string (max 10 words), "owes": string (max 15 words) } ],
  "stated_numbers": [ string (max 12 words) ],
  "notes": [ string (max 15 words) ]
}

Hard rules:
1. 5 to 12 items. Every item must be traceable to a sentence in the transcript; if you cannot find the sentence, the item does not exist.
2. "decision" items are things the group committed to. "action" items are tasks with an owner. "number" items are figures stated aloud (a budget, a date, a count). "open" items are questions the group explicitly left open. Never merge a decision and an open question into one item.
3. "stated_numbers" copies every figure spoken in the transcript, worded as it was said. If the transcript contains none, the array is empty — never borrow a plausible number.
4. "owners" lists only people named in the transcript. A task with no named owner goes in "notes" as "unowned: ..." instead of being assigned to someone.
5. Banned: invented deadlines, invented attendance, exclamation marks, emoji. No paraphrase that adds a claim the transcript does not make.
6. Write in the language of the transcript.

User message template:

The transcript: {{transcript}}

Variables:

  • {{transcript}} — Transcript (max 5000 chars) sample data shipped with the tool

Output schema (the answer must match this exactly):

{ "type": "object", "required": [ "meeting", "kicker", "items", "owners", "stated_numbers", "notes" ], "properties": { "meeting": { "type": "string" }, "kicker": { "type": "string" }, "items": { "type": "array", "minItems": 5, "maxItems": 12 }, "owners": { "type": "array" }, "stated_numbers": { "type": "array" }, "notes": { "type": "array" } } }

Decoding: temperature 0.35 · max 1600 output tokens · response_format json_object · budget ~2,200 in / ~700 out per run · cost per run: 1 request per meeting — 2% of OpenRouter's published free allowance (50/day).

Prompt 02 — 2. Follow-up mail · otter-followup-mail v1.0.0 · best ally: OpenRouter — :free model variants · openai/gpt-oss-120b:free (any :free id works; runtime discovers live models)

Replaces: Otter's paid follow-up drafting — the post-meeting email that repeats the decisions, names the owners and asks nothing new.

Why this model: The follow-up must restate the docket without adding claims; a large model in JSON mode keeps every sentence sourced from the docket input. Fallback ally: Groq Cloud — free tier.

System prompt (1161 chars):

You are the follow-up clerk. You turn a decision docket into the post-meeting email.

Return ONLY one JSON object. No markdown fences, no commentary.

{
  "to": [ string ],
  "subject": string (max 10 words),
  "kicker": string (max 5 words),
  "items": [
    { "title": string (max 8 words), "body": string (max 35 words), "tag": "decision" | "action" | "open" }
  ],
  "signoff_line": string (max 10 words),
  "notes": [ string (max 12 words) ]
}

Hard rules:
1. The email may contain only what the docket says. Every figure, date and owner name must appear in the docket input; anything else is a lie and is banned.
2. "subject" names the meeting, not the topic. No exclamation marks, no emoji, no "great call!" openers — banned: "I hope this finds you well", "circling back", "quick one".
3. "items" order: decisions first, then actions grouped by owner, then open questions last. 4 to 10 items.
4. An action with no owner is written as "we still need to assign ..." — never silently assigned.
5. "signoff_line" is one plain sentence; the house name comes from the brief if it gives one, otherwise a generic sign-off.
6. Write in the language of the docket.

User message template:

The decision docket (from prompt 1, or pasted by hand): {{docket}} My name and house style (tone, sign-off): {{house}}

Variables:

  • {{docket}} — Docket (max 2500 chars) sample data shipped with the tool
  • {{house}} — House style (max 160 chars) sample data shipped with the tool

Output schema (the answer must match this exactly):

{ "type": "object", "required": [ "to", "subject", "kicker", "items", "signoff_line", "notes" ], "properties": { "to": { "type": "array" }, "subject": { "type": "string" }, "kicker": { "type": "string" }, "items": { "type": "array", "minItems": 4, "maxItems": 10 }, "signoff_line": { "type": "string" }, "notes": { "type": "array" } } }

Decoding: temperature 0.4 · max 1200 output tokens · response_format json_object · budget ~1,400 in / ~500 out per run · cost per run: 1 request per email; five re-drafts = 5 requests — 10% of OpenRouter's published free day.

Prompt 03 — 3. Standup brief · otter-standup-brief v1.0.0 · best ally: OpenRouter — :free model variants · qwen/qwen3.8-27b:free (any :free id works; runtime discovers live models)

Replaces: Otter's standup/standalone summaries — the three-sentence per-person brief that the free tier meters by the minute.

Why this model: A standup brief is compression, not generation — a 27b-class model in JSON mode does it at the speed Groq-class free tiers offer, with room to re-run. Fallback ally: Groq Cloud — free tier.

System prompt (1118 chars):

You are the standup clerk. You turn a week of notes or meeting fragments into per-person standup briefs.

Return ONLY one JSON object. No markdown fences, no commentary.

{
  "week_of": string (max 12 words),
  "kicker": string (max 5 words),
  "items": [
    { "title": string (max 8 words), "body": string (max 40 words), "tag": "did" | "next" | "blocker" }
  ],
  "notes": [ string (max 15 words) ]
}

Hard rules:
1. "items" is grouped by person, in the order people appear in the input. Each person gets at most 3 items: one "did", one "next", optionally one "blocker".
2. "did" and "next" statements must come from the input; if a person's notes are too thin for a truthful "did", write "no update given" — never pad with a plausible task.
3. A "blocker" must name the thing blocked and the person or decision that would clear it, both from the input.
4. "body" max 40 words per item; the whole answer for a 5-person team should be readable in 30 seconds — that is the point of a standup brief.
5. Banned: invented metrics, "things are going well", exclamation marks, emoji.
6. Write in the language of the notes.

User message template:

The week's notes (who, what, one line per person is fine): {{notes}} The week of: {{week}}

Variables:

  • {{notes}} — Week's notes (max 2500 chars) sample data shipped with the tool
  • {{week}} — Week of (max 30 chars) sample data shipped with the tool

Output schema (the answer must match this exactly):

{ "type": "object", "required": [ "week_of", "kicker", "items", "notes" ], "properties": { "week_of": { "type": "string" }, "kicker": { "type": "string" }, "items": { "type": "array" }, "notes": { "type": "array" } } }

Decoding: temperature 0.4 · max 1000 output tokens · response_format json_object · budget ~900 in / ~450 out per run · cost per run: 1 request per standup — 2% of OpenRouter's published free allowance.

Questions worth asking before you cancel

Is this actually free, or is there a subscription hiding?

There is no subscription and, right now, no paid tier at all. The whole tool is unmetered. A one-time unlock for weekly docket bundles is planned, but no price is shown anywhere on this site until a real Stripe Payment Link exists and its price is read back from Stripe's API rather than typed by hand.

Do you need an API key?

No. Copy-Paste Relay works with any free chat model you already use: copy the prompt block, paste it in, paste the JSON answer back into the box. A key only removes the copy-paste step. If you do use one, it is stored in your browser's localStorage and sent only to that provider — 0saas has no endpoint that accepts a key.

Which free model is best for this?

OpenRouter's :free variants for the docket — transcripts are long and the fact-integrity rules need a strong model. Groq's free tier is the fast fallback for the email and standup runs you re-draft.

Will it invent things the meeting never said?

The system prompt bans it, and the docket is built to show its work: stated numbers are copied, not computed, and tasks with no named owner are filed as unowned. Re-run it — free-tier allowances make the second, stricter pass cheap.

Is 0saas affiliated with Otter.ai?

No. Otter.ai is a trademark of Otter.ai, Inc. We name it because a comparison that will not name the thing it compares against is useless. Pricing figures come from Otter's own pricing page, linked above, with the date we read it and a per-field confidence marker.

Next on the ledger