0saas

Job ticket 567412 · consumer · editing room · no subscription

Descript's free tier is 60 minutes and 100 credits. Here is the room that plans the edit for nothing.

This page is an editing room. You bring a transcript — Descript's 60 free minutes, or any other tool's — a free-tier model returns a time-coded cut list, a 30-second cold open, or ranked clip picks as strict JSON, and your browser prints it as rundown rows you export as Markdown. No audio is processed, nothing is rendered, and the prompts are printed at the bottom of this page so you keep them even if this site disappears.

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

Editing room — rendered in this browser

Source: noneRendered: 0Uploaded to 0saas: nothing

Sample data is illustrative, not a claim about Descript. Every Descript 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 Descript 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 Descript's own pricing page says

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

Descript Free vs Hobbyist vs this page — verified 2026-09-17
The jobDescript FreeHobbyist (US$16/mo)This page + a free-tier model
PriceUS$0 — 60 min/month + 100 creditsUS$16 per editor / month (billed annually)US$0 forever. A free-tier key costs nothing; the prompts are yours.
Transcript editing100 one-time AI creditsIncluded with expanded transcriptionUnmetered by us — the cut list is a file. Your ally's free allowance is the only ceiling: OpenRouter's free variants run 50 requests/day.
Cut planningManual selectionAI-assisted cutsPrompt 01 returns time-coded trims with a seconds-saved ledger that reconciles against the original length.
Cold openManualAI rewritePrompt 02 rebuilds the first 30 seconds from your own sentences and shows which line each beat came from.
Clip selectionManual highlightsAI highlightsPrompt 03 ranks 3–5 standalone 15–45s clips with the hook quoted from the transcript.
Who sees your transcriptDescriptDescriptOnly 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 Descript wins.

Replaced: metered cut planning

Prompt 01 returns the full cut list — ranges, saves, keep-as-is markers — with the arithmetic reconciled.

Replaced: AI rewrite passes

Prompt 02 rewrites the cold open using only the transcript's own sentences, with the source lines printed.

Replaced: AI clip highlights

Prompt 03 ranks the cutdown clips and says which order they play and why.

Not replaced: the editor itself

No timeline, no waveform, no render. The cut list is applied in Descript, CapCut, or whatever you cut with.

Not replaced: transcription

Bring the transcript. Descript's 60 free minutes, Whisper-class free tools, or Otter Free's 300 — all of them work as the ally here.

Not replaced: music, filler voices and effects

This room plans the edit; it does not score, colour or compress a single byte.

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. Cut list · descript-cut-list v1.0.0 · best ally: OpenRouter — :free model variants · openai/gpt-oss-120b:free (any :free id works; runtime discovers live models)

Replaces: Descript's paid transcript-editing layer — the trims and filler removals you get back as a time-coded cut list instead of a metered feature.

Why this model: A cut list is a timeline of decisions with durations that must add up; a large open model in JSON mode does the arithmetic and the classification in one request. Fallback ally: Groq Cloud — free tier.

System prompt (1361 chars):

You are the cutter in an editing room. You turn a transcript into a time-coded cut list.

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

{
  "title": string (max 10 words),
  "kicker": string (max 6 words),
  "steps": [
    { "when": "MM:SS-MM:SS", "title": string (max 10 words), "body": string (max 30 words), "duration": string (max 8 words) }
  ],
  "kept_seconds_estimate": integer,
  "original_seconds_estimate": integer,
  "notes": [ string (max 15 words) ]
}

Hard rules:
1. 4 to 10 steps. Each step is one keep/trim decision with a time range. Ranges must be in ascending order and may not overlap. If the transcript has no timestamps, assign them at 150 words per minute from the word order and mark it in "notes".
2. "duration" states what the step saves ("saves 0:40") or "keep as is". Never cut a sentence that carries a claim, a number, or a name — cut around it and say so in "body".
3. "kept_seconds_estimate" + total saved must equal "original_seconds_estimate"; compute all three from the steps.
4. Fillers (uh, so, basically, you know, repetition of a phrase already said) are the default cut material. A cut that removes meaning is banned and must instead be a rewrite suggestion in "body".
5. The first step must start at 00:00. The last step must end where the transcript ends.
6. Write in the language of the transcript.

User message template:

The transcript (with timestamps if you have them): {{transcript}}

Variables:

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

Output schema (the answer must match this exactly):

{ "type": "object", "required": [ "title", "kicker", "steps", "kept_seconds_estimate", "original_seconds_estimate", "notes" ], "properties": { "title": { "type": "string" }, "kicker": { "type": "string" }, "steps": { "type": "array", "minItems": 4, "maxItems": 10 }, "kept_seconds_estimate": { "type": "integer" }, "original_seconds_estimate": { "type": "integer" }, "notes": { "type": "array" } } }

Decoding: temperature 0.4 · max 1600 output tokens · response_format json_object · budget ~2,200 in / ~800 out per run · cost per run: 1 request per cut list — 2% of OpenRouter's published free allowance.

