Switching from Replit Education or GitHub Classroom
Replit Teams for Education closed in 2024, GitHub Classroom in 2026. CS Room is a free replacement: create a class, invite students, autograde work.
CS Room is a free coding classroom in the browser. Every student gets their own workspace with an editor, a Linux terminal and files that persist, on any computer, Chromebooks included. You hand out assignments, autograde them in Python, Java, C, C++, JavaScript, TypeScript, C# or Go, and the gradebook fills in as work is graded. It's free, from the nonprofit Birdflop.
Replit's Teams for Education closed on August 1, 2024, and GitHub Classroom on August 28, 2026. Here's how to set up the same class in CS Room. For GitHub specifics, see A GitHub Classroom alternative that doesn't need Git.
Create a class and invite students
On the Classes page, click New class and name it. Students join in one of two ways, and neither needs an account first:
- Class link. Click Turn on class link under the class's name and share it. Anyone who opens it and signs in can join. It works for 30 days, and you can turn it off at any time.
- Email invites. On the People tab, click Invite students by email and paste your roster.
Students who join late get every assignment you've already published.
Add an assignment
On the Assignments tab, click New assignment. Start from scratch, upload a folder of starter code, or choose Use a lesson from the CSTA-aligned lessons library. A new assignment is a draft students can't see, and a README.md in its folder becomes the instructions.
To set up grading, open the assignment's Settings tab and click Edit next to Tests and solutions. Add input and output cases, or a test command such as python3 -m pytest -q, and mark the tests that decide the grade as hidden. Hidden files never reach students. See Writing assignment tests.
Publish with a due date
On the draft's Settings tab, set a due date, and a publish time if you want it to publish itself, or click Publish now. With Close at due date on, the default, the deadline collects everyone's work, grades it, and makes the grades final. Each student gets their own editable copy, and later edits to yours don't overwrite theirs.
What students see
A student opens the assignment and clicks Open in workspace: files on the left, the editor in the middle, a terminal below. Work saves as they type. Run Tests runs your visible tests as often as they like, a web server they start can get a public URL (see Running a web app), and Submit turns the work in until the assignment closes.
Grade the whole class
On the Gradebook tab, Run all tests scores every student, and the download icon exports a CSV. Click a score to override it, or its lock icon to make it final. On an assignment's Student work tab, click a student to see their submitted or live files, leave a note only they see, or click Open to edit alongside them live.
Migrating an existing class
- Gather your starter code. From GitHub Classroom, clone each template repository. From Replit, upload projects you saved before Teams for Education closed, or download them from a personal Replit account.
- Upload each assignment with New assignment and Upload a folder.
- Recreate the grading tests. A pytest or unit-test suite usually runs unchanged as the test command. For GitHub Classroom, the old commands are in a student repository's
.github/workflows/classroom.yml. - Invite your roster by email.
Students sign in with Google or email, and grades export as CSV rather than syncing to an LMS.
Request a free teacher account, then create your first class.