Repository navigation
AllInOneIME 0.5.0
Note: not yet signed or notarized by Apple. Install: open the DMG and double-click "Install AllInOneIME"; if macOS won't open it, click Open Anyway in System Settings → Privacy & Security. Download it only from this page.
注意:还没有 Apple 签名和公证。安装:打开 DMG,双击「Install AllInOneIME」;macOS 提示无法打开时,到 系统设置 → 隐私与安全性 点「仍要打开」。只从这个页面下载。
SHA-256: f1e7c7e22de97da20d2655bd24fcc1f0169aaca086760e1ddc3b91a0be87518b
English
Added
@translate: translates into every language you added, in the order dragged in the settings, a line each (three versions when there is only one); the sentence's own language is skipped.@translate @improve …together (either order) translates and rewrites in one request; to make@improvealways do that, turn on "@improve also translates" in the settings or the menu.- The menu bar panel: click AllInOneIME's icon in the menu bar (the ∞-and-cursor mark) for the notes saved with
@note, the reminders not done yet in the AllInOneIME list of Reminders (click the circle to tick one off) and the background Claude tasks (5 shown at a time, with scrolling and a search box when there are more); click a row to open it, a click elsewhere closes it. It never takes the focus from the app you're typing in (only its search box, once clicked, takes the keyboard); Notes is never launched; access to Reminders is asked for only from its "Allow Access to Reminders" button;claude agentsruns only while it's down. The icon is shown by default and can be turned off in the settings. - Languages are added, not fixed:
@translatecan translate into Japanese, Korean, French, German, Spanish, Traditional Chinese and more, and input languages are added the same way: Chinese (pinyin) only, English only, or both. Drag them into order under "Input" and "Translate" in the settings: new text fields start in the first input language, and translations come in that order; with two input languages Shift switches, with one it doesn't. A new user starts with one of each: Chinese in, English out. @notesaves the text to the Notes app, in a folder named AllInOneIME (made when missing); nothing is inserted. Pasted text keeps its line breaks, up to 20000 characters.@reminderadds a reminder to the Reminders app, in a list named AllInOneIME, with the time written in the text and read on the Mac (明天下午3点,明晚7点,3点半,30分钟后,下周一 9:30,15号,下个月,年底,tomorrow at 3pm,in 2 hours,next month). A row shows what was read; ⏎ or Space adds it, with an alarm at its time, or all day for a date alone. Neither@notenor@remindergoes to the AI; when a save fails, the text comes back into the command (onto the clipboard if you've moved to another text field), so nothing is lost.@opensearches by keywords: several words, separated by spaces; apps by their Chinese names too (计算器, 系统设置), and Finder and the standard folders (访达, 下载, 桌面, 文稿;下载 pdffinds the PDFs in Downloads), shown that way in a Chinese interface; what you opened with@openand recently used files first; and when the names find hardly anything, the contents of the files in your home folder, marked "content" (with only those, ⏎ lists them to pick from).@openwith a web address (github.com,localhost:3000,https://…,www.…): the first result opens it in the default browser, after a file named exactly that (MANIFEST.in).@imessagesends an iMessage. Type a name, its pinyin (in full or the initials), a phone number or an email and pick the recipient in the candidate panel (the ones you messaged lately come first), write the message and press ⏎: the panel shows what will be sent, and ⏎ again sends it (Esc goes back to editing). Nothing is typed into the text field. Commands inside the message such as@stock AAPLrun first. The first time, macOS asks for two permissions: access to Contacts (only names, phone numbers and emails are read) and control of Messages to send.- A new plugin type,
link: no code; the text after the command goes into a web address that opens in the default browser, and nothing is inserted. Commands inside the text (@stock …) run first and their output goes in; it doesn't run during secure input; 4000 characters at most. - Custom commands can open a web page too (
"type": "link"with aurlcontaining{input}), say@googleto search. Plugins/in the repository:@x,@threads,@bskyand@weiboopen each site's composer with the text filled in. They aren't installed with the app: install them from the plugin library.- The
@xeplugin converts currencies:@xe 100 USD CNYgives100 USD = 670.69 CNY (1 USD = 6.7069 CNY · 2026-10-11). No amount means 1; codes in any case, and100usd,100 USD to CNY,100美元 人民币,$,€,¥work too; one currency converts to CNY (CNY to USD); several targets at once. Rates by ExchangeRate-API (daily), or the ECB's through Frankfurter when it can't be reached. Also inPlugins/, installed from the library. - The plugin library: "Browse Library…" under Plugins in the settings lists the plugins of the plugin library (icon, summary, version, the websites each contacts) and installs them in one click. The library's index is signed (Ed25519, the public key built into the app) and read only once the signature checks out; a plugin is installed only when every file matches its sha256, downloaded to a temporary folder first, so a failure changes nothing. A newer version shows "Update", updated by hand; the network is used only when the library is opened or refreshed. Local plugins in the plugins folder are never overwritten.
@calculate <expression>: calculates on this Mac and offers the result to insert, e.g.@calculate 23*17→391.+ - * /(also× ÷),^or**for powers, parentheses,50%, the functionssqrt,abs,round,floor,ceil,ln,log,exp,sin,cos,tan,min,maxandpow, the constantspi(π) ande, and full-width digits and signs; arithmetic is exact in decimal (0.1+0.2is0.3). It also works inside a sentence:@reply 总价是 @calculate 23*17 元. Nothing goes online and no other program runs.@pyand@js: run a line of Python or JavaScript and insert the result. When the code ends with an expression, its value is inserted (@py 2**100,@js [1, 2, 3].map(x => x * 2)), otherwise what it printed; on an error, the error's first line is shown. The code runs in a separate process (10-second timeout, Esc stops it), only when you press the action key and only as you typed or pasted it; it works inside a sentence too:@reply 答案是 @py 2**100.@pyuses the Mac'spython3and isn't offered without one (without Xcode's command line tools,/usr/bin/python3only offers to install them, so it doesn't count; the same goes forpython3,gitand the like in custom commands);@jsuses macOS's built-in JavaScriptCore and can't read files, reach the network or run other programs.
Changed
- The action key is Return by default; "Record…" in the settings takes the key you press next (⌃⏎, ⌘⏎, F5, a tap of ⌥…), "Use ⏎" goes back.
- The settings regrouped: Input, Translate (@translate, "Languages"), Rewrite Styles (@improve) and the jargon list each have a section; the interface language is at the bottom, following the system by default.
- Rewrite styles are a list like the languages: "Add…" to add, ⓧ to remove, drag to reorder (the candidates follow that order); the jargon list has its own section.
- A shorter input menu: rewrite styles, output languages and input languages are submenus whose titles show what's set (e.g. "Rewrite Styles: Polish, Concise, Formal").
Removed
@read(a web page's text) is gone for now:@openwith a web address opens it in the browser.- Sentence mode is gone (the flow where, without
@, a sentence went into a draft and the action key produced the results). To translate or polish, start the sentence with@improve(@i⏎). ⇧Space no longer toggles anything; it's now the same as Space. "Sentence mode (⇧Space)" in the settings window ("Sentence Mode (⇧Space)" in the input menu), "Sentence mode: English too" in the settings, andenglishAIin the config are gone too; leaving that key in an old config.json does no harm.
Fixed
- In a terminal (Ghostty, Terminal, iTerm2 and others), a command's output with several lines (custom
runcommands, plugins,@read) used to go in as printed, and the terminal ran every line but the last; now it goes in as one line, for@pyand@jstoo. Other apps still get the lines as printed.
Upgrading
@improvenow polishes and rewrites only, without translating: Chinese stays Chinese. Use@translateto translate, or@translate @improvefor both as before.- Sentence mode is gone: without
@, ⏎ is a plain Return and picked words go straight in; to translate or polish, start the sentence with@improve(@i⏎). If you had sentence mode on, there's nothing to do: the setting is cleared. - Existing settings stay as they were: both input languages remain, and the translation languages are English and Chinese (Chinese is translated into English, English into Chinese); remove one under "Input" or "Translate" in the settings to keep just one.
- The first time,
@notemakes macOS ask whether AllInOneIME may control Notes, and@reminderwhether it may access Reminders: allow them. If you didn't, allow AllInOneIME in System Settings → Privacy & Security → Automation, or → Reminders. - The new built-in commands
translate,note,reminder,imessage,calculate,pyandjshide a custom command or plugin with the same name (such as@pyadded from the examples in the settings), so yours no longer shows up: "Custom @ Commands" in the settings marks a custom command hidden this way ("Same name as a built-in command: rename it to use it"); rename it there to keep using it.
中文
新增
@translate:翻译成你加的所有语言,按设置里拖好的顺序,每种一行(只加了一种就出 3 个版本),和原文同一种语言的自动跳过。@translate @improve …写在一起(顺序随意)就是一次请求里同时翻译和改写;想让@improve一直这样,在设置或菜单里打开「@improve 同时翻译」。- 菜单栏面板:点菜单栏的 AllInOneIME 图标(∞ 和光标的标志),下拉出用
@note存的笔记、「提醒事项」里 AllInOneIME 列表中还没完成的提醒(点圆圈勾掉)和后台的 Claude 任务(一次显示 5 个,多了可以滚动、搜索),点一行就打开,点别处就收起。不抢输入焦点(只有点进搜索框时才接收键盘);不会启动「备忘录」;只在点「允许读取提醒事项」时请求提醒事项的权限;拉下来时才运行claude agents。图标默认显示,设置里可以关掉。 - 语言改成自己添加:
@translate的翻译语言可以加日语、韩语、法语、德语、西班牙语、繁体中文等,输入语言也一样是添加的,可以只有中文(拼音)或只有英文。在设置的「输入」「翻译」里拖动排序:输入语言第一个是默认,翻译按这个顺序出;有两种输入语言时 Shift 切换,只有一种时不切换。新用户默认各只有一种:输入中文,翻译成英文。 @note:把文字存进「备忘录」App 的 AllInOneIME 文件夹(没有就新建),不上屏。粘贴的文字保留换行,最多 20000 字。@reminder:加到「提醒事项」App 的 AllInOneIME 列表,时间直接写在里面,在本机读出(明天下午3点、明晚7点、3点半、30分钟后、下周一 9:30、15号、下个月、年底、tomorrow at 3pm、in 2 hours)。先出一行确认,⏎ 或空格加进去;写了时间就到点提醒,只写日期是全天的。@note和@reminder都不发给 AI;没存上时文字回到命令里(换了输入框就放到剪贴板),不会丢。@open按关键词找:可以写几个词,用空格隔开;App 也能用中文名找(计算器、系统设置),访达和常用文件夹也是(下载、桌面、文稿;下载 pdf找的是下载文件夹里的 PDF),中文界面里显示中文名;用@open打开过的和最近用过的文件排在前面;按名字找到的很少时,再按内容找主目录里的文件,标着「内容」,只有这些时 ⏎ 先列出来让你选。@open输入网址(github.com、localhost:3000、https://…、www.…)时,第一条结果是“在浏览器中打开”,用默认浏览器打开;有文件正好叫这个名字时(MANIFEST.in)排在它前面。@imessage:发 iMessage。打名字、拼音(全拼或首字母)、手机号或邮箱,在候选框里选收件人(最近发过的排前面),写好消息按 ⏎,候选框里显示要发的内容,再按 ⏎ 才发出,Esc 回去修改;什么都不会写进输入框。句中的@stock AAPL这类命令会先运行。第一次用时 macOS 会请求两个权限:访问通讯录(只读姓名、电话、邮箱),以及控制「信息」来发送。- 新的插件类型
link:不运行代码,把命令后面的内容填进网址,在默认浏览器里打开,不上屏。句中的@stock之类先运行、结果填进去;密码框里不运行;最多 4000 字。 - 自定义命令也能选「打开网页」(
"type": "link",配一个带{input}的url),比如@google搜索。 - 仓库新增
Plugins/:@x、@threads、@bsky、@weibo,打开各自的发帖页、文字已填好。它们不随应用安装,在插件库里一键安装。 - 插件
@xe换算汇率:@xe 100 USD CNY得到100 USD = 670.69 CNY (1 USD = 6.7069 CNY · 2026-10-11)。不写金额就是 1;代码大小写都行,也认100usd、100 USD to CNY、100美元 人民币、$、€、¥这些写法;只写一种货币就换成人民币(人民币换成美元);可以一次换成几种。汇率来自 ExchangeRate-API(每天更新),连不上时用欧洲央行的汇率(Frankfurter)。同样在Plugins/里,从插件库安装。 - 插件库:设置的「插件」里点「浏览插件库…」,就能看到插件库里的插件(图标、说明、版本、会访问哪些网站),一键安装。插件库的索引用 Ed25519 签名,App 内置公钥,验证通过才读;每个文件的 sha256 都对上才装,先下载到临时文件夹,出错就什么都不改。有新版本时显示「更新」,手动更新;只在打开或刷新插件库时联网。自己放进插件文件夹的本地插件不会被覆盖。
@calculate 算式:在本机计算,结果作为候选上屏,比如@calculate 23*17→391。支持+ - * /(也认× ÷)、^或**乘方、括号、50%,函数sqrt、abs、round、floor、ceil、ln、log、exp、sin、cos、tan、min、max、pow,常数pi(π)和e,全角的数字和符号也行;加减乘除按十进制精确计算(0.1+0.2得0.3)。也能写在句子中间:@reply 总价是 @calculate 23*17 元。不联网,也不运行别的程序。@py和@js:运行一行 Python 或 JavaScript,上屏结果。代码以表达式结尾时上屏它的值(@py 2**100、@js [1, 2, 3].map(x => x * 2)),否则上屏打印出来的内容;出错时显示错误的第一行。代码在单独的进程里运行(10 秒超时,Esc 停止),只在按执行键时运行你自己打的或粘贴的代码;也能放在句子中间:@reply 答案是 @py 2**100。@py用本机的python3,没有时不显示(没装 Xcode 命令行工具时,/usr/bin/python3只会提示安装,也算没有;自定义命令里的python3、git等同样处理);@js用 macOS 自带的 JavaScriptCore,读不到文件,也不能联网或运行别的程序。
改动
- 执行键默认 ⏎,设置里点「录制…」按下想用的键就换成它(⌃⏎、⌘⏎、F5、单按 ⌥ 都行),「恢复 ⏎」改回来。
- 设置重新分组:输入、翻译(@translate,「翻译语言」)、改写风格(@improve)、黑话库各一栏;界面语言放到最下面,默认跟随系统。
- 改写风格也改成和语言一样的列表:「添加…」加、ⓧ 删、拖动排序,候选里按这个顺序出;黑话库单独一栏。
- 输入法菜单更短:改写风格、输出语言、输入语言都收进二级菜单,标题直接显示当前设置(比如「改写风格:润色、简洁、正式」)。
移除
@read(读网页正文)先去掉了:@open输入网址就能直接用浏览器打开。- 整句模式去掉了(不打
@时句子也进草稿、按执行键出结果的用法)。要翻译或润色,在句子开头打@improve(@i⏎)。⇧空格 不再切换任何东西,现在和空格一样。设置窗口和输入法菜单里的「整句模式(⇧空格)」、设置里的「整句模式下英文也进草稿」,以及 config 里的englishAI也一起去掉了;旧的 config.json 里留着这个键也没关系。
修复
- 在终端里(Ghostty、Terminal、iTerm2 等),命令打印出的多行结果(自定义
run命令、插件、@read)以前照原样上屏,终端会把前面每一行都当成命令执行;现在合成一行上屏,@py、@js也一样。别的 App 里照旧多行上屏。
升级须知
@improve只润色、给改写风格,不再翻译:打中文出中文。要翻译用@translate,要像以前那样翻译加改写,写@translate @improve。- 整句模式没有了:不打
@时 ⏎ 就是普通回车,选的词直接上屏;要翻译或润色,在句子开头打@improve(@i⏎)。以前开着整句模式的话不用做什么,这个设置会自动清掉。 - 已有的配置保持原样:中英文两种输入都还在,翻译语言是英文和中文(打中文时翻译成英文,打英文时翻译成中文);想只留一种,在设置的「输入」「翻译」里移除。
- 第一次用
@note时 macOS 会问是否允许 AllInOneIME 控制「备忘录」,第一次用@reminder时会问能否访问「提醒事项」:都选允许。当时没允许的话,到 系统设置 → 隐私与安全性 → 自动化 或 → 提醒事项 里打开 AllInOneIME。 - 新的内置命令
translate、note、reminder、imessage、calculate、py、js会盖住同名的自定义命令或插件(比如从设置里的例子加的@py),你的那个不再出现:设置的「自定义 @ 命令」里会标出被盖住的命令(「和内置命令重名,不会生效,请改名」),给它改个名字就能接着用。