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
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 →
Start from a working template, make your first Host call, and build an installable package.
02Host servicesDiscover the APIs your Host actually provides, with parameter and result examples for everyday tasks.
03Backend & architectureBuild a typed Rust Backend, generate clients, and understand the underlying Wire Protocol v1.
04Package & distributeBuild a verified .curio archive, install it locally, and publish it through a software source.
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 goal | Read next |
|---|---|
| Build a UI without a native process | Quick start |
| Use storage, files, clipboard, or windows | Host services |
| Run your own native code | Backend & architecture |
| Offer a capability to other Curios | Services & contracts |
| Diagnose an error or publish a version | Troubleshooting · 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#
- Run
trove new, or usetrove adoptin an existing project. - Run
trove devto generate clients, connect Host, and start development. - Call
host.xxxor a generated client method. - Test success, errors, cancellation, and subscription cleanup. Read live logs in the terminal or Host debug console.
- Run
trove pack, end the development session, then runtrove installand verify the installed artifact.
The CLI guide explains the loop. The SDK and Manifest pages provide interface references.