Chapter 19 — Operating an install¶
Mental model¶
The operator surface changes the machine, not just Occam. It writes runtime assets, mutates up to fifteen third-party host config files, authors credential-bearing profiles, and kills processes. Treat every operator verb as having blast radius outside the install tree.
Explanation¶
The operator path is first-class product surface — parallel to MCP tools, not a footnote.
Core operator verbs¶
| Verb | What it does | Blast radius |
|---|---|---|
occam doctor |
npm, Playwright, dotnet publish readiness | May install browser bits and packages |
occam connect |
Detect + mutate host MCP configs (≤15 adapters) | Third-party config files + .occam-bak siblings |
occam onboard / settings |
Writes ~/.occam/onboard.json |
Merged into every later launch via launch-mcp-host |
occam refresh / restart |
Stops hosts launched from this OCCAM_HOME, then re-runs the doctor path |
Processes whose executable or command line resolves inside this install tree |
occam session |
Import/export session profiles | Plaintext cookie retention under _imports/ by default |
occam smoke |
Live extract smoke | Network |
occam update |
Release fetch | Network |
occam disconnect |
Removes only host registrations owned by this install | Third-party config files; unrelated entries are preserved |
occam uninstall |
Disconnects managed hosts and removes a recognized release install | Generated launchers and install tree; state/cache removal is explicit |
occam snippet / help / status / control / contract / skill |
Info, control, skill install | Skill install rmSyncs destination |
Host-binary offline verbs (not via occam wrapper)¶
Invoke the published host binary or dotnet run --project src\FFOccamMcp.Core --:
| Verb | Purpose |
|---|---|
keys export |
Export public PEM from key store |
verify |
Offline receipt/citation/manifest/history verify (--pubkey required) |
install-browser |
Playwright Chromium install |
version-surface |
Host version JSON (distinct from occam contract) |
The operator wrapper exits with "unknown command" for verify, keys, and install-browser.
Install paths¶
- Level A / Level B tarball (published
v1.0.0-rc.2): Legacy public install. Integrity check is sha256 manifest; Cosign is not required on that channel. 1.0.0(GA; public default): self-contained archives (runtimeLayout=self-contained-v1) with SHA-256 plus Cosign whensignaturePolicy=required-cosign-v1(requires thecosignCLI). Executable helper overlays from mutablemainare not part of that runtime contract.- npm
ff-occam: Published experimental npm package; it wraps the lower-level@ff-occam/mcpruntime. Do not present npm as the guarded GA install path. - Docker: HEALTHCHECK uses the non-blocking
version-surfaceverb. It proves process startup, not browser, network, or extraction readiness.
Release replacement is transactional: the old install is retained until the new runtime completes its post-install checks. A failed update restores the old tree; a failed fresh install removes the incomplete tree. The installer rejects unknown, source-checkout, symlinked, or metadata-inconsistent targets before it stops processes or moves files.
Connect honesty¶
- Mutates third-party configs and writes backups. Disconnect removes only an
entry whose command and
OCCAM_HOMEmatch this install; ambiguous or changed ownership fails closed. - The bootstrap checks the complete release runtime set before replacement; missing advertised helpers reject the archive before the existing tree moves.
Keys export trap¶
occam keys export --keys-root <empty dir> mints a new key and exports it — a key that never signed anything. Consumers pinning that PEM verify nothing meaningful.
CHECK¶
LOCAL. Run host-binary keys export against an empty --keys-root directory. A key appears that never signed any receipt.
LOCAL (careful). Start two fixture processes whose command lines reference
sibling install roots, then dry-run refresh against one root. Only the exact
root-bound process should be selected; a prefix sibling such as ff-occam-old
must not match.
Common misconception¶
"occam verify and occam keys export are wrapper subcommands." The Node/PowerShell occam wrapper's closed subcommand table has no verify, keys, or install-browser. These are direct host-binary verbs — show the exact invocation.
Limitations¶
occam refreshis install-scoped process control, not fleet management.- Default uninstall deliberately preserves
~/.occam, skills, response cache, host-config backups, and the shared Playwright cache. Preview explicit cleanup withoccam uninstall --dry-run --remove-cache --remove-state; see Chapter 21. - Cosign is policy-gated: published rc.4 manifests require it, while legacy rc.2 remains SHA-256-only.
- npm is a public experimental channel, not the guarded GA path.
- Connect rollback gaps for some hosts.
- Skill install may ship stale version/tool counts.
Links¶
- Chapter 3 — Install minimum path
- Chapter 21 — State and footprint
- Chapter 22 — Configuration
- User docs: Getting started · Install · Connect · Troubleshooting
- Audit:
docs-audit/CLI-SURFACE.md·docs-audit/CONNECT-PLATFORM.md· OD-2, OD-3