Skip to content
Endquote
Download

Stop typing. Just speak , write faster.

Endquote turns natural speech into polished text across email, messages, documents, code editors, and AI tools. Speech recognition runs locally, then Endquote automatically cleans up the final text.

Free for 60 minutes / month · No card to start · macOS & Windows
Slack - #design
#design - quarterly review
Maya Chen 10:42 AM

Did we land the onboarding flow rework? Want to share a quick summary in the design review.

You 10:43 AM

Yes - give me a sec, dictating the recap now.

Listening

Polished

Hold + Space to dictate
Listening Space
The keyboard problem

Your inbox is shouting at you.

Slack, email, tickets, DMs, code reviews, calendar - your day is mostly typing replies. Endquote turns the talking part of work back into talking, so your hands get a break and your messages still land like writing.

Same conversations. Half the typing.
0
Average dictation speed
vs. ~45 wpm typing
0
Faster than typing
for the same finished message
0
Audio uploads needed
transcription runs locally
0
Free every month
no card to start
Speed

Speak 3.3× faster than you can type.

The average professional types around 45 words per minute. With Endquote, you talk at the natural pace of speech - ~150 wpm - and the cleanup step still produces text you'd actually send.

Typing
Average professional
0 wpm
Endquote
Hold & speak
0 wpm

Speeds are typical ranges, not guarantees. You'll talk at whatever pace feels natural - Endquote keeps up either way.

How it works

Three steps. No setup beyond your language.

Endquote is opinionated on purpose. You choose your language; the app manages everything else - the local model, the polish step, and the paste behavior.

  1. 01 · Onboarding

    Choose your language.

    Pick your language during onboarding. Endquote handles the right local model behind the scenes - automatically downloaded and kept up to date. No model picker. No tuning.

  2. 02 · Anywhere

    Press your shortcut and speak.

    Hold or tap a configurable global shortcut from anywhere. A small recording overlay shows your live transcript while voice activity detection trims silence.

  3. 03 · Automatic

    Endquote pastes polished text.

    Speech is transcribed locally, then automatically cleaned up - punctuation, formatting, filler words, and tone - before being inserted into the active app.

Welcome to Endquote
Choose your language
Step 1 of 2
English (US) Selected
English (UK)
Français
Deutsch
日本語
Endquote will set up the right local model automatically.
Hold to dictate
+ Space
Live preview 0:04

hey thanks for the update um can we move the call to thursday maybe like 2pm pacific

Listening Space
Compose - louis@design.studio
To louis@design.studio Subject Re: Quarterly review

Hey - thanks for the update.

Can we move the call to Thursday at 2pm Pacific? That gives me time to finalize the design tokens before we walk through them.

- Connor

Pasted in 1.7s · ⌥ Space
Works where you write

Lives in every app
you already use.

Endquote runs in normal text fields - wherever the cursor lives. Browser, native app, terminal, code editor, AI tool, issue tracker. Press your shortcut, talk, paste polished text.

Slack
Spoken

hey just following up on the proposal can we move it to thursday

Pasted

Hey - just following up on the proposal. Can we move it to Thursday?

Listening Space

…and any other app with a text field.

Before & after

Real speech in. Real text out.

The left side shows natural, rough speech. The right side shows the kind of cleaned-up text Endquote is designed to paste into your active app.

Email
Polished paragraphs
App-aware style
Spoken

hey just following up on the proposal um wanted to see if you had a chance to look at the pricing changes and uh let me know if anything stands out

Pasted

Hey - just following up on the proposal. Did you get a chance to look at the pricing changes? Let me know if anything stands out.

Slack
Concise messages
App-aware style
Spoken

yeah so the deploy is done and uh everything looks healthy but i'd keep an eye on the queue depth for like the next hour

Pasted

Deploy is done and everything looks healthy. Keep an eye on the queue depth for the next hour.

Cursor
Detailed prompts
App-aware style
Spoken

okay so i want to refactor the auth middleware to use the new session store and uh make sure we don't break the existing api routes

Pasted

Refactor the auth middleware to use the new session store. Preserve the existing API route contracts and add tests covering token expiry and refresh.

Docs
Longer formatted dictation
App-aware style
Spoken

intro paragraph quarterly review highlights number one we shipped onboarding number two language picker number three model auto setup

Pasted

Quarterly review highlights: 1. Shipped the new onboarding flow. 2. Added the language picker. 3. Automated local model setup.

Automatic polish

Rough speech becomes ready-to-send text.

Endquote cleans up rough speech automatically: punctuation, formatting, filler words, tone, and app-aware style. The polish step runs every time, so what gets pasted is what you'd actually send.

You don't configure prompts, providers, or API keys. There's nothing to tune - Endquote handles the cleanup so you can stay focused on the thought.

  • Punctuation, capitalization, and sentence structure
  • Removes "um," "uh," and other filler
  • Lists, paragraphs, and code blocks where appropriate
  • Tone tuned to where you're writing
