Profiles
A Profile is Anyy's hard user and runtime boundary. Use Profiles to keep independent people, environments, or trust domains separate.
What a Profile owns
Each Profile has its own:
- Home and Workspace;
- database and session history;
USER.md,MEMORY.md, Roles, and Soul files;- providers, models, Tools, Skills, and MCP configuration;
- Channels and Cron jobs; and
- Secrets.
None of these are shared automatically with another Profile. A Role is not an isolation boundary; Roles inside one Profile share these resources.
Create a Profile in Dashboard
- Open Dashboard → Profile.
- Select New Profile.
- Enter a name such as
work. - Optionally enter a display name such as
Work. - Select Create.
Names use lowercase letters, digits, dashes, or underscores, begin with a letter or digit, and are at most 64 characters. Some command names are reserved.
A new Profile starts with its own directory layout, Workspace, empty memory/user files, default Role selection, and configuration. Its durable state database is created when the Profile is first used by the runtime.
Switch Profiles in Dashboard
Open the target Profile and select Start and switch or Switch to. Dashboard:
- selects the target Profile;
- starts or finds its Gateway runtime;
- binds Dashboard to that Profile's data; and
- redirects to the target Dashboard.
The Profile list distinguishes the current runtime, another running runtime, and stopped Profiles.
After switching, sessions, memory, models, Channels, Skills, MCP, Cron all come from the target Profile.
Use Profiles from the CLI
anyy profile list
anyy profile get work
anyy profile create work --display-name "Work"
anyy profile use work
profile use changes the sticky selection used by later commands that do not pass an explicit Profile/Home. It does not migrate an already running Dashboard to another Profile.
Target one command explicitly:
anyy --profile work status
anyy --profile work dashboard
You can also use --home PATH on commands that support it. Do not pass both an explicit Profile and Home for the same resolution.
Home resolution and layout
An explicit --home PATH wins when used alone. Otherwise resolution is: explicit --profile NAME, then ANYY_HOME, then the sticky active_profile selection, finally default. Explicit --home and --profile together are rejected.
The base Home is the default Profile; named Profiles live below BASE_HOME/profiles/NAME. --profile-root PATH selects that base Home rather than a pre-existing profiles directory. A Profile created in another root is not automatically visible here.
Stop a Profile runtime
Stopping a non-current running Profile closes its runtime but keeps all data on disk. You can start it again by switching to it.
Use this before deletion or when a Profile should no longer consume resident resources. From the CLI, target the exact Profile:
anyy --profile work gateway stop
anyy --profile work gateway start
Separate Profiles may have separate resident runtimes; changing the sticky selection does not stop an existing runtime.
Delete a Profile
Profile deletion is permanent and removes the entire Profile home, including Workspace files, state database, memory, Skills, Secrets, Cron jobs, Channels, and sessions.
Dashboard allows deletion only when the Profile is:
- not the current Profile;
- not the default Profile;
- not the sticky default selection; and
- stopped.
The Dashboard removal action confirms the operation and purges Profile Secrets with the rest of the home.
CLI deletion is explicit:
anyy profile delete work --force --purge-secrets
Without --purge-secrets, CLI deletion refuses a Profile that contains Secrets.
Removing a Profile is not an archive operation. Create and verify a backup first if any part of the Profile may be needed later.
Profiles versus Roles
| Need | Use |
|---|---|
| Different assistant tone for the same person and data | Role |
| Separate memory, credentials, sessions, or trust boundary | Profile |
| Different model but shared memory | Session/model selection, or change the Profile model default |
| Work and personal accounts must never mix | Separate Profiles |
Troubleshooting
| Problem | Fix |
|---|---|
| Profile name is rejected | Use a non-reserved lowercase name with digits, -, or _ |
| Profile cannot be deleted | Switch away, change the sticky default if needed, and stop its runtime |
| CLI and Dashboard show different data | Compare the active Profile, --profile, --home, and Dashboard's current runtime |
| Target Profile switch fails | Check its Home, Gateway status, and displayed handoff stage |
| You only need another persona | Create a Role instead of duplicating the whole Profile |
Use Backup & Restore to move a coherent Profile snapshot. Restore does not register an arbitrary directory as a named Profile.
See Roles for identities inside a Profile.