Ketoy
v0.4Kotlin OTA

Ship Compose UI over the air.

Write real Jetpack Compose. Push updates to every device in seconds.

< 50ms
Load, verify, and parse
< 100ms
First frame, cold
~4KB
A full checkout flow
20×
Smaller than JSON SDUI
Integrate in minutes

Command line and AI agents.

The Ketoy CLI runs your whole workflow from the terminal. The Ketoy MCP gives any AI coding agent an accurate map of what Ketoy supports — before it writes a line.

Command line

Ketoy CLI

Set up a project, push to the cloud, and roll back — all from the terminal.

$npm install -g ketoy-dev
CLI docs
AI agents

Ketoy MCP

Point any MCP-compatible agent at one endpoint. It checks what Ketoy supports before writing code.

Claude CodeCodexCursorWindsurfAny MCP client
http://mcp.ketoy.dev/mcp
MCP docs
Why Ketoy

Update without a release.

Add one annotation. Run one Gradle task. Every device gets the change in seconds.

01

Instant updates

Fix a bug at 3pm. Every user has it by 3:01. The app never reinstalls.

How it works
02

Play Store safe

Ketoy generates code on device, the same way ART does. It stays inside Google policy.

Security model
03

Just Kotlin

It is the Jetpack Compose you already write. Nothing new to learn.

What is supported
What’s supported

If it’s Compose, it’s Ketoy.

Ketoy supports the full Compose toolkit, not a curated subset. When Compose adds a parameter, one command picks it up.

UI

Compose and Material 3

All 35 Material 3 components. Every parameter included.

ScaffoldLazyColumnOutlinedTextFieldButtonTopAppBarAlertDialog+29 more
Language

Plain Kotlin

Data classes, sealed classes, extensions, and lambdas. Real Kotlin, compiled to bytecode.

data classsealedwhenextensionsclosures
Async

Coroutines and Flow

launch, async, withContext, and 9 Flow operators. Structured concurrency included.

launchasyncStateFlowcollectAsStatedebounce
State

ViewModel

A real Android ViewModel. It survives config changes and works with Hilt.

viewModelScopeSavedStateHandle@HiltViewModeldispatch()
I/O

Networking and storage

HTTP, DataStore, Room, and navigation. 67 capabilities built in.

HTTPDataStoreRoomNavController+ your SDKs
DI

Hilt

Drop it in. @Inject works exactly as before.

@Inject@HiltViewModel@Moduledev overlay

One annotation and one Gradle task. That is the whole difference.

See everything Ketoy supports
Security

Secure and compliant.

Ketoy verifies every bundle before it runs. Here is how, in three parts.

Every bundle is signed

An Ed25519 signature is checked before any code runs. Your private key stays on your server. Only you can ship a bundle.

The sandbox is a build error

The compiler rejects file access, reflection, and any unregistered API. Unsafe code never compiles.

Capabilities are the only door

KBC code reaches the platform through registered capabilities. Nothing else is callable.

Write Kotlin. Ship the screen.

Available now on Maven Central. Hilt, dev tools, and the full Material 3 catalog are included.

Stuck on something, evaluating Ketoy for your team, or wondering if your weird in-house SDK is supported? We answer every email. Usually within the same day. Sometimes faster than your Play Store review.