Moro documentation

Moro User Guide

Learn how to set up Moro and use its shortcuts, core features, privacy controls, and compatibility options.

For macOS 15 (Sequoia)+ · Apple Silicon · private beta applications open · Windows version in development

01

Getting started

Moro is a macOS menu-bar app. After you grant the required system permissions, its shortcuts can be used for dictation, translation, rewriting, and questions in most apps with standard text fields. Some apps expose limited system interfaces, so certain features may be unavailable or use a compatibility mode.

Requirements

  • macOS 15 (Sequoia) or later — the built-in local speech recognition needs it.
  • Apple Silicon (M-series) — local speech and local LLM inference are arm64-optimized; Intel Macs can't run local inference.
  • Speech recognition and text generation are configured separately. You can stay fully offline with local models, or use your own key for cloud models.

First-time setup

Onboarding recommends a path from the app language. Chinese, Japanese and Korean start with the quick cloud setup; English starts with on-device speech. You can switch paths at any time. This choice sets up the first speech recognizer only and does not lock the model used by every feature.

PathWhat you needWhat becomes ready
Quick cloud setupA network connection and one Alibaba Cloud Model Studio key. Moro verifies both Fun-ASR realtime speech and Qwen3.6-Flash before it reports success.Speech transcription, first-run refinement and Quick Chat all have a working model. Requests are sent to Model Studio using your key.
On-device speechNo account. Download the recommended local ASR with pause and resume support. Moro will not start a hidden download on your first recording.Basic speech transcription works offline. Smart refinement, translation, autocomplete and Quick Chat still need a local text model or a connected cloud text model.
  1. Complete the two-service cloud check, or wait for the local ASR download to finish.
  2. Speak the sample line into your microphone. The first try counts only after real audio produces a transcript.
  3. Grant the four core permissions: Microphone, Accessibility, Input Monitoring and Full Disk Access.
  4. After entering Moro, test voice write-back with in a standard macOS text field, then open Quick Chat with C.

Setup does not start the trial clock. It begins only when you choose Start 7-day trial on the last step. Browse Moro saves your progress and keeps the trial paused.

Permissions on first run

Onboarding walks you through four core permissions (Microphone, Accessibility, Input Monitoring, Full Disk Access) — each tied to a specific capability and explained as you go; all four make the experience complete. Anything else is requested only when you use the matching feature:

  • Microphone: required for voice input.
  • Accessibility: to power the global shortcuts, read the context at your cursor and write results back into the field. This is Moro's core channel — it uses the system Accessibility API, not screenshots.
  • Input Monitoring: keeps the global shortcuts reliable in edge cases with certain keyboards/IMEs (like Space×3 under some Chinese IMEs).
  • Full Disk Access: powers the local "find file" search — names, file contents and recently-opened files are all matched against your Mac's own Spotlight index, nothing leaves the machine; without it, files in Documents/Desktop/Downloads can't be found.
  • Screen Recording (optional, off by default): used only if you opt into the experimental reply-draft feature inside closed apps like WeChat. Everyday input never touches it.
  • Automation (Apple Events) (optional): asked for only when you bring Finder-selected files into Quick Chat, Smart Voice or Smart Text — Moro requests permission to control Finder at that moment, not on first launch.

Granted it but nothing happens? If an update changes Moro's code signature, macOS may stop honoring the earlier Accessibility grant. If shortcuts stop working after an update, toggle Moro off and on in System Settings → Privacy & Security → Accessibility, or restart Moro once.

02

All shortcuts

The table below lists the default shortcuts. All shortcuts except ⇧⇧ for autocomplete can be changed in Settings.

ActionShortcutWhat it does
Voice InputRecord → transcribe → polish → write at cursor
Smart VoiceSpaceOne key; AI decides dictate / act-on-selection / ask / note
Smart Text⌘⌘Double-tap ⌘. The typed twin of Smart Voice, same intent chain
TranslateFTranslate the whole paragraph in place
PolishSSmooth the wording without changing meaning
RewriteRRewrite clearer and more natural, in place
Enhance PromptETurn spoken instructions into a structured prompt
Quick ChatCTalk to AI, answered in an overlay
Private ChatVBurns on close, no history kept
Quick NoteDSay it, filed as a to-do card
Ask about screenshotARegion-select a screenshot, then ask about it by voice
Undo write-backZUndo Moro's most recent write-back
Copy last transcriptXCopy the last transcript to the clipboard
Summon autocomplete (closed apps)⇧⇧Double-tap Shift to summon a completion in apps like WeChat where the caret can't be read

