[{"data":1,"prerenderedAt":218},["ShallowReactive",2],{"blog:\u002Fblog\u002Fkonjac-translation-app":3},{"id":4,"title":5,"body":6,"date":206,"description":207,"extension":208,"image":209,"meta":210,"navigation":64,"path":211,"seo":212,"stem":213,"tags":214,"__hash__":217},"blog\u002Fblog\u002Fkonjac-translation-app.md","サブスクを 1 つ減らしたくて翻訳アプリを作りました",{"type":7,"value":8,"toc":197},"minimark",[9,13,41,44,47,55,58,65,70,73,76,83,86,92,100,103,106,110,113,122,128,133,136,144,147,156,165,175,178,181,184,187,191,194],[10,11,12],"p",{},"最近徐々にサブスクが増えてきたなぁ...と思っていました。",[14,15,16,24,30,36],"ul",{},[17,18,19,23],"li",{},[20,21,22],"strong",{},"nani"," — 英語翻訳",[17,25,26,29],{},[20,27,28],{},"Aqua Voice"," — 音声入力",[17,31,32,35],{},[20,33,34],{},"Claude Code"," — コーディング",[17,37,38,35],{},[20,39,40],{},"Codex",[10,42,43],{},"Claude も ChatGPT も似たようなことができるようになってきたので、冷静に考えると、「英語の翻訳だけに焦点を絞れば意外と作れるのでは」という気がしてきました。",[10,45,46],{},"ものは試しで作ってみたのが konjac です。",[10,48,49],{},[50,51,52],"a",{"href":52,"rel":53},"https:\u002F\u002Fgithub.com\u002Fhashibadaiki\u002Fkonjac",[54],"nofollow",[10,56,57],{},"⌘C を 2 回押すとウィンドウが出て、コピーした文が訳されて、Esc で消えます。",[10,59,60],{},[61,62],"video",{"src":63,"autoPlay":64,"loop":64,"muted":64,"playsInline":64},"\u002Fblog\u002Fkonjac-demo.mp4",true,[66,67,69],"h2",{"id":68},"deepl-から-nani-へ","DeepL から nani へ",[10,71,72],{},"英語の翻訳は DeepL から始まりました。",[10,74,75],{},"ただ、よくエラーになりますし、立ち上げに失敗することもあります。文字数制限も厳しいといった理由で離れました。",[10,77,78,79,82],{},"次に使ったのが nani です。移った理由はUXがとても良かったからです。速さは正義。",[80,81],"br",{},"\n押してから訳文が出るまでが短くて、それだけで乗り換える理由は十分でした。",[66,84,85],{"id":85},"着手前に考えたこと",[10,87,88,89,91],{},"作るときに気をつけたのは 2 つです。1 つはとにかくシンプルに、そして速く。",[80,90],{},"\nもう 1 つは規約違反にならないかどうかです。",[10,93,94,95,99],{},"速さの方は、正直なところ不利です。裏で ",[96,97,98],"code",{},"claude"," CLI を1 回起動しているので、最初の 1 文字が出るまで 2 秒ほどは CLI の Node 起動に使われています。",[10,101,102],{},"ここは縮めようがないので、生成中のテキストをそのまま流して先に見せる形にしました。全部できるまで待たせない、というだけの話です。",[10,104,105],{},"nani より速いかというと、速くはないはずです。遅いと感じない範囲には収まっている、という評価をしています。",[66,107,109],{"id":108},"claude-code-を裏で叩いていいのか","Claude Code を裏で叩いていいのか",[10,111,112],{},"ここはしっかり調べました。",[10,114,115,116,121],{},"Claude Code のドキュメントに ",[50,117,120],{"href":118,"rel":119},"https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Flegal-and-compliance",[54],"Legal and compliance"," というページがあって、認証方式ごとの線引きがそのまま書いてあります。",[123,124,125],"blockquote",{},[10,126,127],{},"OAuth authentication is intended exclusively for purchasers of Claude Free, Pro, Max, Team, and Enterprise subscription plans and is designed to support ordinary use of Claude Code and other native Anthropic applications.",[123,129,130],{},[10,131,132],{},"Anthropic does not permit third-party developers to offer Claude.ai login or to route requests through Free, Pro, or Max plan credentials on behalf of their users.",[10,134,135],{},"禁止されているのは 2 つです。",[14,137,138,141],{},[17,139,140],{},"アプリが Claude.ai のログインを提供すること",[17,142,143],{},"他人のリクエストを Pro や Max の認証情報で通すこと",[10,145,146],{},"konjac はどちらもやっていません。認証情報を一切持たず、使う人が自分で Claude Code にログインしてある前提で、その認証をそのまま使います。サーバも持っていないので、そもそも通すべき「他人」が存在しません。",[10,148,149,150,155],{},"裏付けがもう 1 つあります。サブスクプランでのAgent SDK 利用の",[50,151,154],{"href":152,"rel":153},"https:\u002F\u002Fsupport.claude.com\u002Fen\u002Farticles\u002F15036540-use-the-claude-agent-sdk-with-your-claude-plan",[54],"ヘルプ記事","に、2026 年 6 月 15 日付でこう書いてありました。",[123,157,158],{},[10,159,160,161,164],{},"For now, nothing has changed: Claude Agent SDK, ",[96,162,163],{},"claude -p",", and third-party app usage still draw from your subscription's usage limits.",[10,166,167,168,171,172,174],{},"サードパーティのアプリから叩いたぶんも自分のサブスクの上限から引かれる、と明記されています。konjac が使っている ",[96,169,170],{},"claude --print"," は、この ",[96,173,163],{}," そのものです。",[10,176,177],{},"条件は 1 つだけで、同じ Legal ページに「Advertised usage limits for Pro and Max plans assume ordinary, individual usage」とあります。1 日 5 回から 10 回の翻訳なら、ここに収まる使い方だと考えています。",[66,179,180],{"id":180},"名前はコンニャクです",[10,182,183],{},"konjac は英語でこんにゃくのことです。食べると外国語が分かるようになる、あの国民的アニメの道具から取りました。",[10,185,186],{},"アイコンもコンニャク一丁の絵にしてあります。",[66,188,190],{"id":189},"いったん翻訳は-konjac-でいこうと思います","いったん翻訳は konjac でいこうと思います",[10,192,193],{},"浮いたサブスク代より作った時間の方が高くついている気がしますが、⌘C 2 回で開くのは思っていたより気持ちが良いので、しばらくこれで行きます。",[10,195,196],{},"TODOはいったんissueにしていますので、ご要望などありましたらそちらへお願いします（対応するかは未定ですが）。",{"title":198,"searchDepth":199,"depth":199,"links":200},"",2,[201,202,203,204,205],{"id":68,"depth":199,"text":69},{"id":85,"depth":199,"text":85},{"id":108,"depth":199,"text":109},{"id":180,"depth":199,"text":180},{"id":189,"depth":199,"text":190},"2026-08-03","⌘C を 2 回押すと開く翻訳アプリを Tauri で作って、英語翻訳のサブスクを 1 つ解約するまでのメモ。","md",null,{},"\u002Fblog\u002Fkonjac-translation-app",{"title":5,"description":207},"blog\u002Fkonjac-translation-app",[215,34,216],"Tauri","開発メモ","9Ss5Hrioo0pw9Qu7xDbqujqmRvSNX4yvNiR4Haxs7Vc",1788768004027]