Projects and status
Three commands that answer questions about a project rather than changing it: which projects can this key reach, what is published, and is this change safe to merge.
projects list
Lists the projects your API key can reach: project id, name, published ontology version, and SQL dialect. Use it to look up a project id without opening the web app.
cassis projects list
# Machine-readable
cassis projects list --json
The id is what --project and CASSIS_PROJECT_ID take. In a pulled checkout it is already in cassis/project.yml, so you rarely need this twice.
status
Shows the project’s published version (number, label, git commit), whether unpublished changes await publication, the git-sync binding, how many Data source review items are pending, and how your local git HEAD relates to the published commit: in sync, N commits ahead, or diverged.
# Quick glance
cassis status --project ...
# Wait for a GitHub App sync to record local HEAD
cassis status --project ... --watch
- Pending source changes
Source changes pending review: Nappears when the Data source review queue is not empty, with the breaking count alongside when any change breaks something in the ontology. Read the queue itself withcassis source-changes list. Needs cassis-cli 1.6.0 or newer; before that the line is simply absent.- Watch mode
--watchpolls until the published commit matches your local HEAD, then exits 0.--poll-interval(5 seconds) and--timeout(10 minutes) control the cadence. It prints one line per poll only when the state changed, so a long wait stays quiet.- GitHub App sync only
- The GitHub App records a commit on the published version, so watch mode can confirm “the published commit is my commit.” A provider-agnostic
ontology uploaddoes not record a git SHA; use the upload job’s exit status and plaincassis statusinstead.
verify
Runs the full local gate in one verb: ontology fmt --check, then ontology check, then eval run, stopping at the first failure.
# Full pre-merge gate
cassis verify --project ...
# Skip the eval suite
cassis verify --no-eval --project ...
It is a convenience wrapper, not a new primitive: each step runs exactly as if you had called it directly, with the same output and the same meaning. One command in a checkout answers “is this change safe to merge?”, and one job in CI does the same. See Set up CI.