OrcAI.Tool 0.10.5

dotnet tool install --global OrcAI.Tool --version 0.10.5
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local OrcAI.Tool --version 0.10.5
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=OrcAI.Tool&version=0.10.5
                    
nuke :add-package OrcAI.Tool --version 0.10.5
                    

OrcAI CLI

A CLI tool for orchestrating bulk GitHub work across many repositories. From a single YAML config, OrcAI creates a GitHub Project, opens templated issues in every target repo, and hands them off to whoever (or whatever) does the work — a human teammate, a bot, or an AI agent like GitHub Copilot or OpenCode.

Full docs, features, and examples: github.com/dburriss/orca

Prerequisites

Quick start

# 1. Scaffold a job config + issue template
orcai generate --name "Add AGENTS.md" --org my-github-org --repo repo-one --repo repo-two

# 2. Edit add-agents-md.yml (repos, labels, action) and add-agents-md.md (the task)

# 3. Run it
orcai run add-agents-md.yml

run finds or creates a GitHub Project, creates issues from your template, adds them to the project, and executes the configured action — assign @copilot/anyone, post a comment, or run a command per repo and open a PR with the result (cmd-to-github). A <basename>.lock.json file is written alongside the YAML so re-runs are fast and idempotent.

Commands

Command Description
orcai generate Scaffold a YAML job config and stub issue template
orcai run Execute a bulk job (globs, concurrency control, JSON output)
orcai nudge Re-trigger stale issues with no linked PR
orcai notify Post a templated comment to issues and/or PRs
orcai validate Validate YAML config(s) and repo access
orcai info Display the current state of a job
orcai cleanup Tear down everything created by run
orcai graph Render the dependsOn dependency graph
orcai migrate Upgrade a job YAML/lock file to the current schema
orcai auth pat/app/create-app/switch Manage credentials and profiles

For full flag details, the YAML schema, config file options, and runnable examples, see the CLI reference, config reference, and examples.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
0.10.5 68 9/7/2026
0.10.4 110 9/3/2026
0.10.3 91 9/2/2026
0.10.2 79 9/2/2026
0.10.1 93 9/1/2026
0.10.0 100 8/30/2026
0.9.0 97 8/30/2026
0.8.1 296 6/16/2026
0.8.0 169 6/9/2026
0.7.5-beta6 120 6/9/2026
0.7.4-beta5 116 5/21/2026
0.7.3-beta4 125 5/19/2026
0.7.2-beta3 126 5/18/2026
0.7.1-beta2 134 5/18/2026
0.7.0-beta1 126 5/13/2026
0.6.0 167 5/7/2026
0.5.1 302 3/17/2026
0.5.0 174 3/16/2026
0.4.4 174 3/16/2026
0.4.3 165 3/16/2026
Loading failed

`orcai nudge`'s live GitHub fallback check (`FindPrsForIssue`) always returned no PRs found, for every issue, because its GraphQL query referenced `closingPullRequests`, a field that does not exist on GitHub's `Issue` type. The request errored and the error was silently swallowed into `[]`. Nudge could therefore reassign `@copilot` on issues that were already closed by a merged, correctly-linked PR, causing Copilot's cloud agent to open a duplicate PR for already-completed work. Fixed by querying the real field, `closedByPullRequestsReferences` (with `includeClosedPrs:true` to also surface merged/closed PRs).
`orcai nudge` no longer falls back to assign-copilot behavior (unassign + reassign `@copilot`) for jobs whose `action.type` has no assignee concept, most notably `cmd-to-github` (where orcai itself opens the PR). Previously it silently defaulted to `@copilot` and reassigned it on already-closed issues; it now reports that these jobs must be re-triggered via `orcai run` instead.