Developer docs/Get started

Build your next Curio.

Turn a web interface into a desktop tool. Connect to Trove, use native services, and share what you build.

Verified September 11, 2026

Development documentation

These guides cover SDK 0.3 and the short-command CLI. Use a recent Trove build to run Host examples; see release availability for public downloads. Release availability →

On this page

Choose your starting point#

New to Trove? Follow Create your first Curio to run a template, call a Host service, and install the result. Already have a frontend? Connect an existing web app walks through the manifest, local SDK package, and development server.

Your goalRead next
Build a UI without a native processQuick start
Use storage, files, clipboard, or windowsHost services
Run your own native codeBackend & architecture
Offer a capability to other CuriosServices & contracts
Diagnose an error or publish a versionTroubleshooting · Distribution

Understand the pieces#

A Curio is a tool installed in Trove. Its curio.json describes a UI, a Backend, or both. Host owns windows, process lifecycle, service routing, and installation. A Contract describes the methods, parameters, results, and events of a private Backend or public service, and supplies the types for generated clients.

Call Host capabilities through host.xxx. Acquire public references by Curio ID with host.curios.get(id), then call Curio.xxx. Host starts the Backend on demand and waits for ready, without opening UI. Private generated clients are optional; authors choose their internal communication and naming. You only need a Backend for native computation or service provision.

A Run identifies the current execution, with a unique ID, development or installed origin, and version. Its logs stay in memory. Installed artifacts are identified by content hash, so distinct files with the same version are not mixed.

What is available#

These guides cover the current macOS implementation of Trove Host, Web SDK, and Rust Backend Kit 0.0.1-alpha.1. Manifest and Wire Protocol remain v1. The CLI offers Web, static HTML, and Rust Backend templates, short commands, and an existing-project wizard. Use a recent local build containing these capabilities.

The CLI supplies the SDK as a local vendor/*.tgz dependency and the native kit as vendored source. Neither requires a public npm package or source repository. See download availability for the public installer. Catalog tools have their own migration status; their presence does not imply compatibility with the current SDK.

Registered Host contracts determine capability availability. Host manages system permissions, and Curios direct users to its permissions page. Dedicated screen capture, input, process, and keychain interfaces remain unregistered. See the availability table.

A practical development loop#

  1. Run trove new, or use trove adopt in an existing project.
  2. Run trove dev to generate clients, connect Host, and start development.
  3. Call host.xxx or a generated client method.
  4. Test success, errors, cancellation, and subscription cleanup. Read live logs in the terminal or Host debug console.
  5. Run trove pack, end the development session, then run trove install and verify the installed artifact.

The CLI guide explains the loop. The SDK and Manifest pages provide interface references.