Sonic Screwdriver is the deployment layer of the uDOS v2 architecture.
It is responsible for:
- hardware-aware planning
- USB and image deployment
- manifest generation and verification
- device catalog and compatibility guidance
- portable provisioning and rescue workflows
It is not the canonical owner of the uHOME runtime contract.
The current repo split is:
uDOS-core= deterministic runtime contracts and execution semanticsuDOS-shell= interactive shell and workspace interaction surfacesuDOS-wizard= network, provider, MCP, and assist surfacessonic-screwdriver= deployment, provisioning, hardware bootstrapuHOME-server= canonicaluHOMEruntime, bundle, preflight, and install-plan contracts
For uHOME-specific contracts, the source of truth is the sibling
uHOME-server repository, not this one.
Sonic owns the deployment lane that takes a reviewed profile and applies it to real hardware:
take profile -> generate manifest -> verify -> stage payloads -> apply to device
Current active surfaces in this repo:
- USB plan and run CLI
- standalone HTTP API
- MCP facade over the same service layer
- browser UI for planning and catalog inspection
- device catalog and manifest validation
- explicit live/install/recovery product docs and demo surfaces
Sonic does not own:
- the long-running
uHOMEruntime uHOMEbundle/preflight/install-plan source of truth- Wizard-managed beacon, Home Assistant, or network control surfaces
This repo no longer carries local uHOME bundle contract code. Use the sibling
uHOME-server repo directly for uHOME bundle, preflight, and install-plan
work.
Run the repo preflight entrypoint first:
bash scripts/first-run-preflight.shThis command performs four checks:
- repo validation (
scripts/run-sonic-checks.sh) - v2 canonical root structure check
- quickstart probe
- Linux: CLI
sonic plan --dry-run - macOS/Windows: API health probe (
/api/sonic/health)
- Linux: CLI
- cross-repo
uHOMEcontract conformance probe (when sibling repos exist)scripts/smoke/uhome-contract-conformance.sh
After preflight passes, run the Linux deployment quickstart:
Install editable CLI entrypoints:
bash installers/setup/install-sonic-editable.shThis repo currently supports editable installation from source, not a
self-contained wheel. That keeps the CLI aligned to the tracked repo assets in
config/, datasets/, distribution/, and scripts/.
Generate a plan:
sonic plan \
--usb-device /dev/sdb \
--out memory/sonic/sonic-manifest.jsonRun a dry-run first:
sonic plan \
--usb-device /dev/sdb \
--dry-run \
--out memory/sonic/sonic-manifest.json
bash scripts/sonic-stick.sh \
--manifest memory/sonic/sonic-manifest.json \
--dry-runApply the manifest:
bash scripts/sonic-stick.sh --manifest memory/sonic/sonic-manifest.jsonServe the local API:
sonic-apiServe the MCP facade:
sonic-mcpRun the Linux smoke workflow:
bash scripts/smoke/linux-runtime-smoke.shSonic now exposes an explicit integration lane for the uDOS-ubuntu profile
and uDOS-ventoy boot templates.
Initialize a stick workspace from uDOS-ventoy templates:
sonic init \
--stick-root memory/sonic/artifacts/sonic-stick \
--theme modern \
--profile udos-ubuntuRegister image metadata and checksum assumptions from the profile manifest:
sonic add udos-ubuntu \
--stick-root memory/sonic/artifacts/sonic-stick \
--image-name udos-ubuntu-22.04.iso \
--checksum <sha256>Refresh boot templates and profile metadata without deleting user images/config:
sonic update \
--stick-root memory/sonic/artifacts/sonic-stick \
--profile udos-ubuntuSwitch the active boot theme:
sonic theme retro --stick-root memory/sonic/artifacts/sonic-stickOS boundary:
sonic initis Linux-only (full creation path)sonic add,sonic update, andsonic themeare Linux/macOS maintenance commands- Windows remains unsupported for Sonic build operations
Run the Ubuntu/Ventoy integration smoke workflow (Linux, sibling repos required):
bash scripts/smoke/ubuntu-ventoy-integration-smoke.shThere are now three ways to enter this repo:
- student-facing wiki: wiki/Home.md
- Sonic course: courses/README.md
- reference docs: docs/README.md
Use the wiki for orientation, the Sonic course for the deployment lane, and
docs/ for implementation details and active contracts.
The v2 repo activation path is documented in docs/activation.md.
Run the current repo validation entrypoint with:
scripts/run-sonic-checks.shRun the current ThinUI NES launcher demo with:
bash scripts/demo-thinui-launch.shRun the current live/install/recovery product demo with:
bash scripts/demo-live-install-recovery.shFor broader platform learning, use the wider uDOS v2 family docs instead of
duplicating the same pathway structure in Sonic. Start with uDOS-docs,
uDOS-core, and uDOS-wizard.
If you prefer repo-local execution without installing entrypoints, the direct
CLI path remains python3 apps/sonic-cli/cli.py.
The active runtime now aligns to the public repo structure:
apps/sonic-cli/= operator CLIapps/sonic-ui/= browser UIservices/= planner, manifest, API, MCP, and runtime service layerinstallers/setup/= editable install helpersmodules/= install-domain architecture surfacesvault/= tracked templates, manifests, and deployment notes for learnersscripts/= Linux-side execution stepsconfig/= layout and manifest defaultsdistribution/= tracked packaging descriptors and launch assetsmemory/sonic/= local runtime state and generated artifactsdatasets/= device catalog sourcestests/= verification coverage
The earlier structure review is kept as a baseline record in docs/v1/sonic-structure-assessment-2026-03-08.md.
The default standalone profile currently produces a dual-boot disk with:
- a Linux-side
uHOMEsurface and handoff path - a Windows 10 gaming surface
- controller-first launch metadata for both sides
That is one active deployment profile, not the whole identity of the repo. The broader Sonic role is deployment infrastructure and portable provisioning.
- docs index: docs/README.md
- v2 architecture: docs/architecture.md
- v2 boundary: docs/boundary.md
- live/install/recovery product: docs/LIVE_INSTALL_RECOVERY_PRODUCT.md
- Ubuntu/Ventoy/Sonic handoff: docs/UBUNTU_VENTOY_SONIC_HANDOFF.md
- release policy: docs/release-policy.md
- archived provisioning contract: docs/v1/specs/sonic-screwdriver.md
- archived integration boundary: docs/v1/integration-spec.md
- archived structure assessment: docs/v1/sonic-structure-assessment-2026-03-08.md
- setup helper: installers/setup/README.md
- license: LICENSE
- legal summary: LEGAL.md
- contributing: CONTRIBUTING.md
- contributors: CONTRIBUTORS.md
- conduct: CODE_OF_CONDUCT.md
Sonic uses a local @dev / binder-style development lane for in-progress work,
but this repository remains the curated public output surface. Local binder
state, scratch material, and review staging are ignored by default so dev-mode
work does not leak into tracked repo content.
- Supported: Linux
- Unsupported for build operations: macOS, Windows
- destructive steps require explicit execution
- always verify the target block device
- run dry-run before any real apply
- treat
memory/sonic/as local runtime state, not canonical tracked source