The voice key supports hold-to-talk out of the box: hold the modifier to speak and release to stop, while a quick tap still toggles start / stop. You can turn it off in Settings.

03

Voice input

Press and speak. Moro transcribes, polishes, and writes the finished text at your cursor — fillers removed, punctuation and numbers fixed, usually ready to send as-is.

⌥ ⌘
✦ Voice Listening…
The dictation capsule floats at the bottom center of your screen (draggable, remembers its spot per display) without stealing focus: icon · ✦intent · status · ember. It tucks away after writing the finished text back.
  • Adjustable polish strength: from near-verbatim to fully restructured, per your taste.
  • Language recognition: supports English, Chinese, and mixed input. Accuracy varies by speech model, accent, and recording conditions.
  • Local or cloud transcription: choose a local or cloud speech service in Settings. With a cloud service, audio is sent to that provider for processing.
  • Recordings are kept locally only for re-transcription; retention is configurable or can be turned off.
  • Optional sound cues: go to Voice → Recording and choose Off or one of ten themes. Each start cue has a matching completion answer.
04

Smart actions

Press Space to speak, or double-tap to type. Depending on the current text field and selection, Moro can perform these actions:

  • Write / dictate: turn speech into text, written into the current field.
  • Act on selection: translate, rewrite, polish, summarize, reply, explain — on the text you selected.
  • Ask: send the question to Quick Chat, answered in an overlay.
  • Note: jot one down, recall an old one, or check a to-do off.
  • System actions (Beta): open apps, find files, and open settings or websites.

Use a clear action phrase, such as “translate into English,” “open Calendar,” or “find last week's contract.” If the result is not what you expected, press Z to undo the latest write-back.

Say this, get that

IntentSay something likeResult
On your text
DictateJust say what you want written: "um I've roughly gone over this week's progress…"fillers removed, punctuation fixed, written back
Translate ⌥F"translate this into English", "into Japanese"translated in place (never auto-sent)
Rewrite ⌥R"reword this", "make it shorter", "rewrite it"reworded in place, keeping meaning & tone
Polish ⌥S"polish this", "make it more formal", "fix the grammar"fixes spelling / grammar / punctuation, in place
Summarize"summarize this", "tl;dr in three points"a concise summary
Reply"reply to this", "write a quick reply"drafts a reply
Explain"explain this", "what does this mean"explains the selection
Enhance ⌥Etype the rough ask (e.g. "write launch copy, emphasize privacy and local models"), then press ⌥Ea structured, ready-to-use prompt (not voice-triggered by default—enable "Agent prompt enhance" in Voice settings; also a manual mode in ⌘⌘ / the voice capsule)
Ask & notes
Ask ⌥C"ask Moro what this error means", "what time is it"answered in a floating overlay
Note · jot ⌥D"remind me to review with the client Thursday", "note down…"filed as a to-do / idea card
Note · find ⌥D"that idea I saved earlier"surfaces the matching card
Note · done ⌥D"the weekly report is in", "done"marks that to-do complete ✓
System actions · Beta
Open app"open WeChat", "open VS Code"launches & activates; a fuzzy name is resolved against installed apps — if unsure it opens nothing, and it never opens an app you don't have
Find file"help me find last week's contract PDF", "the doc about quarterly goals", "that spreadsheet I just had open"no need to remember the filename: Moro searches names, file contents and recently-opened files together — say "resume" in any language and Resume.pdf still shows up; rows matched by content or recency are labeled "Content match / Recently opened". Results appear in a panel; click a row to reveal it in Finder (never auto-opened)
Media control"next track", "pause"sends a macOS media-key command. Support depends on the active player's macOS media-control integration, and some third-party music apps may not respond
Open a settings pane"open Bluetooth settings"deep-links straight to that pane
Open a URL"open apple.com"opens in your browser (http/https only)
Moro's own settings
Change a setting"set polish to strong", "default translation to Japanese", "go to privacy settings"applies the preference, or jumps to that settings page

