packages/docs/agents/owner-role.md
Every Eliza device has exactly one OWNER. The OWNER is the person who set up the device during onboarding — by default, that's you.
The OWNER role is bound to your Entity in the runtime's
entity/relationship system, persisted in the ELIZA_ADMIN_ENTITY_ID
setting, and enforced anywhere the runtime performs a permission check.
requiresRole: "OWNER".OWNER is assigned during the onboarding voice prefix (Settings → Voice if you skipped onboarding):
ELIZA_ADMIN_ENTITY_ID to your device.wife, colleague, etc.).OWNER is per-device. If you sign in on a new device, you go through the
voice prefix again — your new device gets its own OWNER entity, bound to
the same identity cluster as your existing devices via the runtime's
identity_link relationship tag.
To revoke OWNER:
ELIZA_ADMIN_ENTITY_ID and all voice profiles, then re-runs
onboarding next launch.Voice profiles are biometric data. Eliza stores them locally under
~/.milady/voice-profiles/ with strict file permissions. They are
never uploaded automatically — see Settings → Voice → Privacy for
the per-profile retention settings and the optional Eliza Cloud
first-line cache opt-in.
You can export your profile metadata at any time: Settings → Voice → Profiles → Export writes a JSON blob of profile names + relationship labels (no raw audio embeddings).
Role enum — OWNER | ADMIN | USER | GUEST
(packages/core/src/types/environment.ts).ensureOwnerRole(entityId) — server-side guard
(packages/agent/src/runtime/roles/src/index.ts).getRelationships({tags: ["identity_link"]}),
RelationshipsIdentityCluster.tsx).~/.milady/audit/owner-actions.jsonl.