← All tools

kiri11/c1cmd

AI Agent
Popularity 75 Updated AI & Agents

Capture One CLI and MCP

githubauto-collected

Installation

A directly usable install command is not verified yet. Check the project documentation or releases.

c1 — Unofficial Capture One CLI & MCP Server

Did you ever want to give your agent access to Capture One? Probably not. But now You can!

c1 reads, adjusts, compares, and previews Capture One variants through a CLI and a stdio MCP server.

Works with the currently open Session or Catalog. Catalog editing requires an explicit opt-in.

Both adapters share CaptureOneCore and one versioned request/response schema. Creative judgment and photographer review belong in the caller.

Capture One is a trademark of Capture One A/S. This independent project is not affiliated with, endorsed by, or sponsored by Capture One A/S. Capture One and RAW fixtures are not distributed with the project.

Support boundary for v0.1

  • Qualified application: Capture One 16.8.5.30, on Apple Silicon. See release validation for current scope, validation commands, and remaining distribution gates.
  • One open document: the implementation rejects operations when more than one document is open. Sessions (.cosessiondb) support editing and preview export. Catalogs default to read-only inspection; experimental catalog editing requires an exact-path opt-in.
  • One operator, sequential calls: keep the document open throughout a workflow. Do not switch/reopen/replace databases, edit in the UI, or launch competing exports during a command. The advisory lock serializes inventory scans and cooperating c1 writers; it does not lock the photographer UI, other automation, or delayed Apple Events. Multi-process workflows remain unqualified.
  • Reference lifetime: a working reference is bound to the canonical database file identity, Capture One process/launch, and parent-image path. Restarting Capture One or replacing the database invalidates it; inspect current state and create a fresh editing reference. Capture One does not expose a reliable same-file close/reopen token within one application launch. Such workflows remain unsupported, rather than being presented as automatically detected.
  • Other builds: 16.4+ through 16.x are permitted by the compatibility check, but are unverified, not qualified support. Older/future major builds require C1ALLOWUNTESTEDBUILD=1. Check doctor for the tested-build match before editing.
  • Platform: the package targets macOS 13+, but this is a deployment target, not evidence that every macOS version is tested. Intel and older macOS runtime qualification are deferred.

This is a narrow first release, not a general-purpose Capture One automation API. Session creation, image import, automatic keystone detection, style learning, and general recipe export are outside v0.1. Expanded adjustments, curves, layers and masks are available through the experimental native editing API.

Installation

Building requires Swift 5.9+ and the macOS command line tools. Capture One must be installed at /Applications/Capture One.app and running for application operations.

git clone https://github.com/kiri11/c1cmd.git
cd c1cmd
make build
make install

make install chooses a writable prefix, falling back to ~/.local. Override with make install PREFIX="$HOME/.local". Add its bin directory to PATH if necessary.

Both executables require c1CaptureOneCore.bundle beside them. The Makefile installs it. When using a release archive, keep its bin directory intact; copying only c1 or c1-mcp is insufficient.

Release binaries are ad-hoc signed, not Developer ID notarized. Source builds are available if macOS policy blocks a downloaded binary.

Every push to main runs the release workflow. After unit tests, the release build, and packaged-archive checks pass, it publishes the archive and SHA-256 checksum in a GitHub release. Release names and tags use the UTC date plus a daily sequence: YYYY-MM-DD-01, YYYY-MM-DD-02, and so on, starting again at 01 each day. Runs are queued to keep numbering unique, and each tag points to the commit that triggered its build.

MCP setup

Configure your MCP client to launch the installed server over stdio: