1
Template Catalog
Alan Wizemann edited this page 2026-05-03 20:56:37 +02:00

Template Catalog (v2.8+)

The in-app Template Catalog browses every official .scarftemplate published at awizemann.github.io/scarf/templates/ without leaving Scarf. One click installs a template; the existing Project Templates flow takes over from there.

Opening the catalog

Sidebar → Projects → toolbar Templates menu → Browse Catalog….

The sheet fetches the catalog from awizemann.github.io once on first open and again whenever you click the refresh icon (top-right of the sheet). Between refreshes it serves a 24-hour cache from ~/.hermes/scarf/catalog_cache.json, so opening the sheet repeatedly doesn't re-hit the network. If both the network and the cache are unavailable, Scarf falls back to a hardcoded list of the official templates so the sheet is never empty on a fresh install.

Filtering

  • Search — matches your text against template name, description, and tags (case-insensitive). Empty = no filter.
  • Category — picker constrains to a single category (monitoring, news, dev, ops, personal, finance, …). Categories shown in the picker are exactly those present in the loaded catalog — you'll never see a category that has no matching template.
  • Sort — official awizemann/... templates rank first; community templates follow alphabetically by name.

Install state

Each row shows a badge indicating how the template relates to your local install:

  • (no badge) — not installed.
  • Installed v1.0.0 (green) — you have this template installed at exactly this version.
  • Update v1.1.0 (amber) — you have an older version installed; a new one is available in the catalog.

Update detection compares the catalog's version against <project>/.scarf/template.lock.json's template_version for every project in ~/.hermes/scarf/projects.json. The actual update flow is "uninstall the old version, install the new one" — Scarf doesn't yet ship a single-click in-place upgrade. Your config values survive the round-trip because they live in <project>/.scarf/config.json separately from the lock file.

Detail page

Tap a row to push a detail page. The detail page surfaces only what the catalog already carries — no separate README fetch, no remote markdown — so the sheet stays snappy and works offline. You'll see:

  • Description and tags (from the template's template.json).
  • What's inside — a checklist of the bundle's contents (dashboard, AGENTS.md, cron jobs, configuration fields, memory appendix, skills).
  • Configuration — every field the install form will ask you for, with the same description text the form will show. Secret fields are flagged with a lock icon.
  • Recommended model — if the template author specified one. Scarf does NOT auto-switch your active model; this is informational only.

The big primary button at the bottom hands the template's HTTPS install URL straight to the existing install sheet. From there the flow is identical to "Install from URL…" — pick a parent directory, fill in the configuration form, confirm.

Where the catalog lives

The catalog is a single JSON file regenerated by tools/build-catalog.py on every release that adds or updates a template. The file format is documented in templates/CONTRIBUTING.md. Scarf reads it from a hardcoded URL — there's no Settings field to change the source today (deliberate; one canonical catalog keeps the namespace honest). If you want to test against a forked or local catalog, point your dev Scarf build at it by editing CatalogService.baseURL in source.

Privacy

Opening the sheet hits https://awizemann.github.io/scarf/templates/catalog.json once per refresh window (24 hours). The request is anonymous — no token, no identifier. Same shape as Sparkle's update check. See Privacy Policy for the full picture of what Scarf accesses.

Limitations (v2.8)

  • No screenshots / hero images. The catalog ships text-only metadata. We may add image support once the template count justifies the visual differentiation work.
  • No favorites / starring. Browse, install, uninstall — no per-user preferences carried with you.
  • No background refresh. The catalog refreshes only when you open the sheet (with a stale cache) or click refresh. No on-launch network call, no timer.
  • No README rendering. The detail page uses the description from catalog.json only. Full READMEs ship inside each .scarftemplate and become visible when you start the install flow.