Loading lesson…
Where files live, what `openclaw.toml` controls, which env vars matter, and how to put the whole thing in version control without leaking secrets. Provider choice, default model, where files live, log level, default heartbeat cadence — all here.
Every OpenClaw project — a personal one, a team one, a deployed one — converges on roughly the same layout. Knowing it cold lets you read someone else's project in minutes and lets you predict where to put new files without re-reading docs every time.
my-openclaw-project/
├── openclaw.toml # the main config — provider, paths, defaults
├── .env # secrets — gitignored, never committed
├── .env.example # safe template — committed, shows what is needed
├── souls/ # one file per soul
│ ├── ada.yaml
│ └── reviewer.yaml
├── skills/ # custom skills the soul can call
│ ├── send_email.py
│ ├── search_notes.py
│ └── manifest.yaml # which skills are enabled
├── heartbeats/ # autonomous loops
│ ├── morning_review.yaml # fires daily at 8am
│ └── slow_compactor.yaml # fires every 6 hours
├── memory/ # local memory store — gitignored
├── logs/ # session logs — gitignored
└── README.md # how to run this projectA canonical layout. souls, skills, and heartbeats are committed; memory and logs are not.The config file is the single source of truth for non-secret settings. Provider choice, default model, where files live, log level, default heartbeat cadence — all here. If you find yourself passing the same flag on the command line three times, it probably belongs in the config.
# openclaw.toml — the project's default config
[provider]
name = "ollama"
base_url = "http://localhost:11434"
model = "qwen3:8b"
[fallback]
name = "anthropic"
model = "claude-sonnet-latest"
# api key comes from ANTHROPIC_API_KEY in .env — never inline here
[paths]
souls = "./souls"
skills = "./skills"
heartbeats = "./heartbeats"
memory = "./memory"
logs = "./logs"
[memory]
store = "local-vector"
retention_days = 30
[heartbeats]
enabled = true
min_interval_seconds = 60
[logging]
level = "info"
format = "jsonl"A workable openclaw.toml. Add sections as you need them; you do not need every block on day one.| Variable | What it sets | Notes |
|---|---|---|
| OPENCLAW_HOME | Default project root | Set per project, not globally |
| ANTHROPIC_API_KEY | Cloud fallback auth | Required only if you set a fallback provider |
| OPENAI_API_KEY | Alternative cloud provider | Same — only if used |
| OPENCLAW_LOG_LEVEL | Override config log level | Useful for one-off debugging without editing config |
| OPENCLAW_MEMORY_DIR | Override memory location | Handy if you want shared memory across machines |
The big idea: predictable layout plus boring config plus disciplined gitignore equals a project anyone can clone and run. Get those three right on day one and the framework gets out of your way.
15 questions · take it digitally for instant feedback at tendril.neural-forge.io/learn/quiz/end-openclaw-config-layout-creators
What is the core idea behind "OpenClaw Config And Project Layout"?
Which term best describes a foundational idea in "OpenClaw Config And Project Layout"?
A learner studying OpenClaw Config And Project Layout would need to understand which concept?
Which of these is directly relevant to OpenClaw Config And Project Layout?
Which of the following is a key point about OpenClaw Config And Project Layout?
Which of these does NOT belong in a discussion of OpenClaw Config And Project Layout?
Which statement is accurate regarding OpenClaw Config And Project Layout?
Which of these does NOT belong in a discussion of OpenClaw Config And Project Layout?
What is the key insight about "Never commit .env" in the context of OpenClaw Config And Project Layout?
What is the key insight about "Two tiers of souls" in the context of OpenClaw Config And Project Layout?
What is the key insight about "From the community" in the context of OpenClaw Config And Project Layout?
Which statement accurately describes an aspect of OpenClaw Config And Project Layout?
What does working with OpenClaw Config And Project Layout typically involve?
Which of the following is true about OpenClaw Config And Project Layout?
Which best describes the scope of "OpenClaw Config And Project Layout"?