meoo cli 是秒悟(Meoo)官方推出的命令行工具,让 Claude Code、Codex、Cursor、Qoder等本地 agent 在帮你写完前端代码后,能直接接管「数据库、用户登录、文件存储、部署上线」的所有云端工作——你只需要在终端跑一条命令,剩下的交给 AI。
SaferSkills independently audited meoo-cli (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
从零构建和部署全栈应用。覆盖项目初始化到生产部署的完整生命周期,包括云服务、代码规范、沙箱同步和部署。
npm install -g @aliyun-meoo/cliVerify: meoo --version
meoo login # 1. Authenticate (opens browser)
meoo init react-design # 2. Initialize from template
meoo projects create "My App" # 3. Create remote project (MUST do after init)
pnpm install # 4. Install dependencies
pnpm dev # 5. Local dev server (port 3015)
meoo deploy # 6. Build and publish to CDN
meoo sandbox push # Alt: push local code to cloud sandbox
meoo sandbox pull # Alt: pull sandbox code to local
meoo account # Check plan, credits, and benefitsCRITICAL: Step 2 (init) and Step 3 (projects create) MUST be done together. init only creates local files — you MUST also run projects create to create the remote project on the platform. Without this, cloud services and deployments will fail or attach to the wrong project.
Cloud services are OPTIONAL — only enable when the project needs database, user auth, or file storage:
meoo cloud enable # Provision cloud services (PostgreSQL + Auth + Storage)
meoo cloud pull-env # Pull Supabase keys to local .envDo NOT run meoo cloud enable for purely frontend projects (static sites, CSS demos, calculators, etc.).
Run meoo info or meoo --json info anytime to check environment constraints.
Meoo has two independent内容路径,混淆它们是新用户最常见的问题。
meoo sandbox push 或 meoo deploy(含推送)同步到沙箱,沙箱内 dev server 实时编译运行。在 https://meoo.com/chat/<projectId> 的编辑器中预览、查看代码和文件。meoo deploy 将本地 dist/ 构建产物发布到 CDN,生成公网访问地址 https://<id>.meoo.fun。| Sandbox(沙箱测试环境) | CDN(公网访问) | |
|---|---|---|
| 用途 | 秒悟应用内预览、调试、协作 | 公网正式访问 |
| 内容 | 源码 → dev server 实时编译 | dist/ 构建产物 |
| 更新方式 | meoo sandbox push 或 meoo deploy(含推送) | meoo deploy |
| 访问入口 | https://meoo.com/chat/<projectId> | https://<id>.meoo.fun |
`meoo deploy` 流程:默认先将源码同步到沙箱(会提示确认 "是否将本地代码同步到云端沙箱?"),然后构建并发布到 CDN。在 AI/CI 非交互环境中,使用 meoo deploy --force 跳过所有确认提示并自动推送。
常见误解:meoo deploy --skip-push 只更新 CDN,不同步沙箱。结果:公网地址正常,但秒悟应用内编辑器预览为空白。这不是 bug — 两个系统独立运作。
规则:如果用户需要在秒悟应用内预览或协作,源码必须通过 meoo sandbox push 或 meoo deploy(不加 --skip-push)同步到沙箱。
If the user already has a project (React/Vue SPA) and wants to deploy it on Meoo, do NOT run meoo init. Read references/migration.md for the complete migration flow: compatibility check, build config adaptation (Vite/Webpack), hash routing switch, pnpm migration, backend-to-Edge-Function conversion, and pre-deploy checklist.
For pre-built HTML/CSS/JS that doesn't need a build step:
meoo projects create "My Static Page"mkdir -p dist && cp your-page.html dist/index.htmlmeoo deploy --skip-buildThis publishes to CDN only. Editor preview/code will be empty — this is expected for static-only deploys.
Note: The "NEVER use a single HTML file" constraint applies only to projects developed on the platform (using templates). Static page publishing is a supported lightweight path.
Violating ANY of these will break the project. These apply to ALL templates and migrated projects.
Dev server MUST run on port 3015 with strictPort: true and host: '0.0.0.0'. This is the only port exposed by the Meoo preview system. All templates are pre-configured — never modify the port config.
NEVER start Express, Koa, Fastify, Flask, Django, FastAPI, or any backend server. Use Meoo Cloud instead:
| Need | Solution |
|---|---|
| Database | meoo db query / @supabase/supabase-js |
| API endpoints | Edge Functions (meoo fn deploy) |
| Authentication | Supabase Auth |
| File storage | Supabase Storage |
| Environment variables | meoo secrets set |
| Real-time data | Supabase Realtime |
dist/dist/index.html./assets/These values are hardcoded in vite.config / webpack.config. Changing base, outDir, assetsDir, or assetsInlineLimit will break OSS deployment and preview.
Hash routing ONLY. Use createHashRouter (React), createWebHashHistory (Vue). Never use history mode — CDN serves static files without server-side routing.
All navigation MUST be implemented as URL routes first, then UI. Every tab/page needs a Route definition. (MANDATORY)
Use pnpm exclusively. Never use npm or yarn — they create lock file conflicts.
MUST create a standard multi-file SPA application. NEVER use a single HTML file for the entire app.
lucide-react or inline SVG.src/assets/ and referenced via one of two Vite-supported methods:import hero from "@/assets/hero.png" then <img src={hero} /><img src={new URL('/assets/hero.png', import.meta.url).href} />/home/user-files/ or /home/project/assets/) directly in <img src> or CSS url() — Vite/webpack cannot resolve them at build time.<link href="fonts.googleapis.com">). Use @fontsource instead: pnpm add @fontsource-variable/inter // main.tsx or main.ts top-level
import "@fontsource-variable/inter";For react-design template: if tsc reports TS2307 on font imports, add declare module "@fontsource-variable/*"; to a .d.ts file in src/types/ (this is pre-configured in new projects).
pnpm run dev before delivering to verify zero compilation errors.All commands support --json for structured output. Run meoo <command> --help for details.
meoo login # Browser-based login (recommended, opens browser for authorization)
meoo login --ak <key> # Login with API Key (for CI/CD or manual setup)
meoo logout # Clear credentials
meoo whoami # Current user info + plan tier
meoo account # Full account info: plan, benefits, creditsmeoo login (without --ak) opens the browser for one-click authorization. The server auto-creates an API Key and the CLI saves it locally. For CI/CD environments, use --ak or set MEOO_API_KEY / MEOO_API_URL environment variables.
meoo account shows your plan tier (FREE/PRO/MAX), credit balance (available, granted, consumed), and detailed benefit quotas (cloud instances, storage, projects, etc.).
Project binding is per-directory — each project directory has its own .env with MEOO_PROJECT_URL_ID. There is no global "current project". Switching directories switches projects automatically.
meoo projects list # List projects (▸ = bound to current directory)
meoo projects create [name] # Create project and bind to current directory (.env)
meoo projects use <urlId> # Bind existing project to current directory (.env)
meoo projects current # Show project bound to current directoryIf a command fails with NO_PROJECT_BOUND, run meoo projects use <urlId> in the target directory first.
meoo init --list # List available templates
meoo init <template> # Initialize in current (empty) directory| Template | Stack | Key rules |
|---|---|---|
react-project | React 18 + Webpack 5 + Tailwind 3 | No scss/sass/esbuild |
react-vite-project | React 18 + Vite 5 + Tailwind 3 | No scss/sass, don't modify vite.config |
react-design | React 19 + Vite 7 + shadcn/ui + TanStack Router | Do NOT reinstall Radix, use @ path alias |
vue-project | Vue 3 + Vite 5 + Pinia | No third-party UI/icon libs at all |
taro-project | Taro 4 + React + Zustand | No native HTML tags, no arbitrary values |
See references/templates.md for full template-specific constraints.
meoo cloud enable # Provision PostgreSQL + Auth + Storage + Realtime
meoo cloud status # Check status
meoo cloud pull-env # Pull Supabase keys to .env
meoo cloud enable-register-login --providers <type> # Enable email/SMS verification authAfter cloud enable, the CLI shows your current cloud service quota, storage usage, and available credits. It also warns that deploying AI services consumes credits. Always run pull-env next to sync connection info locally. The .env tracks which project it belongs to via MEOO_PROJECT_URL_ID.
IMPORTANT — Quota / entitlement errors: If cloud enable or any cloud command fails with QUOTA_EXCEEDED, STORAGE_EXCEEDED, or similar entitlement errors, you MUST:
enable-register-login activates email/SMS verification + password auth. Provider types: email, sms, or email,sms. Single-provider requires --confirmed-provider-set flag. This command is idempotent — if the requested providers are already enabled, it skips activation and avoids unnecessary service restart. When activation is needed, it triggers a cloud service restart — always run it LAST, after all migrations and code changes.
meoo db query "SELECT * FROM users" # Execute SQL
meoo db query --file setup.sql # From file
meoo db tables # List tables + columns
meoo db migrate --name <n> --sql <ddl> # DDL + save migration + update types--name, --sql are both required for migrate. It writes:
migrations/{timestamp}_{name}.sqlsrc/supabase/types.ts (auto-generated from DB schema)meoo fn list # List functions + secrets
meoo fn deploy <name> # Deploy from ./functions/<name>/
meoo fn deploy <name> --no-verify-jwt # Allow anonymous access
meoo fn delete <name> # Delete functionFunctions run on Deno. Entry must be index.ts. Name regex: /^[A-Za-z][A-Za-z0-9_-]*$/.
meoo secrets list # List all
meoo secrets set <KEY> <VALUE> # Set or update
meoo secrets delete <KEY> # DeleteSync code between your local machine and the cloud sandbox.
meoo sandbox push [path] # Upload local code to sandbox
meoo sandbox push --dry-run # Check status without uploading
meoo sandbox push --force # Skip confirmation prompts
meoo sandbox push --summary "changed X" # Attach change summary (for AI agent context)
meoo sandbox push --message "my commit" # Custom commit message
meoo sandbox push --no-commit # Upload without git commit
meoo sandbox pull [path] # Download code from sandbox to local
meoo sandbox pull --dry-run # List sandbox files without downloading
meoo sandbox pull --force # Skip confirmation prompts
meoo sandbox pull --output <dir> # Output to specific directoryPush safety checks (automatic before upload):
--force to skip)Pull restrictions: Free plan users cannot pull code — only push is allowed. Upgrade to PRO/MAX for code download.
Sync tracking: After each push/pull, the CLI records the sandbox HEAD commit hash locally (~/.meoo/config.json). On next push, it compares this with the current sandbox HEAD to determine if remote changes occurred since last sync.
Mock conversation: After a successful push, a conversation record is created in the project so the AI agent has context about the code change.
meoo deploy # Build + upload to CDN (prompts to push source to sandbox)
meoo deploy --force # Skip all confirmation prompts (for AI/CI)
meoo deploy --skip-build # Upload existing dist/
meoo deploy --skip-push # Skip sandbox push (CDN only, editor preview won't update)
meoo releases list # Version historyAfter successful deploy, the CLI shows the project settings URL for custom domain configuration and permission management.
meoo upgrade # Check and install latest versionThe CLI automatically checks for updates once every 24 hours. When a new version is available, a notice is shown after command output.
meoo info # Human-readable constraints
meoo --json info # JSON (for AI agent parsing)Before executing any cloud CLI command or writing cloud service code, you MUST understand the patterns. Read references/cloud-patterns.md for:
MEOO_PROJECT_API_KEY usageWhen implementing email/SMS verification + password auth (registration verification codes, login second-factor, forgot password with verification), read references/auth-verification.md BEFORE writing any auth code. This covers the Supabase API usage rules, registration state machine, and common pitfalls that cause 422/403 errors.
AI vision / image understanding and AI image generation / editing are available as platform capabilities. To integrate these features, visit meoo.com for setup and documentation.
src/supabase/client.ts and src/supabase/types.ts are auto-generated — do NOT edit them manually.MEOO_PROJECT_API_KEY MUST NEVER appear in frontend code. Always proxy through Edge Functions.&&).meoo db query/migrate --sql "..." — do not pipe .sql files.See references/templates.md for the full breakdown. Critical differences:
react-design: 46 shadcn/ui components pre-installed. Do NOT pnpm install any Radix primitives. Route files in src/routes/ using createFileRoute. src/routeTree.gen.ts is auto-generated — never edit manually. Use cva for conditional styles, not inline ternaries.
vue-project: Zero third-party UI or icon libraries allowed. No Element Plus, Ant Design Vue, Naive UI, Vuetify, or any others. Build everything from scratch with Tailwind + native HTML. Icons must be inline SVG only.
taro-project: No native HTML tags — use @tarojs/components exclusively. No Tailwind arbitrary values (w-[100px]), no peer-*/group-* modifiers, no decimal values (space-y-1.5). Bundle ≤ 2MB. TabBar needs ≥ 2 items. Use Taro.*StorageSync instead of localStorage.
| Model | ID |
|---|---|
| Qwen 3.6 Plus (default) | qwen3.6-plus |
| Kimi K2.5 | kimi-k2.5 |
| DeepSeek V3.2 | deepseek-v3.2 |
| GLM 5 | glm-5 |
| MiniMax M2.5 | MiniMax-M2.5 |
When users ask about plan differences, credit consumption, pricing, or feature availability across tiers, direct them to the plans & credits page. When users need detailed platform usage instructions beyond what this skill covers, direct them to the product documentation.
Understand these limitations before starting a project. Do NOT attempt unsupported patterns — they will fail.
meoo login opens the browser for one-click authorization. An API Key is auto-created and saved locally.meoo login --ak <key> for CI/CD or environments without a browser. AKs can be created in the Web UI (Settings → API Keys).references/cloud-patterns.md covers text-only AI chat via Edge Function.api.meoo.host directly. The MEOO_PROJECT_API_KEY must only be used server-side (in Edge Functions).stream: false, the entire response is returned at once. For chat UIs, always use stream: true.Users' apps built on Meoo have these auth options:
Basic auth (no verification code):
{username}@meoo.local internallytaro-project template)Verification auth (email/SMS verification code + password):
meoo cloud enable-register-login to activate. Read references/auth-verification.md for full implementation guide.NOT supported — do NOT attempt:
If a user asks for any unsupported login method, clearly inform them it's not available on Meoo Cloud.
meoo secrets list shows names but not values. Once set, you cannot read secret values back.meoo deploy uploads dist/ to OSS/CDN. No server-side rendering, no serverless function deployment (those go through meoo fn deploy).meoo deploy goes to production immediately. No staging/preview URLs.meoo deploy executes pnpm run build on your machine. Make sure all dependencies and build tools are installed locally.https://meoo.com.meoo account.~/.meoo/config.json. Clearing this file resets sync tracking (next push will show "first sync").meoo domains — custom domain managementmeoo open — open project in browsermeoo projects delete — delete a projectmeoo logs — edge function logs~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.