← Back to projects
claude-classroom-submit — autonomous Google Classroom turn-in
Skips the cross-origin Drive Picker iframe entirely — uploads via rclone, attaches and turns in via the Classroom REST API.
PythonGoogle Classroom APIrcloneOAuth 2.0
The problem
Browser automation hits the Drive Picker iframe sandbox; programmatic file selection is blocked by cross-origin policy. Manual submit takes ~2 minutes per assignment.
The solution
Skip the browser entirely. rclone uploads to Drive, the Classroom REST API attaches + turns in. OAuth 2.0 refresh-token flow stored at ~/.config/claude-classroom-submit/tokens.json.
Overview
Uploads a file to Drive via rclone, finds the target assignment by query, attaches the Drive file via studentSubmissions.modifyAttachments, and finalizes with studentSubmissions.turnIn — all via REST API.