Prevu CLI
Prevu は、SSH 接続可能で、ポートを公開でき、パブリック URL 経由でアクセス可能な永続的な Linux VM をプロビジョニングします。prevu CLI がサポート対象のインターフェースです(インフラツールは不要)。
このスキルはリファレンスです:インストール、コマンドマップ、出力契約、終了コード。詳細は references/*.md にあります。マルチステップのユーザー向けワークフロー(ローカル開発を電話で確認可能なプレビューにミラーリングする、WIP ブランチを共有するなど)については、prevu-flows スキルを参照してください。ユーザーが単一のコマンドではなくシナリオを説明している場合は、このスキルではなくそちらをロードしてください。
インストールとサインイン
npm install -g @prevu/cli
prevu --version # 0.2.0+(スラグのみの URL と env exec には 0.2.0+ が必要)
prevu auth login # https://app.prevu.cloud/keys からトークンを貼り付け
Node >= 20 が必要です。トークンは ~/.prevu/config.json(モード 0600)に保存されます。
CI / 非 TTY の場合:
export PREVU_TOKEN=prv_...
解決順序:--token フラグ -> PREVU_TOKEN 環境変数 -> ~/.prevu/config.json。
PREVU_API_URL はデフォルトで https://app.prevu.cloud です。セルフホストの Prevu API の場合のみ --api-url で上書きしてください。
コマンドマップ
| 名前空間 | コマンド | 詳細場所 |
|---|---|---|
| auth | login / logout / whoami | references/auth.md |
| env | list, get, create, destroy | references/env.md |
| env | wait | references/env.md + references/lifecycle.md |
| env | ssh, ssh-command, exec | references/env.md |
| env | urls | references/env.md |
| env | service start/list/logs/restart/stop | references/env.md |
| env | expose, unexpose | references/env.md |
| keys | list | references/keys.md |
インラインヘルプを表示するには prevu <名前空間> --help を実行してください。
出力契約 - 解析時は常に --format json を指定
デフォルトの出力は人間向けのテーブルです。スクリプトからの呼び出しの場合は --format json を指定してください。エンベロープは固定です:
// 成功
{ "data": { ... } }
// 失敗
{ "error": { "type": "auth", "message": "...", "hint": "..." } }
NO_COLOR=1 または --no-color でテーブルモードの ANSI エスケープシーケンスを削除します。JSON は常に無色です。
終了コード(stderr のテキストではなくこれらを解析)
| コード | タイプ | 意味 |
|---|---|---|
| 0 | 成功 | 続行 |
| 1 | 汎用 | 出力して中止 |
| 2 | 使用法 | 不正なフラグ - 修正して再試行 |
| 3 | 認証 | ユーザーに prevu auth login を実行するよう指示 |
| 4 | 未検出 | env/キーが存在しません。作成するか別のものを選択してください |
| 5 | 競合 | すでに存在する / 状態が不正 - 通常は問題ありません |
| 6 | レート制限 | 30秒以上待機して再試行 |
| 7 | サーバー | 一時的な問題。一度再試行 |
| 8 | タイムアウト | env wait がタイムアウト - ダッシュボードを開いてください |
慣用的なリカバリのスケッチ:
prevu env get my-project --format json >/dev/null 2>&1
case $? in
0) ;; # 存在する
4) prevu env create my-project --format json ;;
3) echo "Run \`prevu auth login\`" >&2; exit 1 ;;
*) exit 1 ;;
esac
厳格なルール - これらは絶対に破らないでください
- Env は永続的な有料製品です。 意図的に再利用してください。TTL やセッション終了時に自動的に破棄しないでください。
- タスクごとではなく、プロジェクトごとに 1 つの env を使用します。 セッション間で同じスラグを再利用してください。ユーザーは同じワークスペースに戻ってきます。
- ブラウザプレビューには HTTPS 公開を使用します(デフォルト)。TCP モードは Postgres のような非 HTTP サービスのためのものです。
- パブリック URL を目立つように表示します。 ユーザーは多くの場合スマートフォンを使用しています。URL をシェル出力の奥に埋めないでください。
- 長時間実行されるアプリケーションプロセスには
env serviceを使用します。nohup、PID ファイル、幅広いpkill -fコマンドを手書きしないでください。 - CLI/API のみがサポート対象のインターフェースです。
インフラツールで対処しようとしないでください。
より詳細な情報をロードするタイミング
references/auth.md- サインインフロー、トークンの保存場所、終了コード 3 からの復旧方法。references/env.md- すべての env サブコマンドの入力、例、SSH キー解決ルール。references/keys.md- 保存された SSH キーモデル、重複排除、--ssh-key-idでキーストロークを節約できる場合。references/lifecycle.md- ステータスステートマシン、waitが戻るタイミング、破壊的なアクションのガイダンス。references/troubleshooting.md- 具体的な障害モードとその修正方法。
このスキルをロードしてはいけない場合
- 純粋なローカルファイルの編集や読み取り専用のリポジトリ作業 - Prevu はコードをリモートで実行するためのものです。
- 本番環境へのデプロイ / CI - Prevu はステージング環境です。
- ユーザーが明示的に「自分のラップトップを使う」と言った場合。
ワークフローシナリオは prevu-flows にあります
ユーザーが開発を自分の電話にミラーリングする、モバイルからプレビューできるようにする、このブランチを URL として共有する、離席中もコーディングを続けたい と尋ねた場合は、このスキルの代わりに(またはこれに加えて)prevu-flows スキルをロードしてください。これらのフローは、ここのコマンドを適切なデフォルトでマルチステップループにまとめます。