Beta
Install the cin90 CLI
cin90 runs on your machine next to your AI coding tool. It records
how you worked on an assignment and submits that record with your git push,
so your instructor can grade the process, not just the diff.
Install
One command on macOS and Linux. No sudo, no package manager.
curl -fsSL https://coderin90.com/cli/install.sh | bash
The installer picks the build for your platform, checks it, and writes it to
~/.local/bin/cin90. It supports macOS and Linux on Intel and ARM.
Whether a build for your platform is published is a separate question, and it
tells you rather than guessing. On Windows, install inside
WSL and follow
the Linux path; there is no native Windows build.
If ~/.local/bin is not on your PATH, the installer prints the
export line to add, with the usual file for macOS and the usual one for
Linux. Restart your shell afterwards.
Connect your account
Then, from any project directory:
cin90 login
The CLI prints a code like KJMB-RTQN and waits. Open
coderin90.com/cli/activate/,
sign in, and enter the code to approve it. Only ever approve a code you
started yourself. Deny anything you did not.
What gets sent, and when
Submission happens on git push. There is no second prompt, so
the CLI asks for your consent before any of that starts: once per cohort,
and again if the terms change. What travels is your AI tool sessions, the
prompts and the responses, together with the commands you ran inside the
cin90 session shell.
The CLI reads project config such as .env to find secrets and
replaces the values it finds. Whether that redaction happens on your machine
before anything is uploaded or on the server after it depends on your
cohort, and the consent screen names your cohort's mode before you agree.
Run cin90 inspect or cin90 transcript at any time
to read everything collected and everything sent. Our
privacy policy covers how we handle
it.
Why this curl is safe to pipe
Releases live in object storage, which this site treats as untrusted. The manifest the installer reads is served from here only after the server has verified its Ed25519 signature against a pinned keyring, and the installer then checks the sha256 of the downloaded binary against that manifest. A swapped artifact fails one of those two checks and nothing is installed. You can read the script before running it: /cli/install.sh (your browser may download it rather than display it).
If something goes wrong
Every message the installer prints starts with install:, and it
installs nothing when it prints one. These are the ones you can act on.
cin90: command not found
The binary installed but your shell cannot see it. Add
~/.local/bin to your PATH using the line the installer printed,
then open a new terminal.
required command not found
The installer needs curl, uname, cut,
awk, and either sha256sum or shasum.
A minimal container or server image may be missing one. Install it and run
the command again.
unsupported OS or unsupported arch
The installer has no mapping for your platform. macOS and Linux on amd64 and arm64 are what it supports.
no release artifact for your platform
Different problem: your platform is supported, but this release has no build published for it. Nothing you can fix locally. Tell us at hello@coderin90.com.
this curl cannot decode compressed downloads
Your curl was built without zlib, so it cannot decode the
release download. Update curl and run the command again. Nothing was
downloaded.
could not fetch the release manifest or could not read the release manifest
Either no verified release is available or the manifest is malformed. Both are on our side and both affect everyone at once. Retry in a few minutes; if it persists, tell us.
could not download the release artifact
The binary itself did not transfer. Usually the network. Retry.
sha256 mismatch
The download did not match the manifest, so nothing was installed. Retry once; if it repeats, stop and email hello@coderin90.com rather than working around it.
Next
- Your classroom: cohorts, assignments, and what you have submitted.
- Migrating from GitHub Classroom: bring an existing course over.