coprctl is a command-line and agent interface for the Fedora Copr build service. Copr does the heavy lifting: it turns your sources into signed RPM repositories. coprctl makes that easier to drive, in a terminal or from an agent.
~/.config/copr with no import. auth login sets up a fresh token or an extra instance.Every command is coprctl <resource> <verb> [ref]. A new source type is a flag value, never a new command. Learn it once, drive it by hand or by machine.
Watch the logs Copr already produces, across chroots, with one command.
coprctl log tailmulti-chrootcoprctl build watchto completion--output json|jsonl|yaml on every command. Human output is a rendering of the same structs.
stable exit codes4·8·9·12structured errorscode + hintA copr.yaml manifest describes the project; apply, diff, and export reconcile it against Copr.
coprctl applyreconcilecoprctl diffdrift = exit 12The agent skill is generated from the command registry, so it cannot drift from the CLI. MCP, schema, and completions all come from one source.
schema outputdrives agentsgenerated skillnever driftsGitHub integrations configured in one call, defaulting to tag-only triggers.
integration enableone commandtag-only defaultdeliberate releasesProduction, staging, openEuler, or self-hosted. Profiles are first-class and swap in one flag.
--profile NAMEswap instanceoffline catalogcached chrootscoprctl keeps Copr's vocabulary and API, and fixes the ergonomics around them: one grammar, live logs, declarative state.
A single static binary. Copr does the building; coprctl just talks to it. No runtime, no dependencies.
Browsing, monitoring, and log reading fall back to anonymous access when no profile is set. Writes still ask for credentials.
A dashboard appears only when it beats text and never blocks automation. Default output stays a clean stream.