Skip to content

Publishing

Apps, components, and schemas reach users through the Kiki Store. You publish from your own machine with the kiki CLI — there's nothing to do on a Kiki device.

Install the CLI

The CLI ships as @kiki/cli and runs anywhere Node does:

sh
npm install -g @kiki/cli

Describe your artifact — kiki.json

Every publish reads a kiki.json in the current directory. It's the public face of your artifact in the store:

json
{
  "name": "player",
  "version": "1.2.0",
  "type": "desktop-app",
  "license": "MIT",
  "sourceUrl": "https://github.com/me/player",
  "ostreeRef": "kiki/apps/player",
  "description": "A music player the agent can drive.",
  "tagline": "Play anything, hands-free.",
  "iconUrl": "https://example.com/icon.png",
  "category": "media"
}
FieldWhat it is
name, versionThe artifact and its semantic version.
typeOne of desktop-app, headless-app, cli-tool, mcp-tool, system-service, agent, component, schema, theme, and a few more.
licenseAny SPDX license you choose (see Licensing).
sourceUrlWhere the source lives.
ostreeRefThe content-addressed reference to your built artifact in the store's object storage.

The store-facing presentation — tagline, description, longDescription, iconUrl, bannerUrl, screenshotsDesktop, screenshotsMobile, category, developerName, developerUrl, and variants — is optional, and it's what users see on the listing.

Sign in

sh
kiki login

This opens your browser, you click Accept, and the CLI stores a token. Check it any time:

sh
kiki whoami

For CI, skip the browser and set KIKI_TOKEN in the environment instead.

Publish

sh
kiki publish              # publishes ./kiki.json
kiki publish --dry-run    # print exactly what would be sent, change nothing

The store derives the publisher from your account's organization and the listing id from it — your artifact is published as your-org/name@version (e.g. acme/player@1.2.0). You can't publish under an identity you don't own.

Your artifact's bits are distributed as a content-addressed reference — every device that installs a given version shares one copy, and an update transfers only the difference. kiki publish records the metadata that points at it.

Licensing your app

The license field is yours to choose. Because the SDK is MIT it doesn't constrain you — MIT, Apache-2.0, GPL, proprietary, whatever fits. The store records and shows it so users know the terms.

Versioning

Each publish is a new version at a new content address. Devices and apps reference the version they depend on, so bumping a version never breaks consumers pinned to an older one — the same model as schemas and components.

Once published, your artifact appears in the Store in the dashboard and mobile app, where users install it to their devices in a tap.

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