Stream Deckっぽいデバイスを、AI専用左手デバイスにした件|ActionRing N4 の仕様とプロンプト置き場
じゅごん出版書籍 一覧

左手にボタン、右手にマウス、キーボードはどこいった、じゅごんですw
Amazon で買った ActionRing N4 という Stream Deck 風の左手デバイスを
付属アプリをほとんど使わずに、AI(Claude Code)と一緒に自分専用の操作盤に仕上げました

黄色い枠が、今 AI が作業している会話
緑の枠が、終わった会話
動画では「何ができるようになったか」を中心に話したので
作り方のほうは、さらっと触れただけ
この記事はその続きで
同じ N4 を持っている方が、わしと同じことを始められるように
調べた仕様と、AI に渡すプロンプトと、実際の作業の流れを置いておきます
目次
先に、この記事に置いてあるもの
| 置いてあるもの | 中身 |
|---|---|
| N4 の仕様メモ | USB の ID・話しかける言葉(コマンド)・画像の大きさ・キーとノブの番号・つまずいた所。AI にそのまま貼れる形 |
| プロンプト 10本 | 最初の動作確認から、機能を1つずつ足すところまで(順番に渡す9本+通信の解析用1本) |
| 作業の流れ | どの順で何を確かめたか。ID が違った方・別のデバイスの方が、自分で調べ直すときの手順 |
| つまずいた所 | 1時間溶かしたもの、半日溶かしたもの |
ちなみに、わしはプログラムを1行も書いていません
やったのは、押してみて、気づいたことを AI に伝える。これだけ
なので、プログラミングの経験がなくても始められるように書きました
向いているかもしれない人・付属アプリのままが合いやすい人
| 向いているかもしれない人 | 付属アプリのままが合いやすい人 |
|---|---|
| 付属アプリでは届かない使い方をしたい | 付属アプリの機能で足りている(そのほうが早いです) |
| AI を並行して動かしていて、状態を手元で見たい | うまく動かない所を AI に相談しながら進めるのは避けたい |
| AI と一緒に、自分の道具を作ってみたい |
付属アプリは、配信に使う方には便利な機能がそろっています
ただ、わしがやりたかったのは「AI の状態をキーの色で見る」ことで
そこには届かない。じゃあ自分で作るか、となったわけです
そもそも、いらないと思っていました
正直に書くと、わしは「左手デバイスはいらない派」
普段のキーボードは EPOMAKER の TH40 という 40% の小さいやつで
キーの割り当てを自分好みに作り込んであります
どんな操作も、この小さなキーボードでできる
N4 も「AI でいじれそうだな」くらいの、おもちゃのつもり
ところが・・・
1か月たった今、机の上でいちばん押されているのは N4 です
TH40、すまんw
もちろん、キーボードでも同じことはできるんです
でも N4 は、今の状況を目で見ながら、ボタンをポチッと押すだけ
やりたいことにたどり着くまでが、とにかく短い
最近はマイクで AI に話しかけて作ることが増えたので
何かあるたびにキーボードへ手を戻すのが、地味に面倒だった、というのもあるかな
こればっかりは、使ってみるまで分からんもんですね
わしの環境と、進め方
| 本体 | ActionRing N4(液晶キー10個・ノブ4個・タッチの帯・USBハブ内蔵) |
| 中身 | Mirabox Stream Dock N4 と同じ系列 |
| PC | GMKtec NucBox K8 Plus/Windows 11 Pro |
| AI | Claude Code(VSCode の拡張)。わしは sai(サイ)と呼んでいます |
| 言語 | Python(AI が書きます) |
進め方は、1か月ずっとこれ
わし「こうしたい」 → sai が調べて作る → わしが押してみる → 違ったら、起きたことをそのまま伝える → ↺
ここで1つ、お断りを
この記事のプロンプトは、当時わしがマイクでしゃべった言葉そのものではありません
開発の記録をもとに、同じ順番で進められるように sai と整理し直したものです
当時の言葉もそのまま載せたかったのですが
最初の2日分(通信の解読と、最初のアプリ)の会話は、探したら、もう残っていない・・・
Claude Code の会話の記録は、30日ほどで自動的に消えるようです
3日目からの会話は残っていたので
実際にしゃべった言葉は「実際にはこう言いました」と書いて、ところどころに置いてあります
(音声入力の聞き間違いだけ直しています)
まず、手元の N4 が同じ個体か確かめる
ここが最初の分かれ道
N4 を PC に挿して、PowerShell でこれを実行します
Get-PnpDevice -PresentOnly |
Where-Object { $_.InstanceId -like "*VID_*" -and $_.Class -eq "HIDClass" } |
Select-Object FriendlyName, InstanceId, Status
どれが N4 か分からないときは、抜いた状態と挿した状態で2回実行して、増えた行を見るのが確実
わしの個体は、こう
| 項目 | 値 |
|---|---|
| VID / PID | 0x5548 / 0x1004 |
| メーカー名 | HOTSPOTEKUSB(Mirabox の親会社) |
| 製品名 | HOTSPOTEKUSB HID DEMO |
| ファームウェア | V3.VSDN4_HJDF.02.015 |
製品名が、なんと「HID DEMO」
デモと名乗る製品を1万円台で買ったことになりますが
動作はちゃんと安定しています
たぶん開発中の名前のまま出荷されたんでしょうねw
- VID / PID が同じだった方 → 次の「仕様メモ」と「プロンプト」がそのまま使える見込みです
- 違った方・別のデバイスの方 → 記事の後半「ID が違ったときの調べ方」へ
わしの場合、同じ系列を動かす無料のプログラムはいくつか見つかったのですが
手元の ID は、そのどのリストにも載っていない
「1行足せば動く」と思って買ったら、そうは問屋が卸さなかった、というやつですw
製造時期によって ID が違う可能性はあるので、ここは最初に見ておくと安心です
N4 の仕様メモ(AI にそのまま貼れます)
わしの個体で、実際に流れていた通信から起こしたものです
推測で書いた所はなし。分かっていない所は、正直に「未確認」と書いてあります
# ActionRing N4 仕様メモ(実測・2026年9月〜10月)
## 識別
- VID/PID: 0x5548 / 0x1004
- Manufacturer: HOTSPOTEKUSB / Product: HOTSPOTEKUSB HID DEMO
- ファームウェア: V3.VSDN4_HJDF.02.015(HID の入力レポート取得で読める)
- 使うインターフェース: UsagePage 0xFFA0 / Usage 0x0001(ベンダー定義)
レポート長 IN 513 / OUT 1025
- もう1つのインターフェース(標準キーボード)は使わない
## PC → N4(コマンド): 1024バイト固定。余りは 0 で埋める
offset 0-2 : "CRT"
offset 3-4 : 00 00
offset 5- : コマンド名(3〜7文字。3文字固定ではない)
offset 8- : 引数
※引数は、名前の長さに関係なく、いつも offset 8 から書く。
QUCMD は名前が5文字なので、後ろの2文字(M D)の場所に引数が重なる。
動いているプログラムが送っている並びは、offset 5〜13 が
51 55 43 1f 11 00 11 00 11 ("QUC" のあとに引数6バイト)
CONNECT(7文字)は引数が無いので、名前がそのまま入る
- DIS 初期化(接続後いちばん最初)
- LIG 明るさ。引数 00 00 1e(=30)
- QUCMD 引数 1f 11 00 11 00 11。意味は未確認。付属アプリが送っているので同じように送る
省くと、画像は出るのにキーの入力が来なかった(実測)
- CLE 画面クリア。引数 00 00 00 ff
- BAT 「これから画像を送る」。引数 00 00 <サイズ2バイト・ビッグエンディアン> <送り先1バイト>
- STP 描画の確定。BAT と必ず組で使う(フラッシュメモリへの書き込みではない)
- CONNECT 生存確認。約12秒ごとに送り続ける
- HAN スリープ
## 初期化の順番(付属アプリが送っていた順)
DIS → LIG → QUCMD → LIG → CLE → CLE → 以後 CONNECT を約12秒ごと
## 画像の送り方
1) BAT(サイズと送り先)
2) JPEG 本体を 1024バイトずつに分けて送る
3) STP
(画像1枚ごとに、この 1)〜3) を繰り返す)
- JPEG は ff d8 ff e0 で始まる、JFIF ヘッダ付きのふつうの JPEG
- キー: 112×112 の JPEG
- タッチの帯: 176×112 の JPEG を4枚(横に並んで 704×112 相当)
- 液晶は 180度回転して付いている。画像は 180度回してから送る
- 送り先の番号
上段5キー(左→右): 0x0B 0x0C 0x0D 0x0E 0x0F
下段5キー(左→右): 0x06 0x07 0x08 0x09 0x0A
帯の4区画(左→右): 0x01 0x02 0x03 0x04
## N4 → PC(入力): 512バイト固定
offset 0-2 : "ACK"
offset 5-6 : "OK"
offset 9 : コード
offset 10 : 0x01 = 押した / 0 = 離した
- キー1〜10: 0x01〜0x0A(左上から右下の順)
※画像の送り先の番号とは体系が違う。下段だけ同じ値になる
- ノブ1: 回転 0xA0 / 0xA1、押し込み 0x37
- ノブ2: 回転 0x50 / 0x51、押し込み 0x35
- ノブ3: 回転 0x90 / 0x91、押し込み 0x33
- ノブ4: 回転 0x70 / 0x71、押し込み 0x36
- 帯のスワイプ: 0x38(左→右)/ 0x39(右→左)
- 帯のタップ(4区画): 0x40 0x41 0x42 0x43
- ノブの回転は、小さいほうの値が左回し、大きいほうが右回し(ノブ1なら 0xA0 が左、0xA1 が右)
- ノブの回転は「回った」だけが来る(押した・離したの区別は無い)
- ノブの押し込みは「押した」だけ、帯のタップは offset 10 が 0 のまま来る(どちらも1回の操作で1件)
## つまずいた所
- Windows の ReadFile / WriteFile は、先頭にレポートID 1バイト(0x00)が付く。
上の offset は USB を直接記録したときの位置なので、API 経由だと1バイトずれる
(送る側は 0x00 + 1024バイト = 1025バイト)
- 付属アプリと同時には動かせない(先に掴んだほうが画面を持つ。エラーは出ない)
- PC 側が黙ると、約1分で N4 が自分で起動画面に戻る
- 工場出荷の設定で、キー8 に Windows のロック画面が入っていることがある
## 未確認
- QUCMD の引数の意味
- JPEG の大きさの上限(実測で流れていたのは 2.3KB〜8.1KB)
プロンプト(この順番で渡していきます)
AI は Claude Code でも Codex でも大丈夫
フォルダを1つ作って、そこで AI を開いて、①から順に渡します
① 最初に1回:約束ごとと仕様を渡す
ActionRing N4 という USB の左手デバイスを、付属アプリを使わずに
自分のプログラムから動かしたいです。私はプログラミングの経験がありません。
次の約束で進めてください。
- 言語は Python。追加のライブラリはできるだけ使わない
(画像を作る Pillow は使ってよい)
- このあと貼る「仕様メモ」に書いてあるコマンドだけを使う。
仕様に無いデータを、推測で N4 に送らない
- 1つの段階が終わったら止まって、私が実機で確かめる手順を教えてください。
私の報告を聞いてから次へ進んでください
- 分からないことは、分からないと言ってください
(ここに仕様メモを貼る)
まだ何も作らず、進め方だけ教えてください。
「推測で送らない」は、わしがいちばん大事にした約束です
相手は中身の分からない機械。当てずっぽうのデータを投げるのだけは、避けたかったのです
② 何も送らずに、つながるかだけ確かめる
まず、N4 に何も送らずに、つながるかだけ確かめたいです。
仕様メモの VID/PID のデバイスを読み取り専用で開いて、
ファームウェアの名前を読んで表示するプログラムを書いてください。
付属アプリが動いていたら、先に終了するよう私に教えてください。
ここで V3.VSDN4_HJDF.02.015 が返ってきたら、通信は生きています
デバイスが自分から「VSDN4」と名乗った瞬間が
この日いちばんテンションが上がりましたw
ちなみに付属アプリを止めると、N4 の画面は青い絵とロゴの待機画面に変わります
わしは一瞬「初期不良か?」と焦りましたが、これが正常な動きw
③ 全部のキーに番号を出す
次に、画像を出せるか確かめたいです。
仕様メモの初期化の順番を送ったあと、10個のキーと帯の4区画に、
「送り先の番号」を大きく書いた画像を出してください。
- 上段の5個は青、下段の5個は緑で塗り分ける
- 各画像の上の端に赤い帯を入れる(向きの目印)
出したまま 60秒待って、その間 CONNECT を送り続けてください。
1回のテストで、確かめたいことを3つまとめて見られます
- 画像を送れるか
- どの番号が、どのキーなのか
- 向きは合っているか
わしのときは・・・
全部、上下逆さまに出ましたw
赤い帯が、見事に全キーの下の端に並んでいる
液晶が 180度回って付いているんですね
(上の仕様メモでは、もう回してから送るように書いてあります)
回してから送ると、こう出ます

