edgeone-makers-deploy について
EdgeOne Makers へのプロジェクトデプロイをコーディングエージェント向けに案内するスキルです。CLI の確認、ログイン方法の選択、デプロイ時の手順を扱います。
主な機能
- 01CLI バージョンとログイン状態の確認
- 02ブラウザ・トークンログインの案内
- 03認証済み・匿名デプロイ
- 04デプロイ URL とプロジェクト請求の処理
活用シーン
- 01EdgeOne Makers へのプロジェクトデプロイ
- 02エージェントや CI 環境でのデプロイ準備
- 03匿名デプロイとプロジェクト請求の対応
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ tencentedgeone/ edgeone-makers-tools --skill edgeone-makers-deployインストール後、Claude Code で/edgeone-makers-deployを入力して読み込まれたか確認します。
同梱ファイルreferences/anonymous-deploy.mdreferences/command-reference.md
詳細
EdgeOne Makers デプロイ用スキル
任意のプロジェクトをEdgeOne Makersにデプロイします。
⛔ 重要なルール(絶対に省略しないでください)
-
CLI バージョンは
1.6.0以上 — それ未満の場合は再インストールしてください。1.6.0未満のバージョンには、非対話型環境での修正(whoamiの即時失敗、--json出力)がなく、エージェント/CI 環境で停止します。古いバージョンのまま続行しないでください。匿名デプロイとclaimには、さらに1.6.29が必要です — これは機能固有のより高い最低バージョンです。匿名デプロイを参照してください。CLI が1.6.29未満でも、通常の認証済みデプロイを妨げないでください。 -
デプロイ URL を絶対に切り詰めないでください — これはすべての記載箇所に適用されます —
EDGEONE_DEPLOY_URLにはアクセスに必要なクエリパラメーター(?eo_token=...&eo_time=...)が含まれています。これらがない場合、ページは 401 を返します。必ずクエリー文字列を完全に含む完全な URL を出力してください。このルールは、主表示、概要テーブル、脚注、比較、コードブロック、present_files呼び出しなど、返信内の URL のすべての記載箇所に適用されます。?とその後すべてを削除することは、切り詰めにあたります。❌ 誤り(切り詰め — 401 が返ります):
https://my-app-w9t0lxe8.edgeone.cool✅ 正しい(完全な URL):
https://my-app-w9t0lxe8.edgeone.cool?eo_token=abc123&eo_time=1234567890返信を書いた後にセルフチェックしてください:
.edgeone.coolドメインのすべての出現箇所を確認します。それぞれに?eo_token=が含まれていますか?含まれていない箇所があれば、今すぐ修正してください。そうしないと、ユーザーに 401 が返ります。 3a. 非対話型で実行する場合は--jsonを優先してください — エージェント/CI/ヘッドレス環境では、結果が機械可読な 1 行になるよう、deployに必ず--jsonを渡してください。色付きの出力や\rでアニメーションする標準出力を解析する必要がなくなります。デプロイ出力の解析を参照してください。 3b. ログイン状態の確認にはedgeone whoamiを使用してください — CLI 1.6.0 以降では、未ログインの場合にwhoamiは停止せず、すぐに失敗(終了コード 1)します。終了コードが 0 の場合、ユーザーはすでにログインしているため、-tは不要です。.edgeone/.tokenをcatで確認しないでください — CLI は認証情報を固定パスの.tokenではなく、~/.edgeone/<hash>ファイルに保存します。 -
デプロイ URL は、表示される返信本文の最上部(独立した行、コードブロック、または見出し。インラインや返信の途中には置かないでください)に配置し、さらに
present_files(または IDE のプレビューツール)を使ってサイドパネルにも固定表示する必要があります。 これは 2 つの UI 上の問題に対応するためです。思考/推論/「深度思考」ブロックは、コンテンツをデフォルトで隠します。長い返信は IDE のチャットカードで自動的に折りたたまれ、途中に置いた内容が見えにくくなります。present_filesはチャットの折りたたみの影響を受けないため、2 つ目の常時表示チャネルになります。URL は完全なものとし、切り詰めないでください(ルール 2)。書式例:🌐 Live URL: https://my-project-abc123.edgeone.cool?<auth_query_params>その後、コンソール URL や注意事項など、その他の注記を追加してください。 ターン終了前のセルフチェック(必須) — ユーザーに実際に表示される内容(思考/推論の内容ではありません)を読み返してください。確認するのは次の2点です:(a)完全な
.edgeone.coolの URL が、表示される返信の先頭にコードブロックまたは見出しで記載されていますか?(b)その URL を指定してpresent_filesを呼び出しましたか?どちらかの答えが「いいえ」の場合は、🌐 Live URL: <full URL>ブロックのみを含む短いメッセージを追加で送信し、present_filesを呼び出してください。両方のチャネルに URL が記載されるまで、ターンを終了しないでください。「推論の中ですでに言及しました」は、表示される本文に記載する代わりにはなりません。 -
ブラウザログインの前に、中国サイトとグローバルサイトのどちらを使うか、ユーザーに選択してもらってください。決して決めつけないでください。(
edgeone login --tokenによるトークンログインではサイトが自動検出されるため、確認は不要です。) -
まずブラウザログインを試し、ブラウザログインが失敗したことを確認してからトークンログインに切り替えてください(約60秒後に切り替える基準、および IDE 内エージェントについての説明は「ログイン」セクションを参照してください。WorkBuddy はヘッドレスではありません)。ユーザーが明示的に希望した場合に限り、最初にトークンログインを行ってください。
-
トークンログイン後、今後の利用に備えてトークンをローカルに保存するかどうか、ユーザーに確認してください。
-
ブラウザのポップアップ(ログイン/登録)を起動する前に、その理由とメリットをユーザーに説明してください。何も伝えずにブラウザウィンドウを起動してはいけません。
-
CLI が失敗した場合は、再試行、コマンドの切り替え、回避策の提案を行う前に、実際のエラーテキストをユーザーに提示してください。言い換えないでください(例:
Makers project exceeds 40 limitを「名前の競合または権限の問題かもしれません」と書き換えないでください)。問題を回避するためにmakers devからmakers deploy(またはその逆)へ、何も伝えずに切り替えてはいけません。認証/クォータ/権限に関するシステム全体の障害は、どちらのコマンドでも同じ原因で発生します。エラーをそのまま引用し、根本原因を明示してから、修正方法を提案するかユーザーに確認してください。 -
ユーザー向けのメッセージはすべて、ユーザーが使用している言語で書いてください。このスキル内のすべての説明文、引用文、プロンプトが英語なのは、意味を指定するためだけです。そのまま貼り付ける文字列ではありません。ユーザーが中国語で話しかけてきた場合は、中国語で応答してください。ログインの説明、サイトの選択、トークンについての確認、デプロイ結果もすべて同様です。他の言語でも同様に対応してください。このスキルの英語の文言を、英語以外の会話で出力するのは不具合です。文字どおりの CLI コマンド、フラグ、環境変数名、JSON フィールド名のみ、そのままにしてください。⚠️ このスキルに固定テンプレート(匿名デプロイの手順2および4)が指定されている場合は、必ず翻訳してください。ただし、書き換えたり、内容を追加したりしてはいけません。一行ずつ原文に合わせてください。
ルール11〜14は、匿名デプロイ/クレームフローにのみ適用されます:
11. claim コマンドのパラメーターは --sid です。--token ではありません — edgeone makers claim --sid <anonymous-token>。claim の -t/--token フラグはアカウント API トークンであり、まったく異なる認証情報です。匿名トークンを -t に渡すと失敗します。claim --token <anonymous-token> と記載している製品ドキュメントは誤りです。このルールに従ってください。
12. 匿名デプロイの結果はステップ 4 の固定テンプレートで提示します — これは例ではなくテンプレートです。URL と claim リンクだけを置き換え、正確に再現してください。expiresAt の生のタイムスタンプは絶対に表示せず、異なる期間を述べたり、行を追加したりしないでください。60 分は製品が定める claim の有効期間であり、保守的な案内としてテンプレートにも記載されています。トークンの実際の有効期間がそれより長い場合でも同様です。期限切れになるのはリンクであり、プロジェクトが削除されるという表現にはしません。
13. 提示する claim リンクには、裸の claimUrl ではなく、edgeone login --claim の結果を使います — 匿名デプロイの直後に、バックグラウンドで edgeone login --claim --local --json を実行し、その claimLoginUrl をテンプレートに入れてください。このリンクだけが、CLI にログイン状態を認識させ、プロジェクトを自動で紐付けるログイン → claim → コールバックの流れを備えています。デプロイ出力の裸の claimUrl で claim しても CLI には通知されないため、ユーザーが次にデプロイすると、2 つ目の匿名プロジェクトが作成されます。ユーザーが claim する方法として、claimCommand、edgeone makers claim --sid ...、その他のコマンドを表示してはいけません。WorkBuddy のようなサンドボックス化された IDE では、ユーザーにターミナルがなく、実行できないためです。makers claim はヘッドレス/CI 環境でのフォールバックとしてのみ使用し、あなたが実行してください。ユーザーには表示しません。
14. claim の案内は簡潔にし、過剰な約束やドメインの説明はしません — サインインするとプロジェクトが保持されることだけを伝えてください。「永久にあなたのもの」「期間やアクセス制限なし」「無制限」、または URL がその後いつまでも無条件に機能することを示唆する表現は絶対に使わないでください。claim したプロジェクトでもカスタムドメインが必要になる場合があり、中国本土からのアクセスには ICP 登録が必要な場合もあるため、これらの主張は誤りです。ユーザーが claim するかどうかを検討しているだけの段階で、カスタムドメイン、ICP 登録、DNS、コンソールの操作方法を先回りして説明することも避けてください。ライブ URL だけを求めているユーザーに、最初から複雑な話を持ち込むことになります。その後の案内は claim ページに任せてください。こうした話題については、ユーザーから質問があった場合にのみ回答してください。
環境のセットアップ
edgeone CLI コマンド(インストール、ログイン、デプロイなど)を実行する前に、現在のシェルセッションで次の環境変数を設定してください。
export PAGES_SOURCE=skills
または、各コマンドの前にインラインで指定してください。
PAGES_SOURCE=skills edgeone makers deploy
これにより、デプロイが AI スキルのコンテキストからトリガーされたことがプラットフォームに伝わります。
デプロイの流れ
まず次のチェックを実行し、その後、判断表に従ってください。チェックはユーザーに知らせずに実行してください。バージョン、ログイン状態の確認、適格性の判定をユーザーに説明してはいけません(例:「CLI バージョン x.x(匿名デプロイに対応)」「純粋な静的コンテンツで依存関係がないため、そのまま公開できます」とは絶対に言わないでください)。チェックによって対応が変わる場合(アップグレードやログインが必要な場合)にのみ、ユーザーに伝えてください。
# Check 0: Set environment variable (required before any edgeone command)
export PAGES_SOURCE=skills
# Check 1: CLI installed and correct version? (must be >= 1.6.0; anonymous deploy needs >= 1.6.29)
edgeone -v
# Check 2: Already logged in? (whoami fails fast, won't hang)
edgeone whoami
# If exit 0 → logged in, no -t needed
# If exit 1 → not logged in, need token or browser login
# NOTE: This auth gate is for `deploy` (account-bound upload to your EdgeOne
# account). For `edgeone makers dev` (local preview), login is ONLY required
# when the project uses Blob/credentialed backends — a pure-static dev needs
# no login. When Blob IS used, the chain is: Blob → must be linked → linking
# requires login, so login before linking/starting dev. See makers-storage /
# makers-env-adaption for the dev auth rule and the link chain.
# Check 3: Project already linked?
cat edgeone.json 2>/dev/null
判定表
| CLI のバージョン | ログイン状態 | アクション |
|---|---|---|
| 未インストール、または < 1.6.0 | — | → CLI のインストールへ進みます |
≥ 1.6.0 ✓ | ログイン済み(またはトークンあり) | → デプロイへ進みます |
≥ 1.6.0 ✓ | 未ログイン、保存済みトークンあり | → トークンを使ったデプロイへ進みます(保存済みトークンを使用) |
≥ 1.6.29 ✓ | 未ログイン、保存済みトークンなし | → 匿名デプロイへ進みます。タスクが匿名デプロイを前提とする場合(スケジュール実行/使い捨て/ユーザーからの依頼)のみ、デフォルトで匿名デプロイを選択してください。それ以外の場合は、匿名デプロイにするかログインするかをユーザーに確認してください。確認する手段がない場合は、--anonymous --json を指定してデプロイし、結果にクレームリンクと60分間の有効時間を提示してください(ステップ 2 を参照) |
1.6.0–1.6.28 | 未ログイン、保存済みトークンなし | このバージョンでは匿名デプロイを利用できません → まずブラウザーログインを試す(ログインセクションを参照)。ブラウザーが開かない、または約60秒以内に何も起きない場合は、トークンログインに切り替えてください。「これはエージェント/CI 環境のようだ」と推測して、ブラウザーログインを先回りして省略してはいけません。その推測は誤っていることがよくあります。特に、WorkBuddy はデスクトップ IDE のサンドボックスであり、ブラウザーログインを完全にサポートしています |
≥ 1.6.0 ✓ | ユーザーがトークンを明示的に提示した、またはトークンログインを希望している | → トークンを使ったデプロイ/トークンログインへ進みます |
CLI のインストール
npm install -g edgeone@latest
確認:edgeone -v — 出力が 1.6.0 以上であることを確認してください。そうでない場合は、インストールをやり直してください。1.6.0 未満のバージョンは、非対話型環境で whoami/ログイン時にハングし、--json も利用できません。匿名デプロイと claim には 1.6.29 が必要です。latest がまだそのバージョンに達していない場合、これら2つの機能は利用できません。通常の認証済みデプロイは問題なく動作します。
ログイン
0. 登録/ログインの手順を説明する
ログインフローを開始する前に、この手順がなぜ必要で、何が起きるのかをユーザーに説明してください。説明せずにブラウザーウィンドウを起動してはいけません。
ユーザーに次のように伝えてください。
EdgeOne Makers アカウントへのログインまたは登録が必要です。以下をご確認ください。
- ログインが必要な理由:デプロイすると、ビルド出力がユーザー自身のアカウントにアップロードされ、一意のアクセス URL とプロジェクトレコードが作成されます。
- 無料で利用できるもの:EdgeOne Makers には、グローバル CDN による高速化、自動 HTTPS、カスタムドメインのバインドを備えた無料プランがあります。通常、個人プロジェクトには十分な内容です。
- 次に行うこと:
edgeone loginを実行すると、デフォルトのブラウザーで Tencent Cloud のログインページが開きます。ログイン/登録を完了してアクセスを許可したら、こちらに戻ってきてください。- 行き詰まった場合:ブラウザーが開かない場合や、ログイン後も CLI が待機し続ける場合はお知らせください。代わりにトークンログインに切り替えます。
約60秒以内にユーザーから応答がない場合(ブラウザーポップアップが表示されない、または進行状況の報告がない場合)は、ブラウザーが開いたか、エラーが発生したか、トークンログインへの切り替えを希望するかを積極的に確認してください。いつまでも待ち続けてはいけません。
1. ユーザーにサイトを選んでもらい、必ず --site を指定する
ログインコマンドを実行する前に、IDE の選択コントロール(ask_followup_question)を使用してください。
EdgeOne Makers のサイトを選択してください。
- China — 中国本土のユーザー向け(console.cloud.tencent.com)
- Global — 中国国外のユーザー向け(console.intl.cloud.tencent.com)
⚠️ 重要:ユーザーが選択した後、必ず明示的な
--site <china|global> フラグを指定してログインを実行してください(例:edgeone login --site china)。
エージェント/スキル経由で実行する場合、--site を付けずに edgeone login を実行してはいけません。
非対話型の状況で login を単独実行すると、ハングする対話型のサイト選択画面は表示されず、--site の指定を求めてすぐに失敗します。サイトの選択は CLI 内ではなく、この会話の中で行ってください。
2. ログイン方法のリファレンス
ログイン方法は2つあります。ルール6に従い、必ず最初にブラウザーログインを試してください。以下の表は各方法を使用する状況の参考であり、判断手順ではありません。環境を推測するために使用しないでください。
| 方法 | 該当する状況 |
|---|---|
| ブラウザーログイン | デフォルトです。すべてのローカルデスクトップ IDE(VS Code、Cursor、WorkBuddy)で動作します。IDE が OS のブラウザーと OAuth コールバックをサンドボックスに中継します。 |
| トークンログイン | ブラウザーログインが失敗したと確認できた場合(ブラウザーポップアップが表示されない、または約60秒以内に進行がない)のフォールバック、またはユーザーが明示的にトークンを提示するか、トークンログインをリクエストした場合に使用します。また、完全に切り離された環境(SSH のみ、CI ランナー、ブラウザーのないコンテナー)で使える唯一の方法です。 |
ブラウザーログイン
# China site
edgeone login --site china
# Global site
edgeone login --site global
ユーザーがブラウザー認証を完了するまで待ちます。完了すると CLI に成功メッセージが表示されます。
⚠️ ブラウザーセッション再利用の落とし穴:ユーザーが以前に別のサイトにログインしていた場合(例:以前に Global サイトにログインし、今回は China サイトにログインしようとしている場合、またはその逆の場合)、ブラウザーが以前の Tencent Cloud セッションを気付かれないまま再利用することがあります。CLI は成功したように見えますが、実際には誤ったアカウントに紐付けられます。その後 deploy が認証エラーで失敗したり、whoami に予期しないアカウントが表示されたりします。
この場合は、ユーザーに次の手順を案内してください。
- ログインページで「別のアカウントでサインイン」をクリックする。または
- 先にすべての Tencent Cloud コンソール(
console.cloud.tencent.comとconsole.intl.cloud.tencent.comの両方)からログアウトしてから、edgeone loginを再実行する。
トークンログイン
方法は2つあります。
方法A:edgeone login --token(永続的、推奨)
edgeone login --token <token>
トークンから China/Global を自動検出するため、--site フラグは不要です。以降のコマンドで使用するログイン状態が保存されます。
💡 以前のブラウザーログインで取得したトークンを再利用できます。コンソールにアクセスする必要はありません。
edgeone login --site <x>(ブラウザー)は API Token を自動生成し、~/.edgeone/<hash>(value.Tokenを含む JSON)に書き込みます。このTokenの値をEDGEONE_PAGES_API_TOKEN="<Token>"または-t <Token>として、ヘッドレス/エージェント環境でのmakers dev/deployに直接再利用できます。コンソールで新しいトークンを作成する必要はありません。
方法B:デプロイ時に -t を直接指定する(実行ごと)
トークンはその1回のデプロイにのみ使用され、ログイン状態は保存されません。
edgeone makers deploy -t <token>
⚠️ 重要:edgeone whoami は -t フラグをサポートしていません。トークンを whoami -t <token> で検証しようとしないでください。ユーザーからトークンを受け取った場合は、ログイン確認をすべて省略し、すぐにデプロイしてください。
トークンの取得方法をユーザーに案内します。
- コンソールにアクセスします。
- API Token → Create Token を選択し、トークンをコピーします。
⚠️ このトークンにはアカウントレベルの権限があります。リポジトリにコミットしないよう、ユーザーに注意してください。
3. トークンをローカルに保存するか確認する
ユーザーからトークンを受け取った後、次のように尋ねます。
このトークンを今後のデプロイ用にローカルに保存しますか?
- はい —
.edgeone/.tokenに保存します(次回は自動的に使用されます)- いいえ — 今回のデプロイにのみ使用します
「はい」の場合:
mkdir -p .edgeone
echo "<token>" > .edgeone/.token
grep -q '.edgeone/.token' .gitignore 2>/dev/null || echo '.edgeone/.token' >> .gitignore
ユーザーに次のように伝えます:「✅ トークンを .edgeone/.token に保存し、.gitignore に追加しました。」
デプロイ
ブラウザー認証を使ったデプロイ(Makers プロジェクト)
# Project already linked (edgeone.json exists)
edgeone makers deploy
# New project (no edgeone.json)
edgeone makers deploy -n <project-name>
<project-name>:プロジェクトディレクトリ名から自動生成されます。最初のデプロイ時に edgeone.json が自動作成されます。
トークンを使ったデプロイ(Makers プロジェクト)
まず、保存済みのトークンがあるか確認します。
cat .edgeone/.token 2>/dev/null
- 保存済みのトークンが見つかった場合 → それを使用し、ユーザーに「
.edgeone/.tokenから保存済みのトークンを使用しています」と伝えます。 - 保存済みのトークンがない場合 → ユーザーにトークンの提示を求めます(上記の「トークンログイン」を参照)。
# Project already linked
edgeone makers deploy -t <token>
# New project
edgeone makers deploy -n <project-name> -t <token>
トークンにはサイト情報がすでに含まれているため、--site フラグは不要です。
手動で入力したトークンを使ったデプロイが成功した後、トークンを保存するかユーザーに尋ねます(上記の「トークンをローカルに保存するか確認する」を参照)。
プレビュー環境へのデプロイ
edgeone makers deploy -e preview
非対話型/エージェント/CI からのデプロイ(推奨:--json)
エージェント、CI、または TTY ではない環境で実行する場合は、--json を追加して、最終結果を機械可読な単一行として出力してください。色付きの標準出力をスクレイピングする必要はありません。
edgeone makers deploy -n <project-name> --json
edgeone makers deploy -n <project-name> -t <token> --json
Makers Agent プロジェクトのデプロイ
agents/ ディレクトリがあるプロジェクト(AI エージェントプロジェクト)では、ビルドを自動実行する edgeone makers deploy を使用してください。
edgeone makers deploy -n <name> -t <token> --json
edgeone makers deploy -n <name> -t <token> --json -e preview
注:edgeone makers deploy はデプロイ前にビルドを自動実行するため、edgeone makers build を別途実行する必要はありません。
ビルドの動作
CLI がフレームワークを自動検出し、ビルドを実行して、出力ディレクトリをアップロードします。手動で設定する必要はありません。
匿名デプロイ(ログイン不要)
ユーザーがログインしておらず、トークンも持っていない場合は、匿名でデプロイし、後からプロジェクトを自分のものとして登録できます。CLI >= 1.6.29 が必要です。1.6.0~1.6.28 にはこの機能がありません。代わりにログインするか、トークンを使用してください。
手順 1:除外チェック — 最初に実行
匿名デプロイでは、環境変数が空の状態でビルドされます。リモート環境変数の取得と AI ゲートウェイの認証情報の注入は、どちらも認証が必要なためスキップされます。いずれかに依存するプロジェクトはデプロイ自体は成功しますが、実行時に動作しなくなります。
# Is this an Agent project?
ls agents/ 2>/dev/null && echo "AGENT_PROJECT"
# Does it use Blob storage? (checks source files and the dependency declaration)
grep -rEl "@edgeone/pages-blob" \
--include="*.ts" --include="*.js" --include="*.mjs" --include="*.cjs" \
--include="*.tsx" --include="*.jsx" --include="*.vue" --include="*.svelte" \
. 2>/dev/null | head -1
grep -l '"@edgeone/pages-blob"' package.json 2>/dev/null
どちらかの grep で出力があれば、そのプロジェクトは Blob を使用しています。
⛔ この手順のすべてのチェックは通知なしで実行してください。ユーザーには決して説明しないでください。 「CLI 版本 x.x(支持匿名部署)」、「页面是纯静态、无 Blob/KV 依赖,可直接发布」など、バージョンや利用条件のチェック結果を報告しないでください。これらは内部での判断材料であり、技術に詳しくないユーザーには対応できず、決して見せてはいけません。チェック結果について伝えるのは、それによって結果が変わる場合だけです。たとえば、プロジェクトでログインが必要になる場合(以下を参照)や、CLI が古くアップグレードが必要な場合です。チェックを通過した場合は何も伝えないでください。
この方法では KV を検出できません。必ずユーザーに尋ねてください。 KV 名前空間はコンソールでバインドされ、ユーザーが選んだ名前(例:my_kv)のグローバル変数として公開されるため、grep で検出できるパッケージのインポートはありません。@edgeone/pages-kv パッケージもありません。ユーザーに直接尋ねてください。
このプロジェクトでは KV ストレージを使用していますか?
どちらかのチェックに該当する場合、またはユーザーがこのプロジェクトで KV を使用していると答えた場合は、匿名でデプロイしないでください。 ログインに進み、その理由をユーザーに伝えてください(ユーザー向けの表現では「ログインなし」とし、「匿名」は使用しないでください)。
このプロジェクトでは、環境変数/AI ゲートウェイの認証情報、またはストレージバインディングが必要ですが、ログインなしのデプロイではこれらを利用できません。サイトは読み込めても、それらの機能は動作しません。正しく動作するように、ログインしましょう。
こうした依存関係のないプレーンな静的サイトやフロントエンドフレームワークのプロジェクトは、そのままデプロイできます。
ユーザーが制約を理解したうえで、ログインせずに公開することを希望する場合は、続行してもかまいません。ただし、結果では、プロジェクトを自分のものとして登録して設定するまで AI 機能とストレージ機能が動作しないことを明確に伝えてください(この場合も「匿名/匿名」とはせず、「ログインなし/免登录」と表現してください)。
ステップ 2:方法を決める — タスクに適している場合のみ、デフォルトで匿名を選び、それ以外は確認する
タスク自体が匿名での利用に適している場合のみ、確認せずにそのまま匿名で進めてください — 一時的な利用や、無人での実行が前提のタスクです。明確なサインは次のとおりです。
- スケジュール実行/自動化されたジョブ — 例:「每日定时生成一个页面并部署」、cron パイプライン、誰も見ていない状態で実行する必要があるタスク
- 使い捨ての単発利用 — 一時的なプレビュー、手早いデモ、「先看看效果」、ユーザーが一時的なもの、または今だけのものとして提示しているタスク
- 匿名利用の明示的な意図 — ユーザーが「免登录」、「不用登录」、「anonymous」、「don't make me sign up」と言っている
このような場合は、60 分で期限切れになり、後から利用権を取得するモデルが適切なため、確認は単なる手間になります。そのままステップ 3 に進み、ステップ 4 の固定テンプレート(利用権取得リンク+60 分の有効期間)で結果を提示してください。テンプレートには、気が変わった場合にサイトを保持する方法がすでに記載されています。
それ以外はすべて確認してください。 タスクが明らかに使い捨てではない場合 — ユーザーが保持したり、広く共有したり、発展させたりする可能性があるタスクでは — 選択肢を提示してください。質問を省略するために、環境を判断材料にしないでください。サンドボックスや TTY の情報は信頼できず、誤った推測をすると、人間に不要な割り込みをしたり、保持したかったものを黙ってデプロイしたりすることになります。
環境上、どうしても質問する手段がない場合(TTY も質問ツールもない場合)、質問は不可能です。これは制約であり、判断の余地があるものではありません。--anonymous --json を指定してデプロイし、結果では利用権取得リンクと 60 分の有効期間が見落とされないようにしてください。
質問する方法(質問する場合): IDE の選択コントロール(例:ask_followup_question)を使って選択肢を提示してください。選択肢のラベルでは、意図的に「anonymous」という言葉を避けています。これは専門用語であり、技術者以外のユーザーを混乱させるためです。次の 2 つの選択肢を、ユーザーの言語でそのまま提示してください。ラベルを言い換えたり、選択肢自体に注意書きを加えたりしないでください。また、ユーザーに「anonymous」とは一切言わないでください。この概念を呼ぶ必要がある場合は、必ず 「ログイン不要のデプロイ」 と呼び、「anonymous deploy / 匿名部署」とは呼ばないでください。
選択肢のテキストは label にそのまま配置し、description に分割してはいけません。
英語を話すユーザーには、次の 2 つの選択肢をそのまま提示します。
- Publish now, log in later — No login needed. Get a preview link right away; you can log in and claim the site whenever you're ready.
- Log in, then publish — Log in to your EdgeOne Makers account first; the site is saved straight to your account.
中国語を話すユーザーには、次の 2 つの選択肢をそのまま提示します。
- 直接发布,无需登录
- 登录后发布
選択に応じて、次のフローに進みます。
- Publish now, log in later → 匿名デプロイのフローです。ステップ 3 に進みます。
- Log in, then publish → Login(ブラウザフロー)に進み、その後通常のデプロイを行います。
⛔ 利用権の取得によって得られる内容を誇張しないでください。 プロジェクトが「保持される」/「アカウントに保存される」とだけ伝えてください。それ以上のことは伝えないでください。具体的には、「アクセス制限なし」、「永久に自分のもの」、または URL が無条件に公開され、確定した状態になることを示唆する表現は使わないでください。利用権を取得したプロジェクトでも、カスタムドメインや、中国本土からアクセスできるようにするための ICP 登録が必要になる場合があります。この段階では、カスタムドメイン、ICP 登録、DNS についても話題にしないでください。ユーザーはログインするかどうかを決めている段階であり、こうした情報は不要です。次の手順は利用権取得ページで案内されます。
ステップ 3:デプロイする
export PAGES_SOURCE=skills
edgeone makers deploy --anonymous --json
サイトを固定する必要がある場合(ユーザーから指定があった場合、または CI で一貫性が必要な場合)にのみ、--site china または --site global を追加してください。それ以外の場合は省略してください。CLI が自身の送信元 IP からサイトを自動検出します。 自分でサイトを調べたり、自分の確認結果をもとに --site を設定したりしないでください。
--anonymous 使用時は無視されるため、-n、-e、--area を渡さないでください。プロジェクト名は自動生成されます。
ステップ 4:クレームリスナーを起動し、結果を提示します
デプロイの stdout の最終行を JSON として解析します(その前に人間が読みやすい形式の出力があります)。フィールドはcamelCaseです:url、projectId、deploymentId、anonymousToken、claimUrl、claimCommand、expiresAt、site。
すぐにクレームリスナーをバックグラウンドで起動してください。ユーザーがクレームリンクをクリックする前にリスナーが待ち受けていないと、ログイン状態が CLI に届かず、次のデプロイで 2 つ目の匿名プロジェクトが作成されます。
edgeone login --claim --local --json
run_in_background で実行します。すぐに {"status":"waiting","claimLoginUrl":...} という JSON 行を出力し、その後、(最長 60 分間)待ち受け続けます。その行から claimLoginUrl を取得します。⛔ ユーザーに表示するクレームリンクはこの URL です。デプロイ JSON の claimUrl フィールドではありません。 このリンクだけが、ログイン → クレームページ → CLI へのコールバックをつなぎます。デプロイ出力の claimUrl をそのまま使うと、CLI に通知されずにプロジェクトがクレームされるため、ユーザーの次のデプロイはクレーム済みのプロジェクトではなく、新しい匿名プロジェクトに向かいます。
⛔ リスナーの存在をユーザーに知らせてはいけません。説明もしないでください。 リスナー/监听器が実行中であること、「クレームのコールバックを待っている」こと、その他の内部的な仕組みの状態(状態ファイル、JSON の解析、ポートなど)をユーザーに伝えないでください。ユーザーに提示する内容は、下記テンプレートだけです。クレームは監視中のプロセスとしてではなく、「リンクを開いてサインインする」ものとして案内します。
⛔ テンプレートは、デプロイコマンドが完全に終了した後、単独のメッセージとして送信してください。 デプロイを実行したメッセージと同じメッセージに含めたり、コマンドの出力に添付したり、コマンドの実行中に表示したりしないでください。WorkBuddy では、実行中または完了したコマンドと一緒に出力された内容が折りたたみ可能なプロセスメッセージに格納されることがあります。そうなると、ユーザーは URL やクレームリンクを確認できません。Bash 呼び出しが終了するまで待ち、その後の返信でテンプレートだけを送信してください。
⛔ これは固定テンプレートであり、参考例ではありません。 4 行、順序、絵文字、区切り線を同じにして、完全に再現してください。置き換えてよいのは <url>(デプロイ JSON から取得)と <claimLoginUrl>(login --claim の出力から取得)だけです。言い換えたり、行を結合・分割・並べ替えたりしないでください。前後に文を追加しないでください。プロジェクト ID、デプロイ ID、コンソール URL、expiresAt、次の手順、コメントなどを追加しないでください。
英語を話すユーザーには、以下をそのまま出力してください:
🌐 ライブ URL:
<url>
⏳ このリンクは 60 分後に期限切れになります。
👉 このプロジェクトをクレーム — 60 分以内にクレームしてください。
中国語を話すユーザーには、以下をそのまま出力してください:
🎉 部署成功 🌐 访问地址:
<url>
⏳ 该链接 60 分钟后失效。
👉 认领这个项目 —— 请在 60 分钟内完成认领。
その他の言語の場合は、このテンプレートだけを翻訳してください。4 行、絵文字、区切り線、内容はそのまま維持してください。自由に何かを追加したり、説明したりしないでください。
その後は終了してください。クレームで利用できる機能、カスタムドメイン、ICP 登録、DNS、コンソールの操作方法、代理でクレームする申し出など、ここで追加したくなる内容はすべて、重要ルール 13 および 14 により禁止されています。これらについては、ユーザーから質問された場合にのみ回答してください。
ユーザーによる認証後
バックグラウンドの login --claim プロセスは、コンソールが結果を中継すると自動的に終了します。{"status":"success",...,"linked":true} を返して終了コードが 0 の場合:
- CLI にログイン済みです(認証情報が保存され、
--localの場合は.edgeone/auth.jsonも保存されます)。 - プロジェクトがリンクされています(
.edgeone/project.json)。 .edgeone/anonymous.jsonは削除されます。
ユーザーの言語で、プロジェクトがアカウントに登録され、以降のデプロイでは同じプロジェクトが更新されることを明確に伝えてください。その後のデプロイには、通常のデプロイフロー(edgeone makers deploy --json)を使用してください。
プロセスが 0 以外で終了した場合(ユーザーが 60 分以内にリンクを完了しなかった場合)、匿名プロジェクトはまだ認証されていません。edgeone login --claim --local --json を再実行して新しいリンクを発行し、同じテンプレートで再度提示してください。
ユーザーから「帮我认领」/「私の代わりに認証して」と頼まれた場合:リスナーがまだ実行中なら、同じリンクを再度案内してください。すでに終了している場合は、コマンドを再実行して新しいリンクを発行してください。CLI の認証コマンドは決して表示しないでください。edgeone makers claim --sid は、ブラウザーを使えないヘッドレス/CI 環境専用です(重要なルール 13 を参照)。
完全な JSON スキーマ、レート制限、エラーコード、状態ファイルのフィールド、サイト解決ルールについては、references/anonymous-deploy.md を参照してください。
⚠️ デプロイ出力の解析(重要)
推奨:--json
--json を指定してデプロイを実行すると、標準出力の最終行に単一の JSON オブジェクトが出力されます。
正規表現や ANSI のクリーンアップは不要です。そのまま解析してください。
{"status":"success","url":"https://my-project-abc123.edgeone.cool?<auth_query_params>","type":"preset","projectId":"makers-xxxxxxxx","deploymentId":"dp-xxxx","consoleUrl":"https://console.cloud.tencent.com/edgeone/pages/project/makers-xxxxxxxx/deployment/xxxxxxx"}
失敗時は、最終行が {"status":"error","error":"<message>"} となり、プロセスは 0 以外の終了コードで終了します。
url(クエリ文字列を含む完全な URL)、projectId、consoleUrl をそのまま使用してください。
フォールバック:テキスト出力(--json なし)
edgeone makers deploy が成功すると、CLI は次のように出力します。
[cli][✔] Deploy Success
EDGEONE_DEPLOY_URL=https://my-project-abc123.edgeone.cool?<auth_query_params>
EDGEONE_DEPLOY_TYPE=preset
EDGEONE_PROJECT_ID=makers-xxxxxxxx
[cli][✔] You can view your deployment in the EdgeOne Makers Console at:
https://console.cloud.tencent.com/edgeone/pages/project/pages-xxxxxxxx/deployment/xxxxxxx
抽出ルール:
| フィールド | 抽出方法 | ⛔ 警告 |
|---|---|---|
| アクセス URL | EDGEONE_DEPLOY_URL= の後の完全な値 | クエリ文字列全体(? 以降すべて)を含めてください。これらのパラメーターがないとページを読み込めません |
| プロジェクト ID | EDGEONE_PROJECT_ID= の後の値 | — |
| コンソール URL | 「You can view your deployment...」の次の行 | — |
ユーザーへの表示 — デプロイ URL は、表示される返信の最上部に必ず記載し、さらに present_files を使ってサイドパネルにも固定してください(両方の経路が必要な理由についてはルール 4 を参照):
⚠️ URL の完全性に関するルール(返信を作成する前にお読みください):
| ルール | 詳細 |
|---|---|
| すべての記載で完全な URL を使う | URL を表、リスト、脚注、比較、その他の場所に記載する場合も、クエリ文字列全体を必ず含めてください。例外はありません。 |
| 見た目を整えるための「整理」はしない | 表を見やすくするために URL を短縮しないでください。切り詰められた URL はすっきりしたものではなく、壊れた URL です。 |
| 抽象的な表現ではなく、実際の値を使う | デプロイ出力の実際の URL を使用してください。ユーザー向けのテキストで、クエリパラメーターを ...、(params omitted)、その他のプレースホルダーに置き換えないでください。 |
| 送信前に自己確認する | 下書き内の .edgeone.cool を検索し、該当するすべての箇所に ?eo_token= が含まれていることを確認してください。 |
🌐 ライブ URL:
https://my-project-abc123.edgeone.cool?eo_token=abc123&eo_time=1234567890
- コンソール URL:
https://console.cloud.tencent.com/edgeone/pages/project/...ℹ️ 注:このプレビュー URL は、デプロイをすばやく確認するためのものです。中国本土からアクセスした場合、ドメインの ICP 登録状況や CDN アクセラレーションポリシーにより、一定時間経過後または共有後にリンクが制限されることがあります(例:401)。長期的に安定した公開アクセスには、適切な ICP 登録を済ませたカスタムドメインを紐付けてください。
エラー処理
| エラー | 解決方法 |
|---|---|
command not found: edgeone | npm install -g edgeone@latest を実行します |
| CLI バージョン < 1.6.0 | 再インストールします:npm install -g edgeone@latest。古いバージョンは、非対話型のコンテキストで whoami/login がハングします |
--anonymous / claim が不明なオプションとして報告される | インストール済みの CLI が 1.6.29 未満です。npm install -g edgeone@latest を実行します。それでも 1.6.29 未満の場合、匿名デプロイはまだリリースされていません。ログインするか、トークンを使用してください |
| ログイン中にブラウザーが開かない | トークンログインに切り替えます |
whoami が「not authenticated」と報告する/終了コード 1 を返す | ログインしていない場合は想定どおりです。whoami はハングせず、すぐに失敗します。匿名デプロイを提示する(匿名デプロイを参照)、edgeone login を実行する、またはトークンを指定してください |
| 非対話型デプロイで「browser login is unavailable」と表示され、終了コード 1 で終了する | トークンがない状態でのエージェント/CI/ヘッドレス環境では、想定どおりすぐに失敗します。-t <token> でトークンを指定するか、EDGEONE_PAGES_API_TOKEN を設定してください |
[DeployStatus] Deploying... でデプロイがハングしたように見える | TTY 以外ではハートビートの行が出力されます。停止しているわけではありません。ラッパーが誤検知する場合は、--json を使用するか、バックグラウンドで実行して状態を確認してください。プロセスを終了しないでください |
| トークンで認証エラーが発生する | トークンの有効期限が切れている可能性があります。コンソールで再生成してください |
ログインは成功したように見えるが、deploy で認証エラーが報告される | ブラウザーで別のサイトのセッションが再利用され、誤ったアカウントが紐付けられています。ログインページで「別のアカウントでサインイン」をクリックするか、最初にすべての Tencent Cloud コンソールからログアウトしてください |
edgeone whoami に予期しないアカウントが表示される | ブラウザーセッションが再利用されています。「別のアカウントでサインイン」をクリックするか、すべてのコンソールからログアウトして再ログインしてください |
Failed to create pages project(dev)/Makers project exceeds 40 limit(deploy) | アカウントがプロジェクト数の上限 40 件に達しています。dev と deploy はどちらも同じ理由で失敗します。ユーザーには以下の 2 つの方法だけをそのまま提示してください。どちらにも「推奨」のタグを付けず、3 つ目の方法を提示しないでください(CloudStudio やその他のプラットフォームを提案しないでください。代替案を作り出さないでください):①ユーザーが EdgeOne Makers コンソールで未使用のプロジェクトを削除する。②-n <existing-project-name> で既存のリンク済みプロジェクトを指定する。エージェント自身がプロジェクトを削除してはいけません(CLI に削除コマンドがないのは仕様です。HTTP API やキャッシュ済みの認証情報を使って回避しないでください)。 |
| プロジェクト名の競合 | -n で別の名前を使用します |
| ビルドの失敗 | ログを確認してください。通常は依存関係の不足か、ビルドスクリプトの不備が原因です |
whoami が「not authenticated」と表示するが、直前に edgeone login は成功している | エージェント/ヘッドレス環境では想定どおりです。whoami と makers dev/deploy が参照するのはブラウザーセッションではなく、API トークン認証です。~/.edgeone/<hash> の自動生成トークン(value.Token)を EDGEONE_PAGES_API_TOKEN/-t として再利用してください。上記のトークンログインに関する注意を参照してください。 |
makers dev が対話型の「Link existing / Create and link」メニューでハングする | -n を付けずに dev を開始したため、対話型の選択画面に進んでいます。プロセスを終了し、edgeone makers dev -n <project-name> --skip-env-sync で再起動してください。dev はプロジェクトが存在しない場合に自動作成し、内部でリンクします。プロジェクトが Blob/KV を使用する場合は、dev に常に -n を渡してください。 |
デプロイ URL への curl が 302 を返し、DingTalk SSO ログインにリダイレクトされる | プレビューゲートウェイでは、ブラウザーによる eo_token の検証(JS)が必要です。curl では検証できません。?eo_token=...&eo_time=... を含む URL 全体を通常のブラウザーで開いてください。トークンが検証され、SSO が回避されます。コードの不具合ではありません。 |
CLI コマンドのリファレンス、環境変数、ローカル開発環境のセットアップ、トークン管理の詳細については、references/command-reference.md を参照してください。