create-claude-code-visualizer 0.1.0

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 (220) hide show
  1. package/index.js +393 -0
  2. package/package.json +31 -0
  3. package/templates/CLAUDE.md +108 -0
  4. package/templates/app/.env.local.example +14 -0
  5. package/templates/app/ecosystem.config.js +29 -0
  6. package/templates/app/next-env.d.ts +6 -0
  7. package/templates/app/next.config.ts +16 -0
  8. package/templates/app/package-lock.json +4581 -0
  9. package/templates/app/package.json +38 -0
  10. package/templates/app/postcss.config.js +5 -0
  11. package/templates/app/src/app/agents/[slug]/chat/loading.tsx +26 -0
  12. package/templates/app/src/app/agents/[slug]/chat/page.tsx +579 -0
  13. package/templates/app/src/app/agents/[slug]/loading.tsx +19 -0
  14. package/templates/app/src/app/agents/page.tsx +8 -0
  15. package/templates/app/src/app/api/agents/[slug]/capabilities/route.ts +11 -0
  16. package/templates/app/src/app/api/agents/[slug]/route.ts +57 -0
  17. package/templates/app/src/app/api/agents/route.ts +28 -0
  18. package/templates/app/src/app/api/ai/generate-agent/route.ts +87 -0
  19. package/templates/app/src/app/api/ai/improve-claude-md/route.ts +78 -0
  20. package/templates/app/src/app/api/ai/suggestions/route.ts +64 -0
  21. package/templates/app/src/app/api/ai/title/route.ts +88 -0
  22. package/templates/app/src/app/api/auth/role/route.ts +17 -0
  23. package/templates/app/src/app/api/commands/[slug]/route.ts +61 -0
  24. package/templates/app/src/app/api/commands/route.ts +6 -0
  25. package/templates/app/src/app/api/governance/costs/route.ts +117 -0
  26. package/templates/app/src/app/api/governance/sessions/route.ts +335 -0
  27. package/templates/app/src/app/api/notifications/route.ts +62 -0
  28. package/templates/app/src/app/api/preferences/route.ts +44 -0
  29. package/templates/app/src/app/api/runs/[id]/approve/route.ts +38 -0
  30. package/templates/app/src/app/api/runs/[id]/events/route.ts +28 -0
  31. package/templates/app/src/app/api/runs/[id]/metadata/route.ts +30 -0
  32. package/templates/app/src/app/api/runs/[id]/route.ts +21 -0
  33. package/templates/app/src/app/api/runs/[id]/start/route.ts +61 -0
  34. package/templates/app/src/app/api/runs/[id]/stop/route.ts +16 -0
  35. package/templates/app/src/app/api/runs/[id]/stream/route.ts +201 -0
  36. package/templates/app/src/app/api/runs/route.ts +95 -0
  37. package/templates/app/src/app/api/schedules/[id]/route.ts +81 -0
  38. package/templates/app/src/app/api/schedules/route.ts +75 -0
  39. package/templates/app/src/app/api/settings/access-logs/route.ts +33 -0
  40. package/templates/app/src/app/api/settings/claude-md/route.ts +44 -0
  41. package/templates/app/src/app/api/settings/env-keys/route.ts +271 -0
  42. package/templates/app/src/app/api/settings/users/route.ts +108 -0
  43. package/templates/app/src/app/api/skills/[slug]/route.ts +43 -0
  44. package/templates/app/src/app/api/skills/route.ts +6 -0
  45. package/templates/app/src/app/api/tools/route.ts +65 -0
  46. package/templates/app/src/app/api/uploads/cleanup/route.ts +29 -0
  47. package/templates/app/src/app/api/uploads/route.ts +77 -0
  48. package/templates/app/src/app/auth/callback/route.ts +19 -0
  49. package/templates/app/src/app/globals.css +115 -0
  50. package/templates/app/src/app/layout.tsx +24 -0
  51. package/templates/app/src/app/loading.tsx +16 -0
  52. package/templates/app/src/app/login/page.tsx +64 -0
  53. package/templates/app/src/app/not-authorized/page.tsx +33 -0
  54. package/templates/app/src/app/runs/page.tsx +55 -0
  55. package/templates/app/src/app/schedules/page.tsx +110 -0
  56. package/templates/app/src/app/settings/page.tsx +1294 -0
  57. package/templates/app/src/app/skills/page.tsx +7 -0
  58. package/templates/app/src/components/agent-card.tsx +58 -0
  59. package/templates/app/src/components/agent-grid.tsx +90 -0
  60. package/templates/app/src/components/auth/auth-context.tsx +79 -0
  61. package/templates/app/src/components/chat-thread.tsx +50 -0
  62. package/templates/app/src/components/chat-view.tsx +670 -0
  63. package/templates/app/src/components/commands-browser.tsx +349 -0
  64. package/templates/app/src/components/create-agent-modal.tsx +388 -0
  65. package/templates/app/src/components/governance-dashboard.tsx +397 -0
  66. package/templates/app/src/components/icons.tsx +401 -0
  67. package/templates/app/src/components/layout/agent-sidebar.tsx +504 -0
  68. package/templates/app/src/components/layout/app-shell.tsx +29 -0
  69. package/templates/app/src/components/layout/nav.tsx +87 -0
  70. package/templates/app/src/components/layout/overview-inner.tsx +14 -0
  71. package/templates/app/src/components/layout/profile-menu.tsx +95 -0
  72. package/templates/app/src/components/layout/sidebar.tsx +30 -0
  73. package/templates/app/src/components/markdown.tsx +57 -0
  74. package/templates/app/src/components/message-bar.tsx +161 -0
  75. package/templates/app/src/components/notifications/notification-bell.tsx +104 -0
  76. package/templates/app/src/components/notifications/notification-panel.tsx +116 -0
  77. package/templates/app/src/components/overview/overview-content.tsx +287 -0
  78. package/templates/app/src/components/overview/overview-context.tsx +88 -0
  79. package/templates/app/src/components/preferences-modal.tsx +112 -0
  80. package/templates/app/src/components/run-form.tsx +73 -0
  81. package/templates/app/src/components/run-history-table.tsx +226 -0
  82. package/templates/app/src/components/run-output.tsx +187 -0
  83. package/templates/app/src/components/schedule-form.tsx +148 -0
  84. package/templates/app/src/components/skills-browser.tsx +338 -0
  85. package/templates/app/src/components/tool-tooltip.tsx +82 -0
  86. package/templates/app/src/hooks/use-sse.ts +115 -0
  87. package/templates/app/src/instrumentation.ts +9 -0
  88. package/templates/app/src/lib/agent-cache.ts +19 -0
  89. package/templates/app/src/lib/agent-runner.ts +411 -0
  90. package/templates/app/src/lib/agents.ts +168 -0
  91. package/templates/app/src/lib/ai.ts +40 -0
  92. package/templates/app/src/lib/approval-store.ts +70 -0
  93. package/templates/app/src/lib/auth-guard.ts +116 -0
  94. package/templates/app/src/lib/capabilities.ts +191 -0
  95. package/templates/app/src/lib/line-diff.ts +96 -0
  96. package/templates/app/src/lib/queue.ts +22 -0
  97. package/templates/app/src/lib/redis.ts +12 -0
  98. package/templates/app/src/lib/role-permissions.ts +166 -0
  99. package/templates/app/src/lib/run-agent.ts +442 -0
  100. package/templates/app/src/lib/supabase-browser.ts +8 -0
  101. package/templates/app/src/lib/supabase-middleware.ts +63 -0
  102. package/templates/app/src/lib/supabase-server.ts +28 -0
  103. package/templates/app/src/lib/supabase.ts +6 -0
  104. package/templates/app/src/lib/tool-descriptions.ts +29 -0
  105. package/templates/app/src/lib/types.ts +73 -0
  106. package/templates/app/src/lib/typewriter-animation.ts +159 -0
  107. package/templates/app/src/middleware.ts +13 -0
  108. package/templates/app/tsconfig.json +21 -0
  109. package/templates/app/uploads/.gitkeep +0 -0
  110. package/templates/app/worker/index.ts +342 -0
  111. package/templates/claude/agents/ai-trends-scout.md +66 -0
  112. package/templates/claude/commands/add-to-todos.md +56 -0
  113. package/templates/claude/commands/check-todos.md +56 -0
  114. package/templates/claude/hooks/auto-approve-safe.sh +34 -0
  115. package/templates/claude/hooks/auto-format.sh +25 -0
  116. package/templates/claude/hooks/block-destructive.sh +32 -0
  117. package/templates/claude/hooks/compaction-preserver.sh +16 -0
  118. package/templates/claude/hooks/notify.sh +26 -0
  119. package/templates/claude/settings.local.json +66 -0
  120. package/templates/claude/skills/frontend-design/SKILL.md +127 -0
  121. package/templates/claude/skills/frontend-design/reference/color-and-contrast.md +132 -0
  122. package/templates/claude/skills/frontend-design/reference/interaction-design.md +123 -0
  123. package/templates/claude/skills/frontend-design/reference/motion-design.md +99 -0
  124. package/templates/claude/skills/frontend-design/reference/responsive-design.md +114 -0
  125. package/templates/claude/skills/frontend-design/reference/spatial-design.md +100 -0
  126. package/templates/claude/skills/frontend-design/reference/typography.md +131 -0
  127. package/templates/claude/skills/frontend-design/reference/ux-writing.md +107 -0
  128. package/templates/claude/skills/gws-admin-reports/SKILL.md +57 -0
  129. package/templates/claude/skills/gws-calendar/SKILL.md +108 -0
  130. package/templates/claude/skills/gws-calendar-agenda/SKILL.md +52 -0
  131. package/templates/claude/skills/gws-calendar-insert/SKILL.md +55 -0
  132. package/templates/claude/skills/gws-chat/SKILL.md +73 -0
  133. package/templates/claude/skills/gws-chat-send/SKILL.md +49 -0
  134. package/templates/claude/skills/gws-classroom/SKILL.md +75 -0
  135. package/templates/claude/skills/gws-docs/SKILL.md +48 -0
  136. package/templates/claude/skills/gws-docs-write/SKILL.md +49 -0
  137. package/templates/claude/skills/gws-drive/SKILL.md +137 -0
  138. package/templates/claude/skills/gws-drive-upload/SKILL.md +52 -0
  139. package/templates/claude/skills/gws-events/SKILL.md +67 -0
  140. package/templates/claude/skills/gws-events-renew/SKILL.md +48 -0
  141. package/templates/claude/skills/gws-events-subscribe/SKILL.md +59 -0
  142. package/templates/claude/skills/gws-forms/SKILL.md +45 -0
  143. package/templates/claude/skills/gws-gmail/SKILL.md +59 -0
  144. package/templates/claude/skills/gws-gmail-forward/SKILL.md +53 -0
  145. package/templates/claude/skills/gws-gmail-reply/SKILL.md +56 -0
  146. package/templates/claude/skills/gws-gmail-reply-all/SKILL.md +60 -0
  147. package/templates/claude/skills/gws-gmail-send/SKILL.md +55 -0
  148. package/templates/claude/skills/gws-gmail-triage/SKILL.md +50 -0
  149. package/templates/claude/skills/gws-gmail-watch/SKILL.md +58 -0
  150. package/templates/claude/skills/gws-keep/SKILL.md +48 -0
  151. package/templates/claude/skills/gws-meet/SKILL.md +51 -0
  152. package/templates/claude/skills/gws-modelarmor/SKILL.md +42 -0
  153. package/templates/claude/skills/gws-modelarmor-create-template/SKILL.md +53 -0
  154. package/templates/claude/skills/gws-modelarmor-sanitize-prompt/SKILL.md +48 -0
  155. package/templates/claude/skills/gws-modelarmor-sanitize-response/SKILL.md +48 -0
  156. package/templates/claude/skills/gws-people/SKILL.md +67 -0
  157. package/templates/claude/skills/gws-shared/SKILL.md +66 -0
  158. package/templates/claude/skills/gws-sheets/SKILL.md +53 -0
  159. package/templates/claude/skills/gws-sheets-append/SKILL.md +51 -0
  160. package/templates/claude/skills/gws-sheets-read/SKILL.md +47 -0
  161. package/templates/claude/skills/gws-slides/SKILL.md +43 -0
  162. package/templates/claude/skills/gws-tasks/SKILL.md +56 -0
  163. package/templates/claude/skills/gws-workflow/SKILL.md +44 -0
  164. package/templates/claude/skills/gws-workflow-email-to-task/SKILL.md +47 -0
  165. package/templates/claude/skills/gws-workflow-file-announce/SKILL.md +50 -0
  166. package/templates/claude/skills/gws-workflow-meeting-prep/SKILL.md +47 -0
  167. package/templates/claude/skills/gws-workflow-standup-report/SKILL.md +46 -0
  168. package/templates/claude/skills/gws-workflow-weekly-digest/SKILL.md +46 -0
  169. package/templates/claude/skills/persona-content-creator/SKILL.md +33 -0
  170. package/templates/claude/skills/persona-customer-support/SKILL.md +34 -0
  171. package/templates/claude/skills/persona-event-coordinator/SKILL.md +35 -0
  172. package/templates/claude/skills/persona-exec-assistant/SKILL.md +35 -0
  173. package/templates/claude/skills/persona-hr-coordinator/SKILL.md +33 -0
  174. package/templates/claude/skills/persona-it-admin/SKILL.md +30 -0
  175. package/templates/claude/skills/persona-project-manager/SKILL.md +35 -0
  176. package/templates/claude/skills/persona-researcher/SKILL.md +33 -0
  177. package/templates/claude/skills/persona-sales-ops/SKILL.md +35 -0
  178. package/templates/claude/skills/persona-team-lead/SKILL.md +36 -0
  179. package/templates/claude/skills/recipe-backup-sheet-as-csv/SKILL.md +25 -0
  180. package/templates/claude/skills/recipe-batch-invite-to-event/SKILL.md +25 -0
  181. package/templates/claude/skills/recipe-block-focus-time/SKILL.md +24 -0
  182. package/templates/claude/skills/recipe-bulk-download-folder/SKILL.md +25 -0
  183. package/templates/claude/skills/recipe-collect-form-responses/SKILL.md +25 -0
  184. package/templates/claude/skills/recipe-compare-sheet-tabs/SKILL.md +25 -0
  185. package/templates/claude/skills/recipe-copy-sheet-for-new-month/SKILL.md +25 -0
  186. package/templates/claude/skills/recipe-create-classroom-course/SKILL.md +25 -0
  187. package/templates/claude/skills/recipe-create-doc-from-template/SKILL.md +29 -0
  188. package/templates/claude/skills/recipe-create-events-from-sheet/SKILL.md +24 -0
  189. package/templates/claude/skills/recipe-create-expense-tracker/SKILL.md +26 -0
  190. package/templates/claude/skills/recipe-create-feedback-form/SKILL.md +25 -0
  191. package/templates/claude/skills/recipe-create-gmail-filter/SKILL.md +26 -0
  192. package/templates/claude/skills/recipe-create-meet-space/SKILL.md +25 -0
  193. package/templates/claude/skills/recipe-create-presentation/SKILL.md +25 -0
  194. package/templates/claude/skills/recipe-create-shared-drive/SKILL.md +25 -0
  195. package/templates/claude/skills/recipe-create-task-list/SKILL.md +26 -0
  196. package/templates/claude/skills/recipe-create-vacation-responder/SKILL.md +25 -0
  197. package/templates/claude/skills/recipe-draft-email-from-doc/SKILL.md +25 -0
  198. package/templates/claude/skills/recipe-email-drive-link/SKILL.md +25 -0
  199. package/templates/claude/skills/recipe-find-free-time/SKILL.md +25 -0
  200. package/templates/claude/skills/recipe-find-large-files/SKILL.md +24 -0
  201. package/templates/claude/skills/recipe-forward-labeled-emails/SKILL.md +27 -0
  202. package/templates/claude/skills/recipe-generate-report-from-sheet/SKILL.md +34 -0
  203. package/templates/claude/skills/recipe-label-and-archive-emails/SKILL.md +25 -0
  204. package/templates/claude/skills/recipe-log-deal-update/SKILL.md +25 -0
  205. package/templates/claude/skills/recipe-organize-drive-folder/SKILL.md +26 -0
  206. package/templates/claude/skills/recipe-plan-weekly-schedule/SKILL.md +26 -0
  207. package/templates/claude/skills/recipe-post-mortem-setup/SKILL.md +25 -0
  208. package/templates/claude/skills/recipe-reschedule-meeting/SKILL.md +25 -0
  209. package/templates/claude/skills/recipe-review-meet-participants/SKILL.md +25 -0
  210. package/templates/claude/skills/recipe-review-overdue-tasks/SKILL.md +25 -0
  211. package/templates/claude/skills/recipe-save-email-attachments/SKILL.md +26 -0
  212. package/templates/claude/skills/recipe-save-email-to-doc/SKILL.md +29 -0
  213. package/templates/claude/skills/recipe-schedule-recurring-event/SKILL.md +24 -0
  214. package/templates/claude/skills/recipe-send-team-announcement/SKILL.md +24 -0
  215. package/templates/claude/skills/recipe-share-doc-and-notify/SKILL.md +25 -0
  216. package/templates/claude/skills/recipe-share-event-materials/SKILL.md +25 -0
  217. package/templates/claude/skills/recipe-share-folder-with-team/SKILL.md +26 -0
  218. package/templates/claude/skills/recipe-sync-contacts-to-sheet/SKILL.md +25 -0
  219. package/templates/claude/skills/recipe-watch-drive-changes/SKILL.md +25 -0
  220. package/templates/mcp.json +12 -0
