edstem units and its aliases edstem courses and edstem projects are the same command.
List your units
edstem units defaults to the list verb. --archived includes units Ed has marked archived; without it, only active enrolments are returned.
Show one unit
Your identity
How <unit> resolves
Every command that takes a <unit> argument accepts either:
- the numeric Ed unit ID, or
- the exact unit code, matched case-insensitively against your enrolments.
Duplicate codes across years
If the same unit code appears in more than one of your enrolments (a unit you’ve taken in more than one teaching period, for example), a code lookup is ambiguous and the CLI reports every matching unit ID so you can pick one:edstem units list --archived to see the full list with IDs, then pass the numeric ID instead of the code.
An unrecognized code is a usage error, not a not-found error, because the CLI is validating your input against enrolments it already has, not asking Ed for a resource. See Errors and exit codes.
The unit#number thread reference
Threads are addressed two ways: a global thread ID, or a unit plus its per-unit thread number, joined with #:
UNIT#42 resolves UNIT the same way any other <unit> argument does, then asks Ed for thread number 42 within that unit. This reference form is used by threads show, threads read, replies send, and the files commands’ thread: targets — see Threads, Posting, and Files.
Command reference: units
Full syntax for
units list and units show.