@mragentix/cli 4.2.39 → 4.2.53

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (223) hide show
  1. package/README.md +15 -6
  2. package/defaults/agents/bee.md +22 -0
  3. package/defaults/agents/db-manager.md +31 -0
  4. package/defaults/agents/deployer.md +35 -0
  5. package/defaults/agents/devops.md +36 -0
  6. package/defaults/agents/owl.md +24 -0
  7. package/defaults/agents/payments.md +29 -0
  8. package/defaults/agents/workspace.md +37 -0
  9. package/defaults/skills/act.md +65 -0
  10. package/defaults/skills/docker.md +84 -0
  11. package/defaults/skills/doppler.md +89 -0
  12. package/defaults/skills/drizzle.md +81 -0
  13. package/defaults/skills/firebase.md +83 -0
  14. package/defaults/skills/gh.md +91 -0
  15. package/defaults/skills/gws.md +72 -0
  16. package/defaults/skills/netlify.md +69 -0
  17. package/defaults/skills/prisma.md +62 -0
  18. package/defaults/skills/railway.md +69 -0
  19. package/defaults/skills/stripe.md +69 -0
  20. package/defaults/skills/supabase.md +84 -0
  21. package/defaults/skills/turso.md +78 -0
  22. package/defaults/skills/vercel.md +72 -0
  23. package/defaults/skills/wrangler.md +105 -0
  24. package/dist/cli.js +5 -5
  25. package/dist/cli.js.map +1 -1
  26. package/dist/config.d.ts.map +1 -1
  27. package/dist/config.js +4 -63
  28. package/dist/config.js.map +1 -1
  29. package/dist/core/agent-session.d.ts +1 -1
  30. package/dist/core/agent-session.d.ts.map +1 -1
  31. package/dist/core/agent-session.js +7 -7
  32. package/dist/core/agent-session.js.map +1 -1
  33. package/dist/core/agents.d.ts +9 -4
  34. package/dist/core/agents.d.ts.map +1 -1
  35. package/dist/core/agents.js +53 -8
  36. package/dist/core/agents.js.map +1 -1
  37. package/dist/core/auto-update.js +1 -1
  38. package/dist/core/auto-update.js.map +1 -1
  39. package/dist/core/compaction/compactor.d.ts +1 -1
  40. package/dist/core/compaction/compactor.d.ts.map +1 -1
  41. package/dist/core/compaction/compactor.js +1 -1
  42. package/dist/core/compaction/compactor.js.map +1 -1
  43. package/dist/core/compaction/compactor.test.js +2 -2
  44. package/dist/core/compaction/compactor.test.js.map +1 -1
  45. package/dist/core/compaction/token-estimator.d.ts +1 -1
  46. package/dist/core/compaction/token-estimator.d.ts.map +1 -1
  47. package/dist/core/event-bus.d.ts +1 -1
  48. package/dist/core/event-bus.d.ts.map +1 -1
  49. package/dist/core/extensions/types.d.ts +1 -1
  50. package/dist/core/extensions/types.d.ts.map +1 -1
  51. package/dist/core/index.d.ts +2 -3
  52. package/dist/core/index.d.ts.map +1 -1
  53. package/dist/core/index.js +2 -3
  54. package/dist/core/index.js.map +1 -1
  55. package/dist/core/mcp/client.d.ts +1 -1
  56. package/dist/core/mcp/client.d.ts.map +1 -1
  57. package/dist/core/mcp/defaults.d.ts +1 -1
  58. package/dist/core/mcp/defaults.d.ts.map +1 -1
  59. package/dist/core/model-registry.d.ts +1 -1
  60. package/dist/core/model-registry.d.ts.map +1 -1
  61. package/dist/core/process-manager.d.ts.map +1 -1
  62. package/dist/core/process-manager.js +2 -7
  63. package/dist/core/process-manager.js.map +1 -1
  64. package/dist/core/session-manager.d.ts +1 -1
  65. package/dist/core/session-manager.d.ts.map +1 -1
  66. package/dist/core/skills.d.ts +7 -1
  67. package/dist/core/skills.d.ts.map +1 -1
  68. package/dist/core/skills.js +53 -7
  69. package/dist/core/skills.js.map +1 -1
  70. package/dist/core/slash-commands.d.ts.map +1 -1
  71. package/dist/core/slash-commands.js +1 -97
  72. package/dist/core/slash-commands.js.map +1 -1
  73. package/dist/core/telegram.d.ts +19 -0
  74. package/dist/core/telegram.d.ts.map +1 -1
  75. package/dist/core/telegram.js +22 -0
  76. package/dist/core/telegram.js.map +1 -1
  77. package/dist/core/voice-transcriber.d.ts +33 -0
  78. package/dist/core/voice-transcriber.d.ts.map +1 -0
  79. package/dist/core/voice-transcriber.js +113 -0
  80. package/dist/core/voice-transcriber.js.map +1 -0
  81. package/dist/core/voice-transcriber.test.d.ts +2 -0
  82. package/dist/core/voice-transcriber.test.d.ts.map +1 -0
  83. package/dist/core/voice-transcriber.test.js +88 -0
  84. package/dist/core/voice-transcriber.test.js.map +1 -0
  85. package/dist/interactive.js +6 -6
  86. package/dist/interactive.js.map +1 -1
  87. package/dist/modes/json-mode.d.ts +1 -1
  88. package/dist/modes/json-mode.d.ts.map +1 -1
  89. package/dist/modes/json-mode.js +1 -1
  90. package/dist/modes/json-mode.js.map +1 -1
  91. package/dist/modes/print-mode.d.ts +1 -1
  92. package/dist/modes/print-mode.d.ts.map +1 -1
  93. package/dist/modes/print-mode.js +1 -1
  94. package/dist/modes/print-mode.js.map +1 -1
  95. package/dist/modes/rpc-mode.d.ts +1 -1
  96. package/dist/modes/rpc-mode.d.ts.map +1 -1
  97. package/dist/modes/rpc-mode.js +1 -1
  98. package/dist/modes/rpc-mode.js.map +1 -1
  99. package/dist/modes/serve-mode.d.ts +1 -1
  100. package/dist/modes/serve-mode.d.ts.map +1 -1
  101. package/dist/modes/serve-mode.js +41 -4
  102. package/dist/modes/serve-mode.js.map +1 -1
  103. package/dist/session.d.ts +1 -1
  104. package/dist/session.d.ts.map +1 -1
  105. package/dist/session.js +1 -8
  106. package/dist/session.js.map +1 -1
  107. package/dist/system-prompt.js +2 -2
  108. package/dist/system-prompt.js.map +1 -1
  109. package/dist/tools/bash.d.ts +1 -2
  110. package/dist/tools/bash.d.ts.map +1 -1
  111. package/dist/tools/bash.js +1 -1
  112. package/dist/tools/bash.js.map +1 -1
  113. package/dist/tools/edit.d.ts +1 -1
  114. package/dist/tools/edit.d.ts.map +1 -1
  115. package/dist/tools/enter-plan.d.ts +1 -1
  116. package/dist/tools/enter-plan.d.ts.map +1 -1
  117. package/dist/tools/exit-plan.d.ts +1 -1
  118. package/dist/tools/exit-plan.d.ts.map +1 -1
  119. package/dist/tools/exit-plan.js +2 -3
  120. package/dist/tools/exit-plan.js.map +1 -1
  121. package/dist/tools/find.d.ts +1 -1
  122. package/dist/tools/find.d.ts.map +1 -1
  123. package/dist/tools/grep.d.ts +1 -1
  124. package/dist/tools/grep.d.ts.map +1 -1
  125. package/dist/tools/index.d.ts +5 -2
  126. package/dist/tools/index.d.ts.map +1 -1
  127. package/dist/tools/index.js.map +1 -1
  128. package/dist/tools/ls.d.ts +1 -1
  129. package/dist/tools/ls.d.ts.map +1 -1
  130. package/dist/tools/plan-mode.test.js +6 -6
  131. package/dist/tools/plan-mode.test.js.map +1 -1
  132. package/dist/tools/read.d.ts +1 -1
  133. package/dist/tools/read.d.ts.map +1 -1
  134. package/dist/tools/skill.d.ts +1 -1
  135. package/dist/tools/skill.d.ts.map +1 -1
  136. package/dist/tools/subagent.d.ts +1 -1
  137. package/dist/tools/subagent.d.ts.map +1 -1
  138. package/dist/tools/task-output.d.ts +1 -1
  139. package/dist/tools/task-output.d.ts.map +1 -1
  140. package/dist/tools/task-stop.d.ts +1 -1
  141. package/dist/tools/task-stop.d.ts.map +1 -1
  142. package/dist/tools/tasks.d.ts +1 -1
  143. package/dist/tools/tasks.d.ts.map +1 -1
  144. package/dist/tools/tasks.js +1 -1
  145. package/dist/tools/tasks.js.map +1 -1
  146. package/dist/tools/web-fetch.d.ts +1 -1
  147. package/dist/tools/web-fetch.d.ts.map +1 -1
  148. package/dist/tools/web-fetch.js +1 -1
  149. package/dist/tools/web-fetch.js.map +1 -1
  150. package/dist/tools/write.d.ts +1 -1
  151. package/dist/tools/write.d.ts.map +1 -1
  152. package/dist/tools/write.js +3 -1
  153. package/dist/tools/write.js.map +1 -1
  154. package/dist/types.d.ts +1 -1
  155. package/dist/types.d.ts.map +1 -1
  156. package/dist/ui/App.d.ts +9 -3
  157. package/dist/ui/App.d.ts.map +1 -1
  158. package/dist/ui/App.js +49 -121
  159. package/dist/ui/App.js.map +1 -1
  160. package/dist/ui/activity-phrases.d.ts +10 -0
  161. package/dist/ui/activity-phrases.d.ts.map +1 -0
  162. package/dist/ui/activity-phrases.js +227 -0
  163. package/dist/ui/activity-phrases.js.map +1 -0
  164. package/dist/ui/components/ActivityIndicator.d.ts.map +1 -1
  165. package/dist/ui/components/ActivityIndicator.js +1 -225
  166. package/dist/ui/components/ActivityIndicator.js.map +1 -1
  167. package/dist/ui/components/Banner.d.ts +1 -1
  168. package/dist/ui/components/Banner.d.ts.map +1 -1
  169. package/dist/ui/components/Banner.js +7 -4
  170. package/dist/ui/components/Banner.js.map +1 -1
  171. package/dist/ui/components/InputArea.d.ts.map +1 -1
  172. package/dist/ui/components/InputArea.js +453 -39
  173. package/dist/ui/components/InputArea.js.map +1 -1
  174. package/dist/ui/components/ModelSelector.d.ts +1 -1
  175. package/dist/ui/components/ModelSelector.d.ts.map +1 -1
  176. package/dist/ui/components/PlanOverlay.d.ts.map +1 -1
  177. package/dist/ui/components/PlanOverlay.js +7 -3
  178. package/dist/ui/components/PlanOverlay.js.map +1 -1
  179. package/dist/ui/components/SkillsOverlay.d.ts.map +1 -1
  180. package/dist/ui/components/SkillsOverlay.js +6 -2
  181. package/dist/ui/components/SkillsOverlay.js.map +1 -1
  182. package/dist/ui/components/TaskOverlay.d.ts.map +1 -1
  183. package/dist/ui/components/TaskOverlay.js +8 -4
  184. package/dist/ui/components/TaskOverlay.js.map +1 -1
  185. package/dist/ui/hooks/useAgentLoop.d.ts +2 -2
  186. package/dist/ui/hooks/useAgentLoop.d.ts.map +1 -1
  187. package/dist/ui/hooks/useAgentLoop.js +3 -2
  188. package/dist/ui/hooks/useAgentLoop.js.map +1 -1
  189. package/dist/ui/hooks/useSessionManager.d.ts +2 -2
  190. package/dist/ui/hooks/useSessionManager.d.ts.map +1 -1
  191. package/dist/ui/hooks/useTerminalSize.d.ts +12 -2
  192. package/dist/ui/hooks/useTerminalSize.d.ts.map +1 -1
  193. package/dist/ui/hooks/useTerminalSize.js +27 -6
  194. package/dist/ui/hooks/useTerminalSize.js.map +1 -1
  195. package/dist/ui/hooks/useTerminalTitle.d.ts +8 -1
  196. package/dist/ui/hooks/useTerminalTitle.d.ts.map +1 -1
  197. package/dist/ui/hooks/useTerminalTitle.js +20 -23
  198. package/dist/ui/hooks/useTerminalTitle.js.map +1 -1
  199. package/dist/ui/login.d.ts +1 -1
  200. package/dist/ui/login.d.ts.map +1 -1
  201. package/dist/ui/login.js +5 -1
  202. package/dist/ui/login.js.map +1 -1
  203. package/dist/ui/plan-overlay.test.d.ts +2 -0
  204. package/dist/ui/plan-overlay.test.d.ts.map +1 -0
  205. package/dist/ui/plan-overlay.test.js +327 -0
  206. package/dist/ui/plan-overlay.test.js.map +1 -0
  207. package/dist/ui/render.d.ts +2 -2
  208. package/dist/ui/render.d.ts.map +1 -1
  209. package/dist/ui/render.js +1 -1
  210. package/dist/ui/render.js.map +1 -1
  211. package/dist/ui/sessions.d.ts.map +1 -1
  212. package/dist/ui/sessions.js +5 -1
  213. package/dist/ui/sessions.js.map +1 -1
  214. package/package.json +17 -14
  215. package/LICENSE +0 -21
  216. package/dist/core/branding.d.ts +0 -11
  217. package/dist/core/branding.d.ts.map +0 -1
  218. package/dist/core/branding.js +0 -11
  219. package/dist/core/branding.js.map +0 -1
  220. package/dist/core/update.d.ts +0 -34
  221. package/dist/core/update.d.ts.map +0 -1
  222. package/dist/core/update.js +0 -231
  223. package/dist/core/update.js.map +0 -1
