HivemindOS manual

Tailnet Generation Skills

Generation skills teach agents how to use your private image, speech, and other generation services, on the same machine or on another machine in your Tailnet. They are instructions, not the services themselves: how to call an endpoint, check the output, and add new providers.

Setup copies the bundled templates into your vault’s Skills/ folder, and agents find them in the shared skill index. The templates hold only placeholders. You add your own addresses, models, and settings to your vault copy; existing copies are never overwritten.

Bundled skills

Skill Covers
tailscale-generation-skill-authoring How to add or update generation skills, where each provider belongs, and a provider-block template.
comfyui-image-generation Image providers such as ComfyUI and Z-Image, with Tailnet and local templates.
localtts Speech providers such as Qwen3-TTS, with Tailnet and local templates.

The localtts template expects a basic endpoint set: /health, /v1/models, GET /v1/voices, /voices, /v1/voices/<voice-id>, POST /v1/voices, /v1/audio/speech, /tts/synthesize, /synthesize, /api/tts, /openapi.json, and /docs.

Where a provider belongs

Organize providers by what they make, not by model or machine. Add a provider block to the matching skill instead of creating one skill per model.

Output Skill
Images (ComfyUI, Z-Image, Flux, SDXL, Stable Diffusion, inpainting, editing) comfyui-image-generation
Speech (Qwen3-TTS, Kokoro, Chatterbox, Dia, Orpheus, XTTS) localtts
Video A dedicated skill, for example local-video-generation
3D models A dedicated skill, for example local-3d-generation
Music and songs A separate music skill, not localtts

Tailnet mode and local mode

Each skill covers both ways of reaching a provider:

  • Tailnet mode: the generator runs on another HivemindOS machine. The agent needs only the Tailnet URL or MagicDNS name, the model or preset ID, the request shape, and how to check the output.
  • Local mode: the generator runs on this machine. The skill can also note the local URL, service folder, how it is started, model paths, hardware limits, and logs.

Label local-only details clearly, so agents on other machines don’t try to run service diagnostics they can’t reach.

Provider block template

### <Provider name>

Use this block for ...

**Route modes**
- Tailnet mode: `http(s)://<tailnet-host>:<port>` (preferred when the provider runs on another machine)
- Local mode: `http://127.0.0.1:<port>` (only on the service's own machine)

**Client configuration**
- URL: `<BASE_URL>`
- Model or default preset: `<MODEL_ID>`
- Output extension: `.png`, `.wav`, `.mp4`, `.glb`, etc.
- Auth: environment variable name only. Never include secret values.

**Preflight**
```bash
curl -fsS --max-time 5 http://<host>:<port>/health
curl -fsS --max-time 5 http://<host>:<port>/v1/models
```

**Generate and verify**
```bash
curl -fsS -X POST http://<host>:<port>/<generation-endpoint> \
  -H 'Content-Type: application/json' -d '{...}' -o /tmp/output.ext
file /tmp/output.ext
```

**Service machine only**
- Service folder, service manager (`launchctl`, `systemctl`, `docker`), logs, known failures.

Keep it private

  • Don’t put private Tailnet IPs, machine names, prompts, voice samples, transcripts, or local paths into shared templates. Keep them in your own vault copy.
  • Prefer MagicDNS or a stable Tailscale Serve name over raw 100.x addresses, which can change.
  • Keep generation services private to your Tailnet unless you deliberately choose to expose them.
Expanded image Scroll to pan · Esc to close
100%