disclaw/README.md
Nick Tabeling d71081d2b1 feat(config): move workspaces_root to home dir, add tilde expansion
- 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>
2026-04-09 10:40:34 +02:00

59 lines
1.8 KiB
Markdown

# 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
```bash
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
```bash
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:
```bash
mv ./workspaces/* ~/.disclaw/workspaces/
```
Danach die DB-Eintraege in `data/disclaw.db` (Tabelle `workspaces`, Spalte `workspace_path`) aktualisieren.