Ctrl K
ComunidadGuías…

README.ja.md

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# RoamBench

[English](README.md) | [简体中文](README.zh-CN.md) | [日本語](README.ja.md)

> 長時間走る AI agent の作業を、どこからでも開始・監視・復帰できる軽量ワークベンチ。

RoamBench は、複数の AI coding agent を長時間タスクで並行運用する開発者向けのセルフホスト型ワークベンチです。terminal セッションを生かし続け、どの端末からでも再接続でき、重いブラウザ IDE を持ち出さなくても最低限のファイル操作ができます。

## 解決する課題

Codex、Claude Code、OpenCode、Kimi-CLI などの terminal-first ツールをリモートマシンで動かしていると、こういう問題が繰り返し起きます:

- ノート PC を閉じたり端末を変えるとセッションが切れる
- 複数 agent を同時に走らせると追跡しきれない
- 数時間〜数日に及ぶ長時間タスクは、状態を失わずに再接続できる必要がある
- スマホから出力確認、ファイル閲覧、軽い修正をしたい

RoamBench は `tmux` の上に薄い web レイヤーを乗せることで、すべてを生きたまま・アクセス可能な状態に保ちます。

## SSH やブラウザ IDE ではなく、なぜ RoamBench か

RoamBench は意図的に狭い製品です。リモート作業で価値が高い部分だけを残し、フルブラウザ IDE にはしません。

| やりたいこと | SSH | VS Code Remote / ブラウザ IDE | RoamBench |
| --- | --- | --- | --- |
| 長時間セッションにスマホから戻る | 手間が多い | できるが重い | ここが主目的 |
| `tmux` ベースの復帰を楽にする | 手作業 | 主眼ではない | 組み込み |
| `2 / 4` ペインで agent / CLI ワークフローを回す | 手動セットアップ | IDE 寄り | 組み込み |
| terminal の横でファイルを見て軽く直す | 別ツールが必要 | できるがオーバーヘッドあり | 組み込み |
| 単一ユーザーのセルフホストを軽く保つ | できる | たいてい重い | できる |

マルチユーザー基盤ではありません。大きな編集のためにローカルエディタを置き換えるつもりもありません。モバイルでも扱いやすいように、速さと小ささを優先しています。

## スクリーンショット

長時間タスクや agent を並べる `4` terminal workspace:

![RoamBench workspace screenshot](docs/screenshot-main.png)

同じ workspace へモバイルから再接続:

![RoamBench mobile screenshot](docs/screenshot-mobile.jpg)

## 現在の機能

### Terminal とセッション管理

- `password` または `pam` の単一ユーザー認証、IP 許可リスト対応
- `tmux` が使える環境では、ページ更新・再接続・サーバー再起動後もセッションを復元
- terminal メタデータをディスクに永続化(ストレージ上限あり)
- `1 / 2 / 4` レイアウトの workspace タブ、ブラウザ間同期

### ファイルワークスペース

- ディレクトリ一覧(ソート、隠しファイル切替、パンくずナビ、フィルタ)
- テキスト編集(下書き復元、find / replace、go-to-line、行番号)
- 新規ファイル / フォルダ、名前を付けて保存、リネーム / 移動、コピー、アップロード、ダウンロード、削除
- 画像プレビュー

### Agent ワークフロー

- Codex、Claude Code、Kimi-CLI、OpenCode など複数の terminal-first ツールを並行運用
- `openclaw` のようなツールを重い IDE なしで扱える
- 別端末やスマホから長時間 agent セッションに復帰
- スクリプト、データジョブ、長時間 CLI タスクの進行監視

### その他

- 軽量・低オーバーヘッド設計
- ヘッダーにリアルタイムメモリ表示
- 英語・簡体字中国語・日本語の UI 切り替え

## ロードマップ: プロジェクト制御レイヤーへ

RoamBench は現在、実行レイヤーを提供しています: 永続 terminal、マルチペイン workspace、ファイルツール。次の大きな進化は、この基盤の上に**プロジェクト制御レイヤー**を追加し、複雑なマルチ agent 作業の管理をアドホックではなく構造化することです。

計画中の方向性:

