- Add .forgejo/workflows/ci.yml with matrix (ubuntu/windows), build, test, lint jobs - Add .eslintrc.cjs with shell:true guard (no-restricted-syntax) and @typescript-eslint rules - Add lint script to package.json and ESLint v8 devDependencies - Add CI section to README.md Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
68 lines
2.1 KiB
Markdown
68 lines
2.1 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.
|
|
|
|
## 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`
|