Skip to main content

crewship keeper

The Keeper command group controls the credential-access judge and the workspace watchdog. It also exposes the audit trail, human resolution path, evaluator controls, and health checks. Use --format json (or yaml/ndjson where supported) when another program will consume the result. The command tree itself is generated by the binary:

Authentication and scope

Except for keeper eval, every command below calls the server in the current authenticated workspace and requires an OWNER or ADMIN workspace role. The server remains the authority for authorization; a CLI-side permission hint does not grant access. keeper status includes both instance server status and the workspace governance overlay. keeper eval is different: it opens the local Crewship SQLite database read-only, dials models from the machine running the CLI, and does not call the server or require CLI authentication. Pass --endpoint and --incumbent when the server’s judge is configured only through environment variables, because those server settings are not automatically available to the local replay. All commands also accept the normal global CLI flags, including --server, --workspace, --format, and --no-color. See CLI overview for those shared flags and authentication setup.

Safety and side effects

  • Keeper is fail-closed. An unavailable, slow, or unparseable judge produces a DENY rather than an ALLOW. keeper config set --enabled on is refused when no endpoint/model is configured.
  • enable/disable and instance configuration affect the next credential request. For runs started afterwards, enabling Keeper withholds SECRET credentials until the request is allowed; a running container keeps the environment it already received.
  • ask uses the real credential-request decision path. It can create an audit request, an inbox escalation, and a health-window sample; it does not merely simulate a response.
  • resolve is a real human (or explicitly named reference-model) adjudication and is written to the journal. Four-eyes rules can refuse an OWNER from resolving an escalation raised by that owner’s agent; L4 and any configured tier floor can require human approval.
  • review run, aux test, judge test, and hosted judge tests make model calls. Hosted evaluator calls can spend tokens; review runs are rate-limited instance-wide. findings test makes no model call, but creates a clearly labelled real inbox item.
  • aux reset and config reset use DELETE-style reset behavior. They remove local overrides, not the server’s environment configuration. profile reset and model clear reset only their respective workspace/instance settings.
  • Turning auto-lease off does not extend leases already issued. Existing leases still expire; disabling auto-lease only stops future automatic lease issuance.
  • keeper eval never writes the database. It can still make many model calls: one incumbent plus each distinct candidate, multiplied by --passes.

Workspace governance

These commands update one workspace governance field at a time unless noted. keeper contact rejects a missing member and rejects a member whose role is not OWNER or ADMIN. keeper requests has these pagination flags:

Auto-issued leases

set accepts a Go duration from 60 seconds through 30 days (720h). It is opt-in and applies only to L3/L4 grants approved by Keeper, including approved credential escalations. It never shortens a longer manually assigned lease. off restores standing grants for future approvals but does not un-lease already leased grants.

Instance judge

keeper config controls the instance-wide native Ollama judge. get shows the effective value and whether it came from an instance override, server environment, or built-in default. It does not configure hosted providers.
The empty model value clears that override. set is a partial update and requires at least one flag. Its flags are: config reset removes every instance override and returns to KEEPER_ENABLED, KEEPER_OLLAMA_URL, and KEEPER_MODEL. It does not delete those server settings.

Workspace governance model

keeper model selects the model backing the workspace’s credential gatekeeper and auxiliary evaluators. It can use ollama, anthropic, or openai_compat. Hosted providers use an optional vault ENDPOINT_URL/API_KEY credential and are workspace-scoped; a revoked credential degrades to the instance judge. Selecting a model does not enable the watchdog.
model set requires --provider and --model; --credential is optional. --model is limited to 200 bytes by the CLI/server validation. clear falls back to the instance/server default.

Judge checks

judge test checks reachability, a pulled model, a valid verdict, and latency inside the credential-path budget. It exits non-zero when any stage fails. With a non-ollama provider it uses the hosted test endpoint; --model is required and --credential may be a stored credential name or ID. judge models lists models served by the saved or overridden endpoint and exits non-zero when the endpoint cannot be queried.

Judge profile

keeper profile controls which credential-judge capabilities are active. The three presets are lean, standard, and thorough; flags override individual capabilities and inherit follows the selected profile rather than forcing the capability off.
profile set [lean|standard|thorough] accepts: profile reset clears the profile and all seven capability overrides without touching endpoint, model, or timeout wiring.

Evaluator models and reviews

