Skip to main content

Profiles

A profile is an isolated Anyy identity. It has its own home directory, configuration, state database, sessions, memory, skills, roles, cron jobs, channel configuration, logs, backups, and secrets.

Use profiles when you want real data separation, such as personal and work setups. Use roles when you only want to change persona or tone inside the same profile.

Quick Start

anyy profile create work --display-name "Work"
anyy --profile work setup
anyy --profile work status
anyy profile use work

Run a one-off command with --profile NAME when you do not want to change the active profile:

anyy --profile work chat "Summarize today's notes."

What Is A Profile

A profile is a storage and runtime boundary. Selecting a profile chooses which Anyy home directory the command or gateway uses. That home then determines which config.yaml, state.db, secrets/, memory/, skills/, and channel configuration are loaded.

A profile does not change Anyy's product identity. Anyy still identifies as Anyy; the profile controls local data and configuration.

Create A Profile

Create a blank profile:

anyy profile create work --display-name "Work"

Inspect it:

anyy profile get work

List all profiles:

anyy profile list

Add --json to profile commands when you need machine-readable output.

Name rules

Profile names are normalized to lower-case. Names must start with a letter or number and then use only letters, numbers, _, or -, up to 64 characters.

Reserved operational names such as profile, profiles, gateway, status, doctor, logs, skills, debug, and channel names cannot be profile names.

Blank profile

A newly created profile starts with its own directory layout and default local files. Run setup for that profile before using it for real work:

anyy --profile work setup
anyy --profile work status

Clone configuration

The current anyy profile create command does not implement a clone flag. If you want another profile with similar configuration, create the profile, then copy or recreate only the config you actually want to share. Keep secrets as secret references, not copied inline values.

Clone data

Profile data cloning is not a first-class CLI operation in this build. Backups are the supported export path for a profile's local state:

anyy --profile work backup create
anyy --profile work backup list

Treat any manual copy of state.db, secrets/, or channel state as an operational migration, not a routine profile command.

Use A Profile

Switch the active profile under the profile root:

anyy profile use work

Run one command against a profile without changing the active profile:

anyy --profile work status
anyy --profile work chat "What is on my task list?"

Commands that accept --home PATH can bypass profile selection and point at an explicit Anyy home:

anyy status --home /path/to/anyy-home

Use one selection mechanism at a time. If you pass both an explicit home and a profile selection to a command that treats them as ambiguous, Anyy reports the mismatch instead of guessing.

Profile Root

The profile root is the directory that contains profile homes and active-profile state. You can override it per command:

anyy --profile-root ~/.anyy-profiles profile list
anyy --profile-root ~/.anyy-profiles profile create lab

Environment variables also participate in home resolution:

VariablePurpose
ANYY_HOMESelect an explicit Anyy home.
ANYY_DEFAULT_HOMEOverride the default home used by setup and resolution.

See Environment Variables for the full list.

Gateway Per Profile

Each profile home has its own runtime files, including its gateway socket. Start or inspect the gateway for a selected profile:

anyy --profile work gateway start
anyy --profile work gateway status

The TUI can start an embedded gateway for its selected profile. The resident gateway commands manage the background service for the resolved home.

Profile deletion checks whether the profile gateway is still running. Stop it before deleting:

anyy --profile work gateway stop
anyy profile delete work --force

Deletion guards:

GuardBehavior
Default profileRefused.
Active profileRefused until another profile is active.
Running profile gatewayRefused until the profile gateway is stopped.
Profile contains secretsRequires --purge-secrets.

Profile Isolation

Profiles isolate local Anyy state. A session in work is not visible in default; a secret stored under one profile is not resolved from another; a channel configured in one profile does not automatically exist in another.

The isolation boundary is the Anyy home directory, not the operating system. A profile is not an OS sandbox, and workspace/ is context and artifact storage rather than a permission boundary. Protect profile homes the same way you protect the default ~/.anyy directory.

Roles are scoped inside a profile:

anyy --profile work role list
anyy --profile work role use analyst

Changing role does not move data between profiles.

Profile Commands

Profile command reference:

anyy profile list [--json]
anyy profile get NAME [--json]
anyy profile create NAME [--display-name NAME] [--json]
anyy profile use NAME [--json]
anyy profile delete NAME --force [--purge-secrets] [--json]

Deletion requires --force. Add --purge-secrets only when you want profile secret material removed as part of deletion.

For the full CLI list, see CLI Commands.