using-cli-tools
Enforces CLI tool usage over web dashboards for reproducibility and scriptability. Use when working with Git/GitHub, Supabase, Vercel, Netlify, Cloudflare, AWS, Stripe, Prisma, Docker, or any cloud service. Triggers on deployments, database operations, migrations, PRs, issues, webhooks, or environment management.
Works with
--- name: using-cli-tools description: Enforces CLI tool usage over web dashboards for reproducibility and scriptability. Use when working with Git/GitHub, Supabase, Vercel, Netlify, Cloudflare, AWS, Stripe, Prisma, Docker, or any cloud service. Triggers on deployments, database operations, migrations, PRs, issues, webhooks, or environment management. license: MIT --- # Using CLI Tools Prefer CLI tools over web dashboards. CLIs are scriptable, reproducible, and keep developers in flow. **Principle**: If a CLI exists for a service, use it. Only fall back to web UI when the CLI genuinely can't do the task. ## Quick Reference | Category | Tools | |----------|-------| | Hosting | `vercel`, `netlify`, `wrangler`, `railway`, `flyctl` | | Backend/DB | `supabase`, `prisma`, `aws` | | Payments | `stripe` | | Dev Tools | `gh`, `docker compose`, `ngrok`, `turbo` | ## Git & GitHub (`gh`) ```bash gh pr create --title "feat: add auth" --body "..." gh pr list --state open gh pr checkout 123 gh pr merge --squash gh issue create --title "Bug" --label bug gh run list gh run view 12345 --log ``` ## Supabase (`supabase`) ```bash supabase link --project-ref <ref> supabase db push supabase db pull supabase migration new <name> supabase functions deploy <name> supabase gen types typescript --linked > types/supabase.ts ``` ## Vercel (`vercel`) ```bash vercel # preview deploy vercel --prod # production deploy vercel env pull .env.local vercel logs <url> ``` ## Netlify (`netlify`) ```bash netlify init netlify dev # local dev server with functions netlify deploy # draft deploy netlify deploy --prod netlify env:set KEY value netlify functions:serve ``` ## Cloudflare (`wrangler`) ```bash wrangler init wrangler dev # local dev wrangler deploy wrangler pages deploy ./dist wrangler kv:namespace create <name> wrangler r2 bucket create <name> wrangler secret put <name> ``` ## Prisma (`prisma`) ```bash npx prisma init npx prisma generate # generate client npx prisma db push # sync schema (dev) npx prisma migrate dev # create migration npx prisma migrate deploy npx prisma studio # visual editor ``` ## Stripe (`stripe`) ```bash stripe login stripe listen --forward-to localhost:3000/api/webhooks stripe trigger payment_intent.succeeded stripe logs tail stripe products create --name="Pro Plan" ``` ## Docker (`docker compose`) ```bash docker compose up -d docker compose logs -f <service> docker compose exec <service> sh docker compose down docker compose build --no-cache ``` ## Package Manager Detection Respect the project's lock file: - `package-lock.json` → `npm` - `pnpm-lock.yaml` → `pnpm` - `yarn.lock` → `yarn` - `bun.lockb` → `bun` Never mix package managers in the same project. ## Additional Tools For less common but useful CLIs, see [ADDITIONAL-TOOLS.md](ADDITIONAL-TOOLS.md): - AWS CLI basics - Railway, Fly.io - ngrok, Turborepo - Database CLIs (Planetscale, Neon) ## When CLI Unavailable If a task requires the web UI (e.g., enabling a Supabase extension), note this explicitly with the exact navigation path.
More API Design skills
lark-event
larksuite/cli
Lark/Feishu real-time event listening / subscribing / consuming: stream events as NDJSON via `lark-cli event consume <EventKey>` (covers IM messages/reactions/chat changes, Approval status changes, Task updates, VC meeting started/joined/ended, Minutes generated, Whiteboard updated, etc.). Use for Lark bots, real-time message processing, long-running subscribers, streaming webhook/push handlers. Supports `--max-events` / `--timeout` bounded runs and a stderr ready-marker contract — designed for AI agents running as subprocesses.
lark-contact
larksuite/cli
飞书 / Lark 通讯录:按姓名 / 邮箱解析成 open_id,或按 open_id 反查姓名 / 部门 / 邮箱 / 联系方式 / 个人状态 / 签名,以及按关键词搜索当前用户可见的机器人 / 智能体(agent)。当用户提到一个名字要下一步发消息 / 排日程,或拿到 open_id 想查具体信息时使用。不负责部门树遍历、按部门列员工、组织架构图,这类需求走原生 OpenAPI。
lark-openapi-explorer
larksuite/cli
飞书/Lark 原生 OpenAPI 探索:从官方文档库中挖掘未经 CLI 封装的原生 OpenAPI 接口。当用户的需求无法被现有 lark-* skill 或 lark-cli 已注册命令满足,需要查找并调用原生飞书 OpenAPI 时使用。

