janzd/claude-translate-output
Claude Code용 언어 학습 모드
대화의 최종 출력을 선택한 언어로 번역하고 사이드 패널에 표시하는 Claude Code 모드로, 기본적으로 낮은 노력도의 Haiku를 사용합니다.
이 mod 소개
친구와 대화한 후, Claude Code에서 작업하면서 공부하는 언어를 연습하는 데 도움이 되는 Claude Code 모드에 대한 아이디어를 얻었습니다. 기본적으로 대화의 최종 출력을 번역하고, 모드를 켤 때 설정한 언어로 번역하여 사이드 패널에 표시합니다. 번역에는 기본적으로 낮은 노력도의 Haiku가 사용되지만, 원하는 모델과 노력도를 설정할 수 있습니다. https://github.com/janzd/claude-translate-output
설치
먼저 작성자의 README에서 marketplace와 플러그인 이름을 확인하세요. 저장소 구조에 따라 명령어가 달라질 수 있습니다.
claude plugin marketplace add janzd/claude-translate-output claude plugin install translate-output@claude-translate-output
원문 / README
Claude Code Translate Output
A Claude Code mod that translates the agent's final answer of each turn into a language you choose and shows the translation in a side pane. Intermediate output (tool calls, progress messages, subagent reports) is not translated, and the original answer is left untouched: the translation is display-only and never enters the conversation context.

Install
In a Claude Code terminal session:
/plugin install translate-output --marketplace janzd/claude-translate-output
Answer y to add the marketplace, then pick a scope (user scope makes it
available in every session, including the desktop app's Code tab).
Usage
/translate <language> turn on, translating final answers into <language>
/translate show the current language and reopen the pane
/translate off turn off
/translate model <name> translate with <name> (haiku, sonnet, opus or a model id)
/translate model show the model in use
/translate effort <level> set effort: low, medium, high, xhigh or max
/translate effort show the effort in use
The language is free text and is passed to the model as written, so real
languages (Japanese, Spanish, Esperanto), constructed ones (Quenya) and
styles (pirate English, Shakespearean English) all work. The chosen language
is remembered across sessions until you run /translate off.
After each turn the pane titled Translation (<language>) shows the
translation; the status line reads Translating to <language>… while it runs.
How it works
- Hooks
turn.completeand takes the turn's final visible answer, skipping subagent turns, interrupted turns and errors. - Sends it to the translation model (
haikuby default) via$.model.complete(a separate, history-free call on the session's own credentials), asking it to keep Markdown, code blocks, file paths, commands and identifiers unchanged. - Draws the result in a pane through a
ui.renderhook.
To trade speed for quality (useful for less common languages), run
/translate model sonnet. The model, like the language, is remembered across
sessions. If the model name isn't recognized, the pane shows the error.
/translate effort <level> sets how hard the model thinks (low by default);
higher levels may help with literary styles or long technical answers, at the
cost of speed.
Development
claude plugin validate .
claude plugin test .
To run it from a local checkout instead of installing it:
claude --plugin-dir /path/to/claude-translate-output
Files
| Path | Purpose |
| --- | --- |
| .claude-plugin/plugin.json | Plugin manifest |
| .claude-plugin/marketplace.json | Makes this repository a plugin marketplace |
| hooks/hooks.json | Points at the hooks module |
| hooks/register.tsx | The mod: /translate command, turn.complete hook, pane |
| hooks/register.test.tsx | Tests run by claude plugin test |
| types/index.d.ts | Type contract for the mod's session state |

