Install CLROOM
Prerequisites:
- macOS on Apple Silicon;
- Codex CLI
0.147.0+or Claude Code CLI2.1.223+already working on its own.
One-line install
curl --proto '=https' --tlsv1.2 -fsSL https://github.com/y-sor/clean-room-launcher/releases/latest/download/install.sh | sh
The installer downloads the latest published stable macOS Apple Silicon release
from GitHub Releases, verifies the exact archive against SHA256SUMS, extracts
the clroom, clroom-codex, and clroom-claude binaries, and installs them to
~/.local/bin. It does not
use sudo, edit shell startup files, install a service, or change provider
state.
If ~/.local/bin is not already in PATH, the installer prints the directory
to add. The release archive is unsigned and unnotarized; do not disable
Gatekeeper globally if local macOS policy refuses it.
Before running a downloaded release, verify its checksum, provenance, SBOM attestation, and publication identity. Those checks answer different trust questions; the current archive remains unsigned and unnotarized at the Apple code-signing layer.
If the first command fails
Use the symptom before changing system security or reinstalling anything:
| Symptom | First check |
|---|---|
clroom: command not found |
The one-line installer writes to ~/.local/bin. Run command -v clroom and check whether $HOME/.local/bin is present in PATH. For the current shell, export PATH="$HOME/.local/bin:$PATH" is sufficient to test the installation. |
| CLROOM starts but cannot find the provider | The provider CLI is a prerequisite. Run command -v codex or command -v claude and verify that the provider works directly before debugging CLROOM. |
| macOS says the developer cannot be verified or Apple cannot check the software | The current CLROOM archive is unsigned and unnotarized. Verify the exact release first. Do not disable Gatekeeper globally. If your local/organization policy permits the release after verification, use the normal macOS per-app approval flow rather than weakening machine-wide security. |
| Architecture/format error | The current published qualification is macOS on Apple Silicon. uname -m should report arm64; Intel macOS is not qualified by this release. |
If these checks do not explain the failure, use Support and include the CLROOM version, macOS/architecture, provider version, sanitized command, expected behavior, and observed error. Do not post credentials, provider tokens, prompts, transcripts, or unrestricted environment dumps.
The problem index also maps common first-run wording to this answer.
Package-manager status
The current supported binary distribution is the GitHub Release installer/archive above.
- Homebrew: no supported CLROOM formula is currently claimed.
- crates.io: CLROOM is not currently published there.
- Cargo: an exact published Git tag can be installed from the Git repository as shown below.
- npm and other package managers: not current CLROOM distribution paths.
Do not treat an unrelated third-party package with a similar name as an official CLROOM release. The canonical release identity is the y-sor/clean-room-launcher GitHub Release and its published verification evidence.
Manual release archive
The exact-version examples below require that the named tag and GitHub Release have already been published.
VERSION=vX.Y.Z
ASSET=clean-room-launcher-${VERSION}-aarch64-apple-darwin.tar.gz
STAGE=$(mktemp -d "${TMPDIR:-/tmp}/clroom-archive.XXXXXX")
trap 'rm -rf -- "$STAGE"' EXIT
curl -fLO "https://github.com/y-sor/clean-room-launcher/releases/download/$VERSION/$ASSET"
curl -fLO "https://github.com/y-sor/clean-room-launcher/releases/download/$VERSION/SHA256SUMS"
EXPECTED=$(awk -v asset="$ASSET" '$2 == asset {print $1}' SHA256SUMS)
ACTUAL=$(shasum -a 256 "$ASSET" | awk '{print $1}')
test -n "$EXPECTED" && test "$ACTUAL" = "$EXPECTED"
tar -xzf "$ASSET" -C "$STAGE"
BIN="$STAGE/${ASSET%.tar.gz}/bin"
DEST="$HOME/.local/bin"
test -d "$BIN"
test ! -L "$DEST"
test ! -e "$DEST" || test -d "$DEST"
for name in clroom clroom-codex clroom-claude; do
target="$DEST/$name"
test ! -L "$target"
test ! -e "$target" || test -f "$target"
done
mkdir -p "$DEST"
for name in clroom clroom-codex clroom-claude; do
install -m 0755 "$BIN/$name" "$DEST/$name"
done
This verifies only the archive you downloaded; SHA256SUMS also covers the
other release assets.
Cargo from the release tag
cargo install --git https://github.com/y-sor/clean-room-launcher \
--tag vX.Y.Z --locked
The release is not published to crates.io.
Verify the installation
Run only the provider command or commands you intend to use:
clroom --help
cd your-project
clroom codex --help # if Codex is installed
clroom codex --version
clroom claude --version # if Claude Code is installed
clroom-codex --help # executable override for external launchers
clroom-claude --help # executable override for external launchers
Verify the first clean session
The help/version commands above check command availability; they do not
prove that a real clean provider session starts successfully. From an existing
project directory where the installed provider already works on its own, start
clroom codex or clroom claude (whichever provider you use).
Confirm that CLROOM prints its launch summary, then that the provider starts its normal interactive session. Project-side files and provider-owned behavior are not supposed to disappear. Exit using the provider’s normal exit method; CLROOM does not install a background service. For a guided check, see the first-run walkthrough. If the provider does not start, follow Troubleshooting instead of changing security settings or restoring broad ambient configuration to hide the failure.
This is a user-facing verification procedure, not evidence that independent unassisted users have completed onboarding.
To remove an archive or one-line installation, delete the three files under
$HOME/.local/bin (clroom, clroom-codex, and clroom-claude). For Cargo,
run cargo uninstall clean-room-launcher.
These commands remove the installed binaries. They do not remove CLROOM-owned
provider support state such as Codex’s .clroom-clean-state-v1 directory.
No service or system setting is created.