9
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

スマホからClaude Codeを日本語で操作する。自作SSHアプリ「SSH Term」の話

9
Posted at

3秒まとめ

  • Claude Code公式の「リモートコントロール」は便利だけど、チャットUIのみで自由にファイルを探索・操作できない制約がある
  • SSH + tmuxならプラン不問・セッション永続・ターミナルそのものが手に入る。ただしAndroidのSSHアプリは日本語入力がまともに使えない
  • だから自分で作った。SFTPファイラー、カスタムコマンド、接続時の自動実行など痒いところに手が届く機能を詰め込んだSSHアプリの話

どんな人向けの記事?

  • Mac MiniやMiniPCでClaude Codeを常時稼働させている/させたい人
  • Claude Codeを使っていて、外出先からも操作したい人
  • 公式のリモートコントロール機能を試したけど、制約が気になっている人
  • AndroidのSSHアプリで日本語入力に不満を感じたことがある人

公式「リモートコントロール」が来た。でも......

Claude Codeにリモートコントロール機能が追加されましたね。claude remote-controlを実行するとQRコードが表示されて、スマホのClaudeアプリからセッションに接続できる。

めちゃくちゃ便利です。 ぼくも最初に触ったとき「これで解決じゃん」と思いました。

......ただ、しばらく使ってみると、いくつか引っかかるポイントが出てきたんです。

チャットUIだけ。ターミナルは見えない

リモートコントロールで接続すると、見えるのはClaude Codeとのチャットインターフェースだけです。Claude Codeの会話は見えるけど、ターミナルそのものは操作できない。

つまり、git logを打ったり、lsでディレクトリを確認したり、別のCLIツールを動かしたり——Claude Codeを介さない直接のターミナル操作ができない。 Claude Codeが生成したファイルをツリー表示で確認したり、シンタックスハイライト付きで中身を読んだり、ダウンロードしたりもできない。


リモートコントロール自体はすばらしい機能だし、手軽さでは圧倒的です。でも、本格的にモバイルから開発を回したいとなると、もうちょっと自由度がほしくなる。

SSH + tmux という選択肢

リモートコントロール SSH + tmux (SSH Term)
ネットワーク切断時 約10分でセッション終了 tmuxでセッション永続。何時間切れても復帰可能
ターミナルを閉じたら セッション終了 tmuxがセッションを保持。再アタッチすればOK
操作できるもの Claude Codeのチャットのみ ターミナルそのもの(何でもできる)
ファイル確認 Claude Code経由でのみ SFTPファイラー+シンタックスハイライト+ダウンロード
複数セッション セッション名がわかりづらい タブで複数同時管理
セットアップ claude remote-control 一発 SSHサーバー設定+tmux導入が必要

リモートコントロールが「Claude Codeのチャット画面をスマホに映す」機能だとすれば、SSHは「ターミナルそのものをスマホに持ってくる」アプローチです。Claude Codeだけじゃなく、あらゆるCLI操作ができる。tmuxと組み合わせれば、ネットワークが切れてもセッションは生き続ける。プランの制約もない。

じゃあSSHでいいじゃん。

......ただ、ここで1つ問題がありまして。

きっかけはその体験の中にあった

ぼくが普段使ってるのはAndroid。MiniPCにSSHで接続して、Claude Codeに日本語で指示を出そう——と思ったんですが、既存のアプリをいくつか試してみたら......日本語が打てない。

いや、正確に言うと、そもそも日本語キーボードを出せなかったり、入力した文字が正常に送信されなかったり。AndroidのSSHアプリ、いくつか試したけど全滅。Claude Codeでせっかく日本語でプロンプトを送れるのに、これは致命的でした。

iOSのSSHアプリだと日本語入力ができるものもあるんですが、ぼくが普段使ってるのはAndroid。せっかくMiniPCで最高の環境を組んだのに、スマホからの入り口で詰まってる。自分が困ってるんだから、自分で解決するしかない。

「じゃあ作るか」と。

まぁ、毎度おなじみの流れですね。不便を感じたら自分で作る。エンジニアの業です。

SSH Term、リリースしてます🎉

SSH TermというSSHターミナルアプリをiOS/Androidの両方でリリースしています!