keeper aux configures the instance-level evaluator slots used by Keeper Reviews and the watchdog. Valid slots are curator, behavior, memory_health, and the other slots reported by aux list; use the list output as the authoritative catalog for the running server. Hosted slots bill per token, while Ollama does not.
aux set <slot> has these flags. Only passed fields change; an empty value clears that override or returns it to inheritance. aux use-judge points every evaluator at the local instance judge and avoids per-token cost, at the expense of using the local model’s capabilities. aux reset [slot] requires either a slot or --all:
Resetting after use-judge can put slots back on hosted defaults and therefore resume token billing. aux test <slot> makes one real evaluator call and shares the judge-test probe rate limit. Run one evaluator immediately with:
<slot> is skill-review, behavior, memory-health, or negative-learning. Without subject flags, the server derives a suitable subject. Available flags are:
Review runs are real decisions: DENY/ESCALATE findings enter the Keeper inbox and the request is available through keeper history. They are rate-limited to 60 per hour by default.

Requests, testing, and resolution

Ask the judge

keeper ask requires all four flags and accepts agent/crew slugs or IDs:
It follows the same tier floors, audit, inbox, and health behavior as an agent request. It does not grant a credential or execute a command.

Resolve an escalation

Flags:
Only ALLOW and DENY are accepted. Four-eyes policy can refuse the call, and that refusal is recorded. Find waiting escalations with crewship inbox list.

Verify finding delivery

This sends one synthetic, non-blocking test finding through the real inbox writer and prints the resolved recipients. It does not call a model, but it does create a real labelled inbox item. It exits non-zero if no recipient is found.

Local model evaluation

keeper eval replays stored Keeper prompts against human-resolved labels and candidate models. It is read-only, but can be expensive and may take minutes. At least one candidate is required; the incumbent is replayed as the baseline. Human-labelled rows are kept ahead of other rows when --limit is used, and the report withholds rates when the corpus is too small for a meaningful human sample. Candidate specs may be local model names or anthropic/<model> / openai/<model>; hosted candidates use API keys from the CLI process environment, not stored vault credentials.
The default is three replay passes per prompt (--passes 3); --candidate is repeatable and defaults to no candidates, so it must be supplied. --limit 0 means the complete corpus, --tolerance 0 allows no additional dangerous guard downgrade, and --explain is off by default. Human-labelled rows are reported separately from rows labelled only by the incumbent. Human agreement rates are withheld below 20 human-labelled rows and benchmark-grade messaging starts at 100. Human-readable output is a summary/table; --format json or --format ndjson is suitable for automation. Safety-first scoring marks a candidate non-viable if it downgrades more DENY/ESCALATE decisions to ALLOW than the incumbent, regardless of raw agreement. The endpoint is contacted from the local machine and protected by the CLI’s trusted-endpoint restrictions.

Full command inventory

The following is the complete Keeper tree from the current command manifest. Commands with no flags are included so the page does not silently omit a read-only or nested action:
keeper watch authors the workspace watchdog policy. watch set <text|-> replaces only the free-form rules; - reads them from stdin. watch clear clears free-form rules but leaves presets untouched. watch preset list shows the catalog and enabled entries; preset add <key> and preset remove <key> validate the key and update the complete preset set. The preset keys are credentials, destructive, egress, memory, and secret_files. All watch reads and mutations return the current governance object in structured formats. Human output shows every preset with a check mark and the free-form rules; an empty rule set is shown as (none). watch set accepts at most the server’s maximum watch-spec length (currently 4096 bytes) and authoring a spec does not enable the watchdog.

Exact command references

These headings mirror the live Cobra command paths; the detailed behavior is described in the sections above and in the full command inventory.

crewship keeper ask --agent <id> --crew <id> --credential <name> --intent <text>

Asks the credential-access judge to evaluate a request.

crewship keeper contact <email>

Sets the security contact for Keeper findings.

crewship keeper disable

Disables the workspace Keeper watchdog.

crewship keeper enable

Enables the workspace Keeper watchdog.

crewship keeper eval

Replays recorded Keeper decisions against candidate models.

crewship keeper health

Shows the recent Keeper decision window.

crewship keeper requests

Lists recent Keeper decision-audit requests.

crewship keeper second-approver disable

Disables the second-approver requirement.

crewship keeper threshold <1-10>

Sets the DENY-notify risk threshold.

crewship keeper watch

Groups workspace watchdog policy actions.

crewship keeper watch clear

Clears the free-form watchdog rules.

crewship keeper watch get

Shows the current watchdog policy.

crewship keeper watch preset

Groups watchdog preset actions.

crewship keeper watch preset add <key>

Enables a watchdog preset.

crewship keeper watch preset list

Lists watchdog presets and their enabled state.

crewship keeper watch preset remove <key>

Disables a watchdog preset.

crewship keeper watch set <text|->

Replaces the free-form watchdog rules.