赤い帯が、今度はちゃんと上の端に♪
上段が 0B から 0F、下段が 06 から 0A、帯が 01 から 04
(この写真は、記事を書いたあとに試し直したときのものです。その話は④のあとに書きます)
④ 押したことを受け取る
次に、入力を受け取りたいです。
キー・ノブ・帯の操作を受け取って、「キー3 押した」「ノブ1 右」のように
画面に1行ずつ表示するプログラムを書いてください。45秒で自動的に終わるようにしてください。
Windows の ReadFile は先頭にレポートID が1バイト付く点に注意してください。
ここで、押す前に1つだけ
わしは付属アプリの通信を記録していたとき(記事の後半に書きます)
キー1から順番に、ポチポチと全部押していったんです
そしてキー8を押した瞬間、Windows のロック画面へ
工場出荷の設定で、キー8に「ロック」が入っていたという
自分で自分を締め出すという・・・w
記録もそこで止まって、キー9と10はやり直し
最初のうちは、キー8を避けておくと平和です
ここまで来たときの、わしの記録がこちら
[19.6s] キー key1 押した
[20.2s] キー key2 押した
[25.1s] キー key10 押した
[28.0s] 回転 enc1 左
[28.4s] 回転 enc1 右
受信したイベント: 76 件
45秒で 76件、取りこぼしなし
ここまでで、わしの場合は半日
①〜④を、まっさらな AI でもう一度試しました
記事に置く以上、書いたとおりに進むのかが気になったので
この原稿を書いたあとに、新しいフォルダで、何も知らない Claude Code に
①から④を上の文面のまま渡してみました(2026年10月13日)
| 段階 | 結果 |
|---|---|
| ② つながるか確かめる | V3.VSDN4_HJDF.02.015 が返ってきた |
| ③ 全部のキーに番号を出す | 上の写真のとおり、正しい向きと並びで出た |
| ④ 押したことを受け取る | キー10個・帯のタップ4か所・ノブ4個の回転と押し込みを、全部受け取れた |
③のときの画面が、これ