Prompt 02 — 2. Cold open · descript-cold-open v1.0.0 · best ally: OpenRouter — :free model variants · openai/gpt-oss-120b:free (any :free id works; runtime discovers live models)

Replaces: Descript's AI rewrite passes on the paid tiers — the first 20 seconds, the part viewers decide on, rewritten from your own transcript.

Why this model: A cold open is a compression with a hook — the reader's own sentences, reordered and tightened, which a large model in JSON mode does without drifting into marketing voice. Fallback ally: Groq Cloud — free tier.

System prompt (1320 chars):

You are the open writer in an editing room. You turn a transcript's first stretch into a cold open.

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

{
  "title": string (max 8 words),
  "kicker": string (max 5 words),
  "steps": [
    { "when": "00:00-00:SS", "title": string (max 8 words), "body": string (max 20 words), "duration": string (max 8 words) }
  ],
  "source_lines": [ string (max 15 words) ],
  "notes": [ string (max 12 words) ]
}

Hard rules:
1. 3 to 5 steps covering 00:00 to at most 00:30. Every "body" line is a verbatim or lightly tightened sentence FROM the transcript — no new sentences, no new claims, no new adjectives.
2. "source_lines" lists the transcript sentences each step drew from, verbatim. If a step is a light tightening, say "tightened" after the quote in notes.
3. The first step must contain the video's payoff — the sentence that says what the viewer gets. Find it in the transcript; do not write one.
4. Banned openers: "Hi, welcome to", "In this video", "Today we're going to", "So basically". No exclamation marks, no emoji.
5. If the transcript's first 60 seconds contain no payoff sentence, the correct answer is steps that surface the earliest real claim and a "notes" entry saying the payoff needs to be recorded.
6. Write in the language of the transcript.

User message template:

The first ~90 seconds of the transcript: {{opening}}

Variables:

  • {{opening}} — Opening transcript (max 2500 chars) sample data shipped with the tool

Output schema (the answer must match this exactly):

{ "type": "object", "required": [ "title", "kicker", "steps", "source_lines", "notes" ], "properties": { "title": { "type": "string" }, "kicker": { "type": "string" }, "steps": { "type": "array", "minItems": 3, "maxItems": 5 }, "source_lines": { "type": "array" }, "notes": { "type": "array" } } }

Decoding: temperature 0.75 · max 1100 output tokens · response_format json_object · budget ~1,200 in / ~500 out per run · cost per run: 1 request per take; ten takes = 10% of OpenRouter's published free day — re-roll until the open works.

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

Replaces: Descript's clip highlights on paid tiers — the short-form cutdowns selected from the full transcript with reasons attached.

Why this model: Clip picking is a ranked classification over the transcript — a 27b-class model in JSON mode ranks the candidates and keeps the arithmetic honest at 30 RPM. Fallback ally: Groq Cloud — free tier.

System prompt (1253 chars):

You are the clip picker in an editing room. You rank the transcript's best short-form clips.

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

{
  "title": string (max 8 words),
  "kicker": string (max 5 words),
  "steps": [
    { "when": "MM:SS-MM:SS", "title": string (max 10 words), "body": string (max 25 words), "duration": string (max 8 words) }
  ],
  "why_this_order": string (max 20 words),
  "notes": [ string (max 12 words) ]
}

Hard rules:
1. 3 to 5 clips, each 15 to 45 seconds, in the order they would play in a cutdown. Ranges must not overlap and must sit inside the transcript.
2. A clip must stand alone: the sentence at its start must make sense without the previous sentence. If it does not, start the clip at the next sentence and note the loss.
3. "body" states the clip's hook in one sentence, drawn from the transcript. No invented framing ("watch what happens next" is banned).
4. Prefer clips that contain a number, a named example, or a reversal — the transcript's own proof beats its own generalities. Say which in "body".
5. If the transcript is too thin for 3 standalone clips, return fewer and explain in "notes" — a padded clip list is worse than an honest one.
6. Write in the language of the transcript.

User message template:

The full 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": [ "title", "kicker", "steps", "why_this_order", "notes" ], "properties": { "title": { "type": "string" }, "kicker": { "type": "string" }, "steps": { "type": "array", "minItems": 3, "maxItems": 5 }, "why_this_order": { "type": "string" }, "notes": { "type": "array" } } }

Decoding: temperature 0.6 · max 1300 output tokens · response_format json_object · budget ~2,200 in / ~600 out per run · cost per run: 1 request per cutdown — 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 multi-video session planning 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 cut list — the transcript is long and the ranges must not overlap. Groq's free tier is the re-roll engine for cold-open takes.

Will the time codes match my real recording?

If your transcript has timestamps, the ranges copy them. If it does not, the prompt assigns them at 150 words per minute and says so in the notes — treat those as pacing estimates, not frame-accurate cuts.

Is 0saas affiliated with Descript?

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

Next on the ledger