Repository issue thread assistant with an Agent Orchestrator style YAML config.
Go to file
insleker ed94fde9e7 feat: patial copilot support 2026-04-14 12:37:28 +08:00
.agents/skills feat: improve emoji reaction to no-reply comment in issues 2026-04-11 17:28:16 +08:00
.github/workflows chore: add hook which check rebased before push 2026-04-12 02:54:59 +08:00
.vscode feat: Add minimal GitHub repo configuration and issue assistant setup 2026-04-04 22:12:03 +08:00
README.assets docs: improve docs of config and readme 2026-04-13 11:26:28 +08:00
bin docs: improve docs of config and readme 2026-04-13 11:26:28 +08:00
docs chore: support windows OS 2026-04-09 11:26:35 +08:00
examples feat: patial copilot support 2026-04-14 12:37:28 +08:00
lib feat: patial copilot support 2026-04-14 12:37:28 +08:00
scripts chore: add hook which check rebased before push 2026-04-12 02:54:59 +08:00
test feat: patial copilot support 2026-04-14 12:37:28 +08:00
tool chore: add post-checkout lefthook 2026-04-14 11:55:00 +08:00
.env.example feat: load dotenv runtime config for #27 2026-04-09 01:40:28 +08:00
.gitignore chore: add hook which check rebased before push 2026-04-12 02:54:59 +08:00
AGENTS.md chore: cleanup deprecated `IssueAssistantEventSourceDocument` 2026-04-10 15:37:02 +08:00
CHANGELOG.md feat: 1st commit 2026-04-04 18:52:01 +08:00
README.md docs: improve docs of config and readme 2026-04-13 11:26:28 +08:00
analysis_options.yaml feat: 1st commit 2026-04-04 18:52:01 +08:00
build.yaml feat: add glab/gosmee GitLab channel support (#37) 2026-04-10 11:12:14 +08:00
lefthook.yml feat: patial copilot support 2026-04-14 12:37:28 +08:00
pubspec.yaml refactor: remove shell-dependent test seams from CLI integration paths 2026-04-11 15:36:39 +08:00
skills-lock.json docs: improve docs of config and readme 2026-04-13 11:26:28 +08:00

README.md

code_work_spawner

Repository issue thread assistant configured by YAML.

It watches GitHub, GitLab, Gitea, or OpenProject issue events, reads threads, and triggers CLI responders such as codex, opencode, or copilot-cli.
Supports multi-repo config, responder fallback chains, isolated worktrees, and optional Discord or desktop notifications.

Highlights

  • Track issue events across multiple repositories
  • Reply on mentions or meaningful thread updates
  • Run planning and bug verification in isolated worktrees
  • Send optional Discord and desktop notifications

Requirements

  • Dart SDK
  • Authenticated gh, glab, tea, and/or OpenProject API credentials
  • Local checkouts for configured repositories
  • Optional responder CLIs (codex, opencode, copilot-cli)

Config

Create CWS_conf.yaml using:

Environment placeholders (for example ${CWS_DISCORD_WEBHOOK}) are resolved
from process env vars and from a .env file next to your config.

Logging level can be set with CWS_LOG_LEVEL (or LOG_LEVEL): trace,
debug, info, warning, error, fatal. Minimal example:
.env.example.

Generate starter config:

dart run bin/code_work_spawner.dart init-config
# Write it to a file:
dart run bin/code_work_spawner.dart init-config --output agent-orchestrator.yaml
# Overwrite an existing file:
dart run bin/code_work_spawner.dart init-config --output agent-orchestrator.yaml --force

Run

Generate code first:

dart run build_runner build --delete-conflicting-outputs

Run once:

dart run bin/code_work_spawner.dart --once

Run continuously:

dart run bin/code_work_spawner.dart

Override CLI paths if needed:

dart run bin/code_work_spawner.dart \
  --config /path/to/agent-orchestrator.yaml \
  --db /path/to/state.sqlite3 \
  --gh-command /usr/bin/gh \
  --glab-command /usr/bin/glab \
  --tea-command /usr/bin/tea

Install Binary

Install latest release binary:

# export GH_TOKEN="$TOKEN" # If got 404, `GITHUB_TOKEN` also work
uv run https://github.com/existedinnettw/code_work_spawner/scripts/install.py
uv run https://$GH_TOKEN@raw.githubusercontent.com/existedinnettw/code_work_spawner/main/scripts/install.py --help

Install a specific version:

uv run https://github.com/existedinnettw/code_work_spawner/scripts/install.py --version v1.0.0

Testing

dart run tool/validate_gherkin_test_format.dart
dart analyze
dart test

ref

agent-orchestrator