Documentation
helmstudio runs studios: repositories that each wrap an open-weight model — video, image or speech — behind a web page of their own. It installs a studio from a manifest, fetches its weights, runs its processes, keeps one heavy model in memory at a time, and gives every studio the same storage, gallery and timeline, so what one makes is there for the next.
These pages are for someone writing a studio, or wrapping a repository someone else wrote. If you only want to run studios, the repository's README is the shorter road; if you want to work on helmstudio itself, start with CONTRIBUTING.
Where to start
| If you want to | Read |
|---|---|
| Get something running in a few minutes | Quickstart, after installing helm |
| Understand what runs where | How a studio fits together |
| Describe a studio to helmstudio | The manifest |
| Wrap a repository whose author wrote no manifest | Wrap a repository |
| Look something up | The reference — every operation, manifest field and command, generated from the contract and the code |
What exists today
helm is released on GitHub, the runtime SDK on PyPI, npm and the Go module proxy, and @helmstudio/css and @helmstudio/ui on npm, so writing a studio needs no clone of this repository. helmstudio itself — the launcher and its daemon — ships as an unsigned Mac app, and also runs from a clone.
A page that would otherwise use one of these says so where it would have.
Not built yet
- helm studio init — scaffold a studio, which the quickstart's example stands in for
- helm test — run the smoke harness that certification needs (03 §12)
- helm doctor — score the criteria against a working tree, and say which provider a studio would get and why (01 §R6c, 05 §4)
- helm adopt — import a studio's standalone data into the daemon, hardlinking blobs and replaying rows (01 §R6b)
- helm dev --fixtures — serve canned data in place of a provider
- helm dev --fail — make an operation fail on purpose, to see what a studio does
- the launcher's Gallery screen — show every studio's items in one place
- the launcher's Timeline screen — open a sequence in an editor, which is why
:openanswers 501
Three packages, one direction
A studio takes as much of helmstudio as it wants. None of it is required: a studio that uses no package at all still installs, launches and runs.
| Package | Gives a studio | Depends on |
|---|---|---|
helm-css |
Tokens, and classes for layout and components, in both themes. No JavaScript. | Nothing. |
helm-runtime-sdk |
A client for the platform API — settings, sessions, records, assets, the gallery, jobs, the timeline and events — in Go, Python and JavaScript, generated from one contract. | The API contract. |
helm-ui-sdk |
helm-gallery, helm-player, helm-terminal and helm-timeline, as custom elements. |
helm-css, and the browser build of the runtime SDK. |
Only the runtime SDK knows the wire format. A component is given a client and calls its methods, and helm-css assumes no component's markup, so nothing points back up the chain.
What no package will ever contain: prompt builders, parameter panels, model pickers and scheduler controls. Those are where studios differ, and where their authors' judgement lives.