@@ -0,0 +1,83 @@
1
+ ---
2
+ name: firebase
3
+ description: Firebase — hosting, Cloud Functions, Firestore, emulators, auth
4
+ ---
5
+
6
+ You are now equipped with Firebase CLI expertise.
7
+
8
+ ## Prerequisites
9
+
10
+ Ensure Firebase CLI is installed (`npm i -g firebase-tools`) and authenticated (`firebase login`). For CI: `firebase login:ci` or `firebase login --no-localhost`.
11
+
12
+ ## Project Setup
13
+
14
+ - Initialize: `firebase init` (interactive wizard for Hosting, Firestore, Functions, Emulators, etc.)
15
+ - Initialize specific feature: `firebase init hosting` / `firebase init functions` / `firebase init emulators`
16
+ - Set active project: `firebase use <project-id>`
17
+ - Add project alias: `firebase use --add` (e.g., dev, staging, prod — stored in `.firebaserc`)
18
+ - List projects: `firebase projects:list`
19
+ - Create project: `firebase projects:create <project-id> --display-name "My App"`
20
+
21
+ ## Deploying
22
+
23
+ - Deploy everything: `firebase deploy`
24
+ - Deploy only specific services (RECOMMENDED for safety):
25
+ - `firebase deploy --only hosting`
26
+ - `firebase deploy --only functions`
27
+ - `firebase deploy --only functions:myFunction` (single function)
28
+ - `firebase deploy --only firestore:rules`
29
+ - `firebase deploy --only firestore:indexes`
30
+ - `firebase deploy --only storage`
31
+ - Deploy with message: `firebase deploy --only hosting -m "v1.2.0"`
32
+ - Preview channel: `firebase hosting:channel:deploy staging` (creates temporary preview URL)
33
+ - List preview channels: `firebase hosting:channel:list`
34
+
35
+ Always use `--only` in production to avoid deploying unready changes to other services.
36
+
37
+ ## Local Development (Emulators)
38
+
39
+ - Start all configured emulators: `firebase emulators:start`
40
+ - Start specific ones: `firebase emulators:start --only auth,firestore,functions`
41
+ - Run tests against emulators: `firebase emulators:exec "npm test"`
42
+ - Persist data between sessions: `firebase emulators:start --import ./data --export-on-exit`
43
+ - Export data: `firebase emulators:export ./emulator-data`
44
+
45
+ Available emulators: auth, firestore, database, functions, hosting, pubsub, storage, eventarc.
46
+ Use `firebase emulators:start` instead of the legacy `firebase serve`.
47
+
48
+ ## Cloud Functions
49
+
50
+ - Deploy all: `firebase deploy --only functions`
51
+ - Deploy one: `firebase deploy --only functions:functionName`
52
+ - View logs: `firebase functions:log` or `firebase functions:log --only functionName`
53
+ - Delete: `firebase functions:delete functionName`
54
+ - Interactive shell: `firebase functions:shell`
55
+ - Functions v2 (Cloud Run-based) uses `defineSecret()` and `defineString()` for config.
56
+
57
+ ## Firestore
58
+
59
+ - Deploy rules: `firebase deploy --only firestore:rules`
60
+ - Deploy indexes: `firebase deploy --only firestore:indexes`
61
+ - Delete collection: `firebase firestore:delete <collection-path> --recursive`
62
+ - Always test rules in emulator before deploying.
63
+
64
+ ## Hosting
65
+
66
+ - Deploy: `firebase deploy --only hosting`
67
+ - Preview channel: `firebase hosting:channel:deploy staging`
68
+ - Disable: `firebase hosting:disable`
69
+ - Multi-site: configure in `firebase.json` under `"hosting"` as array with `"site"` keys.
70
+
71
+ ## Auth
72
+
73
+ - Export users: `firebase auth:export users.json`
74
+ - Import users: `firebase auth:import users.json --hash-algo=BCRYPT`
75
+
76
+ ## Key Gotchas
77
+
78
+ - Cloud Functions require the Blaze (pay-as-you-go) plan. Spark (free) doesn't support deploying functions.
79
+ - Emulator ports are configured in `firebase.json`. Defaults: Auth(9099), Firestore(8080), Functions(5001), Hosting(5000), UI(4000).
80
+ - Emulator data is ephemeral by default. Use `--import`/`--export-on-exit` for persistence.
81
+ - Project aliases simplify multi-environment workflows. Use `firebase use staging` to switch.
82
+ - For GitHub Actions CI: use `FirebaseExtended/action-hosting-deploy@v0`.
83
+ - Functions v2 env vars: use `defineSecret('SECRET_NAME')` + Google Cloud Secret Manager.
@@ -0,0 +1,91 @@
1
+ ---
2
+ name: gh
3
+ description: GitHub CLI — repos, PRs, issues, actions, gists, API calls
4
+ ---
5
+
6
+ You are now equipped with GitHub CLI (gh) expertise.
7
+
8
+ ## Prerequisites
9
+
10
+ Ensure gh is installed (`sudo apt install gh`) and authenticated (`gh auth login`). Check with `gh auth status`. For CI: set `GITHUB_TOKEN` env var.
11
+
12
+ ## Repositories
13
+
14
+ - Create (interactive): `gh repo create`
15
+ - Create public from current dir: `gh repo create myapp --public --source . --push`
16
+ - Create private: `gh repo create myapp --private`
17
+ - Clone: `gh repo clone owner/repo`
18
+ - Shallow clone: `gh repo clone owner/repo -- --depth 1`
19
+ - Fork: `gh repo fork owner/repo --clone`
20
+ - View in browser: `gh repo view --web`
21
+ - List repos: `gh repo list --limit 50 --json name,url`
22
+ - Delete: `gh repo delete owner/repo --yes`
23
+
24
+ ## Pull Requests
25
+
26
+ - Create (interactive): `gh pr create`
27
+ - Create with details: `gh pr create --title "Add login" --body "Implements #42"`
28
+ - Create draft: `gh pr create --draft`
29
+ - Create with reviewers: `gh pr create --title "Fix" --reviewer user1,user2`
30
+ - List: `gh pr list` / `gh pr list --author @me` / `gh pr list --label bug`
31
+ - View: `gh pr view 123` / `gh pr view 123 --web`
32
+ - Checkout locally: `gh pr checkout 123`
33
+ - Review: `gh pr review 123 --approve` / `--request-changes --body "msg"` / `--comment --body "msg"`
34
+ - Merge: `gh pr merge 123 --squash --delete-branch`
35
+ - Check CI status: `gh pr checks 123` / `gh pr checks 123 --watch`
36
+ - View diff: `gh pr diff 123`
37
+
38
+ ## Issues
39
+
40
+ - Create: `gh issue create --title "Bug" --body "Steps..." --label bug --assignee @me`
41
+ - List: `gh issue list` / `gh issue list --label enhancement --assignee @me`
42
+ - View: `gh issue view 42` / `gh issue view 42 --web`
43
+ - Close: `gh issue close 42`
44
+ - Comment: `gh issue comment 42 --body "Working on this"`
45
+
46
+ ## GitHub Actions
47
+
48
+ - List runs: `gh run list --limit 10`
49
+ - List for workflow: `gh run list --workflow ci.yml`
50
+ - View run: `gh run view <id>` / `gh run view <id> --web`
51
+ - Watch run: `gh run watch <id>`
52
+ - Re-run failed: `gh run rerun <id> --failed`
53
+ - Download artifacts: `gh run download <id>`
54
+ - Manually trigger workflow: `gh workflow run deploy.yml --ref main -f environment=staging`
55
+ - List workflows: `gh workflow list`
56
+
57
+ ## API Calls
58
+
59
+ - REST GET: `gh api repos/owner/repo`
60
+ - REST POST: `gh api repos/owner/repo/issues --method POST -f title="New" -f body="Details"`
61
+ - GraphQL: `gh api graphql -f query='{ viewer { login } }'`
62
+ - With jq filtering: `gh api repos/owner/repo --jq '.stargazers_count'`
63
+ - Paginate: `gh api repos/owner/repo/issues --paginate`
64
+
65
+ ## Gists
66
+
67
+ - Create from file: `gh gist create script.sh`
68
+ - Create public: `gh gist create --public notes.md`
69
+ - List: `gh gist list`
70
+
71
+ ## Extensions
72
+
73
+ - Install: `gh extension install dlvhdr/gh-dash`
74
+ - List installed: `gh extension list`
75
+ - Upgrade all: `gh extension upgrade --all`
76
+
77
+ ## JSON Output
78
+
79
+ Most commands support `--json` for machine-readable output:
80
+ - `gh pr list --json number,title,author`
81
+ - `gh issue list --json number,title,labels --jq '.[].title'`
82
+ - `gh repo view --json name,description,stargazerCount`
83
+
84
+ ## Key Gotchas
85
+
86
+ - Default auth scopes are minimal. Refresh for more: `gh auth refresh -s repo,read:org,workflow`
87
+ - Inside a git repo, gh infers owner/repo from remotes. Override with `--repo owner/repo`.
88
+ - Use `GH_PAGER=cat` to disable pager for scripting.
89
+ - `gh api` handles auth automatically — use it for any REST/GraphQL endpoint.
90
+ - Useful aliases: `gh alias set prc 'pr create --fill'`
91
+ - Set secrets: `gh secret set KEY < value.txt` for GitHub Actions secrets.
@@ -0,0 +1,72 @@
1
+ ---
2
+ name: gws
3
+ description: Google Workspace CLI — Drive, Gmail, Sheets, Calendar, Chat operations
4
+ ---
5
+
6
+ You are now equipped with Google Workspace CLI (gws) expertise.
7
+
8
+ ## Prerequisites
9
+
10
+ Ensure gws is installed (`npm i -g @anthropic-ai/gws`), authenticated (`gws auth login`), and a Google Cloud project with OAuth credentials is configured. Check with `gws auth status`.
11
+
12
+ ## Auth
13
+
14
+ - Login with specific scopes: `gws auth login -s drive,gmail,sheets,calendar`
15
+ - Login with all scopes: `gws auth login -s drive,gmail,sheets,calendar,chat,admin,docs`
16
+ - Check status: `gws auth status`
17
+ - Logout: `gws auth logout`
18
+
19
+ ## Drive
20
+
21
+ - List files: `gws drive list`
22
+ - Search: `gws drive list --query "name contains 'report'"`
23
+ - Download: `gws drive download <file-id>`
24
+ - Upload: `gws drive upload ./file.pdf`
25
+ - Create folder: `gws drive create-folder "Project Assets"`
26
+ - Move file: `gws drive move <file-id> --to <folder-id>`
27
+ - Delete: `gws drive delete <file-id>`
28
+
29
+ ## Sheets
30
+
31
+ - Read sheet: `gws sheets get <spreadsheet-id>`
32
+ - Read specific range: `gws sheets get <spreadsheet-id> --range "Sheet1!A1:D10"`
33
+ - Write data: `gws sheets update <spreadsheet-id> --range "Sheet1!A1" --values '[["Name","Score"],["Alice",95]]'`
34
+ - Append rows: `gws sheets append <spreadsheet-id> --range "Sheet1" --values '[["Bob",88]]'`
35
+ - Create new spreadsheet: `gws sheets create "Budget 2025"`
36
+
37
+ ## Gmail
38
+
39
+ - List recent messages: `gws gmail list`
40
+ - Search: `gws gmail list --query "from:boss@company.com is:unread"`
41
+ - Read message: `gws gmail get <message-id>`
42
+ - Send email: `gws gmail send --to user@example.com --subject "Hello" --body "Message body"`
43
+ - Search with filters: `gws gmail search "has:attachment after:2024/01/01"`
44
+
45
+ ## Calendar
46
+
47
+ - List upcoming events: `gws calendar list`
48
+ - List in date range: `gws calendar list --start 2025-01-01 --end 2025-01-31`
49
+ - Create event: `gws calendar create --title "Team Standup" --start "2025-01-15T09:00:00" --end "2025-01-15T09:30:00"`
50
+ - Delete event: `gws calendar delete <event-id>`
51
+
52
+ ## Chat
53
+
54
+ - List spaces: `gws chat spaces`
55
+ - Send message: `gws chat send --space <space-id> --text "Hello team"`
56
+ - List messages: `gws chat messages --space <space-id>`
57
+
58
+ ## Utilities
59
+
60
+ - Inspect API schemas: `gws schema`
61
+ - Dry-run mode: `gws drive list --dry-run`
62
+ - Auto-paginate: `gws drive list --page-all`
63
+ - JSON output: `gws drive list --json`
64
+
65
+ ## Key Gotchas
66
+
67
+ - Requires a Google Cloud project with appropriate APIs enabled and OAuth credentials.
68
+ - Only request scopes you need. Google enforces 25-scope limit for unverified apps.
69
+ - Tokens refresh automatically but revoked access requires re-login.
70
+ - Use `--dry-run` before destructive operations.
71
+ - Use `--page-all` carefully on large datasets — many API calls without automatic backoff.
72
+ - Sheets can serve as a lightweight database for prototypes and dashboards.
@@ -0,0 +1,69 @@
1
+ ---
2
+ name: netlify
3
+ description: Deploy to Netlify — functions, forms, edge, preview URLs
4
+ ---
5
+
6
+ You are now equipped with Netlify CLI expertise. Use this knowledge to deploy and manage Netlify projects.
7
+
8
+ ## Prerequisites
9
+
10
+ Ensure Netlify CLI is installed (`npm i -g netlify-cli`) and authenticated (`netlify login`). Check with `netlify status`.
11
+
12
+ ## Deploying
13
+
14
+ - For a **draft/preview deployment**: `netlify deploy` — creates a unique preview URL.
15
+ - For **production**: `netlify deploy --prod`
16
+ - Deploy a specific directory (skip build): `netlify deploy --dir build --no-build`
17
+ - Deploy with functions: `netlify deploy --functions my-functions`
18
+ - Add a deploy message: `netlify deploy --message "Release v1.2.3"`
19
+ - Deploy and open in browser: `netlify deploy --prod --open`
20
+ - Trigger remote build without uploading: `netlify deploy --trigger`
21
+ - For CI: `netlify deploy --prod --auth $NETLIFY_AUTH_TOKEN --site $NETLIFY_SITE_ID`
22
+
23
+ ## Project Setup
24
+
25
+ - Initialize continuous deployment: `netlify init`
26
+ - Link to existing project: `netlify link`
27
+ - Unlink: `netlify unlink`
28
+ - Start local dev server: `netlify dev` (auto-detects framework)
29
+ - Dev with custom command: `netlify dev -c "hugo server -w" --target-port 1313`
30
+ - Public live session with tunnel URL: `netlify dev --live`
31
+ - Build locally like Netlify: `netlify build`
32
+
33
+ ## Functions
34
+
35
+ - Create a function from template: `netlify functions:create --name my-function`
36
+ - List functions: `netlify functions:list`
37
+ - Test locally during dev: `netlify functions:invoke my-function --payload '{"key":"value"}'`
38
+ - Build functions: `netlify functions:build`
39
+
40
+ ## Environment Variables
41
+
42
+ - List all: `netlify env:list`
43
+ - Get: `netlify env:get MY_VAR`
44
+ - Set: `netlify env:set MY_VAR "value"`
45
+ - Remove: `netlify env:unset MY_VAR`
46
+ - Import from file: `netlify env:import .env`
47
+ - Clone to another project: `netlify env:clone --to <target-id>`
48
+
49
+ ## Logs
50
+
51
+ - Deploy build logs: `netlify logs:deploy`
52
+ - Function logs: `netlify logs:function` or `netlify logs:function my-function`
53
+
54
+ ## Sites
55
+
56
+ - Create: `netlify sites:create --name my-site`
57
+ - List: `netlify sites:list`
58
+ - Open dashboard: `netlify open` / `netlify open:admin`
59
+ - Watch deploy finish: `netlify watch`
60
+
61
+ ## Key Gotchas
62
+
63
+ - `netlify deploy` = draft. `netlify deploy --prod` = production. Drafts are great for QA.
64
+ - Functions directory defaults to `netlify/functions/`. Override in `netlify.toml` or with `--functions`.
65
+ - Edge Functions live in `netlify/edge-functions/` (Deno-based). Debug with `netlify dev --edge-inspect`.
66
+ - `netlify.toml` is the primary config: build commands, redirects, headers, plugins.
67
+ - Context-aware env vars: use `--context production|deploy-preview|branch-deploy|dev`.
68
+ - `netlify serve` builds for production and serves locally (unlike `netlify dev`, no watch).
69
+ - Monorepo: use `--filter <app>` on most commands.
@@ -0,0 +1,62 @@
1
+ ---
2
+ name: prisma
3
+ description: Prisma — schema management, migrations, generate client, studio
4
+ ---
5
+
6
+ You are now equipped with Prisma CLI expertise.
7
+
8
+ ## Prerequisites
9
+
10
+ Ensure Prisma is installed (`npm i -D prisma @prisma/client`) and `DATABASE_URL` is set in `.env`. Use `npx prisma` to run commands.
11
+
12
+ ## Project Setup
13
+
14
+ - Initialize: `npx prisma init` (creates `prisma/schema.prisma` + `.env`)
15
+ - With specific DB: `npx prisma init --datasource-provider postgresql` (mysql|postgresql|sqlite|sqlserver|mongodb)
16
+ - Validate schema: `npx prisma validate`
17
+ - Format schema: `npx prisma format`
18
+
19
+ ## Local Development Workflow
20
+
21
+ 1. Edit `prisma/schema.prisma` to define/change models
22
+ 2. Create and apply migration: `npx prisma migrate dev --name <descriptive_name>`
23
+ 3. Generate client: `npx prisma generate` (happens automatically with migrate dev)
24
+ 4. Open data browser: `npx prisma studio` (port 5555)
25
+
26
+ For rapid prototyping (no migration files): `npx prisma db push`
27
+
28
+ ## Migrations
29
+
30
+ - Create + apply (dev only): `npx prisma migrate dev --name add_user_table`
31
+ - Apply pending in production: `npx prisma migrate deploy` (NEVER use migrate dev in production)
32
+ - Check status: `npx prisma migrate status`
33
+ - Reset database (DESTRUCTIVE): `npx prisma migrate reset`
34
+ - Resolve failed migration: `npx prisma migrate resolve --applied <migration_id>`
35
+ - Diff two schemas: `npx prisma migrate diff --from-url "$DB_URL" --to-url "$SHADOW_URL" --script`
36
+ - Execute raw SQL: `npx prisma db execute --stdin < migration.sql`
37
+
38
+ ## Database Operations
39
+
40
+ - Push schema (no migration): `npx prisma db push`
41
+ - Pull/introspect existing DB: `npx prisma db pull`
42
+ - Seed: `npx prisma db seed`
43
+ - Generate client: `npx prisma generate`
44
+ - Watch mode: `npx prisma generate --watch`
45
+
46
+ ## Production Deploy
47
+
48
+ Always use `npx prisma migrate deploy` in CI/production. This only applies existing migration files — never creates new ones. Add `prisma generate` to your build command or `postinstall` script:
49
+ ```json
50
+ { "scripts": { "postinstall": "prisma generate" } }
51
+ ```
52
+
53
+ ## Key Gotchas
54
+
55
+ - `migrate dev` = local development (creates files + applies + generates). `migrate deploy` = CI/production (applies only).
56
+ - Shadow database required for `migrate dev`. For cloud DBs (Supabase, PlanetScale), set `shadowDatabaseUrl` or use `db push`.
57
+ - Always run `prisma generate` after schema changes or pulling repo.
58
+ - Schema defaults to `prisma/schema.prisma`. Use `--schema` flag to override.
59
+ - `db push` vs `migrate dev`: push = rapid prototyping (no history). migrate dev = migration history for production.
60
+ - For Supabase: use direct connection (port 5432) for migrations, pooled (port 6543) for runtime.
61
+ - For PlanetScale: add `relationMode = "prisma"` (no foreign keys) and use `db push`.
62
+ - For serverless (Vercel): use Prisma Accelerate or connection pooler.
@@ -0,0 +1,69 @@
1
+ ---
2
+ name: railway
3
+ description: Railway — deploy apps, manage services, env vars, logs, databases
4
+ ---
5
+
6
+ You are now equipped with Railway CLI expertise.
7
+
8
+ ## Prerequisites
9
+
10
+ Ensure Railway CLI is installed (`npm i -g @railway/cli` or `brew install railway`) and authenticated (`railway login`). Check with `railway whoami`.
11
+
12
+ ## Project Setup
13
+
14
+ - Create new project: `railway init`
15
+ - Link to existing project: `railway link`
16
+ - Link specific project/environment: `railway link --project <id> --environment <env-name>`
17
+ - Check current context: `railway status`
18
+
19
+ ## Deploying
20
+
21
+ - Deploy current directory: `railway up`
22
+ - Deploy with Dockerfile: `railway up --dockerfile ./Dockerfile`
23
+ - Deploy and detach: `railway up --detach`
24
+ - Redeploy: `railway redeploy`
25
+ - Redeploy with no cache: `railway redeploy --no-cache`
26
+
27
+ Railway auto-detects the build system using Nixpacks (Node.js, Python, Go, Rust, Java, Ruby, PHP). If a Dockerfile exists, it takes priority over Nixpacks.
28
+
29
+ ## Environment Variables
30
+
31
+ - List all: `railway variables`
32
+ - Set: `railway variables set KEY=value`
33
+ - Set multiple: `railway variables set KEY1=value1 KEY2=value2`
34
+ - Delete: `railway variables delete KEY`
35
+ - Open in browser: `railway open`
36
+
37
+ ## Logs
38
+
39
+ - Stream live logs: `railway logs`
40
+ - Follow in real time: `railway logs --follow`
41
+ - Deployment logs: `railway logs --deployment`
42
+
43
+ ## Services & Commands
44
+
45
+ - List services: `railway service`
46
+ - Add service/database: `railway add`
47
+ - Open shell with env vars: `railway shell`
48
+ - Run command with Railway env vars injected: `railway run <command>`
49
+ - Example — run migrations: `railway run npx prisma migrate deploy`
50
+ - Example — open Prisma Studio: `railway run npx prisma studio`
51
+
52
+ `railway run` is extremely useful — it injects all Railway env vars into your local command without copying connection strings.
53
+
54
+ ## Domains & Volumes
55
+
56
+ - Generate railway.app domain: `railway domain`
57
+ - Add persistent volume: `railway volume`
58
+ - List volumes: `railway volume --list`
59
+ - Custom domains are configured via the dashboard.
60
+
61
+ ## Key Gotchas
62
+
63
+ - Every command operates against current linked project/environment. Check with `railway status`.
64
+ - Dockerfile takes priority over Nixpacks. Remove Dockerfile to force Nixpacks.
65
+ - Multiple environments supported (production, staging). Switch with `railway link --environment <name>`.
66
+ - Services communicate internally via `<service>.railway.internal` DNS.
67
+ - For CI: use `railway login --browserless` with `RAILWAY_TOKEN`.
68
+ - Monorepo: set `RAILWAY_ROOT_DIRECTORY` for each service.
69
+ - If start command isn't detected, set `RAILWAY_START_COMMAND` variable.
@@ -0,0 +1,69 @@
1
+ ---
2
+ name: stripe
3
+ description: Stripe CLI — webhook forwarding, event triggers, API logs, resource management
4
+ ---
5
+
6
+ You are now equipped with Stripe CLI expertise.
7
+
8
+ ## Prerequisites
9
+
10
+ Ensure Stripe CLI is installed and authenticated (`stripe login`). Check with `stripe status`. CLI defaults to test mode (`sk_test_` keys).
11
+
12
+ ## Webhook Forwarding (Local Development)
13
+
14
+ This is the most common use case:
15
+
16
+ - Forward all events: `stripe listen --forward-to localhost:3000/api/webhooks`
17
+ - Forward specific events only: `stripe listen --events payment_intent.succeeded,checkout.session.completed --forward-to localhost:3000/api/webhooks`
18
+ - Forward Connect events: `stripe listen --forward-connect-to localhost:3000/api/connect-webhooks`
19
+
20
+ **IMPORTANT:** `stripe listen` prints a webhook signing secret (`whsec_...`). Your app MUST use this secret (not the Dashboard secret) to verify signatures during local dev. Set it as: `STRIPE_WEBHOOK_SECRET=whsec_xxx`
21
+
22
+ ## Triggering Test Events
23
+
24
+ - Trigger an event: `stripe trigger payment_intent.succeeded`
25
+ - Common events to trigger:
26
+ - `stripe trigger checkout.session.completed`
27
+ - `stripe trigger customer.subscription.created`
28
+ - `stripe trigger invoice.payment_failed`
29
+ - List all available events: `stripe trigger --list`
30
+
31
+ Note: `stripe trigger` creates real test-mode objects. Running it multiple times creates duplicates. Use `stripe fixtures` for repeatable seeding.
32
+
33
+ ## API Log Streaming
34
+
35
+ - Tail API logs: `stripe logs tail`
36
+ - Filter by status: `stripe logs tail --filter-status-code 400`
37
+ - Filter by method: `stripe logs tail --filter-http-method POST`
38
+ - Filter by path: `stripe logs tail --filter-request-path /v1/charges`
39
+
40
+ ## Resource Management (CRUD)
41
+
42
+ - Create customer: `stripe customers create --name "Jane Doe" --email jane@example.com`
43
+ - List customers: `stripe customers list --limit 5`
44
+ - Retrieve: `stripe customers retrieve cus_xxx`
45
+ - Update: `stripe customers update cus_xxx --name "Jane Smith"`
46
+ - Delete: `stripe customers delete cus_xxx`
47
+ - Create payment intent: `stripe payment_intents create --amount 2000 --currency usd`
48
+ - List all resource types: `stripe resources`
49
+
50
+ ## Fixtures & Samples
51
+
52
+ - Run a fixture file: `stripe fixtures fixtures/seed.json`
53
+ - List sample integrations: `stripe samples list`
54
+ - Clone a sample: `stripe samples create accept-a-payment`
55
+
56
+ ## Auth
57
+
58
+ - Interactive login: `stripe login`
59
+ - Login with API key (CI): `stripe login --api-key sk_test_xxx`
60
+ - Show config: `stripe config --list`
61
+
62
+ ## Key Gotchas
63
+
64
+ - CLI defaults to test mode. Use `--live` for live mode. Never forward live webhooks to localhost.
65
+ - Webhook signing secret changes every `stripe listen` session. Update your app's env var each time.
66
+ - For CI/CD: create a restricted API key with minimal permissions, use `stripe login --api-key rk_test_xxx`.
67
+ - Pairing code auth expires in 60 seconds.
68
+ - Override API version: `--api-version 2023-10-16`
69
+ - Use `stripe fixtures` instead of `stripe trigger` for repeatable, idempotent test data.
@@ -0,0 +1,84 @@
1
+ ---
2
+ name: supabase
3
+ description: Supabase — local dev, migrations, auth, edge functions, storage, type generation
4
+ ---
5
+
6
+ You are now equipped with Supabase CLI expertise.
7
+
8
+ ## Prerequisites
9
+
10
+ Ensure Supabase CLI is installed (`npm i -g supabase` or `npx supabase`), authenticated (`supabase login`), and Docker is running (required for local dev).
11
+
12
+ ## Project Setup
13
+
14
+ - Initialize: `supabase init` (creates `supabase/` directory with `config.toml` and `migrations/`)
15
+ - Link to remote project: `supabase link --project-ref <project-id>` (project ref is in dashboard URL)
16
+ - Unlink: `supabase unlink`
17
+
18
+ ## Local Development
19
+
20
+ - Start all local services: `supabase start` (runs Postgres, Auth, Storage, PostgREST, Realtime, Edge Functions, Studio in Docker)
21
+ - Check status and get local URLs/keys: `supabase status`
22
+ - Stop: `supabase stop`
23
+ - Stop and reset all data: `supabase stop --no-backup`
24
+ - Reset database to current migrations: `supabase db reset` (DESTRUCTIVE — drops and recreates)
25
+
26
+ ## Migrations
27
+
28
+ - Create new migration: `supabase migration new <name>`
29
+ - Apply pending migrations locally: `supabase migration up`
30
+ - Roll back last N: `supabase migration down --count <n>`
31
+ - List migration status: `supabase migration list`
32
+ - Squash migrations: `supabase migration squash`
33
+
34
+ ## Database Operations
35
+
36
+ - Push migrations to remote: `supabase db push`
37
+ - Pull remote schema into local migration: `supabase db pull`
38
+ - Auto-generate migration from local changes: `supabase db diff --schema public -f <migration_name>`
39
+ - Run SQL query: `supabase db query 'SELECT * FROM my_table LIMIT 10'`
40
+ - Dump schema: `supabase db dump --schema public`
41
+ - Lint database: `supabase db lint`
42
+
43
+ **Key distinction:** `db push` = apply to REMOTE. `migration up` = apply LOCALLY.
44
+
45
+ ## Edge Functions
46
+
47
+ - Create: `supabase functions new <name>` (creates `supabase/functions/<name>/index.ts`)
48
+ - Serve locally (hot-reload): `supabase functions serve`
49
+ - Deploy one: `supabase functions deploy <name>`
50
+ - Deploy all: `supabase functions deploy`
51
+ - List deployed: `supabase functions list`
52
+ - Delete: `supabase functions delete <name>`
53
+
54
+ ## Type Generation
55
+
56
+ - From local schema: `supabase gen types typescript --local > src/types/database.ts`
57
+ - From remote: `supabase gen types typescript --linked > src/types/database.ts`
58
+ - Specific schemas: `supabase gen types typescript --local --schema public,auth`
59
+
60
+ Run this after every schema change to keep TypeScript types in sync.
61
+
62
+ ## Storage
63
+
64
+ - List objects: `supabase storage ls ss:///bucket-name/path/`
65
+ - Upload: `supabase storage cp ./file.png ss:///bucket/path/file.png`
66
+ - Download: `supabase storage cp ss:///bucket/path/file.png ./file.png`
67
+ - Delete: `supabase storage rm ss:///bucket/path/file.png`
68
+ - Target local storage: add `--local` flag
69
+
70
+ ## Secrets (Edge Function env vars)
71
+
72
+ - List: `supabase secrets list`
73
+ - Set: `supabase secrets set MY_KEY=value ANOTHER=value2`
74
+ - Unset: `supabase secrets unset MY_KEY`
75
+
76
+ ## Key Gotchas
77
+
78
+ - Docker MUST be running before `supabase start`.
79
+ - Always `supabase link` before any remote command (`db push`, `db pull`, `migration list`).
80
+ - `supabase db diff -f <name>` is the easiest way to create migrations — make changes, then diff.
81
+ - `supabase db reset` drops everything locally and replays migrations + seeds.
82
+ - Secrets are for Edge Functions, not the database.
83
+ - Use `--schema public,auth,storage` to target specific schemas on diff/dump/gen.
84
+ - Most commands support `-o json` for scripting.
@@ -0,0 +1,78 @@
1
+ ---
2
+ name: turso
3
+ description: Turso — edge SQLite databases, replicas, groups, tokens
4
+ ---
5
+
6
+ You are now equipped with Turso CLI expertise.
7
+
8
+ ## Prerequisites
9
+
10
+ Ensure Turso CLI is installed (`curl -sSfL https://get.tur.so/install.sh | bash` or `brew install tursodatabase/tap/turso`) and authenticated (`turso auth login`).
11
+
12
+ ## Database Management
13
+
14
+ - Create database: `turso db create mydb`
15
+ - Create in specific group: `turso db create mydb --group us-east`
16
+ - Create from SQLite file: `turso db create mydb --from-file ./local.db`
17
+ - List databases: `turso db list`
18
+ - Show details (URL, regions, size): `turso db show mydb`
19
+ - Get connection URL only: `turso db show mydb --url`
20
+ - Get HTTP URL: `turso db show mydb --http-url`
21
+ - Delete: `turso db destroy mydb`
22
+
23
+ ## Interactive Shell
24
+
25
+ - Open SQL shell: `turso db shell mydb`
26
+ - Execute single statement: `turso db shell mydb "SELECT * FROM users;"`
27
+ - Execute from file: `turso db shell mydb < schema.sql`
28
+
29
+ ## Database Tokens
30
+
31
+ - Create auth token: `turso db tokens create mydb`
32
+ - Read-only token: `turso db tokens create mydb --read-only`
33
+ - Token with expiration: `turso db tokens create mydb --expiration 7d`
34
+ - Long-lived token: `turso db tokens create mydb --expiration none`
35
+ - Invalidate all tokens: `turso db tokens invalidate mydb`
36
+
37
+ Store tokens as `TURSO_AUTH_TOKEN` in your environment.
38
+
39
+ ## Groups & Replicas
40
+
41
+ - Create group: `turso group create us-group --location iad`
42
+ - Add replica location: `turso group locations add us-group ord`
43
+ - Remove replica: `turso group locations remove us-group ord`
44
+ - Show group details: `turso group show us-group`
45
+ - List groups: `turso group list`
46
+ - List all available locations: `turso db locations`
47
+ - Delete group: `turso group destroy us-group`
48
+
49
+ ## Production Setup Pattern
50
+
51
+ ```bash
52
+ turso group create prod --location iad
53
+ turso group locations add prod lhr # London
54
+ turso group locations add prod nrt # Tokyo
55
+ turso db create prod-db --group prod
56
+ turso db tokens create prod-db --expiration none
57
+ turso db show prod-db --url
58
+ ```
59
+
60
+ ## Auth
61
+
62
+ - Login: `turso auth login`
63
+ - Signup: `turso auth signup`
64
+ - Check status: `turso auth whoami`
65
+ - Get API token: `turso auth token`
66
+ - Logout: `turso auth logout`
67
+
68
+ ## Key Gotchas
69
+
70
+ - Connection URLs use `libsql://` protocol: `libsql://dbname-orgname.turso.io`
71
+ - Writes go to primary; reads served from nearest replica.
72
+ - Database tokens are separate from CLI login. Generate with `turso db tokens create`.
73
+ - For local dev, use `file:local.db` URL with `@libsql/client` or run local libSQL server.
74
+ - `--from-file` is great for seeding databases from SQLite files.
75
+ - Embedded replicas give lowest latency — sync local SQLite with `syncUrl`.
76
+ - For Drizzle: `dialect: "turso"` in drizzle.config.ts.
77
+ - For Prisma: use `@prisma/adapter-libsql` with `driverAdapters` preview feature.
78
+ - For Cloudflare Workers: use `@libsql/client/web` (HTTP transport).