@@ -0,0 +1,108 @@
1
+ ---
2
+ name: gws-calendar
3
+ version: 1.0.0
4
+ description: "Google Calendar: Manage calendars and events."
5
+ metadata:
6
+ openclaw:
7
+ category: "productivity"
8
+ requires:
9
+ bins: ["gws"]
10
+ cliHelp: "gws calendar --help"
11
+ ---
12
+
13
+ # calendar (v3)
14
+
15
+ > **PREREQUISITE:** Read `../gws-shared/SKILL.md` for auth, global flags, and security rules. If missing, run `gws generate-skills` to create it.
16
+
17
+ ```bash
18
+ gws calendar <resource> <method> [flags]
19
+ ```
20
+
21
+ ## Helper Commands
22
+
23
+ | Command | Description |
24
+ |---------|-------------|
25
+ | [`+insert`](../gws-calendar-insert/SKILL.md) | create a new event |
26
+ | [`+agenda`](../gws-calendar-agenda/SKILL.md) | Show upcoming events across all calendars |
27
+
28
+ ## API Resources
29
+
30
+ ### acl
31
+
32
+ - `delete` — Deletes an access control rule.
33
+ - `get` — Returns an access control rule.
34
+ - `insert` — Creates an access control rule.
35
+ - `list` — Returns the rules in the access control list for the calendar.
36
+ - `patch` — Updates an access control rule. This method supports patch semantics.
37
+ - `update` — Updates an access control rule.
38
+ - `watch` — Watch for changes to ACL resources.
39
+
40
+ ### calendarList
41
+
42
+ - `delete` — Removes a calendar from the user's calendar list.
43
+ - `get` — Returns a calendar from the user's calendar list.
44
+ - `insert` — Inserts an existing calendar into the user's calendar list.
45
+ - `list` — Returns the calendars on the user's calendar list.
46
+ - `patch` — Updates an existing calendar on the user's calendar list. This method supports patch semantics.
47
+ - `update` — Updates an existing calendar on the user's calendar list.
48
+ - `watch` — Watch for changes to CalendarList resources.
49
+
50
+ ### calendars
51
+
52
+ - `clear` — Clears a primary calendar. This operation deletes all events associated with the primary calendar of an account.
53
+ - `delete` — Deletes a secondary calendar. Use calendars.clear for clearing all events on primary calendars.
54
+ - `get` — Returns metadata for a calendar.
55
+ - `insert` — Creates a secondary calendar.
56
+ The authenticated user for the request is made the data owner of the new calendar.
57
+
58
+ Note: We recommend to authenticate as the intended data owner of the calendar. You can use domain-wide delegation of authority to allow applications to act on behalf of a specific user. Don't use a service account for authentication. If you use a service account for authentication, the service account is the data owner, which can lead to unexpected behavior.
59
+ - `patch` — Updates metadata for a calendar. This method supports patch semantics.
60
+ - `update` — Updates metadata for a calendar.
61
+
62
+ ### channels
63
+
64
+ - `stop` — Stop watching resources through this channel
65
+
66
+ ### colors
67
+
68
+ - `get` — Returns the color definitions for calendars and events.
69
+
70
+ ### events
71
+
72
+ - `delete` — Deletes an event.
73
+ - `get` — Returns an event based on its Google Calendar ID. To retrieve an event using its iCalendar ID, call the events.list method using the iCalUID parameter.
74
+ - `import` — Imports an event. This operation is used to add a private copy of an existing event to a calendar. Only events with an eventType of default may be imported.
75
+ Deprecated behavior: If a non-default event is imported, its type will be changed to default and any event-type-specific properties it may have will be dropped.
76
+ - `insert` — Creates an event.
77
+ - `instances` — Returns instances of the specified recurring event.
78
+ - `list` — Returns events on the specified calendar.
79
+ - `move` — Moves an event to another calendar, i.e. changes an event's organizer. Note that only default events can be moved; birthday, focusTime, fromGmail, outOfOffice and workingLocation events cannot be moved.
80
+ - `patch` — Updates an event. This method supports patch semantics.
81
+ - `quickAdd` — Creates an event based on a simple text string.
82
+ - `update` — Updates an event.
83
+ - `watch` — Watch for changes to Events resources.
84
+
85
+ ### freebusy
86
+
87
+ - `query` — Returns free/busy information for a set of calendars.
88
+
89
+ ### settings
90
+
91
+ - `get` — Returns a single user setting.
92
+ - `list` — Returns all user settings for the authenticated user.
93
+ - `watch` — Watch for changes to Settings resources.
94
+
95
+ ## Discovering Commands
96
+
97
+ Before calling any API method, inspect it:
98
+
99
+ ```bash
100
+ # Browse resources and methods
101
+ gws calendar --help
102
+
103
+ # Inspect a method's required params, types, and defaults
104
+ gws schema calendar.<resource>.<method>
105
+ ```
106
+
107
+ Use `gws schema` output to build your `--params` and `--json` flags.
108
+
@@ -0,0 +1,52 @@
1
+ ---
2
+ name: gws-calendar-agenda
3
+ version: 1.0.0
4
+ description: "Google Calendar: Show upcoming events across all calendars."
5
+ metadata:
6
+ openclaw:
7
+ category: "productivity"
8
+ requires:
9
+ bins: ["gws"]
10
+ cliHelp: "gws calendar +agenda --help"
11
+ ---
12
+
13
+ # calendar +agenda
14
+
15
+ > **PREREQUISITE:** Read `../gws-shared/SKILL.md` for auth, global flags, and security rules. If missing, run `gws generate-skills` to create it.
16
+
17
+ Show upcoming events across all calendars
18
+
19
+ ## Usage
20
+
21
+ ```bash
22
+ gws calendar +agenda
23
+ ```
24
+
25
+ ## Flags
26
+
27
+ | Flag | Required | Default | Description |
28
+ |------|----------|---------|-------------|
29
+ | `--today` | — | — | Show today's events |
30
+ | `--tomorrow` | — | — | Show tomorrow's events |
31
+ | `--week` | — | — | Show this week's events |
32
+ | `--days` | — | — | Number of days ahead to show |
33
+ | `--calendar` | — | — | Filter to specific calendar name or ID |
34
+
35
+ ## Examples
36
+
37
+ ```bash
38
+ gws calendar +agenda
39
+ gws calendar +agenda --today
40
+ gws calendar +agenda --week --format table
41
+ gws calendar +agenda --days 3 --calendar 'Work'
42
+ ```
43
+
44
+ ## Tips
45
+
46
+ - Read-only — never modifies events.
47
+ - Queries all calendars by default; use --calendar to filter.
48
+
49
+ ## See Also
50
+
51
+ - [gws-shared](../gws-shared/SKILL.md) — Global flags and auth
52
+ - [gws-calendar](../gws-calendar/SKILL.md) — All manage calendars and events commands
@@ -0,0 +1,55 @@
1
+ ---
2
+ name: gws-calendar-insert
3
+ version: 1.0.0
4
+ description: "Google Calendar: Create a new event."
5
+ metadata:
6
+ openclaw:
7
+ category: "productivity"
8
+ requires:
9
+ bins: ["gws"]
10
+ cliHelp: "gws calendar +insert --help"
11
+ ---
12
+
13
+ # calendar +insert
14
+
15
+ > **PREREQUISITE:** Read `../gws-shared/SKILL.md` for auth, global flags, and security rules. If missing, run `gws generate-skills` to create it.
16
+
17
+ create a new event
18
+
19
+ ## Usage
20
+
21
+ ```bash
22
+ gws calendar +insert --summary <TEXT> --start <TIME> --end <TIME>
23
+ ```
24
+
25
+ ## Flags
26
+
27
+ | Flag | Required | Default | Description |
28
+ |------|----------|---------|-------------|
29
+ | `--calendar` | — | primary | Calendar ID (default: primary) |
30
+ | `--summary` | ✓ | — | Event summary/title |
31
+ | `--start` | ✓ | — | Start time (ISO 8601, e.g., 2024-01-01T10:00:00Z) |
32
+ | `--end` | ✓ | — | End time (ISO 8601) |
33
+ | `--location` | — | — | Event location |
34
+ | `--description` | — | — | Event description/body |
35
+ | `--attendee` | — | — | Attendee email (can be used multiple times) |
36
+
37
+ ## Examples
38
+
39
+ ```bash
40
+ gws calendar +insert --summary 'Standup' --start '2026-06-17T09:00:00-07:00' --end '2026-06-17T09:30:00-07:00'
41
+ gws calendar +insert --summary 'Review' --start ... --end ... --attendee alice@example.com
42
+ ```
43
+
44
+ ## Tips
45
+
46
+ - Use RFC3339 format for times (e.g. 2026-06-17T09:00:00-07:00).
47
+ - For recurring events or conference links, use the raw API instead.
48
+
49
+ > [!CAUTION]
50
+ > This is a **write** command — confirm with the user before executing.
51
+
52
+ ## See Also
53
+
54
+ - [gws-shared](../gws-shared/SKILL.md) — Global flags and auth
55
+ - [gws-calendar](../gws-calendar/SKILL.md) — All manage calendars and events commands
@@ -0,0 +1,73 @@
1
+ ---
2
+ name: gws-chat
3
+ version: 1.0.0
4
+ description: "Google Chat: Manage Chat spaces and messages."
5
+ metadata:
6
+ openclaw:
7
+ category: "productivity"
8
+ requires:
9
+ bins: ["gws"]
10
+ cliHelp: "gws chat --help"
11
+ ---
12
+
13
+ # chat (v1)
14
+
15
+ > **PREREQUISITE:** Read `../gws-shared/SKILL.md` for auth, global flags, and security rules. If missing, run `gws generate-skills` to create it.
16
+
17
+ ```bash
18
+ gws chat <resource> <method> [flags]
19
+ ```
20
+
21
+ ## Helper Commands
22
+
23
+ | Command | Description |
24
+ |---------|-------------|
25
+ | [`+send`](../gws-chat-send/SKILL.md) | Send a message to a space |
26
+
27
+ ## API Resources
28
+
29
+ ### customEmojis
30
+
31
+ - `create` — Creates a custom emoji. Custom emojis are only available for Google Workspace accounts, and the administrator must turn custom emojis on for the organization. For more information, see [Learn about custom emojis in Google Chat](https://support.google.com/chat/answer/12800149) and [Manage custom emoji permissions](https://support.google.com/a/answer/12850085).
32
+ - `delete` — Deletes a custom emoji. By default, users can only delete custom emoji they created. [Emoji managers](https://support.google.com/a/answer/12850085) assigned by the administrator can delete any custom emoji in the organization. See [Learn about custom emojis in Google Chat](https://support.google.com/chat/answer/12800149). Custom emojis are only available for Google Workspace accounts, and the administrator must turn custom emojis on for the organization.
33
+ - `get` — Returns details about a custom emoji. Custom emojis are only available for Google Workspace accounts, and the administrator must turn custom emojis on for the organization. For more information, see [Learn about custom emojis in Google Chat](https://support.google.com/chat/answer/12800149) and [Manage custom emoji permissions](https://support.google.com/a/answer/12850085).
34
+ - `list` — Lists custom emojis visible to the authenticated user. Custom emojis are only available for Google Workspace accounts, and the administrator must turn custom emojis on for the organization. For more information, see [Learn about custom emojis in Google Chat](https://support.google.com/chat/answer/12800149) and [Manage custom emoji permissions](https://support.google.com/a/answer/12850085).
35
+
36
+ ### media
37
+
38
+ - `download` — Downloads media. Download is supported on the URI `/v1/media/{+name}?alt=media`.
39
+ - `upload` — Uploads an attachment. For an example, see [Upload media as a file attachment](https://developers.google.com/workspace/chat/upload-media-attachments).
40
+
41
+ ### spaces
42
+
43
+ - `completeImport` — Completes the [import process](https://developers.google.com/workspace/chat/import-data) for the specified space and makes it visible to users.
44
+ - `create` — Creates a space. Can be used to create a named space, or a group chat in `Import mode`. For an example, see [Create a space](https://developers.google.com/workspace/chat/create-spaces).
45
+ - `delete` — Deletes a named space. Always performs a cascading delete, which means that the space's child resources—like messages posted in the space and memberships in the space—are also deleted. For an example, see [Delete a space](https://developers.google.com/workspace/chat/delete-spaces).
46
+ - `findDirectMessage` — Returns the existing direct message with the specified user. If no direct message space is found, returns a `404 NOT_FOUND` error. For an example, see [Find a direct message](/chat/api/guides/v1/spaces/find-direct-message). With [app authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app), returns the direct message space between the specified user and the calling Chat app.
47
+ - `get` — Returns details about a space. For an example, see [Get details about a space](https://developers.google.com/workspace/chat/get-spaces).
48
+ - `list` — Lists spaces the caller is a member of. Group chats and DMs aren't listed until the first message is sent. For an example, see [List spaces](https://developers.google.com/workspace/chat/list-spaces).
49
+ - `patch` — Updates a space. For an example, see [Update a space](https://developers.google.com/workspace/chat/update-spaces). If you're updating the `displayName` field and receive the error message `ALREADY_EXISTS`, try a different display name.. An existing space within the Google Workspace organization might already use this display name.
50
+ - `search` — Returns a list of spaces in a Google Workspace organization based on an administrator's search. In the request, set `use_admin_access` to `true`. For an example, see [Search for and manage spaces](https://developers.google.com/workspace/chat/search-manage-admin).
51
+ - `setup` — Creates a space and adds specified users to it. The calling user is automatically added to the space, and shouldn't be specified as a membership in the request. For an example, see [Set up a space with initial members](https://developers.google.com/workspace/chat/set-up-spaces). To specify the human members to add, add memberships with the appropriate `membership.member.name`. To add a human user, use `users/{user}`, where `{user}` can be the email address for the user.
52
+ - `members` — Operations on the 'members' resource
53
+ - `messages` — Operations on the 'messages' resource
54
+ - `spaceEvents` — Operations on the 'spaceEvents' resource
55
+
56
+ ### users
57
+
58
+ - `spaces` — Operations on the 'spaces' resource
59
+
60
+ ## Discovering Commands
61
+
62
+ Before calling any API method, inspect it:
63
+
64
+ ```bash
65
+ # Browse resources and methods
66
+ gws chat --help
67
+
68
+ # Inspect a method's required params, types, and defaults
69
+ gws schema chat.<resource>.<method>
70
+ ```
71
+
72
+ Use `gws schema` output to build your `--params` and `--json` flags.
73
+
@@ -0,0 +1,49 @@
1
+ ---
2
+ name: gws-chat-send
3
+ version: 1.0.0
4
+ description: "Google Chat: Send a message to a space."
5
+ metadata:
6
+ openclaw:
7
+ category: "productivity"
8
+ requires:
9
+ bins: ["gws"]
10
+ cliHelp: "gws chat +send --help"
11
+ ---
12
+
13
+ # chat +send
14
+
15
+ > **PREREQUISITE:** Read `../gws-shared/SKILL.md` for auth, global flags, and security rules. If missing, run `gws generate-skills` to create it.
16
+
17
+ Send a message to a space
18
+
19
+ ## Usage
20
+
21
+ ```bash
22
+ gws chat +send --space <NAME> --text <TEXT>
23
+ ```
24
+
25
+ ## Flags
26
+
27
+ | Flag | Required | Default | Description |
28
+ |------|----------|---------|-------------|
29
+ | `--space` | ✓ | — | Space name (e.g. spaces/AAAA...) |
30
+ | `--text` | ✓ | — | Message text (plain text) |
31
+
32
+ ## Examples
33
+
34
+ ```bash
35
+ gws chat +send --space spaces/AAAAxxxx --text 'Hello team!'
36
+ ```
37
+
38
+ ## Tips
39
+
40
+ - Use 'gws chat spaces list' to find space names.
41
+ - For cards or threaded replies, use the raw API instead.
42
+
43
+ > [!CAUTION]
44
+ > This is a **write** command — confirm with the user before executing.
45
+
46
+ ## See Also
47
+
48
+ - [gws-shared](../gws-shared/SKILL.md) — Global flags and auth
49
+ - [gws-chat](../gws-chat/SKILL.md) — All manage chat spaces and messages commands
@@ -0,0 +1,75 @@
1
+ ---
2
+ name: gws-classroom
3
+ version: 1.0.0
4
+ description: "Google Classroom: Manage classes, rosters, and coursework."
5
+ metadata:
6
+ openclaw:
7
+ category: "productivity"
8
+ requires:
9
+ bins: ["gws"]
10
+ cliHelp: "gws classroom --help"
11
+ ---
12
+
13
+ # classroom (v1)
14
+
15
+ > **PREREQUISITE:** Read `../gws-shared/SKILL.md` for auth, global flags, and security rules. If missing, run `gws generate-skills` to create it.
16
+
17
+ ```bash
18
+ gws classroom <resource> <method> [flags]
19
+ ```
20
+
21
+ ## API Resources
22
+
23
+ ### courses
24
+
25
+ - `create` — Creates a course. The user specified in `ownerId` is the owner of the created course and added as a teacher. A non-admin requesting user can only create a course with themselves as the owner. Domain admins can create courses owned by any user within their domain. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to create courses or for access errors. * `NOT_FOUND` if the primary teacher is not a valid user.
26
+ - `delete` — Deletes a course. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to delete the requested course or for access errors. * `NOT_FOUND` if no course exists with the requested ID.
27
+ - `get` — Returns a course. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to access the requested course or for access errors. * `NOT_FOUND` if no course exists with the requested ID.
28
+ - `getGradingPeriodSettings` — Returns the grading period settings in a course. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user isn't permitted to access the grading period settings in the requested course or for access errors. * `NOT_FOUND` if the requested course does not exist.
29
+ - `list` — Returns a list of courses that the requesting user is permitted to view, restricted to those that match the request. Returned courses are ordered by creation time, with the most recently created coming first. This method returns the following error codes: * `PERMISSION_DENIED` for access errors. * `INVALID_ARGUMENT` if the query argument is malformed. * `NOT_FOUND` if any users specified in the query arguments do not exist.
30
+ - `patch` — Updates one or more fields in a course. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to modify the requested course or for access errors. * `NOT_FOUND` if no course exists with the requested ID. * `INVALID_ARGUMENT` if invalid fields are specified in the update mask or if no update mask is supplied.
31
+ - `update` — Updates a course. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to modify the requested course or for access errors. * `NOT_FOUND` if no course exists with the requested ID. * `FAILED_PRECONDITION` for the following request errors: * CourseNotModifiable * CourseTitleCannotContainUrl
32
+ - `updateGradingPeriodSettings` — Updates grading period settings of a course. Individual grading periods can be added, removed, or modified using this method. The requesting user and course owner must be eligible to modify Grading Periods. For details, see [licensing requirements](https://developers.google.com/workspace/classroom/grading-periods/manage-grading-periods#licensing_requirements).
33
+ - `aliases` — Operations on the 'aliases' resource
34
+ - `announcements` — Operations on the 'announcements' resource
35
+ - `courseWork` — Operations on the 'courseWork' resource
36
+ - `courseWorkMaterials` — Operations on the 'courseWorkMaterials' resource
37
+ - `posts` — Operations on the 'posts' resource
38
+ - `studentGroups` — Operations on the 'studentGroups' resource
39
+ - `students` — Operations on the 'students' resource
40
+ - `teachers` — Operations on the 'teachers' resource
41
+ - `topics` — Operations on the 'topics' resource
42
+
43
+ ### invitations
44
+
45
+ - `accept` — Accepts an invitation, removing it and adding the invited user to the teachers or students (as appropriate) of the specified course. Only the invited user may accept an invitation. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to accept the requested invitation or for access errors.
46
+ - `create` — Creates an invitation. Only one invitation for a user and course may exist at a time. Delete and re-create an invitation to make changes. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to create invitations for this course or for access errors. * `NOT_FOUND` if the course or the user does not exist. * `FAILED_PRECONDITION`: * if the requested user's account is disabled.
47
+ - `delete` — Deletes an invitation. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to delete the requested invitation or for access errors. * `NOT_FOUND` if no invitation exists with the requested ID.
48
+ - `get` — Returns an invitation. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to view the requested invitation or for access errors. * `NOT_FOUND` if no invitation exists with the requested ID.
49
+ - `list` — Returns a list of invitations that the requesting user is permitted to view, restricted to those that match the list request. *Note:* At least one of `user_id` or `course_id` must be supplied. Both fields can be supplied. This method returns the following error codes: * `PERMISSION_DENIED` for access errors.
50
+
51
+ ### registrations
52
+
53
+ - `create` — Creates a `Registration`, causing Classroom to start sending notifications from the provided `feed` to the destination provided in `cloudPubSubTopic`. Returns the created `Registration`. Currently, this will be the same as the argument, but with server-assigned fields such as `expiry_time` and `id` filled in. Note that any value specified for the `expiry_time` or `id` fields will be ignored.
54
+ - `delete` — Deletes a `Registration`, causing Classroom to stop sending notifications for that `Registration`.
55
+
56
+ ### userProfiles
57
+
58
+ - `get` — Returns a user profile. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to access this user profile, if no profile exists with the requested ID, or for access errors.
59
+ - `guardianInvitations` — Operations on the 'guardianInvitations' resource
60
+ - `guardians` — Operations on the 'guardians' resource
61
+
62
+ ## Discovering Commands
63
+
64
+ Before calling any API method, inspect it:
65
+
66
+ ```bash
67
+ # Browse resources and methods
68
+ gws classroom --help
69
+
70
+ # Inspect a method's required params, types, and defaults
71
+ gws schema classroom.<resource>.<method>
72
+ ```
73
+
74
+ Use `gws schema` output to build your `--params` and `--json` flags.
75
+
@@ -0,0 +1,48 @@
1
+ ---
2
+ name: gws-docs
3
+ version: 1.0.0
4
+ description: "Read and write Google Docs."
5
+ metadata:
6
+ openclaw:
7
+ category: "productivity"
8
+ requires:
9
+ bins: ["gws"]
10
+ cliHelp: "gws docs --help"
11
+ ---
12
+
13
+ # docs (v1)
14
+
15
+ > **PREREQUISITE:** Read `../gws-shared/SKILL.md` for auth, global flags, and security rules. If missing, run `gws generate-skills` to create it.
16
+
17
+ ```bash
18
+ gws docs <resource> <method> [flags]
19
+ ```
20
+
21
+ ## Helper Commands
22
+
23
+ | Command | Description |
24
+ |---------|-------------|
25
+ | [`+write`](../gws-docs-write/SKILL.md) | Append text to a document |
26
+
27
+ ## API Resources
28
+
29
+ ### documents
30
+
31
+ - `batchUpdate` — Applies one or more updates to the document. Each request is validated before being applied. If any request is not valid, then the entire request will fail and nothing will be applied. Some requests have replies to give you some information about how they are applied. Other requests do not need to return information; these each return an empty reply. The order of replies matches that of the requests.
32
+ - `create` — Creates a blank document using the title given in the request. Other fields in the request, including any provided content, are ignored. Returns the created document.
33
+ - `get` — Gets the latest version of the specified document.
34
+
35
+ ## Discovering Commands
36
+
37
+ Before calling any API method, inspect it:
38
+
39
+ ```bash
40
+ # Browse resources and methods
41
+ gws docs --help
42
+
43
+ # Inspect a method's required params, types, and defaults
44
+ gws schema docs.<resource>.<method>
45
+ ```
46
+
47
+ Use `gws schema` output to build your `--params` and `--json` flags.
48
+
@@ -0,0 +1,49 @@
1
+ ---
2
+ name: gws-docs-write
3
+ version: 1.0.0
4
+ description: "Google Docs: Append text to a document."
5
+ metadata:
6
+ openclaw:
7
+ category: "productivity"
8
+ requires:
9
+ bins: ["gws"]
10
+ cliHelp: "gws docs +write --help"
11
+ ---
12
+
13
+ # docs +write
14
+
15
+ > **PREREQUISITE:** Read `../gws-shared/SKILL.md` for auth, global flags, and security rules. If missing, run `gws generate-skills` to create it.
16
+
17
+ Append text to a document
18
+
19
+ ## Usage
20
+
21
+ ```bash
22
+ gws docs +write --document <ID> --text <TEXT>
23
+ ```
24
+
25
+ ## Flags
26
+
27
+ | Flag | Required | Default | Description |
28
+ |------|----------|---------|-------------|
29
+ | `--document` | ✓ | — | Document ID |
30
+ | `--text` | ✓ | — | Text to append (plain text) |
31
+
32
+ ## Examples
33
+
34
+ ```bash
35
+ gws docs +write --document DOC_ID --text 'Hello, world!'
36
+ ```
37
+
38
+ ## Tips
39
+
40
+ - Text is inserted at the end of the document body.
41
+ - For rich formatting, use the raw batchUpdate API instead.
42
+
43
+ > [!CAUTION]
44
+ > This is a **write** command — confirm with the user before executing.
45
+
46
+ ## See Also
47
+
48
+ - [gws-shared](../gws-shared/SKILL.md) — Global flags and auth
49
+ - [gws-docs](../gws-docs/SKILL.md) — All read and write google docs commands