Getting Started
August 5, 2026 · View on GitHub
Use this guide to install Workcell and start an agent in the managed runtime.
It assumes an Apple Silicon macOS host.
Continuous CI and tagged-release install verification currently cover only
GitHub-hosted Apple Silicon macos-26 and macos-15.
1. Install Workcell
Option A: verified release install (recommended)
Always verify a release before you install it. install-release.sh is the
verified install path. It downloads the release bundle and its signed
SHA256SUMS file. It verifies the Cosign signature and digest before it runs
bundle code. If verification fails, it stops the install.
Install the verification tools on the host before you run the installer.
Install cosign, gnupg, and git:
brew install cosign git gnupg
The release does not include install-release.sh as a separate asset. Get it
from the signed release tag. Do not get it from the mutable default branch.
Use release-posture.md to find the current release tag.
First, import and confirm the maintainer key fingerprint from
SECURITY.md.
git clone --branch vX.Y.Z --depth 1 https://github.com/omkhar/workcell.git
cd workcell
git tag -v vX.Y.Z
./scripts/install-release.sh --version vX.Y.Z
git tag -v checks the installer against the maintainer signing key. Arguments
after -- go to the bundle installer. For example, use
-- --no-install-deps for a launcher-only install.
For an additional GitHub attestation check, append --attestation. That
step runs gh attestation verify, which queries the GitHub API, so it also
needs gh installed and authenticated (brew install gh && gh auth login)
and network access:
./scripts/install-release.sh --version vX.Y.Z --attestation
For manual verification, download the bundle, SHA256SUMS, and
SHA256SUMS.sigstore.json. Verify them before extraction. The Cosign and digest
steps can run offline with the downloaded Sigstore bundle.
The GitHub attestation step requires network access by default. Omit it for an
offline install. You can also give it a local attestation with --bundle.
The regex below anchors and escapes the fixed identity text (^…\.…$). Thus,
only the release tag is variable. verify-release-artifact.sh uses the same
expression.
cosign verify-blob SHA256SUMS \
--bundle SHA256SUMS.sigstore.json \
--certificate-identity-regexp '^https://github\.com/omkhar/workcell/\.github/workflows/release\.yml@refs/tags/.+$' \
--certificate-oidc-issuer https://token.actions.githubusercontent.com
shasum -a 256 --ignore-missing -c SHA256SUMS
# needs network; pins the same anchored/escaped identity regex + OIDC issuer that
# install-release.sh --attestation uses (not --signer-workflow, which can over-match).
gh attestation verify workcell-vX.Y.Z.tar.gz --repo omkhar/workcell \
--cert-identity-regex '^https://github\.com/omkhar/workcell/\.github/workflows/release\.yml@refs/tags/.+$' \
--cert-oidc-issuer https://token.actions.githubusercontent.com
tar -xzf workcell-vX.Y.Z.tar.gz
cd workcell-vX.Y.Z
./scripts/install.sh
See docs/provenance.md for the full verification contract and docs/install-lifecycle.md for the day-two lifecycle.
On supported macOS hosts, the installer uses Homebrew to install only the
missing required packages (colima, docker, gh, git, go). Use
./scripts/install.sh --no-install-deps if you want a launcher-only install
plus a final warning summary instead.
Option B: Homebrew formula asset from a tagged release
Each supported release includes a workcell.rb formula asset. The formula
installs the reviewed tree in the Homebrew libexec directory.
curl -LO https://github.com/omkhar/workcell/releases/download/vX.Y.Z/workcell.rb
curl -LO https://github.com/omkhar/workcell/releases/download/vX.Y.Z/SHA256SUMS
curl -LO https://github.com/omkhar/workcell/releases/download/vX.Y.Z/SHA256SUMS.sigstore.json
cosign verify-blob SHA256SUMS \
--bundle SHA256SUMS.sigstore.json \
--certificate-identity-regexp '^https://github\.com/omkhar/workcell/\.github/workflows/release\.yml@refs/tags/.+$' \
--certificate-oidc-issuer https://token.actions.githubusercontent.com
shasum -a 256 --ignore-missing -c SHA256SUMS
brew install --formula ./workcell.rb
The formula pins the bundle digest, so brew re-verifies the downloaded tree
against the reviewed release at install time.
The formula declares colima, docker, gh, git, and go as explicit
dependencies.
Option C: source checkout
For local development or repo review:
git clone https://github.com/omkhar/workcell.git
cd workcell
./scripts/install.sh
2. Create the host-side injection policy
Initialize the managed credential store once:
workcell auth init
Then configure the credential you need:
Codex:
workcell auth set \
--agent codex \
--credential codex_auth \
--source /Users/example/.config/workcell/codex-auth.json
Claude API key:
workcell auth set \
--agent claude \
--credential claude_api_key \
--source /Users/example/.config/workcell/claude-api-key.txt
Gemini env file:
workcell auth set \
--agent gemini \
--credential gemini_env \
--source /Users/example/.config/workcell/gemini.env
GitHub Copilot CLI:
workcell auth set \
--agent copilot \
--credential copilot_github_token \
--source /Users/example/.config/workcell/copilot-github-token.txt
Do not use host gh auth, GH_TOKEN, GITHUB_TOKEN, host keychains, or host
Copilot provider state (~/.copilot, ~/.config/github-copilot,
~/.cache/github-copilot) as Copilot readiness sources. Workcell stages only
copilot_github_token. It removes the original token file and its staged copy
from direct mounts. For an authenticated start, Workcell uses a temporary token
handoff. The handoff is outside provider state. The entrypoint remains PID 1
and unlinks the mounted file. Workcell exports COPILOT_GITHUB_TOKEN only to
the managed Copilot child.
Google Antigravity CLI is not a supported agent yet. Do not configure
--agent antigravity, unimplemented credential keys, or host provider state
until the matching Workcell adapter support phase lands with docs and
certification.
Check the host-side view at any time:
workcell auth status --agent codex
To roll back a credential entry from the host policy, use:
workcell auth unset --agent codex --credential codex_auth
That output, workcell --auth-status, and workcell why all include bootstrap
summary fields. Use
docs/provider-bootstrap-matrix.md to interpret
whether the selected path is repo-required, certification-only, or manual.
3. Inspect before launch
These commands do not start the runtime. They show whether the host, workspace, and injection policy are in the expected shape.
workcell --agent codex --doctor --workspace /path/to/repo
workcell --agent codex --inspect --workspace /path/to/repo
workcell --agent codex --auth-status --workspace /path/to/repo
4. Launch the agent
workcell --agent codex --workspace /path/to/repo
Useful variants:
workcell --agent codex --prepare-only --workspace /path/to/repo
workcell --agent codex --mode development --workspace /path/to/repo -- bash -lc 'git status'
workcell --agent codex --agent-autonomy prompt --workspace /path/to/repo
5. Read the provider-specific quickstart
There is no Antigravity quickstart. Workcell must implement and certify support before it adds a quickstart.
For team rollout patterns on today's local-first product, see Enterprise rollout today.
6. Understand the contract
7. Clean up and uninstall
- Reclaim stale runtime/cache/temp state with
workcell --gc(this does not remove managed state or Colima profiles). It reapssession-auditrecords older than 12 hours, so do not run it before preserving evidence for a suspected security incident — see the incident-response runbook. - Bundle or source install: First run
./scripts/uninstall.sh --dry-run. Then run./scripts/uninstall.sh. It removes Workcell links, state, profiles, and caches. It preserves~/.config/workcell, including the injection policy and managed credentials. It also keeps shared packages and unrelated profiles. Remove customWORKCELL_STATE_ROOTorXDG_STATE_HOMEcontent separately. - Homebrew formula install: Run
brew uninstall workcell. Then run./scripts/uninstall.shfrom a release bundle or source checkout. The second command removes runtime state and Colima profiles.
These are covered as repeatable day-two operations in docs/install-lifecycle.md.