Skip to content

CLI Reference

Oore CI provides two command-line tools:

  • oored — the daemon (control plane and API server)
  • oore — the operator CLI for setup, administration, and daily use

Validate repository pipeline YAML locally with the exact parser used by the daemon and runner:

bash
oore pipeline validate .oore.yaml

oored (Daemon)

The daemon serves the HTTP API and manages instance state.

Commands

CommandDescriptionStatus
oored runStart the daemonImplemented
oored install-serviceInstall and optionally start a macOS launchd user serviceImplemented
oored uninstall-serviceStop and remove the launchd user serviceImplemented
oored versionPrint version informationImplemented

oored run

bash
oored run [--listen <addr>] [--state-file <path>]
FlagDefaultEnv varDescription
--listen127.0.0.1:8787OORED_LISTEN_ADDRAddress and port to listen on
--state-filePlatform defaultOORE_SETUP_STATE_FILEOverride database path

The default database path is ~/Library/Application Support/oore/oore.db. The encryption key is stored at ~/Library/Application Support/oore/encryption.key.

In default mode, oored starts an embedded local runner automatically. Set OORED_RUNNER_MODE=external to disable the embedded runner and require an external runner process.

oored install-service

bash
oored install-service [--listen <addr>] [--state-file <path>] [--label <label>] [--env KEY=VALUE] [--no-start] [--system --user <name>]

Installs oored as a macOS launchd user service. The default service label is build.oore.oored, and the plist is written to ~/Library/LaunchAgents/build.oore.oored.plist.

FlagDefaultEnv varDescription
--listen127.0.0.1:8787OORED_LISTEN_ADDRAddress and port used by the service
--state-filePlatform defaultOORE_SETUP_STATE_FILEOverride database path
--labelbuild.oore.oorednoneOverride the launchd service label and plist name
--env KEY=VALUEnonenoneAdd or override an environment variable in the launchd plist. Repeat for multiple variables
--no-startfalsenoneWrite the plist without bootstrapping the service
--systemfalsenoneInstall a boot-time LaunchDaemon; requires root
--usernonenoneAccount that runs the LaunchDaemon; required with --system

The service uses the currently running oored executable, keeps the daemon alive with launchd, writes logs to ~/.oore/logs/oored.log, and preserves the same embedded-runner default as oored run.

Examples:

bash
# Persistent local daemon on loopback
oored install-service --listen 127.0.0.1:8787

# Production reverse-proxy deployment
oored install-service \
  --listen 127.0.0.1:8787 \
  --env OORE_PUBLIC_URL=https://ci.mycompany.com \
  --env OORE_CORS_ORIGINS=https://ci.mycompany.com

# Custom database path
oored install-service \
  --state-file "$HOME/Library/Application Support/oore-prod/oore.db"

Useful launchd checks:

bash
launchctl print gui/$(id -u)/build.oore.oored
sudo launchctl print system/build.oore.oored
tail -f ~/.oore/logs/oored.log

oored uninstall-service

bash
oored uninstall-service [--label <label>] [--system]

Stops and removes the launchd user service. This deletes the plist but leaves the database, encryption key, and logs untouched.

oore (Operator CLI)

The operator CLI handles setup, authentication, and administration.

Commands

CommandDescriptionStatus
oore setupInteractive 4-step instance setupImplemented
oore setup tokenGenerate a bootstrap tokenImplemented
oore loginAuthenticate in local mode or import a tokenImplemented
oore statusShow setup status and authenticated operational summaryImplemented
oore runner registerRegister an external build runnerImplemented
oore runner startStart external runner processImplemented
oore runner install-serviceInstall a macOS login-session runner serviceImplemented
oore runner uninstall-serviceRemove the managed macOS runner serviceImplemented
oore config set <key> <value>Set CLI configuration valuesImplemented
oore config get <key>Get CLI configuration valuesImplemented
oore doctorRun environment/signing diagnosticsImplemented
`oore backup createverifyrestore`
oore updateSafely install a verified release updateImplemented

Global behavior

  • All commands that communicate with the daemon accept --daemon-url (default: http://127.0.0.1:8787, env: OORE_DAEMON_URL)
  • The CLI stores local defaults in ~/.oore/config.json (override path via OORE_CONFIG_FILE)
  • State database path can be overridden with --state-file or OORE_SETUP_STATE_FILE
  • Default database location: ~/Library/Application Support/oore/oore.db

Embedded runner note

The single-host default flow does not require oore runner start. The daemon (oored) auto-starts an embedded local runner unless OORED_RUNNER_MODE=external.

iOS signing is the exception: use OORED_RUNNER_MODE=external and oore runner install-service so code signing runs in the logged-in macOS user session required by Apple Keychain Services.

Self-hosted mobile CI, built for Flutter.