Profiles
Profiles give EdgeCrab isolated runtime homes under ~/.edgecrab/profiles/<name>/. Each profile has its own config, personality, memory, skills, session database, plugins, hooks, and state. The default profile is still ~/.edgecrab/.
EdgeCrab now ships starter profiles and seeds them automatically on normal startup and profile commands:
workfor production engineering and code reviewresearchfor evidence-heavy synthesis and comparison workhomelabfor infrastructure, automation, and Home Assistant workflows
What A Profile Contains
Section titled “What A Profile Contains”~/.edgecrab/profiles/work/├── config.yaml├── .env├── SOUL.md├── state.db├── memories/│ ├── USER.md│ └── MEMORY.md├── skills/├── plugins/├── hooks/├── mcp-tokens/└── ...The active sticky profile is stored in ~/.edgecrab/.active_profile.
Bundled Starter Profiles
Section titled “Bundled Starter Profiles”Bundled profiles are seeded from templates compiled into the CLI crate. They are created once, skipped if you already have a profile with the same name, and never overwrite user edits.
Focus: production coding, review, and high-discipline execution.
model: default: "openai/gpt-5" max_iterations: 90
display: personality: "technical" show_cost: true show_status_bar: true tool_progress: "verbose"
honcho: enabled: true cloud_sync: false
reasoning_effort: "high"research
Section titled “research”Focus: source-backed analysis, synthesis, and comparisons.
model: default: "openai/gpt-5" max_iterations: 120
display: personality: "teacher" show_cost: true show_status_bar: true tool_progress: "verbose"
honcho: enabled: true cloud_sync: false
reasoning_effort: "high"homelab
Section titled “homelab”Focus: local infra, automations, containers, and Home Assistant.
model: default: "copilot/gpt-4.1" max_iterations: 90
display: personality: "technical" show_cost: true show_status_bar: true tool_progress: "verbose"
honcho: enabled: true cloud_sync: false
reasoning_effort: "medium"YAML Format
Section titled “YAML Format”A profile is not a special schema. It is just a normal EdgeCrab home rooted at ~/.edgecrab/profiles/<name>/, and its config.yaml uses the same AppConfig structure as the default profile.
Minimal example:
model: default: "copilot/gpt-4.1" max_iterations: 60
display: personality: "concise"
reasoning_effort: "medium"Typical profile-local files:
config.yamlfor models, toolsets, display, gateway, MCP, plugins, and policy.envfor profile-specific secretsSOUL.mdfor profile identity and operating rulesmemories/USER.mdandmemories/MEMORY.mdfor durable memory
CLI Commands
Section titled “CLI Commands”Use the binary subcommands for lifecycle operations:
edgecrab profile listedgecrab profile showedgecrab profile show workedgecrab profile use workedgecrab profile create client-acmeedgecrab profile create lab-copy --cloneedgecrab profile create audit-sandbox --clone-all --clone-from workedgecrab profile alias work --name wedgecrab profile rename client-acme client-acme-2026edgecrab profile export work -o ./work-backup.tar.gzedgecrab profile import ./work-backup.tar.gz --name work-restorededgecrab profile delete work-restored --yesUse -p or --profile to run under a profile without changing the sticky default:
edgecrab -p research "compare these two APIs"edgecrab -p homelab "check the Home Assistant automations"TUI Commands
Section titled “TUI Commands”The TUI now has first-class profile UX while still keeping Hermes-style status output.
/profileshows the active profile name and effective home directory/profile listopens the browser in summary mode/profile show <name>opens the browser focused on that profile in summary mode/profile config <name>opens the browser inconfig.yamlmode/profile soul <name>opens the browser inSOUL.mdmode/profile memory <name>opens the browser in memory mode/profile tools <name>opens the browser in tool policy mode/profile use <name>focuses that profile for live switching inside the running TUI/profilesopens the interactive profile browser directly/profiles use <name>works as a shorthand for switching directly
Important: /profile use <name> is a real runtime switch. The TUI rebuilds the runtime, agent, tool registry, MCP connections, skills, and session DB path immediately. This is stronger than a “next launch only” toggle.
Inside the profile browser:
Enterswitches to the selected profileCshowsconfig.yamlSshowsSOUL.mdMshows profile memory filesTshows tool policy and toolset configurationAwrites or refreshes the default aliasEopens inline exportDopens inline delete confirmationNopens inline profile creationIopens inline profile importOopens inline profile renameTab,Shift-Tab,Left, andRightcycle detail views without leaving the overlayHor?opens the profile-browser help tabHomeandEndjump to the first or last visible result
Isolation Model
Section titled “Isolation Model”These are isolated per profile:
config.yaml.envSOUL.mdmemories/skills/plugins/hooks/state.db- gateway PID/state files
- MCP token storage
These remain outside profile isolation:
- the
edgecrabbinary itself - global sticky-profile marker
~/.edgecrab/.active_profile - shared shell alias directory
~/.local/bin/ - repo-local context files such as
AGENTS.md
SOUL.md Example
Section titled “SOUL.md Example”Each profile can have a different operating stance. Example SOUL.md:
# Client Review Profile
You are operating in a client-specific profile.
- Prefer evidence from the repository over assumptions.- Treat compatibility and migration risk as first-class concerns.- Be concise, but never omit materially relevant risk.Practical Patterns
Section titled “Practical Patterns”- Keep
workas the sticky default and use-p researchfor one-off comparison tasks. - Use
--clonefor safe forks that copy identity and secrets but not the whole runtime state. - Use
--clone-allonly when you explicitly want sessions, skills, and local state copied too. - Export profiles for backup or handoff; imports refuse
defaultso the base home cannot be silently replaced.
See Also
Section titled “See Also”- CLI Commands for
edgecrab profile - Slash Commands for
/profileand/profiles - Configuration for the full YAML schema
- Memory for profile-local memory behavior