Distribution
The public API distribution surface is the project-distribution endpoints; the package release checklist below is retained as launch status, not endpoint reference.
Last updated: 2026-04-29
No registry publish should be run from a local shell unless a package owner explicitly approves the release, the target version, and the registry account in use.
package targets
| channel | package | target version | current status |
|---|---|---|---|
| npm CLI | @owlette/cli | 1.0.0-rc.0 | metadata prepared; publish pending |
| npm SDK | @owlette/sdk | 1.0.0-rc.1 | metadata prepared; publish pending |
| PyPI SDK | owlette-sdk | 1.0.0rc0 | metadata prepared; publish pending |
| Homebrew | owlette | 1.0.0-rc.0 | blocked until release artifact URL and checksum exist |
| Scoop | owlette | 1.0.0-rc.0 | blocked until release artifact URL and checksum exist |
| winget | Owlette.CLI | 1.0.0-rc.0 | blocked until the Windows install shape and checksum are final |
Python uses the PEP 440 spelling 1.0.0rc0. Release notes can describe this as the same RC family as 1.0.0-rc.0.
launch gate
5.3 is externally complete when:
- npm and PyPI package ownership, two-factor authentication, and recovery access are verified
- package-local license files are present in the CLI, Node SDK, and Python SDK artifacts
- dry-run package builds pass from a clean checkout
@owlette/cliand@owlette/sdkpublish under the npmrcdist-tagowlette-sdkpublishes to TestPyPI, then PyPI, as a pre-release- clean-machine install smoke tests pass for npm and PyPI
- Homebrew, Scoop, and winget install commands work from the intended public channels or have an approved launch waiver
- docs are updated from "release target" wording to "published package" wording
dry-run checks
Run these before requesting the registry publish.
cd cli
npm ci
npm run build
npm test
npm pack --dry-runcd sdks/node
npm ci
npm run build
npm test
npm pack --dry-runcd sdks/python
python -m build --sdist --wheel
python -m twine check dist/*Do not commit generated dist/, .egg-info/, or package archive files. They are release artifacts, not source.
publish sequence
Prefer a release workflow with npm provenance and PyPI trusted publishing. If a local emergency publish is approved, record the operator, registry account, package, version, and reason in the sprint log.
cd cli
npm publish --tag rc --access publiccd sdks/node
npm publish --tag rc --access publiccd sdks/python
python -m build --sdist --wheel
python -m twine upload --repository testpypi dist/*
python -m twine upload dist/*After npm publishes, confirm the rc tag points at the intended version:
npm view @owlette/cli dist-tags
npm view @owlette/sdk dist-tagsinstall verification
Run install tests in a clean temporary directory or disposable VM.
npm install -g @owlette/cli@rc
owlette --version
owlette roost --helpnpm install @owlette/sdk@rc
node -e "const { VERSION } = require('@owlette/sdk'); console.log(VERSION)"python -m venv .venv
.\.venv\Scripts\python -m pip install --upgrade pip
.\.venv\Scripts\python -m pip install --pre owlette-sdk==1.0.0rc0
.\.venv\Scripts\python -c "import roost; print(roost.__version__)"Package-manager channel checks:
brew install owlette
scoop install owlette
winget install Owlette.CLIHomebrew, Scoop, and winget remain blocked until there is a stable release artifact URL and published SHA-256 checksum for each manifest.
current status
The repository is prepared for RC package dry-runs, but no registry publish has been executed from this sprint environment. Until npm, PyPI, Homebrew, Scoop, and winget installs work or receive an explicit launch waiver, 5.3 remains launch-blocked and not externally complete.
Owlette public API quickstart
This developer-preview quickstart creates a scoped API key, verifies it, lists your site inventory, queues a safe screenshot command on one machine, and polls the command result. It uses only the live REST API and common shell tools; no SDK publishing or external launch packaging is required.
authentication
Owlette public API calls authenticate with scoped API keys. Dashboard and setup flows may also use first-party sessions or Firebase ID tokens, but external integrations should use owk_live_* or owk_test_* keys.