Complete beginner reference for the DevSpeak Translation Editor. Documents every control: the Web Search, Output (Prose/XML), Model, and Project feature-bar controls; the Target Audience, Tech Context, Output Format, and Tone parameters; the Optimize, Translate Text, Fast AI, and Stop Generation actions; the attachments drawer (PNG, JPG, WEBP, PDF, TXT, MD up to 10 MB); the Preview, Split, and Source output modes; the Iterate & Refine panel; and the command palette — with defaults and required subscription tiers.

Every Control in the Translation Editor

The Translation Editor is where most DevSpeak work happens. It looks like a

two-pane text editor, but almost every surface around those panes changes what

the model receives — sometimes dramatically. A tone slider moved four points

can turn a one-paragraph rewrite into a twelve-section specification.

This tutorial walks the interface control by control. For each one you get what

it does, what its default is, and a concrete reason to change it.

What You'll Learn

  • Identify every control in the editor and what each one changes
  • Set the four translation parameters deliberately instead of by trial and error
  • Use Optimize, Translate, and Refine as three distinct operations
  • Recognize which controls require a paid tier before you hit the gate
  • Prerequisites

  • A DevSpeak account — the free tier is enough for most of this tour
  • A browser at 1024 px or wider, so the split panes render side by side
  • A rough feature idea written in plain language to translate
  • Time Estimate

    ~12 minutes

    Step 1 — Orient Yourself in the Header and Sidebar

    The header holds navigation and account controls, not translation controls.

    Left to right: the Translation Editor title, a save-status pill that cycles

    through _Unsaved_, _Saving…_, _Saved_, and _Save failed_, links to

    Dashboard and Docs, a language switcher that toggles EN / ES,

    and your avatar menu.

    The avatar menu holds three items: Account Settings, a Light Mode /

    Dark Mode toggle that persists across sessions, and Sign Out.

    The left sidebar switches workspaces. It collapses to an icon rail with the

    chevron at its base.

    | Sidebar item | What it opens | Tier required |

    | ------------------- | --------------------------------------------------- | ------------- |

    | Translate Text | This editor | Free |

    | Translate Files | Batch document translation jobs | VIBECODER |

    | Projects | Context Projects — reusable instructions and assets | VIBECODER |

    | History | Your saved translations | Free |

    | Notes | The Notes workspace | ENTERPRISE |

    | API Keys | Public API key management | DEVELOPER |

    Locked items stay visible with a Pro badge. Clicking one opens the pricing

    modal rather than failing silently — that is deliberate, so you can see what

    exists before you pay for it.

    Below the navigation sits a System Status terminal that streams a live log

    of what the editor is doing. It is the fastest way to tell a slow generation

    apart from a stalled one.

    Step 2 — Set the Feature Bar

    The feature bar is the row directly above the four parameters. These four

    controls change _how_ the request is executed rather than _what_ the document

    says. All four are disabled while a generation is in flight.

    Web Search is an on/off toggle, off by default. When on, DevSpeak

    retrieves live web results and grounds the next generation on them. Turn it on

    when the request depends on something that changed recently — a library's

    current major version, a newly published RFC, a pricing page. Leave it off for

    internal domain work, where retrieval adds latency and no accuracy.

    Output is a two-option selector: Prose or XML. Prose is the

    default and produces Markdown for humans. XML produces a deterministic,

    machine-readable document — use it when a script, not a person, consumes the

    result.

    Model picks the model for the next generation. The default is **Claude

    Haiku 4.5**. The list is grouped by provider:

    | Provider | Models available |

    | ---------------- | ------------------------------------------------ |

    | Anthropic Claude | Claude Haiku 4.5 |

    | DeepSeek | DeepSeek Flash |

    | Mistral AI | Mistral Small, Mistral Large, Codestral |

    | Cerebras | Google Gemma 4 31B, OpenAI GPT OSS, Qwen 3.8 27B |

    | NVIDIA NIM | Nemotron 3 Nano 30B |

    Each entry shows the mark of the model's family next to its name, so you can

    see at a glance who built the model you are about to run.

    Your choice persists across sessions. If you have connected your own API key,

    an extra Your Provider group appears at the top of the list.

    Not every model reads images. Claude Haiku 4.5, DeepSeek Flash, the Mistral

    models except Codestral, and all three Cerebras models do; Codestral and

    Nemotron do not. If you plan to attach a screenshot or a diagram, pick a

    vision-capable model first — a pinned model that cannot read images rejects the

    request outright rather than quietly ignoring the attachment.

    Project attaches a Context Project to the request, so its stored

    instructions and assets are supplied as grounding without you re-uploading

    anything. This control requires VIBECODER and only appears once you have

    created at least one project — if you do not see it, that is why.

    Step 3 — Set the Four Translation Parameters

    These four controls shape the document itself. They are the ones worth getting

    right.

    Target Audience — default Senior Dev. Choose from _Junior Dev_, _Senior

    Dev_, _Tech Lead_, _SRE_, and _Data Engineer_. This changes how much is

    explained rather than what is covered. A Junior Dev spec defines terms and

    spells out reasoning; a Tech Lead spec leads with tradeoffs and sequencing.

    Tech Context — default Backend. Choose from _Backend_, _Frontend_,

    _Mobile_, _Data/ML_, and _DevOps_. This is the control people confuse with

    audience. Audience decides who reads it; context decides which layer it

    discusses. The same login request produces a session and token-storage

    discussion under Backend, and a component-state and redirect discussion under

    Frontend.

    Output Format — default Technical Spec. Seven options:

    | Format | Use it when |

    | ------------------ | --------------------------------------------------------------- |

    | Technical Spec | You need one document describing the whole change |

    | Jira Tickets | The work needs to be split into individually assignable items |

    | API Design | The deliverable is endpoints, payloads, and status codes |

    | RFC | The decision needs to be argued and reviewed before it is built |

    | Data Model | The deliverable is entities, fields, and relationships |

    | Prompt | The output will be fed to another AI system |

    | Optimize | You want your text improved, not converted into a document |

    Tone — a 0 to 100 slider, default 50, labelled _Concise_ at the left

    and _Detailed_ at the right, with a live percentage readout.

    Tone is not a smooth dial. There is a hard behavioural split at 50:

  • Below 50, DevSpeak rewrites your input. It tightens the text, fixes the
  • register, and returns something roughly the length of what you gave it. It

    will not invent sections.

  • At 50 and above, DevSpeak generates a full structured document with
  • headings, acceptance criteria, and edge cases you never mentioned. The exact

    number then controls how much detail lands in each section.

    If a translation comes back looking like a lightly edited version of your

    input, check this slider before you blame the model.

    Checkpoint

    Before running anything, confirm you can point at:

  • [ ] The four feature-bar controls and their current state
  • [ ] All four parameter controls, with Tone showing a numeric readout
  • [ ] The tier badge on at least one locked sidebar item
  • Step 4 — Write and Optimize Your Input

    The left pane is headed Non-Technical Input. Its header strip carries a

    Clear Fields link, a live Words counter, the Optimize button, an

    undo and a copy button for the input text, and a ⌘↵ to generate

    keyboard hint. The strip adapts to the pane's own width rather than the browser

    window, so dragging the split divider narrower drops the secondary items in

    order of importance and keeps Optimize, undo, and copy on one line.

    Once you have typed something, a small appears in the top-right corner of

    the textarea. It empties the text box and nothing else, then puts the cursor

    back so you can start again immediately. Clear Fields in the header is the

    heavier action: it asks for confirmation and resets the whole workspace —

    text, attachments, and the generated output. Both are undoable for the text

    itself, either with the undo button or ⌘Z.

    Type informally. That is the entire point of the product:

    ``text

    We need users to be able to sign in with their Google account

    instead of making another password. Should work on mobile too.

    `

    Optimize is a separate operation from translating — this is the single most

    useful distinction in the editor. It rewrites your input in place: better

    grammar, steadier tone, clearer phrasing, same meaning. It does not produce a

    specification and it does not touch the output pane. Use it when your notes

    were dictated, typed in a hurry, or written in your second language. Optimize

    is available on every tier.

    There is no hard character limit, but past roughly 10,000 characters DevSpeak

    interrupts with a size warning and offers to summarize the input first. That

    threshold exists because very long inputs dilute the instructions rather than

    enrich them.

    Attachments

    The Attachments drawer sits under the textarea and is expanded by default.

    Drop files onto it or click to browse. Supported formats are **PNG, JPG, WEBP,

    PDF, TXT, and MD, up to 10 MB per file**. Each staged file appears as a

    chip with its own remove button.

    Attachments are context, not instructions. A PDF of the existing API contract

    or a screenshot of the current screen gives the model the specifics your prose

    leaves implicit. Remember the vision constraint from Step 2: an image only

    helps if the selected model can read images.

    Step 5 — Run the Translation

    The action cluster sits to the right of the parameter row.

    Translate Text is the primary action and runs the full translation. The

    keyboard shortcut ⌘↵ (Ctrl+Enter on Windows and Linux) does the same thing

    from inside the textarea. The circular arrow icon beside it re-runs the same

    generation — useful after nudging a single parameter.

    Fast AI is a toggle, not a button. With it on, DevSpeak re-translates

    automatically about half a second after you stop changing anything — typing,

    moving the tone slider, switching format. It turns the editor into a live

    preview. Turn it off for long inputs, where every keystroke would otherwise

    queue another generation.

    Stop Generation replaces Fast AI while a generation is running. It aborts

    the request immediately.

    Clear wipes the input, the attachments, and the result. It asks for

    confirmation first, because it is not undoable.

    While the model works, the output pane shows a phased progress state, and the

    footer tracks Latency in milliseconds and Status as _Processing_,

    _Refining_, or _Idle_.

    Step 6 — Read and Edit the Output

    The right pane starts on Awaiting generation signal… and fills once the

    translation lands. Its toolbar carries four things.

    The format label echoes the Output Format you selected. The Syntax

    indicator reports what actually came back — _Markdown_ or _XML_ — read from the

    content itself rather than from your request, so it stays honest if the two

    ever disagree.

    The Preview / Split / Source segmented control switches how you read the

    document. Preview renders it, Source opens a Markdown editor, and Split shows

    both with synchronized scrolling. Preview is the default. In Source and

    Split the document is directly editable, and a Markdown utility bar gives you

    bold, italic, headings, lists, quotes, code blocks, tables, and a formatter.

    XML output has no view toggle and no utility bar — it renders read-only with

    syntax highlighting, because a machine-readable document should not be

    hand-edited in place.

    The copy icon copies the whole document to your clipboard.

    Between the panes is a draggable divider. Drag it to favour whichever side you

    are working in; the editor remembers the position. Below 768 px the panes stack

    vertically and the divider becomes horizontal.

    Step 7 — Refine Instead of Regenerating

    The Iterate & Refine panel sits at the bottom of the output pane once a

    result exists. This is the third and last stage of the pipeline, and it is the

    one people skip.

    Refinement edits the generated document, not your original input. Ask for a

    change in plain language:

    `text

    Add a section covering what happens when a user already has a

    password account with the same email address.

    `

    Press Enter to submit; Shift+Enter inserts a newline instead. Each round

    returns a complete replacement document rather than a patch, so the result

    stays internally consistent instead of accumulating bolted-on paragraphs.

    Every round is snapshotted into a version history with a timestamp and a short

    summary of what changed. Revert restores an earlier version — and saves

    that as a new snapshot, so reverting never destroys a later round.

    Refinement requires VIBECODER. The panel stays visible on the free tier

    with a Pro badge over it, so you can see the workflow before you buy into

    it. Monthly rounds are capped by tier: 25 on VIBECODER, 100 on DEVELOPER,

    unlimited on ENTERPRISE.

    Step 8 — Learn the Two Shortcuts Worth Knowing

    Press ⌘K or ⌘P (Ctrl+K / Ctrl+P) to open the command palette. It

    searches actions — Generate Translation, Copy Result — navigation targets, and,

    when a Markdown result is open, the formatting commands. It is the fastest path

    to anything in the editor without reaching for the mouse.

    The other one you will use constantly is ⌘↵` to generate from inside the

    textarea.

    Finally, note what is _not_ in the editor: Custom Instructions live in

    Settings → Profile, not here. They are standing preferences — "always use

    TypeScript", "prefer functional composition" — applied to every translation, up

    to 10,000 characters, and they require VIBECODER. The same page holds your

    default Target Audience, Tech Context, Output Format, and verbosity, which is

    what seeds the parameter row each time the editor loads.

    Checkpoint

    You should now be able to:

  • [ ] Explain the difference between Optimize, Translate, and Refine
  • [ ] Predict whether a given tone value returns a rewrite or a full document
  • [ ] Name which controls need VIBECODER, DEVELOPER, or ENTERPRISE
  • [ ] Open the command palette and run a translation from it
  • Troubleshooting

    The output is shorter than my input

    Tone is below 50, which puts DevSpeak in rewrite mode. Move it to 50 or above

    for a full document.

    The spec discusses the wrong layer of the stack

    Change Tech Context, not Target Audience. Audience controls how much is

    explained; context controls which layer is discussed.

    The Project dropdown is missing from the feature bar

    It requires VIBECODER _and_ at least one existing Context Project. Create one

    from the Projects sidebar item and it will appear.

    My attached screenshot seems to have been ignored

    Check the Model control. Codestral and Nemotron 3 Nano cannot read images.

    Switch to Claude Haiku 4.5, DeepSeek Flash, Mistral Small or Large, or any

    Cerebras model and re-run.

    The Refine panel is dimmed and shows a Pro badge

    Iterative refinement requires VIBECODER. Clicking the panel opens the pricing

    modal.

    The editor re-runs every time I type

    Fast AI is on. Toggle it off in the action cluster.

    Summary

    You've learned how to:

  • Read every region of the Translation Editor and what it controls
  • Set audience, context, format, and tone deliberately
  • Use Optimize, Translate, and Refine as three separate operations
  • Attach context files and pick a model that can actually read them
  • Work the output pane and the non-destructive refinement history
  • Next Steps

  • Walk one end-to-end translation in
  • [Your First Translation with DevSpeak](/tutorials/getting-started/your-first-translation)

  • Make context reusable by
  • [grounding translations on a Context Project](/tutorials/mcp/ground-translations-on-a-context-project)

  • Take the same parameters to the terminal with
  • [Automate with the CLI](/tutorials/api-and-cli/automate-with-the-cli)