
Gws Classroom
Operate Google Classroom (courses, rosters, coursework) from the terminal via the gws CLI for agents and automation.
Overview
Gws-classroom is an agent skill for the Build phase that manages Google Classroom classes, rosters, and coursework through the gws classroom CLI.
Install
npx skills add https://github.com/googleworkspace/cli --skill gws-classroomWhat is this skill?
- CLI surface: gws classroom <resource> <method> with v1 API coverage
- Courses lifecycle: create, get, delete, grading settings, and related course operations
- Requires gws-shared SKILL.md for auth, global flags, and security rules
- OpenClaw metadata: requires gws binary on PATH (gws classroom --help)
- Packaged at metadata version 0.22.5 under productivity category
- Classroom API v1
Adoption & trust: 14.8k installs on skills.sh; 26.9k GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
You need to create or maintain Classroom courses from scripts or an agent but do not want to maintain OAuth and REST boilerplate by hand.
Who is it for?
Educators, course creators, and devs already standardizing on the gws CLI for Google Workspace automation.
Skip if: Teams with no Google Workspace domain, no gws binary installed, or who only need occasional manual edits in the Classroom UI.
When should I use this skill?
Manage Google Classroom classes, rosters, or coursework via gws classroom commands.
What do I get? / Deliverables
Your agent runs documented gws classroom subcommands with shared auth and security rules from gws-shared, producing API-backed course and roster changes.
- Course create/update/delete via CLI
- Grading and course metadata operations
- Agent-runnable command templates with flags
Recommended Skills
Journey fit
Classroom management is an external Google Workspace integration you wire into your product or ops stack during build. Integrations subphase is the shelf for third-party API/CLI bindings such as Classroom v1 resources.
How it compares
CLI integration skill for Classroom v1—not a full LMS replacement or browser-only Classroom assistant.
Common Questions / FAQ
Who is gws-classroom for?
Solo builders and small teams automating Google Classroom with the gws CLI inside Claude Code, Cursor, or similar agents.
When should I use gws-classroom?
During Build when wiring Google Classroom into backends, cohort onboarding scripts, or agent-driven admin for courses and rosters.
Is gws-classroom safe to install?
It can touch live Classroom data and OAuth credentials; check the Security Audits panel on this page and follow gws-shared security rules before granting filesystem or secret access.
SKILL.md
READMESKILL.md - Gws Classroom
# classroom (v1) > **PREREQUISITE:** Read `../gws-shared/SKILL.md` for auth, global flags, and security rules. If missing, run `gws generate-skills` to create it. ```bash gws classroom <resource> <method> [flags] ``` ## API Resources ### courses - `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. - `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. - `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. - `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. - `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. - `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. - `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 - `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). - `aliases` — Operations on the 'aliases' resource - `announcements` — Operations on the 'announcements' resource - `courseWork` — Operations on the 'courseWork' resource - `courseWorkMaterials` — Operations on the 'courseWorkMaterials' resource - `posts` — Operations on the 'posts' resource - `studentGroups` — Operations on the 'studentGroups' resource - `students` — Operations on the 'students' resource - `teachers` — Operations on the 'teachers' resource - `topics` — Operations on the 'topics' resource ### invitations - `accept` — Accepts an invitation, removing it and addi