2.5 KiB
summary, read_when
| summary | read_when | |
|---|---|---|
| Agent runtime (embedded Pi), workspace contract, and session bootstrap |
|
Agent Runtime 🤖
CLAWDIS runs a single agent runtime: Pi (embedded, in-process).
Workspace (required)
You must set an agent home directory via inbound.workspace. CLAWDIS uses this as the agent’s only working directory (cwd) for tools and context.
Recommended: use clawdis setup to create ~/.clawdis/clawdis.json if missing and initialize the workspace files.
Bootstrap files (injected)
Inside inbound.workspace, CLAWDIS expects these user-editable files:
AGENTS.md— operating instructions + “memory”SOUL.md— persona, boundaries, toneTOOLS.md— user-maintained tool notes (e.g.imsg,sag, conventions)BOOTSTRAP.md— one-time first-run ritual (deleted after completion)IDENTITY.md— agent name/vibe/emojiUSER.md— user profile + preferred address
On the first turn of a new session, CLAWDIS injects the contents of these files directly into the agent context.
If a file is missing, CLAWDIS injects a single “missing file” marker line (and clawdis setup will create a safe default template).
Built-in tools (internal)
Pi’s embedded core tools (read/bash/edit/write and related internals) are defined in code and always available. TOOLS.md does not control which tools exist; it’s guidance for how you want them used.
Skills
Clawdis loads skills from three locations (workspace wins on name conflict):
- Bundled (shipped with the install)
- Managed/local:
~/.clawdis/skills - Workspace:
<workspace>/skills
Skills can be gated by config/env (see skills.* in docs/configuration.md).
Sessions
Session transcripts are stored as JSONL at:
~/.clawdis/sessions/<SessionId>.jsonl
The session ID is stable and chosen by CLAWDIS.
Steering while streaming
Incoming user messages are queued while the agent is streaming. The queue is checked after each tool call. If a queued message is present, remaining tool calls from the current assistant message are skipped (error tool results with "Skipped due to queued user message."), then the queued user message is injected before the next assistant response.
Configuration (minimal)
At minimum, set:
inbound.workspaceinbound.allowFrom(strongly recommended)
Next: Group Chats 🦞