Ember documentation
Ember
Ember is a desktop shell for small, installable applets. Each applet is a signed .ember-applet package that runs in its own webview with no access to Tauri, the host filesystem, or the network unless its manifest asks for it and you approve.
Two readers, one source
Written once, in Markdown
Every page here is rendered from a Markdown file at request time. Add .md to any documentation URL and you get that exact file back — no navigation, no styling, nothing to strip out. llms.txt maps the whole set.
Start here
Using Ember
Open Library inside Ember to browse the Ember catalog. Choosing Install downloads a package to Ember-owned staging, compares it with the registry SHA-256 digest, and shows its requested capabilities. An applet is installed only after you approve that review.
users.md Build appletsBuild an Ember applet
An Ember applet is a small web app that runs inside Ember. You write HTML, CSS, and JavaScript, describe the app in applet.json, then sign and package it as a .ember-applet file.
humans.md Build appletsBuild an Ember applet with an AI agent
Give the agent the repository's entire docs/applets folder. It is the authoritative applet contract and contains the manifest specification, v1 and v2 schemas, TypeScript types, a key generator, a package signer, and a WASI backend template. Read the public API reference first, then use the repository folder when packaging.
agents.md ReferenceEmber applet API and manifest reference
This is the public reference for building an Ember applet. For packaging tools, JSON schemas, TypeScript declarations, and the WASI backend template, use the repository's docs/applets author kit.
applets/APPLET_SPEC.mdWhat you can read here#
The user guide covers installing applets, updates, and the capability review. Build an applet is the step-by-step path from an empty folder to a signed package. Build with an agent is the same job handed to a coding agent, with the constraints written out. The applet specification is the contract behind all of it.
How an install is checked#
Ember downloads a package into its own staging directory, compares the bytes against the SHA-256 digest in the catalog, and reads the manifest. It then shows you the applet's identity, its publisher, and every capability it asks for. Nothing is installed until you approve that review.
Ember pins the publisher key it first sees for an applet ID. An update signed by a different key is rejected rather than installed.
Running the registry#
The registry in server/ serves this site, the catalog API, and immutable package downloads. It is a reference implementation: small enough to read in one sitting, and meant to sit behind TLS and real storage before it faces the public. See the registry API and publishing guides.