A verb at the start of the sentence triggers most reliably ("translate into English" beats "this text, I'd like to translate it"); polite prefixes (please / could you) are stripped automatically.

Common tasks, step by step

Reply to a message by voice ⌥⌘

  1. Press ⌥⌘ in the chat's input field
  2. Say your reply, tap again to stop
  3. The cleaned-up text lands back in the field
  4. You press send — Moro never sends for you

Translate a draft in place ⌥F

  1. Type a draft in the field, or select a passage
  2. Press ⌥F, or tap Space three times in the field
  3. It becomes the translation in place (zh ⇄ en by default; pin a target language in Settings — never auto-sent)

Polish a passage in place ⌥S

  1. Select the passage, or type a draft in the field
  2. Press ⌥S
  3. Replaced in place under a strict rule: spelling, grammar and punctuation only, no rewording
  4. Not happy? ⌥Z reverts it right there

Open an app ⌥Space

  1. Press ⌥Space
  2. Say "open Calendar"
  3. Calendar launches; a fuzzy name is resolved against your installed apps — when unsure it opens nothing, and it never opens an app you don't have

Find a file ⌥Space

  1. Press ⌥Space
  2. Say "help me find the rental contract I signed last month"
  3. A results panel appears
  4. Click a row to reveal it in Finder — Moro doesn't open Finder on its own

Jot a to-do ⌥D

  1. Press ⌥D
  2. Say "remind me to review the checklist with the client Thursday afternoon"
  3. An editable to-do card pops up — confirm to save; later say "the weekly report is in" to check it off

Ask about a file ⌥C

  1. Select files in Finder, or a passage of text
  2. Press ⌥C
  3. Ask your question aloud
  4. The answer floats beside you; the app and files are untouched
05

Typing autocomplete Beta · off by default

When speaking is awkward — a meeting, late at night, or you haven't found the words yet — just type. Pause, and Moro predicts your next line in light gray: a small card floats above the input, stitching your text together with the prediction (right at the end of a line it can also appear inline after the cursor); press Tab to accept. Voice is for "say it once you know it"; autocomplete is for "draft a sendable line while you're still finding the words." They complement each other.

Mail — To Alex
Re: walking through the proposal
If you have time this week, I'd love to walk through the proposal.
Sure — I'm free any afternoon after 2. Send me a time and I'll share the meeting link.
⌥⇥ word⇥ Tab
Reply
Sure —
Pause and a card floats up: your text (dark) + the continuation (gray) + a ⇥ Tab hint. Press it and it drops into the field.

