Build apps
Build apps that the Kiki agent can actually operate — and sell them in the store. You write a Rust struct, annotate it, and the SDK generates the agent tools, the permission checks, and the wiring. The SDK is MIT-licensed, and your app can use any license you like.
You build on your own machine
You develop Kiki apps where you already write Rust — macOS, Linux, Windows. Kiki OS isn't a development desktop; it's an OS built to run operations on its own, around the clock. You target it, you don't have to run on it. Everything here is your normal Rust toolchain plus the kiki CLI to publish.
Why build for Kiki
- The agent drives your app. Expose actions as tools and the agent composes them into whatever the user asks for — your app becomes part of how people get things done, not just another icon.
- Reach every Kiki device. Publish once to the store; users install in a tap from the dashboard or app.
- Safe by construction. Capabilities are validated at compile time and enforced at runtime, so users trust what they install.
The shape of an app
rust
use kiki::prelude::*;
#[kiki::app(id = "io.kiki.my-app", type = DesktopApp)]
#[kiki::requires(Capability::AudioOutput)]
struct MyApp { /* state */ }
#[kiki::agent_tools]
impl MyApp {
/// Play a track.
async fn play(&mut self, track: TrackRef) -> Result<()> { /* ... */ }
}That's an installable app whose play action the agent (and the user) can call.
The path
- Your first app — from a struct to something running.
- Exposing tools — turn methods into agent actions.
- Durable execution — make long tasks survive restarts and device moves.
- Components — publish reusable UI.
- Schemas — define the types your app shares.
- Publishing — sign in and ship to the store with the
kikiCLI.