No description
Find a file
Nick Tabeling a48c342912
Some checks failed
CI / build-and-test (ubuntu-latest) (pull_request) Has been cancelled
CI / build-and-test (windows-latest) (pull_request) Has been cancelled
CI / lint (pull_request) Has been cancelled
chore: add dist/ to .gitignore, remove from tracking
2026-04-09 13:25:19 +02:00
.claude/commands initial 2026-04-08 14:21:19 +02:00
.forgejo feat(ci): add Forgejo Actions pipeline with build, test, lint 2026-04-09 11:49:48 +02:00
.obsidian forgejo management-token + organization/tasks created + workflow/board 2026-04-08 16:44:12 +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(env): remove CI=true from sanitizedEnv, breaks Claude Code OAuth login 2026-04-09 13:18:25 +02:00
tasks forgejo management-token + organization/tasks created + workflow/board 2026-04-08 16:44:12 +02:00
tests feat(runtime): add startup lockfile to prevent double-start 2026-04-09 11:49:17 +02:00
.env.example initial 2026-04-08 14:21:19 +02:00
.eslintrc.cjs feat(ci): add Forgejo Actions pipeline with build, test, lint 2026-04-09 11:49:48 +02:00
.gitignore chore: add dist/ to .gitignore, remove from tracking 2026-04-09 13:25:19 +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 feat(ci): add Forgejo Actions pipeline with build, test, lint 2026-04-09 11:49:48 +02:00
package.json feat(ci): add Forgejo Actions pipeline with build, test, lint 2026-04-09 11:49:48 +02:00
README.md feat(ci): add Forgejo Actions pipeline with build, test, lint 2026-04-09 11:49:48 +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.

CI

Jeder Pull Request gegen main durchläuft automatisch:

  • npm run build — TypeScript-Kompilierung (Linux + Windows)
  • npm test — Vitest Unit- und Integration-Tests (Linux + Windows)
  • npm run lint — ESLint mit shell:true-Guard

Pipeline-Konfiguration: .forgejo/workflows/ci.yml