A core version of OpenClaw — an AI assistant with a soul.
English | 中文 | 日本語 | 한국어 | Español
ClawCore extracts the soul of OpenClaw into a minimal, self-contained personal AI assistant. It keeps the personality system that makes AI feel alive, while stripping away the infrastructure complexity.
OpenClaw is powerful — but it's also complex. ClawCore asks: what if we keep only the soul?
| 🦐 ClawCore | 🦞 OpenClaw |
|---|---|
Index-based memory — a simple MEMORY_INDEX.md file as table of contents, no vector DB |
Hybrid vector search with embedding models and temporal decay |
Lightweight heartbeat — simple setInterval timer with busy-guard |
Full cron system with sub-agents and complex scheduling |
Separate human & AI folders — your files (user/) are isolated and read-only |
Shared workspace with broader access |
| Task workbench — every task gets its own folder with lifecycle tracking | No explicit task-folder concept |
| File safety by design — AI can never modify your originals, only copies | Broader file system access |
| Runs on your daily computer — no need for a dedicated machine | Designed for always-on server deployment |
Most AI assistants with file access make people nervous — what if it deletes something? ClawCore solves this architecturally:
user/is read-only. The AI can read your PDFs, Word docs, and spreadsheets, but it physically cannot write to them.- Processing happens in
workbench/. Need to edit a file? The AI copies it to a task folder first. - Every action is scoped. The permission model is enforced at the tool level — not by trust, but by code.
This means you can run ClawCore on the same laptop you use every day, without worry. No VM, no dedicated server, no sandbox required.
| Feature | Description |
|---|---|
| 🧬 Soul System | AI develops its own personality via SOUL.md — not a chatbot, a character |
| 🪪 Identity Bootstrap | First-run "awakening" ritual where the AI discovers who it is |
| 🧠 Index-based Memory | MEMORY_INDEX.md as table of contents — load specific files on demand |
| 🔧 Skill System | Extensible skills via SKILL.md with progressive disclosure — AI can create and evolve skills over time |
| 📁 User Vault | Read-only folder for your personal files — AI can never modify originals |
| 🛠️ Task Workbench | Per-task folders with _TASK.md lifecycle management and archiving |
| 💓 Heartbeat Scan | Periodic autonomous scans — AI creates 🤖-prefixed tasks when it spots something |
git clone https://github.com/dataelement/ClawCore.git
cd ClawCore
npm install
npm run devOn first run, ClawCore will:
- Ask for your LLM API key
- Start a "bootstrap" conversation to discover its identity
- Create your workspace at
~/Desktop/ClawCore/
Edit ~/Desktop/ClawCore/config.json:
{
"llm": {
"baseUrl": "https://api.openai.com/v1",
"apiKey": "sk-...",
"model": "gpt-4o"
},
"heartbeat": {
"enabled": true,
"intervalMinutes": 60
}
}OpenAI
{
"llm": {
"baseUrl": "https://api.openai.com/v1",
"apiKey": "sk-...",
"model": "gpt-4o"
}
}DeepSeek
{
"llm": {
"baseUrl": "https://api.deepseek.com/v1",
"apiKey": "sk-...",
"model": "deepseek-chat"
}
}Alibaba Qwen (通义千问)
{
"llm": {
"baseUrl": "https://dashscope.aliyuncs.com/compatible-mode/v1",
"apiKey": "sk-...",
"model": "qwen-plus"
}
}Local Ollama
{
"llm": {
"baseUrl": "http://localhost:11434/v1",
"apiKey": "ollama",
"model": "llama3"
}
}ClawCore creates a visible workspace on your Desktop — no hidden folders:
~/Desktop/ClawCore/
├── config.json # LLM and heartbeat settings
├── state.json # Runtime state (last heartbeat time, etc.)
│
├── soul/ # 🧬 AI's personality
│ ├── SOUL.md # Core personality & values
│ ├── IDENTITY.md # Name, vibe, emoji
│ └── BOOTSTRAP.md # First-run script (auto-deleted after setup)
│
├── user/ # 📁 Your files (READ-ONLY for AI)
│ ├── USER_PROFILE.md # Your profile
│ └── ... # PDFs, Word docs, spreadsheets, etc.
│
├── memory/ # 🧠 AI's memory
│ ├── MEMORY_INDEX.md # Table of contents
│ ├── preferences.md # Evergreen knowledge
│ └── 2026-02-23.md # Daily journal entries
│
├── workbench/ # 🛠️ Task workspace
│ ├── 2026-02-23_报告分析/
│ │ ├── _TASK.md # Task metadata & status
│ │ └── output.md # Work product
│ ├── 🤖_2026-02-23_资料整理/ # Agent-initiated task
│ └── _archive/ # Archived completed tasks
│
└── skills/ # 🔧 Skill definitions (AI can create & modify)
├── SKILL_LOG.md # Changelog of all skill changes
└── my-skill/
└── SKILL.md
| Directory | AI Permissions | Purpose |
|---|---|---|
soul/ |
Read + Write | AI manages its own personality |
user/ |
Read-only | Your files — AI copies to workbench before editing |
memory/ |
Read + Write | AI's persistent memory |
workbench/ |
Read + Write | Per-task work area |
skills/ |
Read + Write | AI can create and evolve skills, logged to SKILL_LOG.md |
ClawCore enforces safety at the code level, not by trusting the AI to behave:
File Access — All file operations go through assertInsideWorkspace(), which resolves symlinks before checking paths. This prevents a classic attack: if someone creates a shortcut (symlink) inside the workspace that points to /Users/you/.ssh/, the AI would see it as "inside the workspace" — but ClawCore follows the link first and catches that it actually points outside.
Shell Commands — The exec tool uses three layers of protection:
| Layer | What it does | Example |
|---|---|---|
| ✅ Whitelist | Safe commands run immediately | ls, cat, grep, wc, open |
| 🚫 Blocklist | Dangerous commands are blocked outright | rm, curl, wget, sudo, ssh, chmod |
| Unknown commands prompt you to approve | python3 script.py → "Allow? (y/N)" |
Create a folder in ~/Desktop/ClawCore/skills/ with a SKILL.md:
---
name: my-skill
description: "When to use: user asks about X. NOT for: Y."
---
# My Skill
Detailed instructions for the AI...The AI uses progressive disclosure — it sees skill names and descriptions in its prompt, and loads the full SKILL.md content only when needed.
ClawCore includes a lightweight heartbeat mechanism inspired by OpenClaw:
- Default interval: 60 minutes
- What it does: Scans
user/andworkbench/folders for changes - Smart scheduling: Won't interrupt active conversations — defers until idle
- Agent tasks: Creates workbench folders prefixed with 🤖 for self-initiated work
ClawCore can read various file formats in the user/ folder:
| Format | Library |
|---|---|
pdf-parse |
|
| Word (.docx) | mammoth |
| Excel (.xlsx) | xlsx |
| Markdown, JSON, CSV, TXT | Native |
CLI (index.ts)
└── Agent (agent.ts)
├── System Prompt Builder ← Soul + Identity + Memory Index + Skills
├── LLM Provider (OpenAI-compatible)
├── Tool Executor (15 tools with permission enforcement)
└── Heartbeat Runner (setInterval with busy guard)
| Tool | Description |
|---|---|
read_file |
Read files (with document parsing) |
write_file |
Write files (memory/ and workbench/ only) |
list_dir |
List directory contents |
copy_to_workbench |
Copy from user/ to a task folder |
create_task |
Create a new task folder |
update_task_status |
Update task status |
archive_task |
Move task to archive |
memory_read / memory_write / memory_index |
Memory operations |
read_skill |
Load full skill instructions |
create_skill / update_skill |
Create or modify skills (auto-logged to SKILL_LOG.md) |
update_soul / update_identity |
Modify personality files |
complete_bootstrap |
Finish first-run setup |
exec |
Run shell commands |
ClawCore is inspired by OpenClaw and its vision of AI assistants with genuine personality. We extracted the soul and made it core.
MIT