Claude CodeをはじめとするCLIベースのAIコーディングエージェントをスマホから操作することに特化したターミナルクライアントです。

「特化した」と書いたけど、もちろん普通のSSHクライアントとしても使えます。サーバー管理とか、ログの確認とか、そういう用途でも全然OK。ただ、Claude Codeを日本語で使うという体験を最優先で設計しています。

リリースしてからもアップデートを重ねて、カスタムコマンドや接続時の自動実行、ファイルダウンロードなど、実際に使ってて「これほしい」と思った機能をどんどん追加してきました。この記事ではそのあたりも含めて全体像を紹介します。

Androidで日本語入力、ちゃんとできます

X_日本語.png

Android使いのぼくが一番伝えたいポイント。

SSH Term にはIMEモードを搭載しています。切り替えるだけで、日本語テキストをターミナルにそのまま送信できる。Claude Codeへの指示、gitのコミットメッセージ、設定ファイルの日本語コメント——あらゆる場面で日本語が使えます。

「いやいや、そんなの当たり前でしょ?」と思うかもしれないけど、AndroidのSSHアプリで日本語入力がまともに動くものって、びっくりするほど少ない。 試した人ならわかると思う。あの絶望感。ぼくは3つくらいアプリを入れて全部ダメで、もういいや自分で作ろうってなりました。

iOSだと日本語入力自体はできるアプリもあるんですが、そこから先——Claude Codeが生成したコードをパッと確認する体験が圧倒的に足りない。次のセクションで書きますが、ファイラーとシンタックスハイライトの存在がここで効いてきます。

AIが書いたコード、その場で読める&ダウンロードできる

X_B.png

ここがiOSユーザーにも刺さるポイントだと思っています。

Claude Codeに「この機能を実装して」と指示を出す。数分待つ。完了した。

......で、生成されたコード、どうやって確認する?

catコマンドでターミナルに流す?スマホの小さい画面で?シンタックスハイライトなしで?

正直、読めたもんじゃない。

SSH Term にはSFTPファイラーがビルトインされています。SSH接続中のサーバーのファイルをそのまま閲覧できる。しかも、40以上の言語に対応したシンタックスハイライト付きプレビューがある。Dart、Python、JavaScript/TypeScript、Go、Rust、Shellなど、だいたいの言語はカバーしています。

Claude Codeが生成したコードをファイラーで開いて、ハイライト付きで読んで、必要な部分をワンタップでコピー。iPadだと2ペイン表示で、ファイル一覧とプレビューを同時に見られるので、これがまた快適。

そして最近のアップデートで追加した機能がファイルダウンロード。ファイラーで見ているファイルを、そのまま端末にダウンロードできるようになりました。プレビューパネルのヘッダーにあるダウンロードボタンを押すだけ。ダウンロード中はプログレスバーが表示されるので、大きなファイルでも安心です。

Claude Codeが生成した成果物をスマホに落としてSlackで共有したり、画像ファイルを確認したり。「見るだけ」じゃなくて「持ち出せる」 のは思った以上に便利でした。

よく確認するディレクトリはブックマークしておけば、ワンタップで飛べます。プロジェクトのsrcフォルダとか、ログディレクトリとか。

そう、ちまちま cd コマンドを打つ必要もないってわけです!

カスタムテキストコマンドで、操作を自分仕様に

スクリーンショット 2026-03-01 015159.png

SSH Term の入力アシストツールバーには、もともとCtrl+CやTab、Escapeなどの特殊キーが並んでいて、ショートカットの順番やラベルもカスタマイズできたんですが——テキストコマンドを追加できるようになりました。

たとえば、よく使うコマンドをボタン1つで実行できる。

  • git status\n → ワンタップでgit statusを実行
  • tmux attach -t main\n → tmuxセッションにサッとアタッチ
  • cd ~/projects/my-app && claude\n → ディレクトリ移動からClaude Code起動まで一発

複数のコマンドをステップとして組み合わせることもできるので、「このディレクトリに移動して、このコマンドを実行して......」みたいな定型操作を1ボタンにまとめられます。

スマホのソフトウェアキーボードでコマンドを手打ちするのって、正直しんどいじゃないですか。タイポするし、パスを覚えてないし。よく使うコマンドはボタンにしちゃえばいい。 そういう発想です。

