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.