Running Multiple OpenClaw Profiles: A Power User Guide
Run multiple OpenClaw profiles to separate work, personal, and client CRM workspaces. Complete guide to profile management, switching, and advanced multi-workspace setups.
OpenClaw supports multiple profiles, letting you run separate DenchClaw workspaces for different contexts — work, personal, individual clients, or separate organizations. Each profile gets its own database, config, skills, and agent state. This guide covers everything from basic profile creation to advanced multi-machine setups.
When Multiple Profiles Make Sense#
A single DenchClaw workspace works well for most users. You want multiple profiles when:
- Client separation: You're a consultant or agency managing CRM data for multiple clients who should never see each other's data
- Work/personal: Keep your work contacts and personal projects in separate, isolated environments
- Testing: Develop and test custom Skills in a sandbox profile without touching your production workspace
- Role separation: Different team members need separate agent configurations and model preferences
- Compliance requirements: Some industries require data segregation that can't be achieved with a single database
How OpenClaw Profiles Work#
Each profile in OpenClaw is an isolated workspace directory containing:
~/.openclaw-dench/ # Default workspace (profile: default)
~/.openclaw-dench-work/ # Work profile
~/.openclaw-dench-client-acme/ # Client profile
~/.openclaw-dench-personal/ # Personal profile
Each directory contains:
workspace.duckdb— the CRM database for that profileconfig.json— model settings, API keys, preferencesworkspace/skills/— installed Skills (can differ per profile)workspace/docs/— documents and notesworkspace/apps/— installed apps
There's no shared state between profiles. Completely isolated.
Step 1: Check Your Current Profile#
openclaw profile listYou'll see something like:
● default ~/.openclaw-dench/workspace (active)
The bullet marks the active profile.
Step 2: Create a New Profile#
openclaw profile create workThis creates a fresh workspace at ~/.openclaw-dench-work/. The first time you activate it, DenchClaw will run the same initialization as a fresh install — setting up the DuckDB schema, default objects, and empty workspace.
Create as many as you need:
openclaw profile create client-acme
openclaw profile create personal
openclaw profile create sandboxStep 3: Switch Between Profiles#
openclaw profile use workThis switches your active profile. All subsequent openclaw commands will operate on the work workspace until you switch back.
Verify which profile is active:
openclaw profile list
default ~/.openclaw-dench/workspace
● work ~/.openclaw-dench-work/workspace (active)
personal ~/.openclaw-dench-personal/workspaceSwitch back to default:
openclaw profile use defaultStep 4: Profile-Specific Configuration#
Each profile can have different settings. This is useful for:
- Different models per client: Use a more powerful model for a high-value client's CRM and a cost-efficient model for internal use
- Different API keys: Use separate API key budgets per project
- Different Skills: Install only the Skills relevant to each context
Configure a specific profile without switching to it:
# Set model for the work profile
openclaw profile config work set model anthropic/claude-sonnet-4-5
# Set model for personal (local Llama)
openclaw profile config personal set model ollama/llama3.2Running Multiple Profiles Simultaneously#
OpenClaw can run multiple gateway instances simultaneously on different ports. This lets you access multiple workspaces at the same time:
# Start default profile on port 3000 (standard)
openclaw gateway start --profile default --port 3000
# Start work profile on port 3001
openclaw gateway start --profile work --port 3001
# Start client profile on port 3002
openclaw gateway start --profile client-acme --port 3002Then connect your DenchClaw web UI to different ports to access different workspaces.
Quick Profile Aliases#
If you switch profiles frequently, set up shell aliases:
# Add to ~/.zshrc or ~/.bashrc
alias ocw="openclaw profile use work && openclaw"
alias ocp="openclaw profile use personal && openclaw"
alias ocd="openclaw profile use default && openclaw"Now ocw chat "..." runs a query against your work workspace without a manual profile switch.
Profile Isolation Deep Dive#
Understanding exactly what's isolated and what's shared:
Isolated per profile:
- DuckDB database (contacts, deals, notes, all CRM data)
- Installed Skills and their configurations
- Workspace documents and files
- Installed apps
- Schedule/cron configurations
- Agent memory and session history
Shared across profiles:
- OpenClaw version and binary
- CLI installation
- Plugin configurations (some)
- Network-level gateway routing rules
This means a Skill installed in your work profile isn't available in your personal profile. Install Skills per-profile:
openclaw profile use work
openclaw skills install crm-analyst
openclaw profile use personal
openclaw skills install obsidianMigrating Data Between Profiles#
Sometimes you want to copy data from one profile to another — say, seeding a client profile with template data from your default workspace.
Export from source profile:
openclaw profile use default
openclaw export --format json --output ~/default-export.jsonImport to destination profile:
openclaw profile use client-acme
openclaw import ~/default-export.jsonFor DuckDB-level operations, you can also work directly:
# Copy specific objects
duckdb ~/.openclaw-dench-work/workspace/workspace.duckdb \
"ATTACH '~/.openclaw-dench/workspace/workspace.duckdb' AS source;
INSERT INTO objects SELECT * FROM source.objects WHERE type = 'template';"Multi-Machine Profile Sync#
If you want the same profile available on multiple machines (e.g., your MacBook and a Raspberry Pi), you can sync the workspace directory.
Using rsync for periodic sync:
# Sync from MacBook to Pi
rsync -avz ~/.openclaw-dench/workspace/ pi@denchclaw-pi.local:~/.openclaw-dench/workspace/Using a shared network drive:
# Mount a NAS and point profile there
openclaw profile create shared --path /Volumes/NAS/openclaw-sharedNote: Avoid two machines writing to the same DuckDB file simultaneously — DuckDB doesn't support concurrent multi-process writes. Use one as primary, one as read-only, or implement a sync schedule.
The Client Consulting Setup#
For consultants managing multiple clients, here's a practical multi-profile architecture:
profiles/
├── default/ ← Personal workspace, private notes
├── client-acme/ ← ACME Corp CRM
│ ├── Skills: crm-analyst, research
│ ├── Model: claude-sonnet (powerful for complex client work)
├── client-beta/ ← Beta LLC CRM
│ ├── Skills: crm-analyst
│ ├── Model: gemini-flash (cost-efficient)
└── sandbox/ ← Testing new Skills, experiments
├── Skills: everything
├── Model: ollama/llama3.2 (free, no API costs)
This gives you:
- Complete data isolation between clients
- Per-client model and cost configurations
- A sandbox for experimentation that doesn't risk production data
- Your own workspace untouched by client work
Automating Profile-Aware Scripts#
For advanced users running scheduled tasks across multiple profiles:
#!/bin/bash
# Run daily summaries for all active client profiles
for profile in client-acme client-beta; do
echo "Running summary for $profile..."
openclaw --profile $profile chat "Generate today's CRM summary"
doneThe --profile flag lets you run commands against any profile without switching the global active profile. This is safe for use in cron jobs where you don't want to change global state.
Profile Naming Conventions#
Consistent naming prevents confusion. Suggested conventions:
- By client/project:
client-companyname,project-projectname - By domain:
work,personal,research - By environment:
prod,staging,dev - By team member (for shared machines):
alice,bob
Profile names become part of the directory path, so keep them lowercase, no spaces, use hyphens.
Backing Up and Restoring Profiles#
Back up all profiles at once:
# Backup everything
tar -czf openclaw-backup-$(date +%Y%m%d).tar.gz \
~/.openclaw-dench* Restore a specific profile:
tar -xzf openclaw-backup-20260326.tar.gz \
--strip-components=3 \
Users/username/.openclaw-dench-work \
-C ~/.openclaw-dench-workFor DuckDB specifically, use DuckDB's built-in export for more portable backups:
duckdb ~/.openclaw-dench/workspace/workspace.duckdb ".backup ~/backups/default-$(date +%Y%m%d).db"Troubleshooting#
Profile switch doesn't seem to take effect
Verify with openclaw profile list. If a gateway is running, it may need a restart to pick up the profile change. Run openclaw gateway restart after switching.
"Profile not found" error
List available profiles with openclaw profile list. Profile names are case-sensitive. Verify the profile exists before trying to use it.
Two profiles share unexpected data
Double-check that both profile directories are truly separate. Run openclaw profile list to see the paths — if they point to the same directory, you have an alias, not a separate profile.
Running out of disk space with many profiles
Each profile's DuckDB file starts small but grows with data. Large Skills and document storage can also accumulate. Check sizes with:
du -sh ~/.openclaw-dench*/workspace/workspace.duckdbArchive inactive profiles to external storage if needed.
FAQ#
Is there a limit on how many profiles I can create?
No hard limit. Each profile is just a directory on your filesystem. Practical limits are disk space and the overhead of managing many contexts.
Can I share a specific Skill across all profiles without installing it multiple times?
Not directly — Skills are currently profile-scoped. A workaround is to symlink a shared skills directory into each profile's skills folder.
Can multiple users on the same machine use separate profiles?
Yes. Each user has their own home directory, and OpenClaw stores profiles in the user's home. As long as users have separate OS accounts, their profiles are fully isolated.
If I delete a profile, does it delete all the CRM data?
Yes. openclaw profile delete profilename removes the entire workspace directory. Always back up before deleting. The CLI will ask for confirmation.
Can I rename a profile?
Not via a direct command currently. To rename, copy the workspace directory to a new location, create a new profile pointing to it, and delete the old one.
Ready to try DenchClaw? Install in one command: npx denchclaw. Full setup guide →
