Browse
Search, inspect, and preview packages before any download or authentication step.Use web or CLI to compare source, origin, schema shape, and recent activity.
Adoption playbook
rawctx is designed around a trust-first workflow. Read provenance, preview structure, confirm installability, and only then move into download or publish.
Three journeys
These docs mirror the product: browse first, adopt only when the package qualifies, and publish once ownership and validation are clear.
Browse
Search, inspect, and preview packages before any download or authentication step.Use web or CLI to compare source, origin, schema shape, and recent activity.
Adopt
Move only native packages into direct rawctx download workflows.Indexed packages stay preview-only and point back to the upstream owner instead of pretending to be downloadable.
Publish
Validate first, then publish with a package name and version you own.Claim indexed packages only when you are ready to republish them natively under your own scope.
native means rawctx can hand off directly to snapshot-download. indexed means structure is previewable, but ownership and download stay upstream.
Public search, info, preview, and many downloads do not need login. Login is reserved for publish, claim, favorites, settings, or private tenant access.
The CLI and Python SDK share the same public-first model, so notebooks and scripts can use the same query and download flow you see on the web.
Browse
Goal: search the registry, open the package detail, and confirm whether the package is native, indexed, recent, and relevant to the business question.
Start on the public path. Search by package name, source system, or business concept. On web, the detail page exposes origin, preview, and installability before you move into README or graph.
Caution: if a package is marked Preview only, treat it as a structure review path, not a rawctx download candidate.
python3 -m pip install --upgrade rawctx
rawctx search "shopify revenue" --sort downloads
rawctx info @scope/nameAdopt
Goal: download native packages directly, or move from an indexed preview back to the upstream source with full awareness of ownership.
Native package
Use rawctx when the package detail shows a native installable path.
rawctx snapshot-download @scope/name
rawctx snapshot-download @scope/name@1.2.3
rawctx download @scope/name models/sample.osi.yamlIndexed package
Use preview to inspect the structure, then follow the source link because download does not belong to rawctx for that package.
rawctx info @dbt-hub/jaffle-shop
# open the source link from the package detail page
# claim only when you are ready to publish a native versionPublish
Goal: make package quality explicit before the registry becomes the distribution path.
Publishing stays linear: validate, pack, publish. If your starting point is an indexed package, claim it first and republish it natively under your own scope.
Caution: do not treat claim as a cosmetic step. Claim exists to separate preview discovery from genuine ownership and native release.
rawctx validate ./my-package --format auto --json
rawctx pack ./my-package --output-dir ./dist --json
rawctx publish ./my-package
rawctx claim @dbt-hub/jaffle-shop
rawctx publish --from-dbt . --package-name @your-scope/jaffle-shopPython
Goal: keep CLI and SDK behavior aligned so automation uses the same search and download semantics as the web UI.
Notebook shell
Use --json when the result needs to feed another notebook cell or script step.
!rawctx search "semantic model" --sort downloads --json
!rawctx info @scope/name --json
!rawctx snapshot-download @scope/name --jsonPython SDK
Use the convenience API for straightforward automation, or the async client when the caller already owns the event loop.
import asyncio
import rawctx
packages = rawctx.search("semantic model", sort="downloads")
package = rawctx.info("@scope/name")
snapshot_dir = rawctx.snapshot_download("@scope/name")
async def main():
async with rawctx.AsyncRawctxClient() as client:
return await client.search("semantic model", sort="recent")
asyncio.run(main())Errors
Goal: make it clear whether the issue is auth, installability, validation, or cache state instead of relying on ambiguous CLI text.
Authentication required: the current action needs publish, claim, favorites, settings, or private access.preview-only package cannot be downloaded: inspect the preview or move to the upstream source.version already exists: bump the version and publish again.RawctxErrorUsageErrorAuthRequiredErrorRegistryErrorValidationErrorOfflineCacheMissError