Skip to content

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 manifest, the agent tools, the permission checks, and the store metadata. The SDK is MIT-licensed, and your app can use any license you like.

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

  1. Your first app — from a struct to something running.
  2. Exposing tools — turn methods into agent actions.
  3. Durable execution — make long tasks survive restarts and device moves.
  4. Components — publish reusable UI.
  5. Schemas — define the types your app shares.
  6. Publishing — package and ship to the store.

Want the internals?

This section is about building on Kiki. If you want to understand how the agent and OS work under the hood, see Under the hood.

Kiki OS, Desktop & SDK are open source. See Licensing.