---
name: eikon
description: Guide the user through making or editing a herm sidebar avatar (eikon) using herm's built-in Eikon Studio tab. The agent's role is advisory (what makes a good source, which knob to reach for); source generation is /eikon-create and all rasterize/bake happens in-app.
related_skills: [eikon-create]
---

# Building an eikon in herm

An eikon is a 48×24 monochrome text avatar. It lives on disk as:

    ~/.hermes/eikons/<name>/
      <name>.eikon      packed NDJSON — written by Studio on Ctrl+S / Ctrl+U
      studio.json       Studio's workspace state
      source/           base.<ext>, <state>.<ext>

You do **not** write `.eikon` or `studio.json`. Studio does.

## Where the user does the work

Herm's built-in **Eikon** tab (Gallery / Studio / Marketplace). Tell the user:
"open the Eikon tab" or "Ctrl+K → Eikon". In Studio:

- `eikon` row → pick / New…
- `source` row → Local file… / Generate image… / Generate video…
- `input` section → contrast / invert / flip (pixel-domain, shared)
- `<rasterizer>` section → symbols / fill / dither (glyph-domain)
- Preview pane → wheel pans, Ctrl+wheel zooms, Shift+wheel pans X
- **Ctrl+S** bakes all six states without changing the active avatar
- **Ctrl+U** bakes all six states and uses it as the active avatar
- `u` from Studio or `s` from Gallery opens the official-registry submit flow

## What makes a good source

One line, once: **48×24, one color. Light subject on black, high
contrast, strong silhouette.** Fine detail disappears; outline is
everything.

## When to do what

| user says | you do |
|---|---|
| "make me an eikon of X" | Load `eikon-create` and follow it. |
| drops an image path | `cp` it to `~/.hermes/eikons/<name>/source/base.<ext>` → "Eikon tab, pick <name>". |
| "edit my <name> eikon" | "Eikon tab → `eikon` row → <name>." |
| "install/shared marketplace eikon" | "Eikon tab → Marketplace", or `/marketplace`. Install, then Use when ready. |
| "install from GitHub" | "Eikon tab → New… → inspect/install", or `herm eikon install github.com/user/repo/eikon-name`. |
| "too dark / washed out" | "invert toggle, then contrast slider — under `input`." |
| "off-center / too small" | "Ctrl+wheel to zoom, wheel/drag to pan on the preview." |
| "make it move" | `eikon-create` §5 (video), or Studio's `source` → Generate video…. |
| "publish/share my eikon" | "Eikon tab → Studio/Gallery → submit. Review the bundle, metadata, and GitHub PR target before continuing." |

## Install and manage shared eikons

For catalog eikons, use **Eikon → Marketplace**. Rows show source,
compatibility, and trust (`Verified`, `Unverified`, or `Mismatch`).
Marketplace installs fetch built package artifacts and do not clone creator
repos.

For direct sharing, use `github.com/user/repo/eikon-name` for a multi-eikon
GitHub catalog repo, `github.com/user/repo` for a single-package repo, or a
local package directory. Private GitHub repos use normal git authentication.

The local lifecycle is explicit:

```bash
herm eikon search [query]
herm eikon inspect <name|github.com/user/repo/eikon-name|dir>
herm eikon install <name|github.com/user/repo/eikon-name|dir>
herm eikon use <name>
herm eikon info <name>
herm eikon update <name> --active-ok
herm eikon remove <name> --active-ok
```

`install` never activates. `use` activates. Updating or removing the active
eikon requires explicit acknowledgement because it changes or clears the active
avatar.

Creators share through normal GitHub repositories. For official registry
listing, use Gallery/Studio submit after baking: Herm previews the public
bundle, asks for title/author/description/glyph, and creates or guides a
GitHub PR to the shared registry. Use upstream `eikon pack`, `eikon index`,
and `eikon manifest` for direct-install repos. `eikon publish` is the lower-
level GitHub PR contribution helper for the configured/default catalog repo,
not a hosted marketplace account or upload flow.

## Quick poster

To show a candidate in chat without Studio:

```bash
chafa --size=48x24 --symbols=braille --colors=none --format=symbols --stretch "<path>"
```

Preview-only; Studio's output will differ (it tone-maps first).

## Don'ts

- Don't hand-write `.eikon` NDJSON.
- Don't pick knob values for the user. Name the knob.
- Don't repeat the 48×24 brief.