Punctuation
yeah let's do it sounds good
Yeah - let's do it. Sounds good.
Filler words
i mean um yeah we should ship it like by friday
We should ship it by Friday.
Formatting
first the database migration second the api change third the rollout
1. Database migration 2. API change 3. Rollout
Tone
tell maya the deck is bad and needs to be redone
Let Maya know the deck needs another pass before we share it.
Cleanup runs through Endquote's API. No keys to manage.
Local transcription, automatic cleanup

Honest about what stays local - and what doesn't.

We'd rather be precise than dramatic. Endquote runs speech recognition on your device, then sends the transcript text to our API for cleanup before pasting the result into the active app.

  1. 01

    Your audio stays on your device.

    Speech transcription runs locally. Your audio doesn't need to be uploaded for transcription.

    Local model · on-device
  2. 02

    Endquote selects the right local model automatically.

    Choose your language during onboarding. Endquote handles model download, updates, and selection in the background. You don't pick speech models in normal use.

  3. 03

    Final text cleanup is handled securely through Endquote's API.

    The transcript is sent to api.endquote.app for the polish step. No API keys to manage. No prompt or provider choices for users.

  4. 04

    Pasted into the active app.

    The cleaned-up text is inserted at your cursor - message field, doc, email, code editor, or anywhere else.

What we say
  • "Speech transcription runs locally."
  • "Your audio doesn't need to be uploaded for transcription."
  • "Final text cleanup is handled securely through Endquote's API."
What we don't say
  • "Everything stays on-device."
  • "Works fully offline."
  • "No data ever leaves your computer."
Features

Everything you need. Nothing to fiddle with.

Endquote is built around a small set of high-leverage capabilities - each tuned so the defaults feel right out of the box.

Local speech recognition

Transcription runs on your machine using on-device speech models. Your audio doesn't need to be uploaded for transcription.

Automatic language-based model setup

Pick your language and Endquote downloads, updates, and manages the right local model - no model picker in normal use.

Automatic AI cleanup

Every transcript is polished through Endquote's API. Punctuation, formatting, filler words, tone - handled.

App-aware writing styles

Output adapts for casual chat, work messages, email, documents, and code. Define custom application profiles.

Custom words and replacements

Add names, abbreviations, and tricky terms to your personal dictionary so Endquote spells them right every time.

Live preview while recording

Watch a live transcript appear as you speak. The final pasted text is still cleaned and formatted.

History and re-transcription

Browse past dictations, re-paste, or re-run polish on a recording when you want a different style.

Push-to-talk and configurable shortcuts

Hold or tap a global shortcut from anywhere. Customize the binding, scope, and recording mode.

Clipboard and direct paste controls

Choose how text is inserted: direct paste into the focused field, clipboard handoff, or both.

Hardware acceleration

Uses your GPU/Neural Engine where available so transcription stays fast - even on long dictations.

Voice activity detection

Trims silence and handles natural pauses so the transcript stays clean without you thinking about it.

Mute, devices & audio feedback

Pick mic and output device, mute while recording, and toggle subtle audio cues for start/stop.

Style matching

The same words, in the right voice .

Endquote matches core communication apps locally and applies the right post-processing style automatically. Choose how polished you want each category to sound.

This style applies in casual messengers

We'll use this information to match your writing style when you dictate.

Built for power users

Talk through complex work faster than you can type it.

For developers, designers, and anyone who lives in code editors and agent tools, Endquote turns rambled thoughts into structured prompts and tickets. Hold the shortcut, talk through the problem, and paste a ready-to-run instruction.

  • Cursor, Claude Code, Codex - paste a focused prompt straight in.
  • GitHub issues, Linear tickets - dictate context once, not twice.
  • Code review notes, RFCs, design docs - long-form dictation works.
  • Custom dictionary for symbols, file paths, and library names.
kestrel - auth/middleware.ts
TS middleware.ts ×
TS session-store.ts ×
src/auth/ middleware.ts Run Tests
1import { verifyToken } from './jwt'
2import { SessionStore } from './session-store'
3
4export async function authMiddleware(req, res, next) {
5const raw = req.headers.authorization
6const token = raw?.replace('Bearer ', '')
7if (!token) return res.status(401).end()
8const session = await SessionStore.findByToken(token)
9if (!session?.active) return res.status(401).end()
10req.session = session
11next()
12}
13// Tests cover missing, expired, and refreshed tokens.
Terminal Problems Output 3 tests passed
$ pnpm test auth/middleware
rejects missing authorization header
preserves 401 behavior for expired sessions
main 0⚠ 0✕ TypeScript · UTF-8 · LF · Ln 11, Col 2
Polishing prompt Space
Pricing

Simple, fair pricing.

Start free with a generous monthly allowance. Upgrade to Pro for unlimited dictation and the features that make it feel like Endquote was built for the way you work.

