OpenKalea on GitHub
If it runs on your device, it's open.
If it runs on Kalea's infrastructure or grants Kalea's identity, it's closed. One test decides every file. github.com/openkalea is one complete-device repository plus a few satellites that exist only where cadence, license, or ownership differ. Clone it, follow docs/BUILD_IMAGE.md, and stock hardware boots a working — uncertified — Kalea. If any step needs something we didn't publish, the repo is broken and we fix it.
RepositoryLicenseWhat it is
openkalea/kaleaApache-2.0The complete device. Runtime package (core, audio, brains, deck, memory, tutor, safety, bitchat, net, swarm, console, update, cli), the Console UI, first-boot provisioning, the open safety-eval suite, the image recipe, docs/, and keys/kalea_release.pub. Clone = whole device.
openkalea/versionCC0The update feed. stable.json · beta.json · dev.json + imager.json, generated by CI from Releases. The Updates card on your box reads only this.
openkalea/modelsApache-2.0The certified model set, pinned by digest. models.lock.json per release, model cards, license pass-throughs, the eval harness, the trade-up RFC template. The device never pulls :latest.
openkalea/armsApache-2.0Community integrations. The arm.json schema, registry.json, the conformance suite, and the Arms Wanted board — OpenClaw, NanoClaw, voices, languages, settlement.
openkalea/architectureCC-BY-4.0How decisions get made. RFCs open as Discussions and close as ADRs; AI_POLICY.md, GOVERNANCE.md, the roadmap. Nothing executable.
kalea-opsprivate · outside the orgRelease signing and the ceremony, the OTA channel, the flasher, fleet provisioning, the store, supplier files. What stays closed is the mark, the keys, and the rails (the store, customer data, manufacturing files), not the code that runs on your box.
How a change lands
DCO, not a CLA. Every commit carries Signed-off-by:; Apache-2.0 §5 is the contribution and patent grant. Conventional Commits drive the changelog.
main is trunk. release/1.x takes only fixes already proven on main; certified builds are cut from there. v* tags are immutable.
Rulesets on both: CODEOWNERS review (two for safety-class, kalea/update/, kalea/swarm/, evals/), merge queue, signed commits, linear history, no admin bypass on release/*. A PR that adds a network call outside the three documented apertures (updates, model acquisition, opt-in broker errands) is rejected by policy.
Two signatures on every release
Public layer. Sigstore/GitHub attestation and an SBOM on every asset — SLSA Build L3 — so anyone's build gets provenance:
gh attestation verify kalea-1.4.2-py3-none-any.whl \
--owner openkalea
Certified layer. An Ed25519 signature over MANIFEST.sha256, produced only in kalea-ops after the release checklist and the safety-eval attestation pass, uploaded to the same Release. A version reaches the stable channel only when that .sig exists.
Open verifier, closed signer: kalea verify diffs your box against the public tree.
AI-assisted, human-accountable
We use coding agents daily. The rule is accountability.
Use any tool. You open the PR, you understand it, you can debug it and discuss it without the tool. Disclose with an Assisted-by: trailer; undisclosed AI content that reviewers detect is closed.
Fully autonomous agents do not open PRs or issues here. A first-time contributor's PR needs a maintainer's vouch before CI spends hardware-runner minutes. Reviewers may use AI; the approving human owns the approval.