Installation
autoducks is runtime-agnostic by design. The agent scripts, provider implementations, and core utilities live in .autoducks/ and are independent of any specific CI/CD platform. The runtime layer — the workflow files that wire triggers to scripts — is a separate concern.
Currently supported runtime: GitHub Actions. Other runtimes are planned.
Prerequisites (GitHub Actions runtime)
Section titled “Prerequisites (GitHub Actions runtime)”- A repository hosted on GitHub (personal or org)
ghCLI authenticated (gh auth login)- An Anthropic API key (from console.anthropic.com)
- The Claude Code GitHub App installed on your repo
One-line install
Section titled “One-line install”Run this from the root of your repository:
curl -fsSL https://raw.githubusercontent.com/deepducks/autoducks/main/scripts/install.sh | bashThis downloads the .autoducks/ directory tree and copies the GitHub Actions workflow files to .github/workflows/.
Install options
Section titled “Install options”# Specify a different repo (if not running inside the target repo)curl -fsSL .../install.sh | bash -s -- --repo OWNER/REPO
# Download files only, skip the setup checkscurl -fsSL .../install.sh | bash -s -- --no-setupWhat gets installed
Section titled “What gets installed”| Path | Description |
|---|---|
.autoducks/ | Agent scripts, prompts, provider implementations, core utilities |
.autoducks/runtimes/github-actions/ | GitHub Actions workflow definitions (one per agent) |
.github/workflows/autoducks-*.yml | Copies of the runtime workflows, placed where GitHub Actions expects them |
.github/ISSUE_TEMPLATE/ | Issue templates for feature and task issues |
scripts/ | setup.sh, install.sh, smoke-test.sh |
The runtime workflows in .github/workflows/ are copies of the canonical definitions in .autoducks/runtimes/github-actions/. The setup script verifies they stay in sync.
Setup checks
Section titled “Setup checks”After installing, run scripts/setup.sh to validate your repository:
./scripts/setup.shThe script checks and auto-creates what it can, and reports what requires manual action:
-
ITS authentication — verifies
gh auth status(GitHub CLI). Fatal if missing. -
Required labels — creates
Feature,Ready,Draft,smoke-test, and priority labels if they don’t exist. -
LLM provider secret — checks that
ANTHROPIC_API_KEYis set as a repository secret. If missing, prints the command to add it:Terminal window gh secret set ANTHROPIC_API_KEY --repo OWNER/REPO -
Runtime workflow permissions — checks for
writepermissions andcan_approve_pull_request_reviews: trueon GitHub Actions. Prints the fix command if wrong. -
Claude Code GitHub App — reminds you to install the app at github.com/apps/claude. Cannot be verified programmatically.
-
Issue types (Feature, Task) — checks org-level issue types. Workflows run without them, but typed issue relationships won’t appear in the issue tracker UI.
-
Runtime workflow sync — verifies that
.github/workflows/autoducks-*.ymlmatch.autoducks/runtimes/github-actions/. Fails if out of sync.
Updating
Section titled “Updating”Re-run the install script to update to the latest version:
curl -fsSL https://raw.githubusercontent.com/deepducks/autoducks/main/scripts/install.sh | bashIt detects the existing .autoducks/autoducks.json and runs in update mode (skips setup).
Configuration
Section titled “Configuration”After installing, you can customize defaults in .autoducks/autoducks.json:
{ "providers": { "its": "github", "git": "github", "llm": "claude" }, "defaults": { "model": "claude-sonnet-4-6", "reasoning": "high", "base_branch": "main" }}See Configuration reference for all options.