Skip to main content

gcr

Command-line utility for running a class on GitHub, a lightweight GitHub classroom replacement.

At the moment, this is early alpha software, use at your own risk.

Feedback welcome!

Installation

The recommended method for installation is uv tool install gcr-cli, you can then run gcr.

uvx: uvx --from gcr-cli gcr

pipx: pipx install gcr-cli, then run gcr

Setup

  1. Set env variable GITHUB_TOKEN to a classic token with org & repo admin permissions.
  2. Manually create a GitHub organization for your classroom.
  3. Create a class.toml with your roster & settings. gcr will look for class.toml in the current directory, or you can pass the -c/--config option to specify the path.
org = "name-of-github-org"

students = [
  "list",
  "of",
  "student",
  "accounts",
]

staff = [
  "list",
  "of",
  "staff",
  "accounts",
]

# optional settings, typically no need to set these
staff_team = "staff"
student_team = "students"
student_permission = "push"
staff_permission = "maintain"
requests_per_minute = 60
retry_attempts = 3
retry_wait_seconds = 5

Usage

All commands take two options:

  • -c/--config: path to class.toml (default: current dir)
  • --dry-run: avoid making actual changes on GitHub

gcr setup

Initialize GitHub organization and invite staff & students.

You can re-run this command after making changes to class.toml and the class and staff roster will be synced.

The organization must already exist and your API key must have access.

gcr assign {template-repo-name}

Creates one private repo per student, granting access to their account & staff.

It is safe to run this command multiple times, existing repos will be skipped.

gcr clone {assignment} [optional-student]

Clone student repos to a local directory.

gcr --version

Print version and exit.

Changelog

0.3.2 - 3 September 2026

  • Add gcr assign name --empty to create empty repos with correct perms.

0.3.1

  • Improve output of gcr setup
  • Add gcr --version

0.3.0 - 6 August 2026

  • Addition of clone
  • Prompt to automatically make assignment repository a template.

0.2.0 - 4 August 2026

  • First 'public' release.

Metadata

Release files for gcr-cli 0.3.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for gcr-cli 0.3.2
File Size Uploaded
gcr_cli-0.3.2.tar.gz 19.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for gcr-cli 0.3.2
File Interpreter ABI Platform
gcr_cli-0.3.2-py3-none-any.whl Python 3 none any Details

Total release size: 38.9 kB

Release files / gcr_cli-0.3.2.tar.gz

Download URL gcr_cli-0.3.2.tar.gz
Size 19.6 kB
Tags Source
SHA-256 checksum
How to use checksums
74b4820de132cbadbcfd030de45c3f71cb7d6414ab30e11b00160670d5b7f944
BLAKE2b-256 checksum
How to use checksums
d180eb35bc11070ccad209449ad66457ce44b90aacf65c1396b88b30773e63dd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"NixOS","version":"26.05","id":"yarara","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / gcr_cli-0.3.2-py3-none-any.whl

Download URL gcr_cli-0.3.2-py3-none-any.whl
Size 19.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0418ccd1f6dff2e69957faa725f50ccc160a472fdf4a80046c7c885efaef346a
BLAKE2b-256 checksum
How to use checksums
e3a804dc3018cff50a57a7644fe8df6629fbee109e3d437a5246d843697f46cb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"NixOS","version":"26.05","id":"yarara","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.3.2 This release

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page