Skip to main content

Module character

Module character 

Source
Expand description

Character — deterministic nickname, emoji, and color palette per identity.

Each wire identity has a Character derived deterministically from its DID (or any other stable seed). Same DID → same Character forever. Used for:

  • Terminal statusline display (wire whoami --colored)
  • Visual disambiguation between multiple Claude sessions on the same host
  • Future agent-card publication (federation lifecycle)

Character is display layer only. It does not affect protocol semantics, signing, or peer routing — those continue to use the DID. Character is the human-friendly handle the operator sees.

See .planning/research/identity-primitive-survey-2026-05-22.md for the ecosystem survey that motivated the field naming (persona not soul, per Letta convention) and lifecycle gating.

Structs§

Character
A character for an identity: human-readable nickname, emoji, and palette.
Palette
Two-color palette derived from the same seed as the nickname/emoji.

Constants§

MAX_DISPLAY_CHARS
v0.7.0-alpha.8 (review-fix #1): sanitize operator-chosen or peer- published display text (nickname or emoji) for safe terminal render.

Functions§

emoji_with_fallback
v0.9.3: render [<word>] ASCII fallback when terminal_supports_emoji returns false. The word is the emoji’s canonical short-name from a tiny built-in lookup; unknown emoji fall back to [*].
sanitize_display_text
terminal_supports_emoji
v0.9.3: emoji-rendering capability probe.