tmux専用のセッション管理用ショートカットも合わせて使えば、セッションの追加もアタッチもデタッチも自由自在。

接続したら即、作業開始。自動コマンド実行

Screenshot_20260301_014140.jpg

これ、地味だけどめちゃくちゃ便利な機能です。

SSH接続って、つないだ直後に毎回やることがありますよね。

  • WSLを起動する(wsl
  • 作業ディレクトリに移動する(cd ~/projects/my-app
  • tmuxセッションを開始する(tmux new -s main
  • 開発サーバーを立ち上げる

SSH Term では、接続プロファイルに**「接続後に実行するコマンド」**を設定できます。接続が確立した瞬間に、設定したコマンドが順番に自動実行される。

ぼくの場合、MiniPCはWindowsなのでSSHでつないだ直後にWSLに入る必要があるんですが、接続するたびにwslって打つの、まぁ面倒なわけです。これを初期コマンドに入れておけば、接続した瞬間にWSLの中にいる。そこからさらにcdで作業ディレクトリに移動して、tmux attachでセッションに復帰するところまで全自動。

SSH接続 → 即Claude Codeの画面。スマホを開いてから作業開始まで、タップ2回くらい。

再接続時もちゃんと復帰できる

接続時の自動コマンドとセットで使ってほしいのが、**「再接続時のコマンド」**です。

電車に乗ってると、トンネルに入ったり基地局が切り替わったりで、どうしてもネットワークが途切れる瞬間がある。SSH Term は自動で再接続を試みるんですが、再接続後のシェルは当然まっさらな状態に戻っている。

ここで再接続時のコマンドに tmux attach -t main を設定しておけば、ネットワークが復帰した瞬間に、元のtmuxセッションに自動でアタッチしてくれる。Claude Codeが処理を続けていれば、その途中経過がそのまま見える。

接続時コマンドと再接続時コマンドを分けてるのがポイントで、接続時はtmux new -s main(新規セッション作成)、再接続時はtmux attach -t main(既存セッションにアタッチ)みたいに、状況に応じたコマンドを設定できるんです。

これのおかげで、移動中でも「あれ、切れた?」→ 数秒後 →「あ、もう戻ってる」みたいな感じで、ほぼストレスなく使えてます。

バックグラウンドでも接続を切らない

Claude Codeの処理って、数分かかることがざらにあるじゃないですか。

その間ずっとアプリを開いてるの、さすがにしんどい。LINEの返信もしたいし、Twitterも見たい(正直に言います)。

SSH Term はバックグラウンドでもSSH接続を維持します。アプリを切り替えて戻ってきても、セッションが生きてる。Claude Codeが処理を終えていれば、そのまま結果を確認できます。

さらに、アプリを切り替えたときに任意で生体認証もしくはPINで認証できる画面ロック機能も搭載しています。サーバーへの接続を保持したまま、セキュリティも確保できる。

複数セッション、地味に便利

タブ切り替えで複数のSSH接続を同時に管理できます。

ぼくの使い方だと、1つ目のタブでClaude Codeを動かしつつ、2つ目のタブでサーバーのログをtail -fしてる、みたいな。Claude Codeが何か壊してないか、リアルタイムで監視できるのは安心感がある。

鍵の生成からサーバー登録まで、スマホで完結

Screenshot_20260215_104946.jpg

公開鍵認証を使いたいけど、PCを開くのが面倒......みたいなこと、ありませんか?

SSH Term ではアプリ内で鍵ペアを生成できます。Ed25519(推奨)、RSA 2048、RSA 4096に対応。公開鍵はワンタップでクリップボードにコピーできるので、そのままサーバーのauthorized_keysに貼り付けるだけ。

スマホだけで公開鍵認証のセットアップが完結するの、地味にうれしい。

認証方式はパスワード認証、公開鍵認証、キーボードインタラクティブ認証の3種類に対応しています。

ターミナルの見た目、こだわれます

Screenshot_20260215_104914.jpg

長時間ターミナルを眺めるなら、見た目は大事。

8種類のテーマを用意しました。Dracula、Nord、Tokyo Night、Monokai、Solarized Dark、Gruvbox、Catppuccin Mocha、One Dark。ぼくはTokyo Nightが好き。目に優しい。

フォントも10種類のモノスペースフォントから選べる。Fira Code、JetBrains Mono、Source Code Proあたりが人気かな。日本語フォントもNoto Sans JPやM PLUS 1 Codeなど6種類に対応しているので、日本語の表示もきれいです。フォントサイズと行間もスライダーで自由に調整可能。

そして地味にうれしいポイントとして、いくつかのNerd Fontにも対応しています。Starshipとかoh-my-zshのPowerlevel10kとかでプロンプトをおしゃれにカスタマイズしてる人、いますよね? あのアイコンやリガチャがモバイルでもちゃんと表示されるんです。せっかくPCでかっこよくカスタマイズしたプロンプトが、スマホだと豆腐(□)になるのって悲しいじゃないですか。そこ、ちゃんとやってます。

入力アシストツールバー

スマホにはCtrlキーがない。Escapeキーもない。Tabキーもない。

これ、ターミナル操作において致命的なんですよね。

SSH Term には入力アシストツールバーがついていて、Ctrl+C、Tab、Escapeなどの特殊キーをワンタップで送信できます。矢印キー、F1〜F12、Home/End/PageUp/PageDownも搭載。物理キーボードがなくても、そこそこ快適に操作できます。

ショートカットの順番、ラベル、内容も自由にカスタマイズ可能。さらに前述のテキストコマンドも追加できるので、自分だけのツールバーが作れるのがポイントです。

実際の使い方

ぼくが一番よく使うパターンはこう。

  1. 自宅のMiniPCにClaude Codeを常時待機させておく
  2. 外出先からスマホでSSH接続(初期コマンドでWSL起動 → 作業ディレクトリへ移動 → tmuxアタッチまで全自動)
  3. 日本語で「この機能を追加して」と指示を出す
  4. Claude Codeが処理してる間、アプリをバックグラウンドに
  5. しばらくして戻ってきて、結果を確認
  6. ファイラーで生成されたコードをプレビュー、必要ならダウンロード
  7. 問題なければ次の指示を出す

途中でネットワークが切れても、再接続時のコマンドで自動復帰。電車の中で、自然言語だけでプロジェクトが進む。 冒頭にも書いたけど、これ本当に革命的な体験なんです。MiniPCを持ってる人はぜひ試してみてほしい。

機能まとめ

カテゴリ 機能
入力 IMEモード(日本語入力)、入力アシストツールバー、カスタムテキストコマンド
ファイラー SFTPファイラー、シンタックスハイライト(40言語+)、ファイルダウンロード、ブックマーク
接続 自動再接続、バックグラウンド維持、接続時コマンド、再接続時コマンド、画面ロック
セッション 複数タブ、tmuxショートカット
認証 パスワード、公開鍵(Ed25519/RSA)、キーボードインタラクティブ、アプリ内鍵生成
外観 8テーマ、10+フォント、Nerd Font対応、日本語フォント6種

まとめ

SSH Term は、「スマホからClaude Codeを日本語で操作する」という、わりとニッチだけど確実に需要のある体験を実現するために作ったアプリです。

リリースしてから自分で使い込んでいく中で、カスタムテキストコマンド、接続時・再接続時の自動コマンド実行、ファイルダウンロードと、「ないと困る」機能を着実に追加してきました。自分がヘビーユーザーだからこそ見える改善点を、そのまま実装に落とし込んでいる感じです。

もちろんClaude Code以外にも、普通のSSHクライアントとしてサーバー管理やログ確認にも使えます。日本語入力が快適に動くモバイルSSHアプリを探していた人には、ぜひ試してみてほしい。

iOS / Android ともにリリース済みです!

使ってみて「ここがもうちょっとこうだったらいいのに」みたいなフィードバックがあれば、めちゃくちゃうれしいのでぜひ送ってください🙌


おまけ

3月に入ったのにまだ寒い日が続きますね。花粉は着実に飛んでるのが理不尽。

SSH Termは今後もアップデートを続けていく予定です。「こんな機能がほしい」「ここが使いにくい」みたいな声があればどんどん改善していきたいので、気軽に連絡くださいな~!

良かったらいいねください!! そのぶんだけ善行を積みます🙏

9
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?