Install the CLI, wire up your project, and ship a signed .ktx screen over the air. Two commands get you to a working bundle. The full workflow lives in the CLI reference.
The Ketoy compiler ships its own embedded Kotlin 2.0.21 in an isolated worker, so your project’s Kotlin, AGP, Gradle, and Compose versions stay decoupled and you can bump them freely. ketoy init writes a matched set into gradle/libs.versions.toml as a convenience. See the version compatibility update for the details.
The npm package is ketoy-dev. The installed binary is still ketoy.
$ npm install -g ketoy-dev
$ ketoy versionRequires Node.js 18 or newer. The install downloads the native binary for your platform, on macOS, Linux, and Windows across x64 and arm64.
Run ketoy init from your Android project root. It makes small, additive edits and is safe to run again. Completed steps are skipped.
$ ketoy init # from your Android project root
$ ketoy init /path/to/AndroidProject # or point it at a folderinit adds the dev.ketoy.compiler plugin and SDK dependencies, writes the ketoy { } build config, wires MyApplication and MainActivity, and drops in a sample HomeScreen.kt so the first build produces a bundle.
Signing is on by default. init generates an Ed25519 keypair, keeps the private key in app/keys/release-private.key (gitignored), ships the public key in your APK, and the runtime verifies every bundle on device. Keep the private key in a CI secret, or pass --no-sign for a quick unsigned setup.
Then build the signed bundle:
$ ./gradlew :app:ketoyBundleHilt wiring differs. On a Hilt project init applies the Gradle setup only and points you at the rest of the docs. Force this path with --hilt.
Ketoy Cloud delivers a new bundle to every device on your app, with no Play Store release. Create an account, make an app, and push.
$ ketoy auth register # create a Ketoy account
$ ketoy auth login # log in and save credentials
$ ketoy app create # create an app
$ ketoy push ktx <appId> main.ktx --version 1Every device on that app picks up the new version over the air. Roll back the moment something looks wrong with ketoy ktx rollback <appId>, and the last good version goes live again in seconds.
This is the short path. The CLI also manages profiles and releases, verifies namespaces, runs ketoy doctor, ships shell autocomplete, and takes --json for CI.
Every command, flag, and scripting recipe lives in the CLI reference.
Read the CLI referenceThe five-layer stack, and why the wire format is KBC bytecode rather than JSON.
Read the specEvery Material3 adapter, every capability, every Compose token Ketoy ships with.
See coverageAdd your own components beyond Material3. The KSP processor handles the rest.
Read the guide