<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>RTK on 大体動かない</title><link>https://daitai.dev/tags/rtk/</link><description>Recent content in RTK on 大体動かない</description><generator>Hugo</generator><language>ja</language><lastBuildDate>Thu, 14 May 2026 21:55:46 +0900</lastBuildDate><atom:link href="https://daitai.dev/tags/rtk/index.xml" rel="self" type="application/rss+xml"/><item><title>VS Code 1.120 のターミナル出力圧縮とリスク評価がなかなかよさそう</title><link>https://daitai.dev/posts/vscode-1120-terminal-compress/</link><pubDate>Thu, 14 May 2026 21:55:46 +0900</pubDate><guid>https://daitai.dev/posts/vscode-1120-terminal-compress/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt; — VS Code 1.120 でプレビュー追加されたターミナル出力圧縮（&lt;code&gt;chat.tools.compressOutput.enabled&lt;/code&gt;）とリスク評価（&lt;code&gt;chat.tools.riskAssessment.enabled&lt;/code&gt;）。圧縮はコンテキスト管理、リスク評価は実行前の安全確認と役割が違う。特に圧縮は RTK と処理レイヤーが完全に別なので共存できる（らしい）。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="何が追加されたか"&gt;何が追加されたか&lt;/h2&gt;
&lt;p&gt;VS Code 1.120 のリリースノートを眺めていたら、エージェント周りで自分の関心をひく機能が 2 つ入っていた。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ターミナル出力の自動圧縮&lt;/strong&gt;と&lt;strong&gt;ターミナルコマンドのリスク評価&lt;/strong&gt;だ。&lt;/p&gt;
&lt;h2 id="ターミナル出力の自動圧縮"&gt;ターミナル出力の自動圧縮&lt;/h2&gt;
&lt;p&gt;設定は &lt;code&gt;Chat › Tools › Compress Output: Enabled&lt;/code&gt;。これはプレビュー。&lt;/p&gt;
&lt;p&gt;Claude さんの解説は以下。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;有効にすると、エージェントがターミナルコマンドを実行したあと、その出力をモデルに送る前に VS Code 側で自動的に削減してくれる。具体的には以下の処理が入る。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git diff&lt;/code&gt; の差分で変更のない部分を折りたたむ&lt;/li&gt;
&lt;li&gt;lockfile や snapshot の差分を丸ごと除外&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ls -l&lt;/code&gt; をファイル名だけに削減&lt;/li&gt;
&lt;li&gt;&lt;code&gt;npm install&lt;/code&gt; の進捗バー・非推奨警告・audit サマリーを除去&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;圧縮された出力には先頭にバナーが付く。「どのフィルタが適用されたか」「生のテキストが必要なら圧縮を無効にできる」という情報をモデルに伝えるためのやつ。モデルが圧縮済みであることを認識できるのは地味に大事。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;いや、これ RTK と同じじゃね？&lt;/p&gt;
&lt;p&gt;AI を提供している会社のどれかがそのうち自社で実装するかもなー、とか思ってたけど案外早かったな。&lt;/p&gt;
&lt;h2 id="リスク評価"&gt;リスク評価&lt;/h2&gt;
&lt;p&gt;設定は &lt;code&gt;Chat › Tools › Risk Assessment: Enabled&lt;/code&gt;。こちらはエクスペリメンタル。&lt;/p&gt;
&lt;p&gt;おなじみの Claude さんの解説は以下。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;エージェントがターミナルコマンドを実行しようとしたとき、確認ダイアログにリスクバッジと AI 生成の説明が表示されるようになる。バッジは 3 段階。&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;バッジ&lt;/th&gt;
 &lt;th&gt;意味&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;🟢 Safe&lt;/td&gt;
 &lt;td&gt;ファイルの読み取りや出力のみ。変更なし&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;🟠 Caution&lt;/td&gt;
 &lt;td&gt;ワークスペースへの変更やネットワーク呼び出しを含む&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;🔴 Review carefully&lt;/td&gt;
 &lt;td&gt;force push や外部への削除など、要注意な操作&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;バッジの横に 1 文のサマリーが出る。「このコマンドが何をするか」を一言で教えてくれるやつ。自動承認の判断材料として使える。&lt;/p&gt;</description></item><item><title>RTK に issue 立ててプルリク作った話</title><link>https://daitai.dev/posts/rtk-pr-1800/</link><pubDate>Sat, 09 May 2026 23:59:17 +0900</pubDate><guid>https://daitai.dev/posts/rtk-pr-1800/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt; — RTK に立てた issue が1週間放置されたので自分でプルリクを出した。&lt;code&gt;run_in_terminal&lt;/code&gt; の未認識バグを修正し、重複関数を統合。ローカル確認では mise と linuxbrew の PATH 競合に引っかかったが解決し、PR &lt;a href="https://github.com/rtk-ai/rtk/pull/1800"&gt;#1800&lt;/a&gt; を提出した。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="https://daitai.dev/posts/rtk-copilot-chat/"&gt;前の記事&lt;/a&gt;で「引き続き更新を待つかぁ」と書いたやつの続き。&lt;/p&gt;