途中で AI が「ここは分かりません」と言ってきた所が4つありましたQUCMD の引数を置く場所、ノブのどちらが右回しか、など
調べてみたら、どれも仕様メモのわしの書き方が足りなかった所・・・
上の仕様メモとプロンプト①は、それを足したあとのものです
「分からないことは、分からないと言ってください」の約束、ここでもしっかり効いてくれました
⑤ キーの役目を、設定ファイルで変えられるようにする
ここまでのプログラムを、常に動かしておくアプリにまとめてください。
- キーの役目は設定ファイル(YAML)に書く。プログラムを直さずに変えられるようにする
- できること: コマンドを実行する/キー操作を送る/ファイルやフォルダを開く/ページを切り替える
- キーには、アイコンと短い名前を出す
- 押した瞬間は黄色、成功したら緑、失敗したら赤、と色で結果が分かるようにする
- 画像を送るのは、表示が変わったときだけにする
- 帯の4区画をページのタブにして、タップで切り替える
- 窓(コンソール)を出さずに動かし、動きはログファイルに書く
「画像は変わったときだけ」には理由があります
付属アプリの通信を記録したとき、180秒で約146MB の画像が流れていたんです
キーに動く壁紙を流しているんですね
配信の画面としては楽しい機能ですが
わしは色が変わったときだけ分かれば十分なので、ここは静かにしてもらいました
今のわしのページの1つが、こちら