Free

Try Endquote risk-free.

$0 $0 / month

No card required Free forever

Download free
  • Up to 60 minutes of dictation per month
  • Local speech recognition
  • Automatic AI cleanup
  • All app-aware styles
  • Live transcription preview
  • macOS & Windows
Most popular

Pro

per user

For daily writing across messages, docs, and code.

$5 $5 / month

Billed monthly $50 billed yearly

Get Endquote Pro
  • Unlimited dictation
  • All Free features included
  • Custom dictionary & replacements
  • Per-app writing style profiles
  • Transcription history & re-polish
  • Priority support & early access

Plans are billed in USD. Taxes may apply. Cancel anytime - Pro features remain active through the end of the billing period.

Download

Get Endquote.

Download the latest installer below - signed, notarized, and built to keep itself up to date. Free to start.

macOS

Universal · Apple Silicon & Intel

v0.9 · 18 MB
Download for macOS

macOS 12 Monterey or later

Or install via terminal
$ brew install --cask endquote

Windows

Windows 10 & 11 · x64

v0.9 · 18 MB
Download for Windows

Windows 10 (1903) or later, 64-bit

Or install via terminal
$ winget install connorcharless.Endquote

Signed & notarized

Apple-notarized on macOS, code-signed on Windows. Every release verified.

Auto-updates

Endquote keeps itself current in the background - no reinstalling.

Private by default

Speech recognition stays local. Cleanup uses your account, never trains on you.

Changelog

Shipped recently.

We ship small, frequent updates. The latest changes - what's new, what's improved, what's fixed.

View full changelog
  1. v0.9.0 Latest
    April 28, 2026
    Private beta

    Live transcription preview, app-aware writing styles, and a redesigned onboarding.

    • Live transcription preview while recording - see the words appear before polish runs.
    • App-aware writing styles for Slack, Gmail, Notion, Cursor, and a custom 'Coding' profile.
    • Redesigned first-run experience: pick your language and Endquote handles model setup.
    • +2 more - see full changelog
  2. v0.8.0
    March 19, 2026
    Custom dictionary

    Personal vocabulary, history re-polish, and refined paste behavior.

    • Personal dictionary - add names, abbreviations, and tricky terms.
    • Re-polish from history: re-run cleanup on any past dictation with a different style.
    • Paste behavior is now configurable per app group (direct paste, clipboard, or both).
    • +1 more - see full changelog
  3. v0.7.0
    February 11, 2026
    Faster local models

    Hardware acceleration on Apple Silicon and modern Windows GPUs.

    • Hardware acceleration: Neural Engine on Apple Silicon, DirectML on Windows where available.
    • Voice activity detection trims natural pauses without clipping speech.
    • Reduced cold-start time for the local model after wake from sleep.
    • +1 more - see full changelog
FAQ

Honest answers to the questions that actually come up.

Have something else? hi@endquote.app

Does Endquote work offline?

Speech transcription runs locally on your device, so the recording-and-transcribing step doesn't need a connection. The automatic cleanup step that polishes the final text uses Endquote's API, so an internet connection is required to paste polished output.

Does my audio leave my computer?

Audio transcription runs locally - your audio doesn't need to be uploaded for transcription. The transcript text is then sent to api.endquote.app for the automatic cleanup step before being inserted into the active app.

Which platforms are supported?

Endquote runs on macOS (Apple Silicon and Intel) and Windows 10 and 11. It is a desktop application - there is no iOS or Android version.

Do I need to choose a model?

No. You choose your language during onboarding and Endquote selects, downloads, and updates the right local speech model behind the scenes. There is no model picker in the normal product flow.

Can I customize the shortcut?

Yes. The global shortcut is fully configurable, with push-to-talk and toggle modes. The default is Option + Space on macOS and Alt + Space on Windows.

Does it work in every app?

Endquote works in normal text fields across email, chat, documents, browsers, code editors, issue trackers, and AI tools. If your cursor sits in a text field, you can dictate into it.

Why does macOS require Accessibility permission?

Accessibility permission is what lets Endquote insert the polished text into the focused app and listen for the global keyboard shortcut. Granting it is a one-time step during onboarding.

What does automatic cleanup do?

It adds punctuation and capitalization, fixes sentence structure, removes filler words, formats lists and code where appropriate, and adapts the tone for the app you're writing in. You don't configure prompts, providers, or API keys.

Is there a free version?

Yes. The Free plan includes up to 60 minutes of dictation per month with all polish features and app-aware styles - enough to live with Endquote and decide if it earns a spot in your workflow.

Can I cancel anytime?

Yes. Cancel from your account at any time. Pro features remain active through the end of the billing period - no proration headaches and no contracts.

How does Endquote update itself?

Endquote checks for and installs updates automatically in the background, so you're always on the latest version. No re-downloading, no reinstalling.