&lt;h2 id="1週間待ったけど動きがなかった"&gt;1週間待ったけど動きがなかった&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.com/rtk-ai/rtk/issues/1425"&gt;Issue #1425&lt;/a&gt; を立てたあと、1週間ほど本体の動向を見ていた。メンテナさんも忙しいだろうし、そんなもんかと思っていたけど、なかなか動きがない…&lt;/p&gt;
&lt;p&gt;うん。待つの飽きた。&lt;/p&gt;
&lt;p&gt;「どうせなら自分でプルリクを出してしまえ」&lt;/p&gt;
&lt;h2 id="リファクタしてからプルリクを作る"&gt;リファクタしてからプルリクを作る&lt;/h2&gt;
&lt;p&gt;ローカルには &lt;code&gt;fix(hooks): VS Code Copilot Chat...&lt;/code&gt; というコミットがすでにあった。ただそのまま出すのは品質的に不安だったので、upstream/develop ベースでブランチを切り直して cherry-pick し、ついでに既存のコードベースのお作法を調査してリファクタも入れた。&lt;/p&gt;
&lt;p&gt;変更の内容は3つ：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;detect_format()&lt;/code&gt; に &lt;code&gt;&amp;quot;run_in_terminal&amp;quot;&lt;/code&gt; を追加&lt;/strong&gt;
VS Code Copilot Chat が渡す &lt;code&gt;tool_name&lt;/code&gt; の値で、これが認識されないとフックが PassThrough になっていた。根本的なバグ修正。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;handle_vscode()&lt;/code&gt; と &lt;code&gt;handle_copilot_cli()&lt;/code&gt; を &lt;code&gt;handle_copilot_rewrite()&lt;/code&gt; に統合&lt;/strong&gt;
ほぼ同じロジックが2関数に分散していたので1つにまとめた。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;VS Code 向けのレスポンスを &lt;code&gt;allow/ask + updatedInput&lt;/code&gt; から &lt;code&gt;deny + suggestion&lt;/code&gt; に変更&lt;/strong&gt;
前の記事で書いた「承認ループ」の回避。Copilot Chat は &lt;code&gt;updatedInput&lt;/code&gt; を承認後に無視するので、Copilot CLI と同じ &lt;code&gt;deny&lt;/code&gt; + reason 方式に統一した（詳細は &lt;a href="https://github.com/rtk-ai/rtk/issues/1425"&gt;#1425&lt;/a&gt;）。&lt;/p&gt;</description></item><item><title>NanoClaw のアップデートで RTK が pnpm test を素通りしてた話</title><link>https://daitai.dev/posts/update-nanoclaw-rtk-gap/</link><pubDate>Tue, 28 Apr 2026 00:32:55 +0900</pubDate><guid>https://daitai.dev/posts/update-nanoclaw-rtk-gap/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt; — RTK の rewrite は &lt;code&gt;pnpm run build&lt;/code&gt; を圧縮するが &lt;code&gt;pnpm test&lt;/code&gt;（実体は &lt;code&gt;vitest run&lt;/code&gt;）は素通り。加えて &lt;code&gt;/update-nanoclaw&lt;/code&gt; が &lt;code&gt;/update-skills&lt;/code&gt; を同一コンテキストで自動呼び出ししていた。SKILL.md を2行変えて解決。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;NanoClaw の大型アップデート来ましたね。かなり中身が変わっていてローカルでのマージにものすごく時間がかかりました。最終的には、&lt;/p&gt;
&lt;p&gt;「もう俺の作ったスキルさえ無事なら後はどうでもいいから全部上書きしちゃって！」&lt;/p&gt;
&lt;p&gt;と雑な投げ方をしてアップデートをしてもらいました。&lt;/p&gt;
&lt;p&gt;無事(一部無事じゃなかったけど git のログから復旧した)終わったんだけど、後日再度 &lt;code&gt;/update-nanoclaw&lt;/code&gt; を実行した時の話です。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;/update-nanoclaw&lt;/code&gt; を実行したら5時間制限の40%くらいを1回で使い切ってしまった。なにこれ、と思って Claude さんに調べてもらった。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://daitai.dev/posts/rtk/"&gt;以前 RTK を入れた記事&lt;/a&gt;を書いたとき、「効果はこれからに期待」と書いたんだけど、うまく行かなかったようで…&lt;/p&gt;
&lt;p&gt;以下は、Claude さんに解説してもらった文章です。&lt;/p&gt;
&lt;h2 id="rtk-の仕組みをおさらい"&gt;RTK の仕組みをおさらい&lt;/h2&gt;
&lt;p&gt;RTK は Claude Code の PreToolUse hook として動く。Bash ツールが呼ばれるたびに &lt;code&gt;rtk hook claude&lt;/code&gt; が起動し、&lt;code&gt;rtk rewrite &amp;quot;&amp;lt;コマンド&amp;gt;&amp;quot;&lt;/code&gt; でコマンドを書き換えられるか確認する。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;書き換えできる（exit 3）→ &lt;code&gt;rtk &amp;lt;subcommand&amp;gt;&lt;/code&gt; が代わりに実行され、出力が圧縮される&lt;/li&gt;
&lt;li&gt;書き換えできない（exit 1）→ 元のコマンドがそのまま実行される（RTK はノータッチ）&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="何が素通りしていたか"&gt;何が素通りしていたか&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;rtk rewrite &lt;span class="s2"&gt;&amp;#34;pnpm run build&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# → rtk pnpm run build（exit 3: 書き換え成功）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;rtk rewrite &lt;span class="s2"&gt;&amp;#34;pnpm test&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# → （何も出力なし、exit 1: 書き換えなし）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;pnpm run build&lt;/code&gt; は圧縮される。でも &lt;code&gt;pnpm test&lt;/code&gt; は exit 1 で素通り。&lt;/p&gt;</description></item><item><title>WSL + VSCode Copilot Chat で RTK インストールしたら動かなかった話</title><link>https://daitai.dev/posts/rtk-copilot-chat/</link><pubDate>Tue, 21 Apr 2026 20:34:40 +0900</pubDate><guid>https://daitai.dev/posts/rtk-copilot-chat/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt; — RTK のフックが vscode の Copilot Chat では動かない（2つの理由がある）。フックをやめてグローバルインストラクションに &lt;code&gt;.github/copilot-instructions.md&lt;/code&gt; の内容を転記すれば Copilot が自発的に &lt;code&gt;rtk&lt;/code&gt; プレフィックスを使うようになった。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;職場の WSL 環境に RTK をインストールして VSCode Copilot Chat と組み合わせようとしたら、フックが全然動かなかった。調査した結果と、現状の対策を書いておく。&lt;/p&gt;
&lt;h2 id="rtk-とは"&gt;RTK とは&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.com/rtk-ai/rtk"&gt;RTK（Rust Token Killer）&lt;/a&gt; は CLI プロキシで、コマンド出力を 60〜90% 圧縮して AI エージェントのトークン消費を削減するツール。&lt;code&gt;git status&lt;/code&gt; の代わりに &lt;code&gt;rtk git status&lt;/code&gt; を使うと、AI に渡る出力がコンパクトになる。&lt;/p&gt;
&lt;p&gt;前の記事でも紹介したなこれ。書かなくてもいいかと思ったけど一応書いておく。&lt;/p&gt;
&lt;h2 id="rtk-init--g-は-copilot-向けではない"&gt;&lt;code&gt;rtk init -g&lt;/code&gt; は Copilot 向けではない&lt;/h2&gt;
&lt;p&gt;RTK のセットアップで &lt;code&gt;rtk init -g&lt;/code&gt; を実行すると Claude Code 向けのフックしか設置されない。Copilot 向けは &lt;code&gt;--copilot&lt;/code&gt; フラグが必要：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;rtk init -g --copilot
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;ただし &lt;code&gt;-g&lt;/code&gt;（グローバル）をつけても実質プロジェクトスコープで、このコマンドを実行したディレクトリの &lt;code&gt;.github/&lt;/code&gt; 以下に &lt;code&gt;copilot-instructions.md&lt;/code&gt; と &lt;code&gt;hooks/rtk-rewrite.json&lt;/code&gt; が生成される。&lt;/p&gt;</description></item><item><title>Claude Code のトークンを節約する RTK を入れた</title><link>https://daitai.dev/posts/rtk/</link><pubDate>Sat, 18 Apr 2026 15:58:03 +0900</pubDate><guid>https://daitai.dev/posts/rtk/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt; — RTK（Rust Token Killer）は Claude Code の bash 出力をフィルタして LLM へのトークン消費を削減するプロキシ。&lt;code&gt;rtk init -g&lt;/code&gt; だけで自動設定される。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;ちょっと仕事が忙しくて疲弊してたんだけど、気分転換に前から気になってたツールを入れてみた。&lt;/p&gt;
&lt;p&gt;効果はこれからに期待。&lt;/p&gt;
&lt;h2 id="rtk-とは"&gt;RTK とは&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.com/rtk-ai/rtk"&gt;RTK (Rust Token Killer)&lt;/a&gt; は、Claude Code などの AI アシスタントが bash コマンドを実行したときの出力をフィルタして、LLM に渡るトークン数を削減する CLI プロキシ。&lt;code&gt;git log&lt;/code&gt; や &lt;code&gt;ls&lt;/code&gt; の出力って、そのまま渡すと無駄に長いことが多い。RTK はそれをコンパクトにまとめてから Claude のコンテキストに入れてくれる。公称で 60〜90% の節約効果があるらしい。&lt;/p&gt;
&lt;h2 id="インストール"&gt;インストール&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;brew install rtk
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;rtk init -g
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;rtk init -g&lt;/code&gt; を叩くだけで、以下が自動設定される：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;~/.claude/RTK.md&lt;/code&gt; の生成（Claude Code に RTK の使い方を教えるファイル）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;~/.claude/settings.json&lt;/code&gt; への hook 追記（&lt;code&gt;PreToolUse/Bash&lt;/code&gt; に &lt;code&gt;rtk hook claude&lt;/code&gt; が入る）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これ以降、Claude Code が bash を呼ぶたびに透過的に RTK を通るようになる。ユーザー側で何か変えなくていい。&lt;/p&gt;</description></item></channel></rss>