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 context 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, and unchanged at <sha> when a later upload that changed nothing recorded a newer commit), whether unpublished changes await publication, the git-sync binding, the schema plan waiting to be applied if there is one, 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 the published version to record local HEAD
cassis status --project ... --watch
- Schema plan
Schema plan: ready, N context changesappears when a schema update is waiting to be applied, with thecassis schema apply --plan <id>command that writes it into the checkout. A plan still being computed or applied shows its status instead. A ready plan whose extraction was incomplete is shown as blocked and must be replaced after the extraction errors are resolved. Needs cassis-cli 2.0.0 or newer; extraction completeness needs cassis-cli 2.4.0.- 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.- Where the commit comes from
- A GitHub App sync records the merged commit on the published version, and so do
context uploadandschema pushfrom cassis-cli 3.0.0, so watch mode can confirm “the published commit is my commit” on either route. A version uploaded by an older CLI records none. - Uploads that change nothing
- A
context uploadwhose files match the published version creates no version, but records its commit as the newest one holding that content. The first upload aftercontext pull, or one from a commit that only refreshedcassis/AGENTS.md, therefore shows in sync, and watch mode exits 0 there. Needs cassis-cli 3.1.1; an older CLI compares against the commit the version was published from.
verify
Runs the full local gate in one verb: context fmt --check, then context 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.