Turning it on & using it

  • Off by default. Enable it under Autocomplete in Settings (it needs Accessibility and runs an always-on key watcher, so it's opt-in).
  • Trigger: it predicts after a typing pause of about 0.35s; the cadence (Instant / Standard / Steady / Relaxed) is adjustable.
  • Tab accepts all · Tab word-by-word · Esc dismisses. Keep typing and it refreshes in place; arrow keys, a click or switching apps hides it.
  • Mid-sentence works too: it reads text on both sides and fills only the middle, leaving what follows untouched.
  • In closed apps like WeChat where the caret position isn't available, double-tap Shift to summon it — this closed-app fallback is experimental and off by default; first enable it under Autocomplete › Closed apps like WeChat (experimental), or grant Screen Recording.

Availability

Autocomplete uses Accessibility to read text near the current field and does not read the clipboard. It does not run in password fields or restricted apps. Some apps do not expose the caret position or text context; autocomplete may be unavailable there, although you can try ⇧⇧ to summon it manually.

Privacy. Autocomplete is off by default. When enabled, it follows the autocomplete model in per-feature routing; if that route uses a cloud model, relevant text is sent to that provider. You can separately enable local-only autocomplete; without a local text model it then shows no suggestions and does not go online. It never fires in password fields or sensitive apps. Reply-message reading and the closed-app screen fallback are always forced local.

06

Translate, rewrite, polish, enhance

Select some text (Translate doesn't even need a selection), press the matching shortcut, and the result replaces in place or floats beside it. Z undoes the latest write-back (within about 2 minutes); where an app can't be reverted in place, your original is copied to the clipboard instead.

F

Translate

Whole-paragraph translation in place, with terminology alignment, simplified/traditional options and a stacked original/translation preview; target language is set separately. You can also trigger it by tapping Space three times in a field (immersive-translation style, no selection needed).

S

Polish

Keeps your meaning and your exact words — fixes only objective errors (spelling, grammar, punctuation, duplication), not a reflow or rhythm rewrite. Output is checked for length and language drift; a result that strays badly is downgraded to copy-only instead of overwriting, and ⌥Z undoes any change.

R

Rewrite

The same line reworded — clearer and more natural, in place — keeping your meaning and tone.

E

Enhance Prompt

Turns loose spoken instructions into a structured prompt, ready to feed an AI tool.

07

Quick Chat & screenshot ask

C to ask in a flash — attach your selection, files multi-selected in Finder, or an image; use the answer right away. Esc collapses it to a floating pill that stays where the panel was — drag it to the left or right screen edge to dock it — so it never interrupts your work.

Quick Chat needs a text model. If onboarding installed only on-device speech, dictation is ready but chat is not. Download a local text model or connect a cloud model on the Models page. The first usable chat model becomes the default automatically.

  • Multi-model: pick a different model per chat; built-in code highlighting and Markdown rendering.
  • Web search: connect Bocha, Zhipu, Tavily, Serper, Jina, or key-free DuckDuckGo; default is Bocha in China, Tavily elsewhere.
  • Screenshot ask A: region-select part of the screen and ask about it by voice.
  • Private Chat V: burns on close, no history.
08

Notes & to-dos

Catch a thought: press D and just say it. Moro files it into a card — idea, note, meeting, to-do or plan, sorted for you. Do it all by voice: create, complete, reschedule, search.

To-doThu
Run the acceptance checklist with the client
Idea
Try the new noodle place this weekend
✓ Done
This week's report is in
Say "the weekly report is in" to check it off; ask "what's left this week?" for an instant answer. Ideas, notes, meetings, to-dos and plans are sorted automatically.
09

Models & routing

Moro doesn't host models or resell tokens. Cloud is bring-your-own-key, with presets for OpenAI, Anthropic, Gemini, Qwen, DeepSeek, Kimi, GLM, MiniMax, MiMo, StepFun, Mistral, SiliconFlow, and more, plus OpenAI / Anthropic-compatible endpoints and direct OpenAI Codex subscription sign-in. It also connects to local Ollama / LM Studio. The local inference engine is built in—no Ollama required; model sizes vary, and downloaded models can run fully offline.

Route per feature: polish, rewrite, translate, chat, voice-polish and autocomplete can each point to a specific cloud or local model. Send everyday short text to a cheap fast model, save a strong model for heavy work, keep private content local — mix freely.

ASR and LLM do different jobs

CapabilityNeedsWithout it
Speech to textA working local or cloud ASRVoice transcription cannot start
Polish, translate, rewrite and Quick ChatA working local or cloud text LLMBasic transcription still works; model-backed features direct you to the Models page
Screenshot askA vision-capable modelMoro asks you to switch before sending the image to a text-only model
Fully offlineLocal ASR, local text model and Local-only enabledCloud routes are blocked explicitly, with no silent online fallback

Choose by region and language

ASR turns speech into text. The LLM handles polishing, translation, and chat. You can choose them separately.

ScenarioASRLLM
Mainland China, mostly ChineseUse Fun-ASR Realtime online; offline, choose Qwen3-ASR 1.7B with ≥12 GB RAM, otherwise 0.6BUse Qwen3.6-Flash online, or local Qwen3 4B offline
English or European languagesStart with local Parakeet V3; for CJK or mixed Chinese-English use Qwen3-ASR 1.7B / 0.6B based on memoryChoose OpenAI, Gemini, Anthropic, or a custom endpoint with low latency in your region
Fully offlineUse Parakeet V3 for English/European languages; use Qwen3-ASR for CJK or mixed input (1.7B with ≥12 GB RAM)Local Qwen3 4B with Local-only enabled
Model routing
Voice polish☁ gpt-5.4-nano
Translate☁ claude-sonnet
Quick Chat☁ your key
Autocomplete⦿ local Qwen3
One row per feature — pick a specific cloud or local model for each (☁ cloud · ⦿ local).
10

Privacy & security

  • Local-only in one tap: ASR, LLM, and web search stay offline. Saved cloud settings remain available but are not used until Local-only is turned off.
  • Cloud models: when you use a cloud model or speech service, relevant content is sent to the provider you configured and is subject to that provider's privacy and retention policies. Review those terms before use.
  • Password fields always skipped: secure fields are detected and never read; password managers and other sensitive apps are forced local or skipped entirely.
  • Local history is encrypted: sensitive text (transcripts, chats, learned samples) is stored with field-level AES-GCM on your Mac, key in the Keychain, deletable anytime. Optional voice recordings kept for re-transcribe are stored unencrypted—turn recording retention off, or pick a short auto-cleanup window, if you'd rather not keep them.
  • Screen content: normal text access uses Accessibility. The screen-based compatibility mode for closed apps is off by default and must be enabled manually. When you use A, the selected image is processed by the active chat model.
11

Undo

Undo write-back Z: what was just written can be reverted, in the same app and shortly after — the last 5 actions are held in memory (never persisted). If the field or app changed and it can't revert in place, then for edits to a selection (translate / rewrite / polish) Moro copies the original to your clipboard and tells you; for plain voice dictation, if it can't safely delete what it inserted, it tells you it couldn't undo rather than copying. You can always edit by hand, too.

12

Pricing & license

  • One-time purchase, not a subscription. License scope and upgrade terms will be confirmed at launch.
  • Pricing will be announced later. Apply for private beta access before launch.
  • 7-day free trial.
  • One license per machine, transferable after you deactivate a seat. After an online check it works offline for a while (about two weeks including grace); transient network or server hiccups never lock a paying user out.
  • Cloud costs are separate and yours to control: bring your own key and pay per use, or just run the free local models.
13

FAQ

Which apps does it work in?

Moro works in most chat, email, browser, document, and code-editor fields that use standard macOS text interfaces. Some Electron apps, web editors, and custom text fields do not expose complete caret or text information, so write-back, selection actions, or autocomplete may be limited. Password fields are not read or processed.

Does autocomplete send my text to the cloud?

Autocomplete is off by default. When enabled it follows the autocomplete model in per-feature routing; if that route is cloud-based, relevant text is sent to that provider. You can separately enable local-only autocomplete; without a local text model it shows no suggestions rather than falling back to cloud. Reply-message reading and the closed-app screen fallback are always forced local.

Why does dictation work while Quick Chat says there is no model?

Dictation uses ASR, while Quick Chat uses a text LLM. They are configured separately. The local onboarding path guarantees only that local ASR is ready. Download a local text model or connect a cloud model on the Models page to enable Quick Chat, polish, translation and rewriting.

What works offline?

Download a local ASR and local text model, then enable Local-only. Dictation, polishing, translation, autocomplete, notes, and Quick Chat work offline; cloud models and web search are paused.

Can I use it on two Macs? After a reinstall?

One license binds to one machine; deactivate in-app to move it to another. A reinstall is fine — just reactivate. After an online check it works offline for a while (about two weeks including grace), and transient network or server failures won't lock a paying user out.

Does it run on Intel Macs or Windows?

For now, Apple Silicon + macOS 15 or later only. Local speech and local LLMs are arm64-optimized, so Intel Macs can't run local inference. The Windows version is in development.

When can I join the private beta?

The first private beta is now underway. Apply with your email, and download access will be sent by email in batches.

A question we didn't answer?

Apply for the private beta