gc-classroom-cli
v0.1.8
Published
Google Classroom CLI/TUI packaged for npm and bun
Maintainers
Readme
gc-cli
Google Classroom CLI/TUI built in Go, packaged for npm/bun so users can run gc-cli (or gc) directly.
Install
npm
npm install -g gc-classroom-clibun
bun add -g gc-classroom-cliThen run:
gc-cli auth login
gc-cligc is also installed as an alias.
TUI navigation
In the TUI:
tab / shift+tab # move focus between Global Views, Classes, Class Tabs, Content
up/down (or j/k) # move inside the focused pane
[ / ] # quick switch global view (or class tab when class is open)
a # open contextual Actions menu (simple guided flow)
: # open in-TUI command bar (run any gc-cli subcommand)
enter # open class tabs for selected class
esc # return from class tabs to global mode
r # refresh from Classroom
o # open current context in browserStream, Classwork, People, Grades, and To-do load real Classroom API data in the content pane.
Actions menu supports guided operations (no manual command writing) for:
Stream: post, edit, delete announcementsClasswork: create, edit, publish, schedule, delete, turn in/mark as done, unsubmit/reclaimPeople: invite/remove teacher or studentGrades: set draft/assigned grade, return submissionTo-do: turn in/mark as done, unsubmit/reclaim by#item
Use #<number> shortcuts where shown in tab lists (for example #1 for first classwork item) when prompted.
Use command bar examples:
stream post --course <course_id> --text "Reminder: quiz Friday"
classwork create --course <course_id> --title "Worksheet 4"
people invite --course <course_id> --role student --user [email protected]
submissions turn-in --course <course_id> --course-work <work_id> --submission <submission_id>Seamless OAuth
The binary ships with a default OAuth Desktop client configuration, so users can run gc-cli auth login without manual config.
Optional overrides:
export GC_OAUTH_CLIENT_ID="..."
export GC_OAUTH_CLIENT_SECRET="..."Command surface
gc-cli # launch TUI
gc-cli auth login|status|logout
gc-cli classes list|show|create|update|archive|restore|delete
gc-cli stream list|post|edit|delete
gc-cli classwork list|create|edit|publish|schedule|delete
gc-cli submissions list|show|turn-in|unsubmit|grade|return|reclaim
gc-cli people list|invite|remove
gc-cli grades list|set-draft|set-assigned|return
gc-cli topics list|create|edit|delete|move
gc-cli to-do list
gc-cli calendar open
gc-cli handoff open <feature> --course <id>Use --json with any command for machine-readable output.
Package maintainers
Build npm dist binaries:
npm run build:distIf your OAuth Desktop client requires a secret for token exchange, inject it at build time:
GC_CLI_DEFAULT_OAUTH_CLIENT_SECRET="..." npm run build:distCreate package tarball:
npm packPublish (after npm login):
npm publish --access publicDevelopment
go test ./...See parity details in docs/parity-matrix.md.
