Claude Code で長時間の作業を回していると、ずっとPCの前に座っているのが辛くなってきます。
席を離れて休みつつ、iPadなどのタブレットから Claude の様子をちょっと覗きたい。そんなとき、どうしていますか?
- RDP: キー入力がかなり不便。タブレットからの操作はストレスが溜まる
- SSH(Terminus等): 操作感は悪くない。でも細かいところを見ていくと、やっぱり自分好みにカスタマイズしたくなる
結局「自分で作るか」となり、Claude Code に作ってもらいました。
Den とは
Den はセルフホスト型の Web ワークステーションです。PCで起動しておけば、ブラウザからターミナルとファイラにアクセスできます。
技術スタック:
- バックエンド: Rust(Axum + portable-pty + russh)
- フロントエンド: Vanilla JS(xterm.js + CodeMirror 6、フレームワークなし)
- シングルバイナリ配布(静的アセットは rust-embed でバイナリに埋め込み)
PCとタブレットでセッションを引き継ぐ
Den の一番の特徴は SSH サーバーを内蔵 していることです。
これにより、以下のような使い方ができます:
- タブレットのブラウザ で Den にアクセスし、ターミナルセッションを開始
- PCに戻ったら、好きなターミナルソフト から Den に SSH 接続
- さっきのセッションにそのままアタッチ
# PCのターミナルからセッションに接続
ssh -t -p 2222 den@localhost attach default
# セッション一覧
ssh -p 2222 den@localhost list
逆もOKです。PCで作業していたセッションを、タブレットのブラウザから引き継ぐこともできます。
tmux や screen のように「セッションを使い回す」感覚ですが、ブラウザと SSH の両方から透過的にアクセスできるのがポイントです。
タブレットでの操作を快適にする機能たち
ブラウザからターミナルが使えるだけでは、正直あまり快適ではありません。タブレットで実際に使うために、いくつかの機能を用意しました。
キーバー
タッチデバイスにはファンクションキーや修飾キーがありません。Den のキーバーは Ctrl, Shift, Alt, Esc, F1〜F12 などをタップで入力できます。ボタンの配置は設定画面から自由にカスタマイズ可能です。
スニペット
よく使うコマンドをワンタップで入力。git status や claude --resume など、繰り返し打つコマンドを登録しておけます。
クリップボード履歴
システムクリップボードとSSH先のクリップボードを自動監視し、コピーした内容を履歴として保持します。PC側やリモートサーバーでコピーした内容を、タブレットから参照して貼り付けるといった使い方ができます。
ファイルマネージャ
ディレクトリのツリー表示、ファイルの閲覧・編集(CodeMirror 6 でシンタックスハイライト付き)、検索、画像や Markdown のプレビューなど一通りの機能があります。SFTP でリモートサーバーのファイルも扱えます。
Claude Code に作ってもらった
Den は Claude Code と一緒に作りました。自分は Rust の経験が浅いので、設計方針を伝えて実装は Claude に任せる、という進め方です。
たとえば「PTY のセッション管理を broadcast channel + ring buffer で実装して」「russh で SSH サーバーを内蔵して、既存セッションにアタッチできるようにして」といった指示を出すと、数分でコードが出てきます。
ただし「Claude に丸投げ」ではなく、以下のような点は自分で判断しています:
- 何を作るか: 機能の取捨選択、優先順位
- どう使うか: ユーザー体験の設計
- セキュリティ: 認証方式の選定(HMAC-SHA256 + HttpOnly Cookie)
Claude Code は「手を動かしてくれる優秀なパートナー」であって、プロダクトの方向性を決めるのは自分、という役割分担です。
セットアップ
# リリースバイナリをダウンロード(GitHub Releases)
# または自分でビルド
git clone https://github.com/jss826/den.git
cd den
cargo build --release
# パスワードを設定して起動
DEN_PASSWORD="your-password" ./target/release/den
# ブラウザで http://localhost:8080 にアクセス
SSH サーバーを有効にする場合:
DEN_SSH_PORT=2222 DEN_PASSWORD="your-password" ./target/release/den
まとめ
Den は「PCから離れてもターミナルを手放さない」ための個人ツールです。
- ブラウザからターミナルとファイラにアクセス
- 内蔵 SSH サーバーで PC ↔ タブレットのセッション引き継ぎ
- キーバー・スニペット・クリップボード履歴でタブレット操作を快適に
MIT ライセンスで公開しています。同じような悩みを持つ方の参考になれば幸いです。


