Skip to content
Raw Markdown

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 changes appears when a schema update is waiting to be applied, with the cassis 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
--watch polls 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 upload and schema push from 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 upload whose files match the published version creates no version, but records its commit as the newest one holding that content. The first upload after context pull, or one from a commit that only refreshed cassis/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.