- **タスク優先モデル** — terminal タブではなく、目標・状態・証拠を持つタスクで作業を整理
- **タイムラインと証拠** — 長い CLI 出力を読まなくても、何が起きたか・何が変わったか・agent が何を主張しているかが分かる
- **ヒューマンチェックポイント** — 本当に人間の判断が必要なときだけ通知
- **共有プロジェクト履歴** — agent やセッションをまたいで判断・失敗・復旧を追跡
- **ローカル + リモート Runtime** — 同一インターフェースからローカルマシンとリモートサーバーの agent を管理
- **Agent 中立** — 特定の AI プロバイダーに依存しない; terminal-first な agent なら何でも

terminal レイヤーはなくなりません。タスク内の一つのビューになり、製品表面全体ではなくなります。

詳しい設計議論は [`docs/project-control-discussions/`](docs/project-control-discussions/) を参照。

## 必要環境

- Go `1.22+`
- `tmux` 推奨(terminal セッションの永続化に必要)
- Linux またはPTY対応の Unix 系 OS

`tmux` がなくても動きますが、セッション永続化の信頼性が下がります。

## Quick Start

```bash
make build
cp configs/roambench.quickstart.toml roambench.toml
APP_BIN=<path-to-binary>         # e.g. ./roambench
APP_CONFIG=<path-to-config-file>  # e.g. ./roambench.toml
"$APP_BIN" --password-hash
export ROAMBENCH_USER="$(whoami)"
export ROAMBENCH_PASSWORD_HASH='<生成されたハッシュ>'
APP_CONFIG=${APP_CONFIG:-roambench.toml}
"$APP_BIN" --config "$APP_CONFIG"
```

この quickstart はローカル / LAN 向けの最短経路です。`allow_all_ips = true` と `allow_insecure_http = true` を使うため、安全な公開運用には英語版 README のフルセットアップと [Deployment Hardening](docs/deployment-hardening.md) を参照してください。

## 完全セットアップ

1. バイナリをビルド:

   ```bash
   make build
   ```

2. 設定例をコピー:

   ```bash
   cp configs/roambench.example.toml roambench.toml
   ```

3. バイナリと設定ファイルをセット:

   ```bash
   APP_BIN=<path-to-binary>         # e.g. ./roambench
   APP_CONFIG=${APP_CONFIG:-roambench.toml}
   ```

4. `roambench.toml` を編集:

   - `[auth].single_user` を現在 `$APP_BIN` を実行している Unix ユーザーに設定
   - `[server].allowed_ips` を設定、または信頼できるテスト環境のみ `allow_all_ips = true`
   - terminal 永続化設定を確認

5. パスワードハッシュを生成:

   ```bash
   "$APP_BIN" --password-hash
   ```

6. 生成されたハッシュを `roambench.toml` の `password_hash` に記入

7. RoamBench を起動:

   ```bash
   "$APP_BIN" --config "$APP_CONFIG"
   ```

8. ブラウザでサーバーを開く

## ビルドと実行

```bash
make build
make run
go test ./...
```

PAM ビルド:

```bash
make build-pam
```

## セキュリティ

- 単一ユーザー専用
- デフォルトで IP 許可リストを有効に
- loopback 以外では `allow_insecure_http = true` を明示しない限り TLS を要求

## プロジェクト構成

- [cmd/roambench](cmd/roambench) - CLI エントリポイント
- [internal/auth](internal/auth) - 認証とセッション
- [internal/server](internal/server) - HTTP サーバーと API
- [internal/terminal](internal/terminal) - terminal セッション管理
- [internal/filebrowser](internal/filebrowser) - ファイルブラウザバックエンド
- [web](web) - 埋め込みフロントエンド

## その他

- [Roadmap](docs/roadmap.md)
- [Configuration Guide](docs/configuration.md)
- [Authentication Guide](docs/authentication.md)
- [Deployment Hardening](docs/deployment-hardening.md)
- [All Documentation](docs/README.md)
- [Contributing](CONTRIBUTING.md)
- [Security Policy](SECURITY.md)
- [Changelog](CHANGELOG.md)
- [License](LICENSE)

## 現在のステータス

RoamBench は単一ユーザーのセルフホスト運用にすでに使えます。特に terminal-first のコーディング、agent の監視、軽量なリモート介入に向いています。現在はコンパクトで意見の強い設計を保ちつつ、マルチ agent 開発作業のプロジェクト制御レイヤーへと進化する明確な道筋を持っています。