ravi artifacts publish instead of the usual ravi pages ship.
What an artifact holds
Artifacts live in Ravi’s local database (~/.ravi/ravi.db), with a copy of each file in ~/.ravi/artifacts/blobs/. Their IDs look like art_.... Each one can carry:
- Identity:
id, an optionalkind(image,report,trace, …),title,summary,status,tags. - Content: a file or a whole directory (a package with an entrypoint), a URI, or structured output, with MIME type, size and
sha256. - How it was made: provider, model, prompt, command, duration, token counts and cost when known.
- Where it was made: agent, session, task, channel, chat and message, filled in automatically when a command runs inside a session.
- Structured data: metadata, metrics, lineage, input and output (JSON).
- Links to tasks, sessions, messages, projects or any other target, and a timeline of events (
created,updated,queued,completed,failed,published, …).
ravi image generaterecords onekind=imageartifact per image, before the provider is even called, and moves it throughpending,running,completedorfailed. See Media.- Every publish to Ravi Pages, including
ravi pages ship, first stores the HTML (or the folder) as a local artifact and records the Console release on it as apublishedevent.
Find and inspect
list also filters by --task, --tag and --agent (with --rich), pages with --limit/--offset, and hides archived artifacts unless you pass --include-deleted. With --json, follow pagination.nextCommand to get the next page.
Create, update and link
publish and release activate are dry-runs by default.
Versions
The artifact record shows the current state. Versions are immutable snapshots of its content.- Creating an artifact with a file, directory, URI or output creates version 1.
- Updating content (
--path,--uri,--output,--mime) creates the next version. - Metadata-only edits do not create a version. Run
ravi artifacts snapshotwhen you want one. - Restoring a version copies it back as the current content and records the restore as a new version, so history is never lost.
Artifacts and Ravi Pages
To put HTML on the web, useravi pages ship. It is one command that uploads, mounts the page at a route on your project’s host and activates it. See Publish pages.
ravi artifacts publish is the lower-level primitive underneath. Use it only when you need something ship does not do:
- publish an artifact that already exists in the ledger (
art_*), or a specific version of it (--artifact-version <n>); - upload without going live (
--no-activate), or upload to Console without mounting a page (omit--site); - control the release:
--replace-release(replace the host’s whole route map instead of merging into it),--reason,--idempotency-keyfor safe retries; - set package options:
--entrypoint,--base-path,--asset-base,--name,--slug,--description.
--project. Find the site slug with ravi pages list --project <project>. Without --execute it only prints the plan and exits with code 3:
art_* ID, a file, or a directory with an index.html. A file or directory is first stored as a new local artifact. On success the command prints the Console artifact, version, publish and release IDs, the URL, and Local: recorded on art_... v1.
Re-activate an older release
A release is a snapshot of the whole host: every route on it. Activating an older release puts every route back to that state, not just one page. The simplest way is the operator bar on the page (see Publish pages). From the terminal, activate the release recorded on a local artifact:--version <n> (the release recorded for that artifact version) or --release <id>. A release that is not recorded on the artifact also needs --site <site>. There is no command that lists a site’s releases; read them from the artifact’s events or from the release history in the operator bar.
To find the local artifact a ravi pages ship created, look for its title in ravi artifacts list --limit 10. The artifactId that ship prints is the Console’s ID, not the local art_*.
Command reference
All commands except
blob accept --json. Run ravi artifacts <command> --help for all flags, or ravi skills show artifacts for the agent-facing guide.
There is no automatic provider fallback for anything that generates artifacts: if the chosen provider fails, the command fails, and you retry with another --provider yourself.