下の段は、よく開くフォルダたち
⑥ AI の状態をキーに出す(Claude Code の場合)
わしが N4 を自作した、いちばんの理由がこれです
AI を並行して動かしていると
「承認待ちで止まっていた」のに数十分気づかない、ということがあったんです
もったいない・・・
Claude Code の会話が今どういう状態かを、N4 のキーの色で見たいです。
- Claude Code のフックを使う
SessionStart → 待機 / UserPromptSubmit → 実行中
Notification → 承認待ち / Stop → 完了
- フックは、状態をファイルに書くだけにする(N4 のアプリが動いていなくても、
フックがエラーにならないように)
- N4 のアプリは、そのファイルを1秒ごとに読んでキーの色を変える
- キーの名前は、会話の見出しにする
- キーを押したら、その会話を VSCode で開く
- 手が止まっているだけの通知は、承認待ちにしない
状態の受け渡しを、通信ではなくファイルにしたのには理由があります
N4 のアプリが止まっていても、フックのほうは黙って書くだけで済む
本来の作業の邪魔をしない、というわけです
できあがったページは、記事のいちばん上の写真のとおりです
⑦ 機能を1つ足すときの型
土台ができたら、あとはこの型の繰り返し
N4 に機能を1つ足したいです。
- やりたいこと: (例)ノブを押したら、今開いているブラウザのタブを閉じる
- 普段は手でこうやっている: (例)Ctrl+W を押している
- 届いてはいけない相手: (例)ブラウザ以外の窓。エディタのタブまで閉じたくない
- 確かめ方: 私が実際に押して、起きたことを報告します
作る前に、やり方の候補と、気をつける点を教えてください。
実際にはこう言いました(9月8日)
ノブ4を押す機能だけど、これを、ブラウザを開いているときに、今開いているタブを閉じるコマンドにしてもらえますか
実際は、この一文だけw
「届いてはいけない相手」は、使っているうちに足した項目です
ノブはどのページでも押せるので
素直に Ctrl+W を送ると、エディタのタブも、フォルダの窓も閉じてしまう
押せるものが増えるほど、「押してはいけない相手」を決めるほうが仕事になる
これも、作ってみて初めて分かったこと
⑧ 思ったとおりに動かないとき
さっきの機能が、思ったとおりに動きません。
- 私がやったこと: (例)YouTube を止めて、隣のタブに移って、もう一度ノブを押した
- 期待したこと: 今見ているタブの動画が再生される
- 実際に起きたこと: さっき止めた動画のほうが再生された
- 正しく動く場合: (例)キーボードで直接 k を押すと、今のタブが再生される
推測で直す前に、何が起きているかを確かめる方法を先に作ってください。
実際にはこう言いました(9月8日)
ここで再生していたものを、ノブ3を押し込んで一時停止にして、ノブ3を回して隣のタブに行って、ノブ3を押して再生しようとすると、さっき一時停止した動画が、フォーカスが当たっていないのに再生されます
やった順番を、そのまましゃべっているだけなんですよね
コツは2つ
- 起きたことを、そのまま言う(原因の予想は言わなくていい)
- 「正しく動く場合」を添える(これがいちばん効きます)
⑨ 作業の終わりに
今日分かったことを、仕様メモに書き足してください。
- 新しく確かめられた事実
- つまずいた所と、その原因
- まだ確かめていないこと
推測と、実機で確かめたことは分けて書いてください。
AI は次の日、昨日のことをきれいさっぱり覚えていません
なので、分かったことは毎回ファイルに残してもらいます
上の仕様メモも、こうやって1か月かけて育ったものです
ID が違ったときの調べ方(付属アプリの会話を、横で聞く)
ここからは、ID が違った方や、別のデバイスで同じことをしたい方向けです
わしが9月1日に、実際にたどった流れです
リバースエンジニアリングというと身構えますが
やったことは「付属アプリが喋っている内容を横で聞いて、同じことを言った」だけ
買う前に調べたこと
| 見たもの | なぜ |
|---|---|
| 同じ系列を動かす無料のプログラムがあるか | あれば土台になる |
| メーカーが開発用の資料を出しているか | 同上 |
| 既製のソフトが対応しているか | 自作がうまくいかなかったときの退避先になる |
「最悪でも既製のソフトで使える」と分かった時点で、ポチッと
おもちゃのつもりと言いながら、逃げ道だけはしっかり確保する男ですw
推測するか、覗くか
読み取りだけ試したあと、道は2つ
| 内容 | ||
|---|---|---|
| 案A | 似た機種の資料から、初期化の言葉を推測して送る | 速いけれど、世代が違えば外れる |
| 案B | 付属アプリが実際に送っている通信を記録する | 自分では1バイトも送らずに、正解が手に入る |
選んだのは、案B
推測で送っていたら、外れたときに
「デバイスが悪いのか、プログラムが悪いのか」も分からなくなっていたと思います
記録に使ったもの
どちらも無料の定番ソフト
winget install --id WiresharkFoundation.Wireshark
winget install --id desowin.USBPcap
USBPcap は、入れたあとに PC の再起動が要ります
再起動しないと、記録できる相手の一覧が空のまま返ってきます
わしはここで少し詰まりましたw
いちばんのコツ:先に録画を回してから、ケーブルを挿す
デバイスを挿す → 記録を始める … 初期化のやりとりを取り逃す
記録を始める → デバイスを挿す … 認識から初期化まで、切れ目なく全部入る
いちばん知りたい初期化のやりとりは、挿した直後に流れます
記録している間に、キーを1番から順に押す、ノブを右・左・押し込み、帯をなぞる
押した順番を覚えておくと、あとで記録と突き合わせる表になります
(そしてキー8でロック画面に飛ばされるのは、先に書いたとおりです)
記録を読む
180秒の記録が、こちら
| 向き | 件数 | 中身 |
|---|---|---|
| PC → N4 | 128,382 | 画像など |
| N4 → PC | 144 | キーを押した知らせ |
全部で 194,324件・146MB
多く見えますが
N4 から来たものは 144件しかないので、そこだけ読めば済む、というわけです
このときのプロンプト
USB デバイスの通信を解読して、自分のプログラムから動かしたいです。
付属アプリの通信を USBPcap で記録しました。ファイルは(場所)にあります。
記録中にやった操作は、この順番です。
1. デバイスを挿した
2. キーを1番から7番まで順に押した
3. ノブ1を右・左・押し込み、以下ノブ4まで
4. 帯を左から右へなぞり、4か所を左から順にタップした
tshark を使って、次を調べてください。
- デバイスから PC へ来ている通信だけを抜き出し、私の操作の順番と突き合わせる
- PC からデバイスへ最初に送られている初期化の内容と順番
- 画像を送っている部分の形式と大きさ
分かったことを「仕様メモ」というファイルにまとめてください。
実際に流れていた事実と、あなたの推測は分けて書いてください。
この段階では、デバイスには何も送らないでください。
仕様メモができたら、前半のプロンプト②へ戻って同じ順番で進められます
つまずいた所(わしが溶かした時間の記録)
うまくいった話より、こっちのほうが役に立つ気がするので、置いておきます
画像は出るのに、入力だけ読めない(1時間)
原因は、たった1バイトのずれ
記録で見たもの : 41 43 4b 00 00 4f 4b 00 00 <コード> <押下>
プログラムが受けたもの: 00 41 43 4b 00 00 4f 4b 00 00 <コード> <押下>
^^ これ
Windows 経由で受け取ると、先頭に1バイト付く
USB を直接記録した内容には、この1バイトが入っていない
「画像は出るのに入力だけ読めない」という症状なので
解読のほうが間違っていると思い込んで、しばらく別の所ばかり疑っていたのです
AI の顔色を、半日うかがっていた
Codex(ChatGPT のコーディング用アプリ)の状態も、キーに出したかったのです
ところがこちらは、状態を外へ知らせてくれない
それならと、外から測れそうなものを片っ端から測ってみました
| 測ったもの | 結果 |
|---|---|
| CPU 使用率 | 待機 0.7%/作業中 2.5%。差が出ない |
| メモリ | 1,721MB。何もしていないアプリも 1,178MB ある |
| 通信量 | 差は出るけれど、作業中でも谷ができる |
半日がんばって、全部だめw
結局、Codex が PC の中に書いている記録(~/.codex/sessions/ の下の rollout-*.jsonl)を見たら
末尾に task_started、task_complete と、そのまま書いてあるじゃないですか
推理する前に、本人の日記を読めばよかった、という話です
(アプリの版が変わると、記録の場所や書き方は変わるかもしれません。2026年9月時点の話です)
外から観察して当てにいく前に、そのアプリが手元に何を残しているかを見る
これは、このあと何度も助けられた考え方です
正しく動くボタンが目の前にあるのに、3回遠回りした
「キーを押したら、Claude Code の新しい会話を開く」
これだけの機能なのに、会話が並んでいる側ではなく、ファイルを開いている側にできてしまう
sai が3通り試して、3通りとも外れ
そこでわしが伝えたのが、これです
実際にはこう言いました(9月3日・一部を抜き出しています)
この右側のエリアは、Claude Code のマークのボタンがあって、そこを押すと新しい Claude Code のスレッドが、この同じ正しい場所に作成されます。なのでそのショートカットが、もし VSCode の拡張機能などに入っているようであれば、それを使えばすんなり作成されるんじゃないかな
拡張機能の定義を見たら、そのボタンの正体が1行で書いてあり
それをキーに割り当てたら、一発♪
プログラムは書けなくても、毎日その画面を見ているのは、わしのほうなんですよね
「押して正しく動くものがあるなら、まずその正体を調べる」は、今も使っている合言葉です
4回外して、そのうち1回はわしのせいだった
動画を見るときの再生速度を、キーで切り替えたくなったんです
使うのは Edge の拡張機能 Global Speed です
最初は、キーを押すたびに Google ドライブの検索窓が開く始末
選んだショートカットが、先に Google ドライブに取られていたんですね
次は、キーの表示は 1倍・1.5倍・2倍と変わるのに、実際の速度が変わらない
sai が原因を1つ見つけて直しても、まだ変わらない
そこで推理をいったん止めて、確認用のページを作ってもらいました
押したキーがブラウザにどう届いているかと、動画の速度を、並べて出すだけのページ
キーボードで押した場合と、N4 で押した場合を見比べていて・・・
実際にはこう言いました(9月8日)
ごめん。わしがグローバルスピードのショートカットをオンにしてませんでした
拡張機能のショートカットの設定が、そもそもオフだったのですw
sai、すまん
見えない相手を推理し続けるより、見える場所を1つ作る
そうすると、原因が自分の側にあることも、ちゃんと見えてきます
プロンプト⑧の最後の1行「何が起きているかを確かめる方法を先に作ってください」と、同じ話です
朝、アプリが消えたと思ったら、消えていなかった
ある朝、N4 の画面が付属アプリの表示に戻っている
自作のほうは消えた・・・ように見える
ところがログを見ると、毎回ちゃんと起動していて、エラーは1行も出ていない
消えていたのではなく、付属アプリと画面を取り合っていたのでした
付属アプリは PC の起動と同時に立ち上がり、わしのほうは 20秒後
先に掴んだほうが画面を持つので、20秒の差で毎朝負けていたわけです
送る処理は成功しているので、こちらには失敗として現れない
エラーが出ないことと、正常であることは、別物
どちらかが悪いという話ではなく、1つのデバイスは1つのアプリしか掴めない、というだけのことです
アイコンだけ、Google ドライブに置いてきぼり
別の朝は、キーが色だけで、絵が出ていない
押せばちゃんと動くのに、のっぺらぼう
アイコン用のフォント(14.4MB)を Google ドライブに置いていて
N4 のアプリのほうが、ドライブより早く起きていたのが原因
sai の最初の案は「ドライブが現れるまで、5秒おきに探し直す」
わしの返事が、これです
実際にはこう言いました(9月5日)
今の対処法だと、毎回ドライブを確認しに行って不便だと思うので、ボタンに使うフォントはそれほど多くないので、このボタンのフォントデータだけ、アプリの方で持っておくことはできないですか
数えてもらったら、4,275個のうち使っていたのは 65個
使うぶんだけ切り出したら、14.4MB が 134KB に♪
待ち方を工夫するより、待つ理由をなくすほうが早かった、というやつです
続けて使うと分かること
1か月使って、作って終わりではないことも分かりました
- 相手のアプリが更新されると、昨日まで効いていたキーが今日効かなくなることがある
(Codex の音声入力の始め方が、ある版から変わったことがありました) - 最初に置いたボタンは、ほとんど押していなかった
作れるものではなく、毎日手でやっていることを置くようにしたら、押す回数が増えました - ノブは、どのページでも同じ場所に同じ役目にしたほうが迷わない
わしはノブ1を音量にしています
動画を編集するときのページは、今こんな感じ

それから、Linux について
Surface Go 2 に入れた Linux(AnduinOS)でも、同じ仕様メモで動き始めています
画像を出す、キーとノブを受け取る、Claude Code の状態を出す、までは確認済み
まだ移植の途中なので、こちらは落ち着いたらまた書きます
Mac では試していません
まとめ
| わしが書いたプログラム | 0行 |
| わしがやったこと | 押してみて、起きたことを伝える |
| 解読にかかった時間 | 半日(下調べは別) |
| そこから育てた期間 | 1か月 |
| いちばん効いた約束 | 推測で送らない/1段階ごとに実機で確かめる/分かったことはファイルに残す |
AI が全部やってくれた、と書きたいところですが
振り返ると、行き詰まった場面を動かしたのは
「そこに正しく動くボタンがある」「アプリの方で持っておけないか」という、使う側の素朴なひと言でした
作るのは AI、押すのはわし
この分担が、思っていたよりずっと楽しい1か月でした
同じ N4 を持っている方、これから Stream Deck 風のデバイスを検討している方の
参考になればうれしいです
と、すっかり出番の減った TH40 を横目に
今日も「HID DEMO」のボタンをポチポチ押している、わしなのです
- PREV
- 長生きとは?
