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.
- package/index.js +393 -0
- package/package.json +31 -0
- package/templates/CLAUDE.md +108 -0
- package/templates/app/.env.local.example +14 -0
- package/templates/app/ecosystem.config.js +29 -0
- package/templates/app/next-env.d.ts +6 -0
- package/templates/app/next.config.ts +16 -0
- package/templates/app/package-lock.json +4581 -0
- package/templates/app/package.json +38 -0
- package/templates/app/postcss.config.js +5 -0
- package/templates/app/src/app/agents/[slug]/chat/loading.tsx +26 -0
- package/templates/app/src/app/agents/[slug]/chat/page.tsx +579 -0
- package/templates/app/src/app/agents/[slug]/loading.tsx +19 -0
- package/templates/app/src/app/agents/page.tsx +8 -0
- package/templates/app/src/app/api/agents/[slug]/capabilities/route.ts +11 -0
- package/templates/app/src/app/api/agents/[slug]/route.ts +57 -0
- package/templates/app/src/app/api/agents/route.ts +28 -0
- package/templates/app/src/app/api/ai/generate-agent/route.ts +87 -0
- package/templates/app/src/app/api/ai/improve-claude-md/route.ts +78 -0
- package/templates/app/src/app/api/ai/suggestions/route.ts +64 -0
- package/templates/app/src/app/api/ai/title/route.ts +88 -0
- package/templates/app/src/app/api/auth/role/route.ts +17 -0
- package/templates/app/src/app/api/commands/[slug]/route.ts +61 -0
- package/templates/app/src/app/api/commands/route.ts +6 -0
- package/templates/app/src/app/api/governance/costs/route.ts +117 -0
- package/templates/app/src/app/api/governance/sessions/route.ts +335 -0
- package/templates/app/src/app/api/notifications/route.ts +62 -0
- package/templates/app/src/app/api/preferences/route.ts +44 -0
- package/templates/app/src/app/api/runs/[id]/approve/route.ts +38 -0
- package/templates/app/src/app/api/runs/[id]/events/route.ts +28 -0
- package/templates/app/src/app/api/runs/[id]/metadata/route.ts +30 -0
- package/templates/app/src/app/api/runs/[id]/route.ts +21 -0
- package/templates/app/src/app/api/runs/[id]/start/route.ts +61 -0
- package/templates/app/src/app/api/runs/[id]/stop/route.ts +16 -0
- package/templates/app/src/app/api/runs/[id]/stream/route.ts +201 -0
- package/templates/app/src/app/api/runs/route.ts +95 -0
- package/templates/app/src/app/api/schedules/[id]/route.ts +81 -0
- package/templates/app/src/app/api/schedules/route.ts +75 -0
- package/templates/app/src/app/api/settings/access-logs/route.ts +33 -0
- package/templates/app/src/app/api/settings/claude-md/route.ts +44 -0
- package/templates/app/src/app/api/settings/env-keys/route.ts +271 -0
- package/templates/app/src/app/api/settings/users/route.ts +108 -0
- package/templates/app/src/app/api/skills/[slug]/route.ts +43 -0
- package/templates/app/src/app/api/skills/route.ts +6 -0
- package/templates/app/src/app/api/tools/route.ts +65 -0
- package/templates/app/src/app/api/uploads/cleanup/route.ts +29 -0
- package/templates/app/src/app/api/uploads/route.ts +77 -0
- package/templates/app/src/app/auth/callback/route.ts +19 -0
- package/templates/app/src/app/globals.css +115 -0
- package/templates/app/src/app/layout.tsx +24 -0
- package/templates/app/src/app/loading.tsx +16 -0
- package/templates/app/src/app/login/page.tsx +64 -0
- package/templates/app/src/app/not-authorized/page.tsx +33 -0
- package/templates/app/src/app/runs/page.tsx +55 -0
- package/templates/app/src/app/schedules/page.tsx +110 -0
- package/templates/app/src/app/settings/page.tsx +1294 -0
- package/templates/app/src/app/skills/page.tsx +7 -0
- package/templates/app/src/components/agent-card.tsx +58 -0
- package/templates/app/src/components/agent-grid.tsx +90 -0
- package/templates/app/src/components/auth/auth-context.tsx +79 -0
- package/templates/app/src/components/chat-thread.tsx +50 -0
- package/templates/app/src/components/chat-view.tsx +670 -0
- package/templates/app/src/components/commands-browser.tsx +349 -0
- package/templates/app/src/components/create-agent-modal.tsx +388 -0
- package/templates/app/src/components/governance-dashboard.tsx +397 -0
- package/templates/app/src/components/icons.tsx +401 -0
- package/templates/app/src/components/layout/agent-sidebar.tsx +504 -0
- package/templates/app/src/components/layout/app-shell.tsx +29 -0
- package/templates/app/src/components/layout/nav.tsx +87 -0
- package/templates/app/src/components/layout/overview-inner.tsx +14 -0
- package/templates/app/src/components/layout/profile-menu.tsx +95 -0
- package/templates/app/src/components/layout/sidebar.tsx +30 -0
- package/templates/app/src/components/markdown.tsx +57 -0
- package/templates/app/src/components/message-bar.tsx +161 -0
- package/templates/app/src/components/notifications/notification-bell.tsx +104 -0
- package/templates/app/src/components/notifications/notification-panel.tsx +116 -0
- package/templates/app/src/components/overview/overview-content.tsx +287 -0
- package/templates/app/src/components/overview/overview-context.tsx +88 -0
- package/templates/app/src/components/preferences-modal.tsx +112 -0
- package/templates/app/src/components/run-form.tsx +73 -0
- package/templates/app/src/components/run-history-table.tsx +226 -0
- package/templates/app/src/components/run-output.tsx +187 -0
- package/templates/app/src/components/schedule-form.tsx +148 -0
- package/templates/app/src/components/skills-browser.tsx +338 -0
- package/templates/app/src/components/tool-tooltip.tsx +82 -0
- package/templates/app/src/hooks/use-sse.ts +115 -0
- package/templates/app/src/instrumentation.ts +9 -0
- package/templates/app/src/lib/agent-cache.ts +19 -0
- package/templates/app/src/lib/agent-runner.ts +411 -0
- package/templates/app/src/lib/agents.ts +168 -0
- package/templates/app/src/lib/ai.ts +40 -0
- package/templates/app/src/lib/approval-store.ts +70 -0
- package/templates/app/src/lib/auth-guard.ts +116 -0
- package/templates/app/src/lib/capabilities.ts +191 -0
- package/templates/app/src/lib/line-diff.ts +96 -0
- package/templates/app/src/lib/queue.ts +22 -0
- package/templates/app/src/lib/redis.ts +12 -0
- package/templates/app/src/lib/role-permissions.ts +166 -0
- package/templates/app/src/lib/run-agent.ts +442 -0
- package/templates/app/src/lib/supabase-browser.ts +8 -0
- package/templates/app/src/lib/supabase-middleware.ts +63 -0
- package/templates/app/src/lib/supabase-server.ts +28 -0
- package/templates/app/src/lib/supabase.ts +6 -0
- package/templates/app/src/lib/tool-descriptions.ts +29 -0
- package/templates/app/src/lib/types.ts +73 -0
- package/templates/app/src/lib/typewriter-animation.ts +159 -0
- package/templates/app/src/middleware.ts +13 -0
- package/templates/app/tsconfig.json +21 -0
- package/templates/app/uploads/.gitkeep +0 -0
- package/templates/app/worker/index.ts +342 -0
- package/templates/claude/agents/ai-trends-scout.md +66 -0
- package/templates/claude/commands/add-to-todos.md +56 -0
- package/templates/claude/commands/check-todos.md +56 -0
- package/templates/claude/hooks/auto-approve-safe.sh +34 -0
- package/templates/claude/hooks/auto-format.sh +25 -0
- package/templates/claude/hooks/block-destructive.sh +32 -0
- package/templates/claude/hooks/compaction-preserver.sh +16 -0
- package/templates/claude/hooks/notify.sh +26 -0
- package/templates/claude/settings.local.json +66 -0
- package/templates/claude/skills/frontend-design/SKILL.md +127 -0
- package/templates/claude/skills/frontend-design/reference/color-and-contrast.md +132 -0
- package/templates/claude/skills/frontend-design/reference/interaction-design.md +123 -0
- package/templates/claude/skills/frontend-design/reference/motion-design.md +99 -0
- package/templates/claude/skills/frontend-design/reference/responsive-design.md +114 -0
- package/templates/claude/skills/frontend-design/reference/spatial-design.md +100 -0
- package/templates/claude/skills/frontend-design/reference/typography.md +131 -0
- package/templates/claude/skills/frontend-design/reference/ux-writing.md +107 -0
- package/templates/claude/skills/gws-admin-reports/SKILL.md +57 -0
- package/templates/claude/skills/gws-calendar/SKILL.md +108 -0
- package/templates/claude/skills/gws-calendar-agenda/SKILL.md +52 -0
- package/templates/claude/skills/gws-calendar-insert/SKILL.md +55 -0
- package/templates/claude/skills/gws-chat/SKILL.md +73 -0
- package/templates/claude/skills/gws-chat-send/SKILL.md +49 -0
- package/templates/claude/skills/gws-classroom/SKILL.md +75 -0
- package/templates/claude/skills/gws-docs/SKILL.md +48 -0
- package/templates/claude/skills/gws-docs-write/SKILL.md +49 -0
- package/templates/claude/skills/gws-drive/SKILL.md +137 -0
- package/templates/claude/skills/gws-drive-upload/SKILL.md +52 -0
- package/templates/claude/skills/gws-events/SKILL.md +67 -0
- package/templates/claude/skills/gws-events-renew/SKILL.md +48 -0
- package/templates/claude/skills/gws-events-subscribe/SKILL.md +59 -0
- package/templates/claude/skills/gws-forms/SKILL.md +45 -0
- package/templates/claude/skills/gws-gmail/SKILL.md +59 -0
- package/templates/claude/skills/gws-gmail-forward/SKILL.md +53 -0
- package/templates/claude/skills/gws-gmail-reply/SKILL.md +56 -0
- package/templates/claude/skills/gws-gmail-reply-all/SKILL.md +60 -0
- package/templates/claude/skills/gws-gmail-send/SKILL.md +55 -0
- package/templates/claude/skills/gws-gmail-triage/SKILL.md +50 -0
- package/templates/claude/skills/gws-gmail-watch/SKILL.md +58 -0
- package/templates/claude/skills/gws-keep/SKILL.md +48 -0
- package/templates/claude/skills/gws-meet/SKILL.md +51 -0
- package/templates/claude/skills/gws-modelarmor/SKILL.md +42 -0
- package/templates/claude/skills/gws-modelarmor-create-template/SKILL.md +53 -0
- package/templates/claude/skills/gws-modelarmor-sanitize-prompt/SKILL.md +48 -0
- package/templates/claude/skills/gws-modelarmor-sanitize-response/SKILL.md +48 -0
- package/templates/claude/skills/gws-people/SKILL.md +67 -0
- package/templates/claude/skills/gws-shared/SKILL.md +66 -0
- package/templates/claude/skills/gws-sheets/SKILL.md +53 -0
- package/templates/claude/skills/gws-sheets-append/SKILL.md +51 -0
- package/templates/claude/skills/gws-sheets-read/SKILL.md +47 -0
- package/templates/claude/skills/gws-slides/SKILL.md +43 -0
- package/templates/claude/skills/gws-tasks/SKILL.md +56 -0
- package/templates/claude/skills/gws-workflow/SKILL.md +44 -0
- package/templates/claude/skills/gws-workflow-email-to-task/SKILL.md +47 -0
- package/templates/claude/skills/gws-workflow-file-announce/SKILL.md +50 -0
- package/templates/claude/skills/gws-workflow-meeting-prep/SKILL.md +47 -0
- package/templates/claude/skills/gws-workflow-standup-report/SKILL.md +46 -0
- package/templates/claude/skills/gws-workflow-weekly-digest/SKILL.md +46 -0
- package/templates/claude/skills/persona-content-creator/SKILL.md +33 -0
- package/templates/claude/skills/persona-customer-support/SKILL.md +34 -0
- package/templates/claude/skills/persona-event-coordinator/SKILL.md +35 -0
- package/templates/claude/skills/persona-exec-assistant/SKILL.md +35 -0
- package/templates/claude/skills/persona-hr-coordinator/SKILL.md +33 -0
- package/templates/claude/skills/persona-it-admin/SKILL.md +30 -0
- package/templates/claude/skills/persona-project-manager/SKILL.md +35 -0
- package/templates/claude/skills/persona-researcher/SKILL.md +33 -0
- package/templates/claude/skills/persona-sales-ops/SKILL.md +35 -0
- package/templates/claude/skills/persona-team-lead/SKILL.md +36 -0
- package/templates/claude/skills/recipe-backup-sheet-as-csv/SKILL.md +25 -0
- package/templates/claude/skills/recipe-batch-invite-to-event/SKILL.md +25 -0
- package/templates/claude/skills/recipe-block-focus-time/SKILL.md +24 -0
- package/templates/claude/skills/recipe-bulk-download-folder/SKILL.md +25 -0
- package/templates/claude/skills/recipe-collect-form-responses/SKILL.md +25 -0
- package/templates/claude/skills/recipe-compare-sheet-tabs/SKILL.md +25 -0
- package/templates/claude/skills/recipe-copy-sheet-for-new-month/SKILL.md +25 -0
- package/templates/claude/skills/recipe-create-classroom-course/SKILL.md +25 -0
- package/templates/claude/skills/recipe-create-doc-from-template/SKILL.md +29 -0
- package/templates/claude/skills/recipe-create-events-from-sheet/SKILL.md +24 -0
- package/templates/claude/skills/recipe-create-expense-tracker/SKILL.md +26 -0
- package/templates/claude/skills/recipe-create-feedback-form/SKILL.md +25 -0
- package/templates/claude/skills/recipe-create-gmail-filter/SKILL.md +26 -0
- package/templates/claude/skills/recipe-create-meet-space/SKILL.md +25 -0
- package/templates/claude/skills/recipe-create-presentation/SKILL.md +25 -0
- package/templates/claude/skills/recipe-create-shared-drive/SKILL.md +25 -0
- package/templates/claude/skills/recipe-create-task-list/SKILL.md +26 -0
- package/templates/claude/skills/recipe-create-vacation-responder/SKILL.md +25 -0
- package/templates/claude/skills/recipe-draft-email-from-doc/SKILL.md +25 -0
- package/templates/claude/skills/recipe-email-drive-link/SKILL.md +25 -0
- package/templates/claude/skills/recipe-find-free-time/SKILL.md +25 -0
- package/templates/claude/skills/recipe-find-large-files/SKILL.md +24 -0
- package/templates/claude/skills/recipe-forward-labeled-emails/SKILL.md +27 -0
- package/templates/claude/skills/recipe-generate-report-from-sheet/SKILL.md +34 -0
- package/templates/claude/skills/recipe-label-and-archive-emails/SKILL.md +25 -0
- package/templates/claude/skills/recipe-log-deal-update/SKILL.md +25 -0
- package/templates/claude/skills/recipe-organize-drive-folder/SKILL.md +26 -0
- package/templates/claude/skills/recipe-plan-weekly-schedule/SKILL.md +26 -0
- package/templates/claude/skills/recipe-post-mortem-setup/SKILL.md +25 -0
- package/templates/claude/skills/recipe-reschedule-meeting/SKILL.md +25 -0
- package/templates/claude/skills/recipe-review-meet-participants/SKILL.md +25 -0
- package/templates/claude/skills/recipe-review-overdue-tasks/SKILL.md +25 -0
- package/templates/claude/skills/recipe-save-email-attachments/SKILL.md +26 -0
- package/templates/claude/skills/recipe-save-email-to-doc/SKILL.md +29 -0
- package/templates/claude/skills/recipe-schedule-recurring-event/SKILL.md +24 -0
- package/templates/claude/skills/recipe-send-team-announcement/SKILL.md +24 -0
- package/templates/claude/skills/recipe-share-doc-and-notify/SKILL.md +25 -0
- package/templates/claude/skills/recipe-share-event-materials/SKILL.md +25 -0
- package/templates/claude/skills/recipe-share-folder-with-team/SKILL.md +26 -0
- package/templates/claude/skills/recipe-sync-contacts-to-sheet/SKILL.md +25 -0
- package/templates/claude/skills/recipe-watch-drive-changes/SKILL.md +25 -0
- package/templates/mcp.json +12 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: persona-it-admin
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: "Administer IT — monitor security and configure Workspace."
|
|
5
|
+
metadata:
|
|
6
|
+
openclaw:
|
|
7
|
+
category: "persona"
|
|
8
|
+
requires:
|
|
9
|
+
bins: ["gws"]
|
|
10
|
+
skills: ["gws-gmail", "gws-drive", "gws-calendar"]
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# IT Administrator
|
|
14
|
+
|
|
15
|
+
> **PREREQUISITE:** Load the following utility skills to operate as this persona: `gws-gmail`, `gws-drive`, `gws-calendar`
|
|
16
|
+
|
|
17
|
+
Administer IT — monitor security and configure Workspace.
|
|
18
|
+
|
|
19
|
+
## Relevant Workflows
|
|
20
|
+
- `gws workflow +standup-report`
|
|
21
|
+
|
|
22
|
+
## Instructions
|
|
23
|
+
- Start the day with `gws workflow +standup-report` to review any pending IT requests.
|
|
24
|
+
- Monitor suspicious login activity and review audit logs.
|
|
25
|
+
- Configure Drive sharing policies to enforce organizational security.
|
|
26
|
+
|
|
27
|
+
## Tips
|
|
28
|
+
- Always use `--dry-run` before bulk operations.
|
|
29
|
+
- Review `gws auth status` regularly to verify service account permissions.
|
|
30
|
+
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: persona-project-manager
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: "Coordinate projects — track tasks, schedule meetings, and share docs."
|
|
5
|
+
metadata:
|
|
6
|
+
openclaw:
|
|
7
|
+
category: "persona"
|
|
8
|
+
requires:
|
|
9
|
+
bins: ["gws"]
|
|
10
|
+
skills: ["gws-drive", "gws-sheets", "gws-calendar", "gws-gmail", "gws-chat"]
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Project Manager
|
|
14
|
+
|
|
15
|
+
> **PREREQUISITE:** Load the following utility skills to operate as this persona: `gws-drive`, `gws-sheets`, `gws-calendar`, `gws-gmail`, `gws-chat`
|
|
16
|
+
|
|
17
|
+
Coordinate projects — track tasks, schedule meetings, and share docs.
|
|
18
|
+
|
|
19
|
+
## Relevant Workflows
|
|
20
|
+
- `gws workflow +standup-report`
|
|
21
|
+
- `gws workflow +weekly-digest`
|
|
22
|
+
- `gws workflow +file-announce`
|
|
23
|
+
|
|
24
|
+
## Instructions
|
|
25
|
+
- Start the week with `gws workflow +weekly-digest` for a snapshot of upcoming meetings and unread items.
|
|
26
|
+
- Track project status in Sheets using `gws sheets +append` to log updates.
|
|
27
|
+
- Share project artifacts by uploading to Drive with `gws drive +upload`, then announcing with `gws workflow +file-announce`.
|
|
28
|
+
- Schedule recurring standups with `gws calendar +insert` — include all team members as attendees.
|
|
29
|
+
- Send status update emails to stakeholders with `gws gmail +send`.
|
|
30
|
+
|
|
31
|
+
## Tips
|
|
32
|
+
- Use `gws drive files list --params '{"q": "name contains \'Project\'"}'` to find project folders.
|
|
33
|
+
- Pipe triage output through `jq` for filtering by sender or subject.
|
|
34
|
+
- Use `--dry-run` before any write operations to preview what will happen.
|
|
35
|
+
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: persona-researcher
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: "Organize research — manage references, notes, and collaboration."
|
|
5
|
+
metadata:
|
|
6
|
+
openclaw:
|
|
7
|
+
category: "persona"
|
|
8
|
+
requires:
|
|
9
|
+
bins: ["gws"]
|
|
10
|
+
skills: ["gws-drive", "gws-docs", "gws-sheets", "gws-gmail"]
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Researcher
|
|
14
|
+
|
|
15
|
+
> **PREREQUISITE:** Load the following utility skills to operate as this persona: `gws-drive`, `gws-docs`, `gws-sheets`, `gws-gmail`
|
|
16
|
+
|
|
17
|
+
Organize research — manage references, notes, and collaboration.
|
|
18
|
+
|
|
19
|
+
## Relevant Workflows
|
|
20
|
+
- `gws workflow +file-announce`
|
|
21
|
+
|
|
22
|
+
## Instructions
|
|
23
|
+
- Organize research papers and notes in Drive folders.
|
|
24
|
+
- Write research notes and summaries with `gws docs +write`.
|
|
25
|
+
- Track research data in Sheets — use `gws sheets +append` for data logging.
|
|
26
|
+
- Share findings with collaborators via `gws workflow +file-announce`.
|
|
27
|
+
- Request peer reviews via `gws gmail +send`.
|
|
28
|
+
|
|
29
|
+
## Tips
|
|
30
|
+
- Use `gws drive files list` with search queries to find specific documents.
|
|
31
|
+
- Keep a running log of experiments and findings in a shared Sheet.
|
|
32
|
+
- Use `--format csv` when exporting data for analysis tools.
|
|
33
|
+
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: persona-sales-ops
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: "Manage sales workflows — track deals, schedule calls, client comms."
|
|
5
|
+
metadata:
|
|
6
|
+
openclaw:
|
|
7
|
+
category: "persona"
|
|
8
|
+
requires:
|
|
9
|
+
bins: ["gws"]
|
|
10
|
+
skills: ["gws-gmail", "gws-calendar", "gws-sheets", "gws-drive"]
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Sales Operations
|
|
14
|
+
|
|
15
|
+
> **PREREQUISITE:** Load the following utility skills to operate as this persona: `gws-gmail`, `gws-calendar`, `gws-sheets`, `gws-drive`
|
|
16
|
+
|
|
17
|
+
Manage sales workflows — track deals, schedule calls, client comms.
|
|
18
|
+
|
|
19
|
+
## Relevant Workflows
|
|
20
|
+
- `gws workflow +meeting-prep`
|
|
21
|
+
- `gws workflow +email-to-task`
|
|
22
|
+
- `gws workflow +weekly-digest`
|
|
23
|
+
|
|
24
|
+
## Instructions
|
|
25
|
+
- Prepare for client calls with `gws workflow +meeting-prep` to review attendees and agenda.
|
|
26
|
+
- Log deal updates in a tracking spreadsheet with `gws sheets +append`.
|
|
27
|
+
- Convert follow-up emails into tasks with `gws workflow +email-to-task`.
|
|
28
|
+
- Share proposals by uploading to Drive with `gws drive +upload`.
|
|
29
|
+
- Get a weekly sales pipeline summary with `gws workflow +weekly-digest`.
|
|
30
|
+
|
|
31
|
+
## Tips
|
|
32
|
+
- Use `gws gmail +triage --query 'from:client-domain.com'` to filter client emails.
|
|
33
|
+
- Schedule follow-up calls immediately after meetings to maintain momentum.
|
|
34
|
+
- Keep all client-facing documents in a dedicated shared Drive folder.
|
|
35
|
+
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: persona-team-lead
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: "Lead a team — run standups, coordinate tasks, and communicate."
|
|
5
|
+
metadata:
|
|
6
|
+
openclaw:
|
|
7
|
+
category: "persona"
|
|
8
|
+
requires:
|
|
9
|
+
bins: ["gws"]
|
|
10
|
+
skills: ["gws-calendar", "gws-gmail", "gws-chat", "gws-drive", "gws-sheets"]
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Team Lead
|
|
14
|
+
|
|
15
|
+
> **PREREQUISITE:** Load the following utility skills to operate as this persona: `gws-calendar`, `gws-gmail`, `gws-chat`, `gws-drive`, `gws-sheets`
|
|
16
|
+
|
|
17
|
+
Lead a team — run standups, coordinate tasks, and communicate.
|
|
18
|
+
|
|
19
|
+
## Relevant Workflows
|
|
20
|
+
- `gws workflow +standup-report`
|
|
21
|
+
- `gws workflow +meeting-prep`
|
|
22
|
+
- `gws workflow +weekly-digest`
|
|
23
|
+
- `gws workflow +email-to-task`
|
|
24
|
+
|
|
25
|
+
## Instructions
|
|
26
|
+
- Run daily standups with `gws workflow +standup-report` — share output in team Chat.
|
|
27
|
+
- Prepare for 1:1s with `gws workflow +meeting-prep`.
|
|
28
|
+
- Get weekly snapshots with `gws workflow +weekly-digest`.
|
|
29
|
+
- Delegate email action items with `gws workflow +email-to-task`.
|
|
30
|
+
- Track team OKRs in a shared Sheet with `gws sheets +append`.
|
|
31
|
+
|
|
32
|
+
## Tips
|
|
33
|
+
- Use `gws calendar +agenda --week --format table` for weekly team calendar views.
|
|
34
|
+
- Pipe standup reports to Chat with `gws chat spaces messages create`.
|
|
35
|
+
- Use `--sanitize` for any operations involving sensitive team data.
|
|
36
|
+
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: recipe-backup-sheet-as-csv
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: "Export a Google Sheets spreadsheet as a CSV file for local backup or processing."
|
|
5
|
+
metadata:
|
|
6
|
+
openclaw:
|
|
7
|
+
category: "recipe"
|
|
8
|
+
domain: "productivity"
|
|
9
|
+
requires:
|
|
10
|
+
bins: ["gws"]
|
|
11
|
+
skills: ["gws-sheets", "gws-drive"]
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Export a Google Sheet as CSV
|
|
15
|
+
|
|
16
|
+
> **PREREQUISITE:** Load the following skills to execute this recipe: `gws-sheets`, `gws-drive`
|
|
17
|
+
|
|
18
|
+
Export a Google Sheets spreadsheet as a CSV file for local backup or processing.
|
|
19
|
+
|
|
20
|
+
## Steps
|
|
21
|
+
|
|
22
|
+
1. Get spreadsheet details: `gws sheets spreadsheets get --params '{"spreadsheetId": "SHEET_ID"}'`
|
|
23
|
+
2. Export as CSV: `gws drive files export --params '{"fileId": "SHEET_ID", "mimeType": "text/csv"}'`
|
|
24
|
+
3. Or read values directly: `gws sheets +read --spreadsheet-id SHEET_ID --range 'Sheet1' --format csv`
|
|
25
|
+
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: recipe-batch-invite-to-event
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: "Add a list of attendees to an existing Google Calendar event and send notifications."
|
|
5
|
+
metadata:
|
|
6
|
+
openclaw:
|
|
7
|
+
category: "recipe"
|
|
8
|
+
domain: "scheduling"
|
|
9
|
+
requires:
|
|
10
|
+
bins: ["gws"]
|
|
11
|
+
skills: ["gws-calendar"]
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Add Multiple Attendees to a Calendar Event
|
|
15
|
+
|
|
16
|
+
> **PREREQUISITE:** Load the following skills to execute this recipe: `gws-calendar`
|
|
17
|
+
|
|
18
|
+
Add a list of attendees to an existing Google Calendar event and send notifications.
|
|
19
|
+
|
|
20
|
+
## Steps
|
|
21
|
+
|
|
22
|
+
1. Get the event: `gws calendar events get --params '{"calendarId": "primary", "eventId": "EVENT_ID"}'`
|
|
23
|
+
2. Add attendees: `gws calendar events patch --params '{"calendarId": "primary", "eventId": "EVENT_ID", "sendUpdates": "all"}' --json '{"attendees": [{"email": "alice@company.com"}, {"email": "bob@company.com"}, {"email": "carol@company.com"}]}'`
|
|
24
|
+
3. Verify attendees: `gws calendar events get --params '{"calendarId": "primary", "eventId": "EVENT_ID"}'`
|
|
25
|
+
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: recipe-block-focus-time
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: "Create recurring focus time blocks on Google Calendar to protect deep work hours."
|
|
5
|
+
metadata:
|
|
6
|
+
openclaw:
|
|
7
|
+
category: "recipe"
|
|
8
|
+
domain: "scheduling"
|
|
9
|
+
requires:
|
|
10
|
+
bins: ["gws"]
|
|
11
|
+
skills: ["gws-calendar"]
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Block Focus Time on Google Calendar
|
|
15
|
+
|
|
16
|
+
> **PREREQUISITE:** Load the following skills to execute this recipe: `gws-calendar`
|
|
17
|
+
|
|
18
|
+
Create recurring focus time blocks on Google Calendar to protect deep work hours.
|
|
19
|
+
|
|
20
|
+
## Steps
|
|
21
|
+
|
|
22
|
+
1. Create recurring focus block: `gws calendar events insert --params '{"calendarId": "primary"}' --json '{"summary": "Focus Time", "description": "Protected deep work block", "start": {"dateTime": "2025-01-20T09:00:00", "timeZone": "America/New_York"}, "end": {"dateTime": "2025-01-20T11:00:00", "timeZone": "America/New_York"}, "recurrence": ["RRULE:FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR"], "transparency": "opaque"}'`
|
|
23
|
+
2. Verify it shows as busy: `gws calendar +agenda`
|
|
24
|
+
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: recipe-bulk-download-folder
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: "List and download all files from a Google Drive folder."
|
|
5
|
+
metadata:
|
|
6
|
+
openclaw:
|
|
7
|
+
category: "recipe"
|
|
8
|
+
domain: "productivity"
|
|
9
|
+
requires:
|
|
10
|
+
bins: ["gws"]
|
|
11
|
+
skills: ["gws-drive"]
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Bulk Download Drive Folder
|
|
15
|
+
|
|
16
|
+
> **PREREQUISITE:** Load the following skills to execute this recipe: `gws-drive`
|
|
17
|
+
|
|
18
|
+
List and download all files from a Google Drive folder.
|
|
19
|
+
|
|
20
|
+
## Steps
|
|
21
|
+
|
|
22
|
+
1. List files in folder: `gws drive files list --params '{"q": "'\''FOLDER_ID'\'' in parents"}' --format json`
|
|
23
|
+
2. Download each file: `gws drive files get --params '{"fileId": "FILE_ID", "alt": "media"}' -o filename.ext`
|
|
24
|
+
3. Export Google Docs as PDF: `gws drive files export --params '{"fileId": "FILE_ID", "mimeType": "application/pdf"}' -o document.pdf`
|
|
25
|
+
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: recipe-collect-form-responses
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: "Retrieve and review responses from a Google Form."
|
|
5
|
+
metadata:
|
|
6
|
+
openclaw:
|
|
7
|
+
category: "recipe"
|
|
8
|
+
domain: "productivity"
|
|
9
|
+
requires:
|
|
10
|
+
bins: ["gws"]
|
|
11
|
+
skills: ["gws-forms"]
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Check Form Responses
|
|
15
|
+
|
|
16
|
+
> **PREREQUISITE:** Load the following skills to execute this recipe: `gws-forms`
|
|
17
|
+
|
|
18
|
+
Retrieve and review responses from a Google Form.
|
|
19
|
+
|
|
20
|
+
## Steps
|
|
21
|
+
|
|
22
|
+
1. List forms: `gws forms forms list` (if you don't have the form ID)
|
|
23
|
+
2. Get form details: `gws forms forms get --params '{"formId": "FORM_ID"}'`
|
|
24
|
+
3. Get responses: `gws forms forms responses list --params '{"formId": "FORM_ID"}' --format table`
|
|
25
|
+
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: recipe-compare-sheet-tabs
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: "Read data from two tabs in a Google Sheet to compare and identify differences."
|
|
5
|
+
metadata:
|
|
6
|
+
openclaw:
|
|
7
|
+
category: "recipe"
|
|
8
|
+
domain: "productivity"
|
|
9
|
+
requires:
|
|
10
|
+
bins: ["gws"]
|
|
11
|
+
skills: ["gws-sheets"]
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Compare Two Google Sheets Tabs
|
|
15
|
+
|
|
16
|
+
> **PREREQUISITE:** Load the following skills to execute this recipe: `gws-sheets`
|
|
17
|
+
|
|
18
|
+
Read data from two tabs in a Google Sheet to compare and identify differences.
|
|
19
|
+
|
|
20
|
+
## Steps
|
|
21
|
+
|
|
22
|
+
1. Read the first tab: `gws sheets +read --spreadsheet-id SHEET_ID --range 'January!A1:D'`
|
|
23
|
+
2. Read the second tab: `gws sheets +read --spreadsheet-id SHEET_ID --range 'February!A1:D'`
|
|
24
|
+
3. Compare the data and identify changes
|
|
25
|
+
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: recipe-copy-sheet-for-new-month
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: "Duplicate a Google Sheets template tab for a new month of tracking."
|
|
5
|
+
metadata:
|
|
6
|
+
openclaw:
|
|
7
|
+
category: "recipe"
|
|
8
|
+
domain: "productivity"
|
|
9
|
+
requires:
|
|
10
|
+
bins: ["gws"]
|
|
11
|
+
skills: ["gws-sheets"]
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Copy a Google Sheet for a New Month
|
|
15
|
+
|
|
16
|
+
> **PREREQUISITE:** Load the following skills to execute this recipe: `gws-sheets`
|
|
17
|
+
|
|
18
|
+
Duplicate a Google Sheets template tab for a new month of tracking.
|
|
19
|
+
|
|
20
|
+
## Steps
|
|
21
|
+
|
|
22
|
+
1. Get spreadsheet details: `gws sheets spreadsheets get --params '{"spreadsheetId": "SHEET_ID"}'`
|
|
23
|
+
2. Copy the template sheet: `gws sheets spreadsheets sheets copyTo --params '{"spreadsheetId": "SHEET_ID", "sheetId": 0}' --json '{"destinationSpreadsheetId": "SHEET_ID"}'`
|
|
24
|
+
3. Rename the new tab: `gws sheets spreadsheets batchUpdate --params '{"spreadsheetId": "SHEET_ID"}' --json '{"requests": [{"updateSheetProperties": {"properties": {"sheetId": 123, "title": "February 2025"}, "fields": "title"}}]}'`
|
|
25
|
+
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: recipe-create-classroom-course
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: "Create a Google Classroom course and invite students."
|
|
5
|
+
metadata:
|
|
6
|
+
openclaw:
|
|
7
|
+
category: "recipe"
|
|
8
|
+
domain: "education"
|
|
9
|
+
requires:
|
|
10
|
+
bins: ["gws"]
|
|
11
|
+
skills: ["gws-classroom"]
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Create a Google Classroom Course
|
|
15
|
+
|
|
16
|
+
> **PREREQUISITE:** Load the following skills to execute this recipe: `gws-classroom`
|
|
17
|
+
|
|
18
|
+
Create a Google Classroom course and invite students.
|
|
19
|
+
|
|
20
|
+
## Steps
|
|
21
|
+
|
|
22
|
+
1. Create the course: `gws classroom courses create --json '{"name": "Introduction to CS", "section": "Period 1", "room": "Room 101", "ownerId": "me"}'`
|
|
23
|
+
2. Invite a student: `gws classroom invitations create --json '{"courseId": "COURSE_ID", "userId": "student@school.edu", "role": "STUDENT"}'`
|
|
24
|
+
3. List enrolled students: `gws classroom courses students list --params '{"courseId": "COURSE_ID"}' --format table`
|
|
25
|
+
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: recipe-create-doc-from-template
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: "Copy a Google Docs template, fill in content, and share with collaborators."
|
|
5
|
+
metadata:
|
|
6
|
+
openclaw:
|
|
7
|
+
category: "recipe"
|
|
8
|
+
domain: "productivity"
|
|
9
|
+
requires:
|
|
10
|
+
bins: ["gws"]
|
|
11
|
+
skills: ["gws-drive", "gws-docs"]
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Create a Google Doc from a Template
|
|
15
|
+
|
|
16
|
+
> **PREREQUISITE:** Load the following skills to execute this recipe: `gws-drive`, `gws-docs`
|
|
17
|
+
|
|
18
|
+
Copy a Google Docs template, fill in content, and share with collaborators.
|
|
19
|
+
|
|
20
|
+
## Steps
|
|
21
|
+
|
|
22
|
+
1. Copy the template: `gws drive files copy --params '{"fileId": "TEMPLATE_DOC_ID"}' --json '{"name": "Project Brief - Q2 Launch"}'`
|
|
23
|
+
2. Get the new doc ID from the response
|
|
24
|
+
3. Add content: `gws docs +write --document-id NEW_DOC_ID --text '## Project: Q2 Launch
|
|
25
|
+
|
|
26
|
+
### Objective
|
|
27
|
+
Launch the new feature by end of Q2.'`
|
|
28
|
+
4. Share with team: `gws drive permissions create --params '{"fileId": "NEW_DOC_ID"}' --json '{"role": "writer", "type": "user", "emailAddress": "team@company.com"}'`
|
|
29
|
+
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: recipe-create-events-from-sheet
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: "Read event data from a Google Sheets spreadsheet and create Google Calendar entries for each row."
|
|
5
|
+
metadata:
|
|
6
|
+
openclaw:
|
|
7
|
+
category: "recipe"
|
|
8
|
+
domain: "productivity"
|
|
9
|
+
requires:
|
|
10
|
+
bins: ["gws"]
|
|
11
|
+
skills: ["gws-sheets", "gws-calendar"]
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Create Google Calendar Events from a Sheet
|
|
15
|
+
|
|
16
|
+
> **PREREQUISITE:** Load the following skills to execute this recipe: `gws-sheets`, `gws-calendar`
|
|
17
|
+
|
|
18
|
+
Read event data from a Google Sheets spreadsheet and create Google Calendar entries for each row.
|
|
19
|
+
|
|
20
|
+
## Steps
|
|
21
|
+
|
|
22
|
+
1. Read event data: `gws sheets +read --spreadsheet-id SHEET_ID --range 'Events!A2:D'`
|
|
23
|
+
2. For each row, create a calendar event: `gws calendar +insert --summary 'Team Standup' --start '2025-01-20T09:00' --duration 30 --attendees alice@company.com,bob@company.com`
|
|
24
|
+
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: recipe-create-expense-tracker
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: "Set up a Google Sheets spreadsheet for tracking expenses with headers and initial entries."
|
|
5
|
+
metadata:
|
|
6
|
+
openclaw:
|
|
7
|
+
category: "recipe"
|
|
8
|
+
domain: "productivity"
|
|
9
|
+
requires:
|
|
10
|
+
bins: ["gws"]
|
|
11
|
+
skills: ["gws-sheets", "gws-drive"]
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Create a Google Sheets Expense Tracker
|
|
15
|
+
|
|
16
|
+
> **PREREQUISITE:** Load the following skills to execute this recipe: `gws-sheets`, `gws-drive`
|
|
17
|
+
|
|
18
|
+
Set up a Google Sheets spreadsheet for tracking expenses with headers and initial entries.
|
|
19
|
+
|
|
20
|
+
## Steps
|
|
21
|
+
|
|
22
|
+
1. Create spreadsheet: `gws drive files create --json '{"name": "Expense Tracker 2025", "mimeType": "application/vnd.google-apps.spreadsheet"}'`
|
|
23
|
+
2. Add headers: `gws sheets +append --spreadsheet-id SHEET_ID --range 'Sheet1' --values '["Date", "Category", "Description", "Amount"]'`
|
|
24
|
+
3. Add first entry: `gws sheets +append --spreadsheet-id SHEET_ID --range 'Sheet1' --values '["2025-01-15", "Travel", "Flight to NYC", "450.00"]'`
|
|
25
|
+
4. Share with manager: `gws drive permissions create --params '{"fileId": "SHEET_ID"}' --json '{"role": "reader", "type": "user", "emailAddress": "manager@company.com"}'`
|
|
26
|
+
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: recipe-create-feedback-form
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: "Create a Google Form for feedback and share it via Gmail."
|
|
5
|
+
metadata:
|
|
6
|
+
openclaw:
|
|
7
|
+
category: "recipe"
|
|
8
|
+
domain: "productivity"
|
|
9
|
+
requires:
|
|
10
|
+
bins: ["gws"]
|
|
11
|
+
skills: ["gws-forms", "gws-gmail"]
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Create and Share a Google Form
|
|
15
|
+
|
|
16
|
+
> **PREREQUISITE:** Load the following skills to execute this recipe: `gws-forms`, `gws-gmail`
|
|
17
|
+
|
|
18
|
+
Create a Google Form for feedback and share it via Gmail.
|
|
19
|
+
|
|
20
|
+
## Steps
|
|
21
|
+
|
|
22
|
+
1. Create form: `gws forms forms create --json '{"info": {"title": "Event Feedback", "documentTitle": "Event Feedback Form"}}'`
|
|
23
|
+
2. Get the form URL from the response (responderUri field)
|
|
24
|
+
3. Email the form: `gws gmail +send --to attendees@company.com --subject 'Please share your feedback' --body 'Fill out the form: FORM_URL'`
|
|
25
|
+
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: recipe-create-gmail-filter
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: "Create a Gmail filter to automatically label, star, or categorize incoming messages."
|
|
5
|
+
metadata:
|
|
6
|
+
openclaw:
|
|
7
|
+
category: "recipe"
|
|
8
|
+
domain: "productivity"
|
|
9
|
+
requires:
|
|
10
|
+
bins: ["gws"]
|
|
11
|
+
skills: ["gws-gmail"]
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Create a Gmail Filter
|
|
15
|
+
|
|
16
|
+
> **PREREQUISITE:** Load the following skills to execute this recipe: `gws-gmail`
|
|
17
|
+
|
|
18
|
+
Create a Gmail filter to automatically label, star, or categorize incoming messages.
|
|
19
|
+
|
|
20
|
+
## Steps
|
|
21
|
+
|
|
22
|
+
1. List existing labels: `gws gmail users labels list --params '{"userId": "me"}' --format table`
|
|
23
|
+
2. Create a new label: `gws gmail users labels create --params '{"userId": "me"}' --json '{"name": "Receipts"}'`
|
|
24
|
+
3. Create a filter: `gws gmail users settings filters create --params '{"userId": "me"}' --json '{"criteria": {"from": "receipts@example.com"}, "action": {"addLabelIds": ["LABEL_ID"], "removeLabelIds": ["INBOX"]}}'`
|
|
25
|
+
4. Verify filter: `gws gmail users settings filters list --params '{"userId": "me"}' --format table`
|
|
26
|
+
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: recipe-create-meet-space
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: "Create a Google Meet meeting space and share the join link."
|
|
5
|
+
metadata:
|
|
6
|
+
openclaw:
|
|
7
|
+
category: "recipe"
|
|
8
|
+
domain: "scheduling"
|
|
9
|
+
requires:
|
|
10
|
+
bins: ["gws"]
|
|
11
|
+
skills: ["gws-meet", "gws-gmail"]
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Create a Google Meet Conference
|
|
15
|
+
|
|
16
|
+
> **PREREQUISITE:** Load the following skills to execute this recipe: `gws-meet`, `gws-gmail`
|
|
17
|
+
|
|
18
|
+
Create a Google Meet meeting space and share the join link.
|
|
19
|
+
|
|
20
|
+
## Steps
|
|
21
|
+
|
|
22
|
+
1. Create meeting space: `gws meet spaces create --json '{"config": {"accessType": "OPEN"}}'`
|
|
23
|
+
2. Copy the meeting URI from the response
|
|
24
|
+
3. Email the link: `gws gmail +send --to team@company.com --subject 'Join the meeting' --body 'Join here: MEETING_URI'`
|
|
25
|
+
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: recipe-create-presentation
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: "Create a new Google Slides presentation and add initial slides."
|
|
5
|
+
metadata:
|
|
6
|
+
openclaw:
|
|
7
|
+
category: "recipe"
|
|
8
|
+
domain: "productivity"
|
|
9
|
+
requires:
|
|
10
|
+
bins: ["gws"]
|
|
11
|
+
skills: ["gws-slides"]
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Create a Google Slides Presentation
|
|
15
|
+
|
|
16
|
+
> **PREREQUISITE:** Load the following skills to execute this recipe: `gws-slides`
|
|
17
|
+
|
|
18
|
+
Create a new Google Slides presentation and add initial slides.
|
|
19
|
+
|
|
20
|
+
## Steps
|
|
21
|
+
|
|
22
|
+
1. Create presentation: `gws slides presentations create --json '{"title": "Quarterly Review Q2"}'`
|
|
23
|
+
2. Get the presentation ID from the response
|
|
24
|
+
3. Share with team: `gws drive permissions create --params '{"fileId": "PRESENTATION_ID"}' --json '{"role": "writer", "type": "user", "emailAddress": "team@company.com"}'`
|
|
25
|
+
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: recipe-create-shared-drive
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: "Create a Google Shared Drive and add members with appropriate roles."
|
|
5
|
+
metadata:
|
|
6
|
+
openclaw:
|
|
7
|
+
category: "recipe"
|
|
8
|
+
domain: "productivity"
|
|
9
|
+
requires:
|
|
10
|
+
bins: ["gws"]
|
|
11
|
+
skills: ["gws-drive"]
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Create and Configure a Shared Drive
|
|
15
|
+
|
|
16
|
+
> **PREREQUISITE:** Load the following skills to execute this recipe: `gws-drive`
|
|
17
|
+
|
|
18
|
+
Create a Google Shared Drive and add members with appropriate roles.
|
|
19
|
+
|
|
20
|
+
## Steps
|
|
21
|
+
|
|
22
|
+
1. Create shared drive: `gws drive drives create --params '{"requestId": "unique-id-123"}' --json '{"name": "Project X"}'`
|
|
23
|
+
2. Add a member: `gws drive permissions create --params '{"fileId": "DRIVE_ID", "supportsAllDrives": true}' --json '{"role": "writer", "type": "user", "emailAddress": "member@company.com"}'`
|
|
24
|
+
3. List members: `gws drive permissions list --params '{"fileId": "DRIVE_ID", "supportsAllDrives": true}'`
|
|
25
|
+
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: recipe-create-task-list
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: "Set up a new Google Tasks list with initial tasks."
|
|
5
|
+
metadata:
|
|
6
|
+
openclaw:
|
|
7
|
+
category: "recipe"
|
|
8
|
+
domain: "productivity"
|
|
9
|
+
requires:
|
|
10
|
+
bins: ["gws"]
|
|
11
|
+
skills: ["gws-tasks"]
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Create a Task List and Add Tasks
|
|
15
|
+
|
|
16
|
+
> **PREREQUISITE:** Load the following skills to execute this recipe: `gws-tasks`
|
|
17
|
+
|
|
18
|
+
Set up a new Google Tasks list with initial tasks.
|
|
19
|
+
|
|
20
|
+
## Steps
|
|
21
|
+
|
|
22
|
+
1. Create task list: `gws tasks tasklists insert --json '{"title": "Q2 Goals"}'`
|
|
23
|
+
2. Add a task: `gws tasks tasks insert --params '{"tasklist": "TASKLIST_ID"}' --json '{"title": "Review Q1 metrics", "notes": "Pull data from analytics dashboard", "due": "2024-04-01T00:00:00Z"}'`
|
|
24
|
+
3. Add another task: `gws tasks tasks insert --params '{"tasklist": "TASKLIST_ID"}' --json '{"title": "Draft Q2 OKRs"}'`
|
|
25
|
+
4. List tasks: `gws tasks tasks list --params '{"tasklist": "TASKLIST_ID"}' --format table`
|
|
26
|
+
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: recipe-create-vacation-responder
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: "Enable a Gmail out-of-office auto-reply with a custom message and date range."
|
|
5
|
+
metadata:
|
|
6
|
+
openclaw:
|
|
7
|
+
category: "recipe"
|
|
8
|
+
domain: "productivity"
|
|
9
|
+
requires:
|
|
10
|
+
bins: ["gws"]
|
|
11
|
+
skills: ["gws-gmail"]
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Set Up a Gmail Vacation Responder
|
|
15
|
+
|
|
16
|
+
> **PREREQUISITE:** Load the following skills to execute this recipe: `gws-gmail`
|
|
17
|
+
|
|
18
|
+
Enable a Gmail out-of-office auto-reply with a custom message and date range.
|
|
19
|
+
|
|
20
|
+
## Steps
|
|
21
|
+
|
|
22
|
+
1. Enable vacation responder: `gws gmail users settings updateVacation --params '{"userId": "me"}' --json '{"enableAutoReply": true, "responseSubject": "Out of Office", "responseBodyPlainText": "I am out of the office until Jan 20. For urgent matters, contact backup@company.com.", "restrictToContacts": false, "restrictToDomain": false}'`
|
|
23
|
+
2. Verify settings: `gws gmail users settings getVacation --params '{"userId": "me"}'`
|
|
24
|
+
3. Disable when back: `gws gmail users settings updateVacation --params '{"userId": "me"}' --json '{"enableAutoReply": false}'`
|
|
25
|
+
|