From edgeone-makers-tools
Deploys frontend and full-stack projects to EdgeOne Makers (Tencent EdgeOne). Handles CLI version validation, login checks, and ensures deploy URLs include required tokens to avoid 401 errors.
How this skill is triggered — by the user, by Claude, or both
Slash command
/edgeone-makers-tools:makers-deployThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Deploy any project to **EdgeOne Makers**.
Deploy any project to EdgeOne Makers.
CLI version ≥ 1.6.0 — reinstall if lower. Versions below 1.6.0 lack the non-interactive fixes (whoami fail-fast, --json output) and will hang in Agent/CI environments. Never proceed with an outdated version.
Never truncate the deploy URL — this applies to EVERY mention — EDGEONE_DEPLOY_URL includes query parameters (?eo_token=...&eo_time=...) required for access. Without them the page returns 401. Always output the complete URL with full query string. This rule applies to: the primary display, summary tables, footnotes, comparisons, code blocks, present_files calls — every single occurrence of the URL in your reply. Truncation is any removal of the ? and everything after it.
❌ WRONG (truncated — will 401):
https://my-app-w9t0lxe8.edgeone.cool
✅ CORRECT (full URL):
https://my-app-w9t0lxe8.edgeone.cool?eo_token=abc123&eo_time=1234567890
Self-check after writing your reply: scan for every instance of the .edgeone.cool domain. Does each one include ?eo_token=? If any doesn't, fix it NOW — the user will get a 401.
3a. Prefer --json when running non-interactively — in Agent/CI/headless contexts, always pass --json to deploy so the result is a single machine-readable line; no need to scrape colored/\r-animated stdout. See Parse Deploy Output.
3b. Use edgeone whoami to check login status — on CLI ≥ 1.6.0, whoami fails fast (exit 1) when not logged in instead of hanging. If it exits 0, the user is already logged in and -t is not needed. Do NOT check cat .edgeone/.token — CLI stores credentials in ~/.edgeone/<hash> files, not a fixed .token path.
⚠️ The deploy URL MUST be placed prominently at the very top of your reply — once deployment finishes, the complete access URL is the core deliverable the user cares about most. You MUST: ① place it on the first line or in the first standalone block of your reply body; ② use a prominent format (e.g. a large heading + code block); ③ never bury the URL in the middle of a long paragraph where the user has to hunt for it. Example format:
🌐 Live URL: https://my-project-abc123.edgeone.cool?<auth_query_params>
Then append any other notes (console URL, caveats, etc.).
Ask the user to choose China or Global site before browser login. Never assume. (Token login via edgeone login --token auto-detects site, no need to ask.)
Auto-detect the login method — browser login in desktop environments, token login in headless/remote/CI environments. Follow the decision table below.
After token login, ask if the user wants to save the token locally for future use.
Before triggering any browser popup (login / registration), explain the reason and the benefits to the user first — never silently launch a browser window.
Before executing any edgeone CLI command (install, login, deploy, etc.), set the following environment variable in the current shell session:
export PAGES_SOURCE=skills
Or prefix each command inline:
PAGES_SOURCE=skills edgeone makers deploy
This tells the platform that the deployment is triggered from an AI skill context.
Run these checks first, then follow the decision table:
# 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)
edgeone -v
# Check 2: Already logged in? (CLI >= 1.6.0 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
# Check 3: Project already linked?
cat edgeone.json 2>/dev/null
| CLI version | Login status | Action |
|---|---|---|
| Not installed or < 1.6.0 | — | → Go to Install CLI |
≥ 1.6.0 ✓ | Logged in (or token present) | → Go to Deploy |
≥ 1.6.0 ✓ | Not logged in, has saved token | → Go to Deploy with Token (use saved token) |
≥ 1.6.0 ✓ | Not logged in, no saved token, interactive desktop | → Go to Login (browser) |
≥ 1.6.0 ✓ | Not logged in, no saved token, non-interactive (Agent/CI/headless) | → Ask user for a token; browser login is unavailable and deploy will fail fast with a token hint |
npm install -g edgeone@latest
Verify: edgeone -v — confirm output is 1.6.0 or higher. Retry installation if not. (Versions < 1.6.0 hang on whoami/login in non-interactive environments and lack --json.)
Before triggering any login flow, explain to the user why this step is needed and what to expect. Do not silently launch a browser window.
Tell the user:
You need to log in or register an EdgeOne Makers account. Here's what to expect:
- Why login is required: Deployment uploads your build output to your own account, generating a unique access URL and project record.
- What you get for free: EdgeOne Makers offers a free tier with global CDN acceleration, automatic HTTPS, and custom domain binding — typically more than enough for personal projects.
- What happens next: I'll run
edgeone login, and your default browser will open the Tencent Cloud login page. Please complete the login/registration and authorize access, then come back here.- If you get stuck: If the browser doesn't open, or the CLI keeps waiting after you've logged in, let me know — I'll switch to Token login instead.
If the user does not respond for an extended period (e.g., more than 1–2 minutes), proactively ask about their status (whether the browser opened, any errors, or if they want to switch to Token login). Do not wait indefinitely.
--siteUse the IDE's selection control (ask_followup_question) before running any login command:
Choose your EdgeOne Makers site:
- China — For users in mainland China (console.cloud.tencent.com)
- Global — For users outside China (console.intl.cloud.tencent.com)
⚠️ CRITICAL: After the user chooses, you MUST invoke login with an explicit
--site <china|global> flag (e.g. edgeone login --site china).
NEVER run a bare edgeone login (without --site) when driven by an Agent / skill.
On CLI ≥ 1.6.0, a bare login in a non-interactive context fails fast asking for
--site (it no longer pops an interactive site-picker that would hang). The site choice
is meant to happen here in the conversation, not inside the CLI.
| Condition | Method |
|---|---|
| Local desktop IDE (VS Code, Cursor, WorkBuddy, etc.) | Browser Login |
| Remote / SSH / container / CI / cloud IDE / headless | Token Login |
| User explicitly requests token | Token Login |
# China site
edgeone login --site china
# Global site
edgeone login --site global
Wait for the user to complete browser auth. The CLI prints a success message when done.
⚠️ Browser Session Reuse Trap: If the user previously logged into a different site (e.g., logged into Global site before, now trying China site, or vice versa), the browser may silently reuse the old Tencent Cloud session. The CLI will appear to succeed, but actually binds to the wrong account — subsequent deploy will fail with auth errors or whoami shows an unexpected account.
If this happens, guide the user to:
console.cloud.tencent.com and console.intl.cloud.tencent.com) first, then re-run edgeone login.Two methods available:
Method A: edgeone login --token (persistent, recommended)
edgeone login --token <token>
Auto-detects china/global from the token — no --site flag needed. Persists login state for subsequent commands.
Method B: Pass -t directly in deploy (per-invocation)
Token is used for that single deploy only; no persistent login state is saved.
edgeone makers deploy -t <token>
⚠️ Important: edgeone whoami does NOT support a -t flag. Do NOT attempt to verify a token with whoami -t <token>. When the user provides a token, skip login checks entirely and go straight to deploy.
Guide the user to obtain a token:
⚠️ Remind the user: the token has account-level permissions. Never commit it to a repository.
After the user provides a token, ask:
Save this token locally for future deployments?
- Yes — Save to
.edgeone/.token(auto-used next time)- No — Use for this deployment only
If Yes:
mkdir -p .edgeone
echo "<token>" > .edgeone/.token
grep -q '.edgeone/.token' .gitignore 2>/dev/null || echo '.edgeone/.token' >> .gitignore
Confirm to the user: "✅ Token saved to .edgeone/.token and added to .gitignore."
# Project already linked (edgeone.json exists)
edgeone makers deploy
# New project (no edgeone.json)
edgeone makers deploy -n <project-name>
<project-name>: auto-generate from the project directory name. The first deploy creates edgeone.json automatically.
First check for a saved token:
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>
The token already contains site info — no --site flag needed.
After a successful deploy with a manually-entered token, ask if the user wants to save it (see "Offer to save the token locally" above).
edgeone makers deploy -e preview
--json)When running inside an Agent, CI, or any non-TTY context, add --json so the final
result is emitted as a single machine-readable line — no scraping of colored stdout:
edgeone makers deploy -n <project-name> --json
edgeone makers deploy -n <project-name> -t <token> --json
For projects with agents/ directory (AI Agent projects), use edgeone makers deploy which auto-runs build:
edgeone makers deploy -n <name> -t <token> --json
edgeone makers deploy -n <name> -t <token> --json -e preview
Note: edgeone makers deploy automatically runs build before deploying — no separate edgeone makers build step needed.
The CLI auto-detects the framework, runs the build, and uploads the output directory. No manual config needed.
--json (CLI ≥ 1.6.0)When deploy is run with --json, the last line of stdout is a single JSON object —
parse that directly, no regex / ANSI cleanup needed:
{"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"}
On failure the last line is {"status":"error","error":"<message>"} and the process exits non-zero.
Use url (full, with query string), projectId, and consoleUrl directly.
--json)After edgeone makers deploy succeeds, the CLI outputs:
[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
Extraction rules:
| Field | How to extract | ⛔ Warning |
|---|---|---|
| Access URL | Full value after EDGEONE_DEPLOY_URL= | Include the full query string (? and everything after) — without these params the page will not load |
| Project ID | Value after EDGEONE_PROJECT_ID= | — |
| Console URL | Line after "You can view your deployment..." | — |
Show the user — the deploy URL MUST be placed at the very top of your reply, in the most prominent position:
⚠️ URL Integrity Rules (read before composing your reply):
| Rule | Detail |
|---|---|
| Every mention must be complete | If you write the URL in a table, a list, a footnote, a comparison, or any secondary location — it MUST still include the full query string. No exceptions. |
| No visual "cleanup" | Do not shorten the URL to make a table look nicer. A truncated URL is broken, not clean. |
| Concrete, not abstract | Use the actual URL from deploy output. Do not replace query params with ... or (params omitted) or any placeholder in user-facing text. |
| Self-check before sending | Search your draft for .edgeone.cool — every hit must have ?eo_token=. |
🌐 Live URL:
https://my-project-abc123.edgeone.cool?eo_token=abc123&eo_time=1234567890
- Console URL:
https://console.cloud.tencent.com/edgeone/pages/project/...ℹ️ Note: This preview URL is for quick deployment verification. When accessed from mainland China, the link may become restricted (e.g., 401) after some time or when shared, due to domain ICP filing status or CDN acceleration policies. For long-term stable public access, bind a custom domain with proper ICP filing.
| Error | Solution |
|---|---|
command not found: edgeone | Run npm install -g edgeone@latest |
| CLI version < 1.6.0 | Reinstall: npm install -g edgeone@latest. Older versions hang on whoami/login in non-interactive contexts |
| Browser does not open during login | Switch to token login |
"not authenticated" / exit 1 from whoami (CLI ≥ 1.6.0) | Expected when not logged in — whoami now fails fast instead of hanging. Run edgeone login (desktop) or provide a token |
| Non-interactive deploy says "browser login is unavailable" + exits 1 | Expected fail-fast in Agent/CI/headless with no token. Provide a token via -t <token> or set EDGEONE_PAGES_API_TOKEN |
Deploy seems to hang at [DeployStatus] Deploying... | On CLI ≥ 1.6.0 non-TTY emits heartbeat lines; it is NOT stuck. If a wrapper still mis-detects, use --json or run in background and poll. Do not kill it |
| Auth error with token | Token may be expired — regenerate at the console |
Login appears successful but deploy reports auth error | Browser reused a session from the wrong site, binding the wrong account. Click "Sign in with a different account" on the login page, or log out from all Tencent Cloud consoles first |
edgeone whoami shows an unexpected account | Browser session reuse. Click "Sign in with a different account" or log out from all consoles and re-login |
| Project name conflict | Use a different name with -n |
| Build failure | Check logs — usually missing deps or bad build script |
For CLI command reference, environment variables, local dev setup, and token management details, see references/command-reference.md.
npx claudepluginhub tencentedgeone/edgeone-makers-tools --plugin edgeone-makers-toolsReference for EdgeOne Makers CLI: commands for dev server, build, deploy, env management, login, and linking. Use when running edgeone makers commands.
Deploy applications to Vercel as preview deployments. Activates on requests like 'deploy my app' or 'push live'. Handles project linking, git push, and team selection.
Deploys, hosts, and publishes web projects on Netlify via the CLI. Use for linking sites, Git-based CD, manual deploys, CI deploys, and viewing runtime logs.