A complete guide to workspace files, skills, channels, permissions, and how to configure them properly.
Most OpenClaw users install it, connect a channel, and never open the workspace folder.
This is a mistake.
Your workspace is the control center for how your AI assistant behaves. It holds your identity, custom skills, channel connections, and memory. Once you understand what lives where, you can configure OpenClaw exactly the way you need it.
This guide walks through the anatomy of a perfect setup.
PS: Openclaw is just the beginning.
Inside our Build With AI community, we'll teach you how to build custom agents, apps, and automations you can use yourself or sell to clients. Launching soon.
Join the waitlist here: https://return-my-time.kit.com/1bd2720397
-----------------------------------------
Two config layers, not one
Before diving in, one thing worth knowing upfront: OpenClaw uses two configuration layers.
The first is your workspace folder (typically ~/clawd/ or wherever you initialized). This holds your personal configuration, skills, memory, and secrets.
The second is the global installation at opt/homebrew/lib/node_modules/clawdbot/ (or equivalent on your system). This contains the core docs, built-in skills, and default behaviors.
Your workspace is where you customize. The global install is what you update.
AGENTS.md: Your operating instructions
This is the most important file in your entire setup. When OpenClaw starts a session, the first thing it reads is AGENTS.md. It loads it straight into the system prompt and keeps it in mind for the entire conversation.
Simply put: whatever you write in AGENTS.md, your agent will follow.
If you tell it to always check your calendar before suggesting meeting times, it will. If you say "never send emails without my explicit approval," it will respect that every time.
What actually belongs in AGENTS.md:
Write:
- Your core operating directive (what's the agent's job?)
- Key tools and how to use them (email CLI, task management workflows)
- Hard rules that should never be broken
- Links to important resources (API docs, skill locations)
- Workflow triggers (what should happen automatically)
Don't write:
- Full documentation you can link to instead
- Long paragraphs explaining theory
- Information that changes frequently
Keep AGENTS.md under 300 lines. Files longer than that start eating too much context, and instruction adherence actually drops.
Here's a minimal but effective example:
1# AGENTS.md - Clawdbot Workspace23## Core Operating Directive4My assistant operates as a proactive helper for my business.56**The Mandate:**7- Take as much off my plate as possible8- Be proactive - don't wait to be asked910## Key Tools11- **Email:** Check inbox daily, flag urgent items12- **Calendar:** Verify no conflicts before scheduling13- **Task Manager:** Sync completed work to dashboard1415## Hard Rules16- NEVER restart services without explicit permission17- Always verify dates with `date` command before scheduling18- Log all completed work to tracking system
That's ~20 lines of core directives. It gives your agent everything it needs to work productively without constant clarification.
SOUL.md: Persona and boundaries
SOUL.md defines who your agent is and how it should communicate. This is where personality lives.
1# SOUL.md - Persona & Boundaries23- Keep replies concise and direct.4- Ask clarifying questions when needed.5- Never send streaming/partial replies to external messaging surfaces.
If AGENTS.md is the instruction manual, SOUL.md is the personality profile. Some users write extensive personas here. Others keep it minimal. Both work, it depends on how much personality customization you want.
IDENTITY.md and USER.md: Who's who
These two files establish the relationship between your agent and you.
IDENTITY.md defines your agent:
1# IDENTITY.md - Agent Identity23- Name: [Your Agent Name]4- Creature: [Optional: fun descriptor]5- Vibe: Clever, helpful, dependable, tenacious problem-solver6- Emoji: [Your chosen emoji]
USER.md defines you:
1# USER.md - User Profile23- Name: [Your Name]4- Preferred address: [Nickname]5- Timezone: [Your timezone]6- Phone: [Your number]7- Calendar: [Calendar platform and email]
Why separate files? Because they serve different purposes. IDENTITY.md rarely changes once set. USER.md updates as your preferences evolve. Keeping them separate makes maintenance easier.
HEARTBEAT.md: Scheduled check-ins
This file controls what your agent does during heartbeat pollsโscheduled moments when the system checks if anything needs attention.
1# HEARTBEAT.md23**If the message contains "โ ๏ธ EXECUTION CRON":**4- This is NOT a heartbeat check - it's work to do5- Read the complete instructions in the message6- Execute all required steps7- Never return HEARTBEAT_OK89**Otherwise:**10- If nothing needs attention, return HEARTBEAT_OK11- Keep it minimal
Heartbeats are powerful for creating proactive agents. Your agent can check your calendar, scan your inbox, or run any automated workflow on a schedule, all triggered by heartbeat polls.
TOOLS.md: External tool documentation
This file holds your notes about external tools and conventions. It doesn't define which tools exist (OpenClaw handles that internally), but it's where you document how YOU use them.
1# TOOLS.md - User Tool Notes23## Email CLI4- Account: [email protected]5- Common: `cli email search`, `cli calendar create`67## Task Management API8- Token location: ~/.secrets/task-api-token.txt9- Always use `limit=100` to avoid pagination issues10- Status conversion: [document your specific workflow]1112## Web scraping tool (when sites block normal requests)13- Location: ~/clawd/.venv/scraper14- Use stealth mode for protected sites
This becomes your personal reference guide. When your agent needs to use a tool, it checks TOOLS.md for your specific conventions.
The skills/ folder: Reusable workflows
Skills are where OpenClaw gets powerful. Each skill is a self-contained workflow that your agent can invoke when the task matches the skill's description.
Every skill lives in its own subdirectory with a SKILL.md file:
1skills/2โโโ meeting-prep/3โ โโโ SKILL.md4โโโ social-post-writer/5โ โโโ SKILL.md6โ โโโ references/7โ โโโ templates.md8โโโ podcast-show-notes/9 โโโ SKILL.md
A SKILL.md uses YAML frontmatter to describe when to use it:
1---2name: meeting-prep3description: Automated pre-call research and briefing. Use when user asks to check for upcoming meetings or run meeting prep.4---56# Meeting Prep Skill78## When to trigger:9- User asks to check for upcoming meetings10- Scheduled to run every 10 minutes via cron11- Only briefs for FIRST-TIME CALLS1213## Process:141. Check calendar for meetings in next 15-45 minutes152. Research attendees (LinkedIn, company website)163. Create briefing document174. Attach link to calendar event
The key difference from static instructions: skills can bundle supporting files alongside them. The references/templates.md file can hold example outputs, proven formats, or additional context that only loads when the skill is active.
The memory/ folder: Persistent context
This is your agent's long-term memory. Session transcripts, learned preferences, and daily logs all live here.
1memory/2โโโ 2026-03-22.md3โโโ 2026-03-21.md4โโโ email-style.md5โโโ business-context-2026-02.md6โโโ workflow-playbook.md
Good practices:
- Keep daily logs at memory/YYYY-MM-DD.md
- On session start, your agent reads today + yesterday if present
- Capture durable facts, preferences, and decisions
- Avoid storing secrets
Memory files are what give your agent context across sessions. Without them, every conversation starts from zero.
The .secrets/ folder: Credentials
API tokens, passwords, and sensitive configuration live here. This folder should be gitignored and never committed.
1.secrets/2โโโ task-api-token.txt3โโโ openai-api-key.txt4โโโ anthropic-api-key.txt5โโโ service-credentials.txt
Your AGENTS.md or TOOLS.md can reference these paths without exposing the actual values.
Channel configuration: Where you talk to your agent
OpenClaw supports multiple messaging channels: Discord, Telegram, Signal, WhatsApp, and more. Channel config lives in your gateway configuration (managed via clawdbot gateway commands).
Key concepts:
- Each channel has its own session behavior
- You can have multiple channels active simultaneously
- Channel-specific rules (like "don't respond unless @mentioned in Discord") go in AGENTS.md
The full picture
Here's how everything comes together:
1~/clawd/2โโโ AGENTS.md # Operating instructions (daily use)3โโโ SOUL.md # Persona and boundaries4โโโ IDENTITY.md # Agent identity5โโโ USER.md # Your profile6โโโ HEARTBEAT.md # Scheduled check-in behavior7โโโ TOOLS.md # External tool documentation8โโโ BOOTSTRAP.md # First-run ritual (delete after)9โ10โโโ skills/ # Custom workflows11โ โโโ meeting-prep/12โ โโโ podcast-show-notes/13โ โโโ social-post-writer/14โ15โโโ memory/ # Persistent context16โ โโโ 2026-03-22.md17โ โโโ key-context.md18โ19โโโ .secrets/ # API keys and credentials (gitignored)20โ โโโ task-api-token.txt21โ โโโ anthropic-api-key.txt22โ23โโโ output/ # Generated files and exports
A practical setup to get started
If you're starting from scratch, here's a progression that works well.
Step 1. Run openclaw onboard and complete the initial setup. Choose your model provider and connect at least one channel.
Step 2. Create your workspace folder and add AGENTS.md with your core directives. Start with 10-20 lines covering your main use cases.
Step 3. Add IDENTITY.md, USER.md, and SOUL.md. These establish the relationship and personality.
Step 4. Create your first skill for a workflow you do repeatedly. Meeting prep, email drafts, or content creation are good starting points.
Step 5. Set up memory/ with a daily log template. Your agent will start building context over time.
Step 6. Add TOOLS.md as you discover tool-specific patterns worth documenting.
That's genuinely all you need for 95% of use cases. Advanced features like cron jobs, multi-agent setups, and custom channel plugins come in when you have specific workflows worth automating.
The key insight
Your OpenClaw workspace is really a protocol for telling your AI assistant who you are, what you need done, and what rules it should follow. The more clearly you define that, the less time you spend correcting your agent and the more time it spends doing useful work.
AGENTS.md is your highest-leverage file. Get that right first. Everything else is optimization.
Start small, refine as you go, and treat it like any other piece of infrastructure in your workflow: something that pays dividends every day once it's set up properly.
PS: Openclaw is just the beginning.
Inside our Build With AI community, I'll teach you how to build custom agents, apps, and automations you can use yourself or sell to clients. Launching soon.
Join the waitlist here:





