Repository navigation
Settings and Configuration
- "AllInOneIME Settings" in
~/Applications; Spotlight finds it. - The input method's icon in the menu bar → Settings…, or
@settingsin any text field.
macOS doesn't show third-party input methods' options in System Settings, so these are the ways in. Changes are
written to ~/.config/allinoneime/config.json right away and apply from the next request, with no restart.
From top to bottom:
- Action key: ⏎ Return by default; "Record…" picks another (Tap ⌥, ⌥Space, Space). Commands also run on ⏎.
- Type results out: a command's result is typed into the app character by character, like a person typing, at the speed on the slider; "Speed up and slow down" varies the pace. Esc stops it; any other key types the rest at once.
- @claude runs in the background and notifies me: on by default; off opens Claude Code in Terminal.
- Menu Bar Panel: the icon in the menu bar and its panel of notes, reminders and Claude tasks.
- Input: your input languages, English, Chinese (pinyin) or both. New text fields start in the first; with two, tap Shift to switch. A new install has Chinese only: to write English, add English and remove Chinese.
- Translate (@translate): the languages to translate into, dragged into order. A new install has English only.
-
Rewrite Styles (@improve): the styles after lines 1–3, dragged into order; "@improve also translates" makes
@improvework like@translate @improve. See Rewrite Styles and Jargon. - Jargon List: your own term list for the Jargon style: "Choose File…" or "New".
- Custom @ Commands: your own commands; "Add Command…".
- Plugins: what's installed and where each sends your text; "Browse Library…" installs from the signed library.
- Voice Input: hold right ⌥ to talk; the speech models and the microphone permission. See Voice Input.
- AI Provider: Amazon Bedrock, the Claude API, Gemini or an OpenAI-compatible service, the model, and "Test Connection", which sends a sample sentence in your first input language and shows the result or the error.
- Advanced: output tokens, temperature, timeout, and the interface language (System, English or Chinese).
- Bottom: "Open Config File", "Open Rime User Folder".
If config.json is malformed, the window shows the error and doesn't overwrite your file.
Translations, rewrites and answers use your own provider, billed to your account.
| Provider | Default model | API key |
|---|---|---|
| Amazon Bedrock (default) | Claude Haiku 4.5 | Your AWS access key in ~/.aws (below) |
| Claude API | claude-haiku-5-5 |
Claude Console |
| Gemini API | gemini-3.8-flash |
Google AI Studio |
| OpenAI-compatible | OpenAI's gpt-6-luna; "Common Services…" fills in the base URL of DeepSeek, Qwen, Kimi, Zhipu GLM, SiliconFlow, OpenRouter or Ollama |
The service's key |
- Paste the key and click "Save"; keys are kept in the login keychain, never in the config file. Without one there,
ANTHROPIC_API_KEY,GEMINI_API_KEY(orGOOGLE_API_KEY) andOPENAI_API_KEYfrom your shell are used. - A saved key goes only to the service it was saved for: if you change the base URL to another service, save the key again.
- A base URL over plain
http://is allowed only for this Mac or the local network (Ollama, LM Studio).
-
Enable Bedrock in the AWS console and make sure the account can use the model you chose (before the first use of Anthropic models, you submit a use-case description once).
-
Create an access key with at least the
bedrock:InvokeModelWithResponseStreampermission, for example:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "bedrock:InvokeModelWithResponseStream", "Resource": "*" } ] } -
Put it in
~/.aws/credentials; the region can go in~/.aws/config, or you can fill it in in the settings:# ~/.aws/credentials [bedrock] aws_access_key_id = <access key ID> aws_secret_access_key = <secret access key> # ~/.aws/config [profile bedrock] region = us-east-1
-
Choose this profile in the settings and click "Test Connection".
Only static access keys are supported (aws_access_key_id / aws_secret_access_key; aws_session_token is read too, but when temporary credentials expire you have to update the file yourself). SSO, assume-role (role_arn) and credential_process profiles fail with "only static access keys are supported". The files in ~/.aws are only read, never written, and are re-read for every request.
The default model ID starts with us.: it's a cross-Region inference profile for US regions. If you use a region outside the US, switch to a model ID available in that region. Charges go to your account; for prices, see the Amazon Bedrock pricing page on the AWS website.
~/.config/allinoneime/config.json. Any key can be left out and takes its default; changes apply as soon as the
file changes.
| Key | Default | Meaning |
|---|---|---|
provider |
"bedrock" |
"bedrock", "anthropic", "gemini", "openai"
|
awsProfile, region, modelId
|
"default", null, Claude Haiku 4.5 |
Bedrock: the profile, the region (null: the profile's), the model or inference profile ID |
anthropic, gemini, openai
|
defaults | Each provider's model, baseURL, effort, temperature
|
inputLanguages |
["zh"] |
Input languages, the first is the default: ["en"], ["en", "zh"]
|
outputLanguages |
["en"] |
What @translate translates into, in order: ["es", "fr", "de"]
|
improveTranslates |
false |
@improve also translates |
rewriteStyles |
Polish, Concise, Formal |
polish, concise, formal, casual, tactful, jargon, in order; [] gives lines 1–3 only |
jargonFile |
null |
Your jargon list; null means ~/.config/allinoneime/jargon.txt
|
actionKey |
"enter" |
"enter", "optionTap", "optionSpace", "space"
|
voiceInput |
true |
Hold right ⌥ to talk |
claudeInBackground |
true |
@claude in the background, with a notification |
menuBarIcon |
true |
The menu bar icon and its panel |
typeOut, typeOutRate, typeOutVaries
|
false, 16, false
|
Type results out, characters a second, varying pace |
customCommands |
[] |
Your own commands; see the README |
uiLanguage |
null |
Interface language: "en", "zh", null (follow the system) |
maxTokens, temperature, timeoutSeconds
|
1000, 0.3, 15
|
Output tokens, temperature (null doesn't send it), timeout in seconds |
Example, for someone who writes English:
{
"inputLanguages": ["en"],
"outputLanguages": ["es", "fr", "de"],
"rewriteStyles": ["polish", "concise", "jargon"]
}~/Library/Application Support/AllInOneIME/Rime ("Open Rime User Folder"), for pinyin: the words Rime has learned,
and default.custom.yaml, which enables rime-ice's full-pinyin schema. If you know Rime, you can put your own
*.custom.yaml here and then click "Redeploy Dictionaries" in the input menu. Reinstalling never touches this folder.