見出し画像

Nagi バイブコーディング用に設計したiPad/iPhoneから使えるWebベースのSSH

どうしても欲しいから作ってみた。
その名もNagi。これはClaudeの提案でこの名前になった。由来は草薙剣。すなわち漢字で書くと「なぎ

草薙でもよかったのだが、呼び出しやすさを考えてnagiした。
インストールは簡単

 $ npm install -g nagi-terminal

使うには、nagiコマンドを呼ぶだけ

$ nagi
Starting Nagi on port 8765...
Open http://localhost:8765/ in your browser

==================================================
  Nagi - Touch-friendly Web Terminal
==================================================

  Access URL:

    http://a100:8765/?token=PB9Of3pyM9c5-7hycHpToaUNoeN8HP-6

  Scan QR code to connect:

                                                                        
    ██████████████  ██  ██  ██      ██  ██          ██  ██████████████  
    ██          ██          ██████          ██████      ██          ██  
    ██  ██████  ██  ██      ██  ██    ████  ████  ████  ██  ██████  ██  
    ██  ██████  ██      ██████  ██  ██  ████  ██████    ██  ██████  ██  
    ██  ██████  ██    ████  ████████████  ██  ████      ██  ██████  ██  
    ██          ██  ████  ██████    ██  ██    ████      ██          ██  
    ██████████████  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██████████████  
                      ██    ██  ██      ██      ██  ██                  
    ██  ██      ████  ████  ██    ████      ██  ████      ██    ██  ██  
      ██  ████      ██    ██    ██████    ████  ████    ████  ██  ████  
          ████████████████  ████████  ██████  ██████████      ████████  
    ████      ██    ██████      ██████    ████  ████      ██████  ██    
            ██  ██  ██  ██████████  ██  ██    ██        ████            
    ██████████        ████  ██  ██  ████  ██    ██  ████████    ██████  
      ██  ██    ██████  ██████      ██    ████    ████████      ██  ██  
        ██  ████  ████  ████  ████████    ████        ██  ██  ██        
      ██  ██  ████        ██  ████  ██  ██  ██  ████  ██████  ██  ██    
            ████  ██        ██      ██████████  ████  ████    ██        
          ████  ████  ████  ██  ████  ██  ██████  ██████      ████  ██  
          ████        ████  ██  ██      ██  ██  ██    ██  ██████  ██    
    ████    ██████████████  ██████      ████████  ██    ██        ██    
      ████    ██  ██        ██████    ████  ██    ████  ██          ██  
    ████    ██████  ████  ██      ██  ██  ██  ██  ████████  ██      ██  
        ████                  ██        ██  ██  ██    ██  ████          
    ████████  ████  ██████  ██  ████  ██  ██    ██  ██████████    ██    
                    ████    ████  ██    ████████  ████      ██    ████  
    ██████████████  ██  ████  ████████    ██        ██  ██  ██████  ██  
    ██          ██    ████        ██      ████      ██      ██          
    ██  ██████  ██          ██  ██████████  ██    ████████████    ████  
    ██  ██████  ██    ██████    ██  ██    ██████            ████  ████  
    ██  ██████  ██  ██  ██  ██  ██  ████████      ████    ████  ██████  
    ██          ██      ████      ████    ████  ██          ██          
    ██████████████  ██████  ██  ██  ████        ██  ██    ██  ██    ██  
                                                                        

==================================================

ここで表示されたURLか、QRコードをスマホ/タブレットで読み込めば、そのマシンにログインできるというわけ。セキュリティを考慮してVPNやLAN内で使うことを想定。

これがあると何が嬉しいか。まあ俺が嬉しいだけなんだけど。

例えば外食中に「あ、あのプログラムどこまで進捗したかなあ」とか

「あ、そういえばこういうプログラムも書きたいよなあ、Claude Codeに書かせておこう」とか。

長いプロンプトは使い慣れたIMEで入力したい

「ちょっとややこしい指示なんだけどこれやってもらいたいなあ」とか。

そういう「ちょっとしたこと」にいちいちiPadのターミナルアプリから入って、50音順キーボードみたいなアホみたいなものを使わなくても済むというのが最大のメリットと言える。長文を打つときに音声入力もできる。これは便利。

また、緊急用にiPhoneからも使える。

流石に無理があるかもしれないと思いつつ

iPhoneからも使えるというのは、「あのサーバー止まってない?」とか、「俺のWebクローラー止まってない?」とかを確認したり、「とにかく対処しろ」みたいに命令したりできる。

基本的にClaude codeをVPN(tailscale)環境+tmuxで使うことに最適化しているのでこれが万人にとって使いやすいものなのかどうかはわからない。ただ俺が欲しいから作った。日曜大工。まあ作ったのはClaude codeだが。