博客 · Allomos 换肩 · 实验记录
二十九分钟,做出一个英中日输入法
第二次实验。这次的需求是一个输入法:用英文字母打字,英文、中文、日文的候选并排出现。我把一段话交给换肩(Allomos)和 Claude,然后去遛狗、洗碗。回来的时候,三个版本已经做完。

根据 @wang3an 2026 年 10 月 20 日的串贴与 tatakikun 仓库的任务包整理 · 时间均为日本时间
- 29 分钟从建好任务包(21:44)到目标完成(22:13)
- 3 个版本v0.1、v0.2、v0.3,各有一个验收任务
- 13 个任务分属 4 个领域,全部记在任务包里
- 6.34 美元这一个会话的花费,Opus 5.5 Medium,用掉 5 小时额度的 8%
需求:一段话
21:32 串贴第 1 条
我要继续试验,利用 Allomos 的创建 app 的功能,自动生成这样一个输入法。
上一次(二十三分钟,做出一个投桃)做的是网页应用。这次换一个我自己从来没想过怎么做的东西:输入法。给 Claude 的全部需求就是下面这一段,最后加了一句“产品的英文名叫做 Tatakikun”。
一个输入法,当我输入的英文字符组成的是英文单词的时候,就会输入英文单词。当我输入的英文字符组成的是中文的时候就会形成中文候选词。当我输入的英文字符组成的可能是日文的时候,就出现日文的平假名,片假名,汉字候选词。当都有可能的时候,这些候选就都出现。并且,输入的英文字符原始字符串始终都会作为候选项出现。这些候选词的所处的位置,你帮我决定。候选词的布局方式是横向的。可以向下展开,出现更多(包括不完全匹配的),展开之后的内容可以向下滚动。
按下开始
21:48 串贴第 2 条
新建。


21:49 串贴第 3 条
开始了,有点忐忑。

从这里开始,人要做的只有一件事:在 Claude 里按一次回车。21:48 Claude 把计划提交进 Git:4 个领域(Tatakikun、转换引擎、词库、输入法界面)、3 个迭代、13 个任务。
遛狗的时候
21:52 – 21:53 串贴第 4、5 条
順調ですか? / “正在生成词库”?有点高深的感觉,是什么意思呢???


“生成词库”的意思是:输入法要知道 nihao 对应“你好”、toukyou 对应“東京”。Claude 没有去网上找词典,而是从 macOS 自带的 ICU 数据里把中文拼音和日文读音导出来,做成两份词库;系统转换漏掉的常见读音(私→わたし、日本→にほん)再手工补上。
21:55 串贴第 6 条
从来没想过这种 app 应该怎么做。算了,我去遛狗吧。说不定遛完了,就写好了呢。

22:06 – 22:08 串贴第 7、8 条
貌似遛狗太快了一点。因为晚上的时候狗狗不想在外面呆太久。但是已经可以看到它的测试图了。好期待!




洗碗的时候
22:09 串贴第 9 条
也许我洗完碗,它就做好了!

按提交时间看,这二十几分钟是这样过去的:21:53 词库,21:57 转换引擎,22:01 输入法应用本身,22:02 v0.1 验收;22:06 不完全匹配和可展开的候选面板,22:07 v0.2 验收;22:10 多音字和“记住你选过的词”,22:13 v0.3 验收,目标完成。
22:27 串贴第 10 条
把碗放进洗碗机,清理一下灶台,回来一看,做完了!怀着激动的心情截图记录。三个迭代完成了。


值不值六美元
22:31 串贴第 11 条
Claude 说价值 6 美元。到底值不值呢?待会儿就知道了。


Claude 没有替我改系统的输入法设置。安装和在系统里启用要人自己来:运行 scripts/build.sh 和 scripts/install.sh,再到 系统设置 → 键盘 → 文字输入 → 输入法 里添加 Tatakikun。这是任务包规则里写明的:会改到系统设置的事,由人来做。
22:49 串贴第 12 条
它 可 以 工 作 !
任务包里留下了什么
和上一次一样,做完之后打开 tatakikun 仓库,alm 能完整说出这个输入法是怎么做出来的:
- A03-01 从本机数据生成中文拼音词库和日文读音词库(21:53)
- A02-01 键入拼音得到中文候选,包括整句(如 woaini→我爱你)(21:57)
- A02-02 键入罗马字得到平假名、片假名和日文汉字候选(21:57)
- A02-03 英文单词识别,各语言候选合并排序,原始字母串始终在候选里(21:57)
- A04-01 在任何应用里用 Tatakikun 输入:横向候选条、数字选择、空格/回车上屏(22:01)
- A01-02 v0.1 验收:从头到尾试用最小输入法(22:02)
- A02-04 不完全匹配的候选:拼音/假名前缀匹配、英文补全和拼写建议(22:06)
- A04-02 候选条向下展开显示更多候选,并能滚动(22:06)
- A01-03 v0.2 验收:展开和不完全匹配(22:07)
- A03-02 常见多音字词能用正确读音打出来(如 yinhang→银行)(22:11)
- A02-05 记住用户选过的候选,下次排得更前(22:11)
- A01-04 v0.3 验收:多音字和学习(22:13)
- A01-01 Goal:Tatakikun——英中日混合候选的 macOS 输入法(22:13,等人试用)
Claude 替我做的决定也都记下来了,等人回头审。几条有代表性的:
- 候选条自己画(NSPanel),不用系统的 IMKCandidates:系统的候选窗很难做成“横向一条,向下展开再滚动”。
- 排序:各语言用同一种“代价”比较;第一行保证每种语言的最佳候选都在,原始字母串一定在第一行。
- 罗马字不支持 l 开头的小假名(la、lu…),只用 x 开头,免得 hello 这样的英文词被转成假名。
- 学习:只在本机记录“输入字母 + 选中的候选”,选得越多排得越前,删掉一个文件就能清除。
- 不替人安装和启用输入法,因为那会改系统的输入源设置;提供脚本和步骤,由人来运行。
不尽人意的地方,和之后
23:01 串贴第 13 条
还有一些不尽人意的地方,是和输入法的特性相关的。但是作成这样我已经很满意了。产品操作方面可以通过改 bug 的方式来解决。比如不能输入全角的标点符号。常用词库的话,就不知道怎么做了。可能也是有办法的吧。
这两点后来都成了任务包里的新任务,同一个晚上就做完了:A04-03 让标点和空格按前文自动用全角或半角(中文、日文后面用全角);A03-04 到 A03-06 把词库换成开源数据做的语言包——中文用 pinyin-data 和 phrase-pinyin-data,日文用 Mozc 的开源词典,英文用 SCOWL 的常用程度分级——安装时可以勾选要装哪几种语言。还加了只打辅音的缩写(nh→你好)和“连续打同一种语言时优先这种语言”。
Tatakikun 以 MIT 协议开源在 github.com/allomos/tatakikun,已经发布到 v0.5.1,可以下载安装包试用。介绍见产品页。
一些感想
这次让我意外的不是速度,而是题目本身:输入法是我自己完全不知道该从哪里下手的东西。Claude 先把它拆成词库、转换引擎、输入法界面三块,每一块都有可以自动证明的验收标准;只有“装进系统里亲手打字”这一步留给人。
我做的事情只有:写一段话、按一次回车、遛狗、洗碗、装上试用。做了什么、为什么这样做、哪里还没验过,都在任务包里,第二天接着改的时候,不需要回去翻对话。
另一篇: