No description
- disclaw.yaml: change default workspaces_root to ~/.disclaw/workspaces - src/config/loader.ts: add expandWorkspacesRoot() with ~ expansion via os.homedir(), path.resolve() normalisation, and in-repo warning via console.warn (explains CLAUDE.md walk-up leak risk) - tests/unit/workspace-root-resolve.test.ts: Vitest unit tests (a-d) - README.md: add Migration bestehender Workspaces section Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .claude/commands | ||
| .forgejo | ||
| .obsidian | ||
| dist | ||
| docs | ||
| scripts | ||
| src | ||
| tasks | ||
| tests/unit | ||
| .env.example | ||
| .gitignore | ||
| ARCHITECTURE.md | ||
| CLAUDE.md | ||
| disclaw.yaml | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
DisClaw
DisClaw is a Discord-bot-powered multi-agent workspace manager built on Claude Code. It turns a Discord server into a multi-agent development environment where each channel maps to a local workspace folder with its own Claude Code agent identity.
Quick Start
npm install
cp .env.example .env # add DISCORD_BOT_TOKEN and DISCORD_GUILD_ID
npm run build
npm run start
Configuration
Edit disclaw.yaml to customise global settings:
| Key | Default | Description |
|---|---|---|
workspaces_root |
~/.disclaw/workspaces |
Directory where agent workspaces are created |
management_channel |
disclaw |
Discord channel name for bot management |
claude_command |
claude |
Path or name of the Claude Code CLI binary |
claude_timeout_seconds |
120 |
Timeout for each Claude CLI invocation |
Secrets go in .env:
DISCORD_BOT_TOKEN=your-token-here
DISCORD_GUILD_ID=your-guild-id # optional, speeds up slash-command registration
CLAUDE_PATH=/path/to/claude # optional, overrides claude_command
Architecture
See ARCHITECTURE.md for a detailed breakdown of the component design.
Development
npm install # install dependencies
npm run build # compile TypeScript
npm test # run unit tests (Vitest)
npm run dev # build + start in one step
Migration bestehender Workspaces
Ab dieser Version werden Workspaces standardmaessig unter ~/.disclaw/workspaces/ angelegt
(konfigurierbar via disclaw.yaml -> workspaces_root).
Bestehende Workspaces unter ./workspaces/ muessen manuell verschoben werden:
mv ./workspaces/* ~/.disclaw/workspaces/
Danach die DB-Eintraege in data/disclaw.db (Tabelle workspaces, Spalte workspace_path) aktualisieren.