No description
Find a file
Nick Tabeling b4cc00e93c fix(new-agent): add path traversal containment check
Extracts validateAgentName() with path.resolve containment guard after
regex validation; returns clean ephemeral Discord reply on violation.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-09 11:19:28 +02:00
.claude/commands initial 2026-04-08 14:21:19 +02:00
.forgejo forgejo management-token + organization/tasks created + workflow/board 2026-04-08 16:44:12 +02:00
.obsidian forgejo management-token + organization/tasks created + workflow/board 2026-04-08 16:44:12 +02:00
dist dist-folder 2026-04-08 14:24:45 +02:00
docs forgejo management-token + organization/tasks created + workflow/board 2026-04-08 16:44:12 +02:00
scripts forgejo management-token + organization/tasks created + workflow/board 2026-04-08 16:44:12 +02:00
src fix(new-agent): add path traversal containment check 2026-04-09 11:19:28 +02:00
tasks forgejo management-token + organization/tasks created + workflow/board 2026-04-08 16:44:12 +02:00
tests/unit fix(new-agent): add path traversal containment check 2026-04-09 11:19:28 +02:00
.env.example initial 2026-04-08 14:21:19 +02:00
.gitignore dist-folder 2026-04-08 14:24:45 +02:00
ARCHITECTURE.md initial 2026-04-08 14:21:19 +02:00
CLAUDE.md initial 2026-04-08 14:21:19 +02:00
disclaw.yaml feat(config): move workspaces_root to home dir, add tilde expansion 2026-04-09 10:40:34 +02:00
package-lock.json fix(runner): replace shell:true with cross-spawn, add resolveClaude 2026-04-09 10:29:58 +02:00
package.json fix(runner): replace shell:true with cross-spawn, add resolveClaude 2026-04-09 10:29:58 +02:00
README.md feat(config): move workspaces_root to home dir, add tilde expansion 2026-04-09 10:40:34 +02:00
tsconfig.json initial 2026-04-08 14:21:19 +02:00

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.