Skip to main content

Command-line reference

Every command the execbound command line and the monitoring commands take, and the arguments each accepts. This page is generated from the commands' own argument parsers by scripts/cli_reference.py, and a test fails when it no longer matches them. What each command is for, in context, is in operations, install on one host and deployment, and the codes a command refuses with are in error and refusal codes.

A plugin may add commands of its own, which the plugin documents. They appear in execbound --help once EXECBOUND_PLUGINS enables the plugin; execbound plugins lists only the enabled plugins' names and the plugin API version.

execbound​

ExecBound installation and administration.

CommandWhat it does
initWrite a one-host installation into a directory, secrets and all
quickstartTake an empty database to a governed decision in one fenced sequence
jobsRun the scheduled jobs on their intervals, one replica at a time
seed-demoCreate two synthetic tenants
seed-validationProvision a private local demo
replayReplay immutable files without live access
replay-fixtureBuild a sanitized replay regression fixture from an export, or re-record one
replay-fixture-checkReplay a regression fixture and compare every decision with its recorded outcome
mock-reprovisionReset one mock target; run inside the mock's own environment
audit-exportExport one tenant as a current ADMIN
tenant-createCreate a tenant with the owner connection
principal-createCreate a principal; a tenant's first ADMIN needs no --actor
credential-issueIssue a credential; its token is written once to --output
person-inviteFind or create a person by email and write one set-password code to --output
credential-listList a tenant's credentials
credential-revokeRevoke a live credential
approver-assignAssign an approver to one canonical target and action
approver-unassignDeactivate one approver assignment
group-createCreate an empty principal group; names are unique per tenant
group-assignAdd an AGENT principal to a group
group-unassignRemove an AGENT principal from a group
group-listList a tenant's groups
space-createCreate a space; names are unique per tenant, case-insensitively
space-renameRename a space
space-archiveStop new work in a space; nothing is deleted and history stays
space-unarchiveLet a space take work again
space-assignGive a person a role in a space; the role narrows and never raises
space-unassignRemove a membership; the rows it governed keep their space
space-listList a tenant's spaces
executor-key-registerRegister an executor's public key: Ed25519 as 64 hex characters, or ES256 as PEM, JWK or compressed hex
executor-key-rotateRegister a new executor key and revoke the previous one
executor-key-revokeRevoke an executor key; proofs for earlier grants still verify
executor-key-compromiseCut off a stolen executor key; it attests nothing, including earlier grants
executor-key-listList a tenant's executor keys and their revocations
account-createCreate a connector account for one provider
config-initWrite a private gateway configuration and both mock accounts files
account-listList a tenant's connector accounts
mapping-listList a tenant's operation mappings
resource-listList a tenant's resources with their targets and aliases
mapping-createBind a catalog action to an account's provider operation under an operation ref
target-createCreate a canonical target
resource-createRegister a provider resource with its canonical target and aliases
ruleset-compileCompile a ruleset file into a bundle document over the tenant's active mappings
context-source-createCreate a trusted context source with its writer labels
context-source-deactivateDeactivate a context source; its facts stop resolving
context-importImport a context manifest of inventory facts or incidents
signal-source-createRegister a security signal producer; writes its token once
signal-source-rotateReplace a producer token; the old one keeps a grace window
signal-source-revokeRevoke a producer immediately and finally
signal-source-listList producers with their registration and health
invitations-runDrain due teammate invitations across every tenant; needs no identity
weekly-summary-runQueue and send this week's opt-in summaries across every tenant; needs no identity
failuresList authentication failure windows for a tenant, or unattributed ones
bundle-createCreate DRAFT bundle content from a JSON file
bundle-validateValidate a DRAFT bundle
bundle-activateActivate a bundle for the tenant's first space; the one it replaces returns to VALIDATED once no space selects it
bundle-retireRetire a bundle no space selects
bundle-listList bundle lifecycle states
bundle-previewReplay a candidate bundle over recent history without activating it
tenant-stopActivate the tenant emergency stop with a required reason
tenant-resumeRelease the tenant emergency stop with a required reason
tenant-statusShow the tenant emergency stop and enforcement mode
tenant-modeSet the tenant enforcement mode (ENFORCE or OBSERVE) with a reason
tenant-approval-deadlineSet how long a new approval may wait: seconds from 120 to 3600, or off, with a reason
tenant-assistantTurn the console assistant on or off for the tenant with a reason; prompts and answers are kept by the model provider for up to 30 days under its terms
observe-reportSummarize observed decisions from the audit chain
rotation-readinessShow unsettled operations and outstanding expiries that still need current keys
recoverSettle committed but unsettled operations from provider evidence
audit-verifyVerify each workspace's audit chain to its head and each retained checkpoint on it
reconcileSettle one committed or indeterminate operation from provider evidence
notifyDeliver pending approval notifications to the configured destinations
notificationsList approval notifications and their delivery state
export-eventsExport new audit events and failure summaries to the destinations
export-statusShow export cursor state and lag per destination
export-resumeResume a failed export cursor from where it stopped
pluginsList the plugins EXECBOUND_PLUGINS enables, and the plugin API

execbound init​

Write a one-host installation into a directory, secrets and all.

ArgumentRequiredDescription
directoryyesAn empty directory you own.
--image IMAGEnoThe image the compose file runs; a pull reference when a registry publishes one. Default execbound:community.
--port PORTnoWhere the gateway listens. Default 8080.
--project PROJECTnoDefault execbound.
--origin ORIGINnoThe origin people will use; the loopback port by default.
--telemetry, --no-telemetrynoAnswer the usage report question without being asked; the default is no, and nothing sends a report yet.

execbound quickstart​

Take an empty database to a governed decision in one fenced sequence.

ArgumentRequiredDescription
--name NAMEnoThe tenant name. Default ExecBound.
--private PRIVATEnoDefault /srv/private.
--state STATEnoDefault /srv/state.
--providers PROVIDERSnoDefault /srv/providers.
--gateway GATEWAYnoDefault http://127.0.0.1:8000.
--credential-days CREDENTIAL_DAYSnoDefault 90.
--alembic-config ALEMBIC_CONFIGnoDefault alembic.ini.

execbound jobs​

Run the scheduled jobs on their intervals, one replica at a time.

ArgumentRequiredDescription
--state STATEnoDefault /srv/state.
--collector COLLECTORnoThe directory holding the collector's key and the platform app's credential. Default /srv/collector.
--checkpoints CHECKPOINTSnoThe directory of retained audit heads audit-verify places on each chain. Default /srv/private/checkpoints.
--limit LIMITnoDefault 50.
--oncenoOne pass over every due job, then exit.

execbound seed-demo​

Create two synthetic tenants.

ArgumentRequiredDescription
--output OUTPUTnoDefault local-data/demo.json.

execbound seed-validation​

Provision a private local demo.

ArgumentRequiredDescription
--output OUTPUTyes
--seed SEEDnoDefault execbound-validation-v1.
--gateway-port GATEWAY_PORTnoDefault 8100.
--endpoint-port ENDPOINT_PORTnoDefault 8101.
--identity-port IDENTITY_PORTnoDefault 8102.

execbound replay​

Replay immutable files without live access.

ArgumentRequiredDescription
--input INPUTyes
--trusted-head TRUSTED_HEADyes
--candidate CANDIDATEno
--output OUTPUTyes

execbound replay-fixture​

Build a sanitized replay regression fixture from an export, or re-record one.

ArgumentRequiredDescription
--input INPUTnoThe audit export to build from; needed unless --from-fixture.
--trusted-head TRUSTED_HEADnoThe export's independently retained checkpoint; needed with --input.
--candidate CANDIDATEnoA candidate bundle to record outcomes for; repeat for up to eight, in order.
--from-fixture FROM_FIXTUREnoRe-record this fixture's expected outcomes instead of building one.
--output OUTPUTyesA new file to write.

execbound replay-fixture-check​

Replay a regression fixture and compare every decision with its recorded outcome.

ArgumentRequiredDescription
--fixture FIXTUREyesThe fixture file to replay and compare.

execbound mock-reprovision​

Reset one mock target; run inside the mock's own environment.

ArgumentRequiredDescription
--provider {endpoint,identity}yesOne of endpoint, identity.
--tenant TENANTyesThe tenant's id.
--target TARGETyes
--version VERSIONnoSet this version and touch nothing else; omit to reset to the file's values.
--reason REASONno

execbound audit-export​

Export one tenant as a current ADMIN.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.
--credential-file CREDENTIAL_FILEyesA private file holding a current administrator's API key, which is never passed on the command line.
--output OUTPUTyes
--checkpoint CHECKPOINTno
--database DATABASEnoRead a restored copy on the same server, by name.

execbound tenant-create​

Create a tenant with the owner connection.

ArgumentRequiredDescription
--name NAMEyesThe tenant name; two tenants may share a name.
--tenant TENANTnoCreate it under this id; for a private configuration that already names one.

execbound principal-create​

Create a principal; a tenant's first ADMIN needs no --actor.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.
--kind {AGENT,HUMAN_APPROVER,ADMIN}yesOne of AGENT, HUMAN_APPROVER, ADMIN.
--actor ACTORnoAuditing ADMIN principal.
--space SPACEnoThe space that owns an agent, or seats a person; the tenant's only one by default.

execbound credential-issue​

Issue a credential; its token is written once to --output.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.
--principal PRINCIPALyesThe principal the credential is issued to.
--actor ACTORyesThe id of an active administrator of the tenant, whom the change is made and audited as.
--lifetime-hours LIFETIME_HOURSnoThe credential's lifetime in hours, bounded to 90 days: at most 2160. Default 8.
--output OUTPUTyesA new file the token is written to once, created exclusively and owner-only where the platform carries POSIX modes; an existing path is refused.

execbound person-invite​

Find or create a person by email and write one set-password code to --output.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.
--email EMAILyesThe person's sign-in address; the person holding it is found, or one is created.
--kind {ADMIN,HUMAN_APPROVER}noOne of ADMIN, HUMAN_APPROVER. Default ADMIN.
--label LABELnoA name for the person, up to 80 characters.
--actor ACTORnoAuditing ADMIN principal; a tenant's first ADMIN needs none.
--lifetime-hours LIFETIME_HOURSnoHours until the set-password code expires, between 1 and 336. Default 24.
--origin ORIGINyesThis deployment's origin, for the address to open.
--output OUTPUTyesA new file the set-password code is written to once, exactly as credential-issue writes a token.

execbound credential-list​

List a tenant's credentials.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.

execbound credential-revoke​

Revoke a live credential.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.
--credential CREDENTIALyesThe live credential to revoke; the sessions and continuations it backs end at their next check.
--actor ACTORyesThe id of an active administrator of the tenant, whom the change is made and audited as.

execbound approver-assign​

Assign an approver to one canonical target and action.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.
--space SPACEnoThe space the scope is held in; the tenant's only one by default.
--approver APPROVERyes
--target TARGETyesA known canonical target.
--action {endpoint.isolate,endpoint.lift_isolation,identity.disable,identity.enable,identity.reset_password,identity.revoke_sessions}yesAn action in the action catalog; a new action is assignable as soon as it is released. One of endpoint.isolate, endpoint.lift_isolation, identity.disable, identity.enable, identity.reset_password, identity.revoke_sessions.
--actor ACTORyesThe id of an active administrator of the tenant, whom the change is made and audited as.

execbound approver-unassign​

Deactivate one approver assignment.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.
--approver APPROVERyesThe approver of the assignment to deactivate; pending decisions under that scope then fail their server-side scope check.
--target TARGETyesThe assignment's canonical target.
--action {endpoint.isolate,endpoint.lift_isolation,identity.disable,identity.enable,identity.reset_password,identity.revoke_sessions}yesThe assignment's action. One of endpoint.isolate, endpoint.lift_isolation, identity.disable, identity.enable, identity.reset_password, identity.revoke_sessions.
--actor ACTORyesThe id of an active administrator of the tenant, whom the change is made and audited as.

execbound group-create​

Create an empty principal group; names are unique per tenant.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.
--name NAMEyes1 to 80 characters after trimming, unique within the tenant; INVALID_NAME when shaped like a password, key or token.
--actor ACTORyesThe id of an active administrator of the tenant, whom the change is made and audited as.

execbound group-assign​

Add an AGENT principal to a group.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.
--group GROUPyesThe group, which must exist; INVALID_GROUP otherwise.
--principal PRINCIPALyesAn active AGENT principal (INVALID_PRINCIPAL otherwise), in at most 64 groups; a repeated or 65th membership is INVALID_MEMBERSHIP.
--actor ACTORyesThe id of an active administrator of the tenant, whom the change is made and audited as.

execbound group-unassign​

Remove an AGENT principal from a group.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.
--group GROUPyesThe group to remove the principal from.
--principal PRINCIPALyesThe principal to remove: its later requests stop charging the group while its earlier rows keep counting; a missing membership is INVALID_MEMBERSHIP.
--actor ACTORyesThe id of an active administrator of the tenant, whom the change is made and audited as.

execbound group-list​

List a tenant's groups.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.

execbound space-create​

Create a space; names are unique per tenant, case-insensitively.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.
--name NAMEyes1 to 80 characters after trimming, unique within the tenant case-insensitively; INVALID_NAME when shaped like a password, key or token.
--detail DETAILnoA detail line for the space.
--actor ACTORyesThe id of an active administrator of the tenant, whom the change is made and audited as.

execbound space-rename​

Rename a space.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.
--space SPACEyesThe space to rename.
--name NAMEyesIts new name: 1 to 80 characters after trimming, unique within the tenant case-insensitively; INVALID_NAME when shaped like a password, key or token.
--detail DETAILno
--actor ACTORyesThe id of an active administrator of the tenant, whom the change is made and audited as.

execbound space-archive​

Stop new work in a space; nothing is deleted and history stays.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.
--space SPACEyesThe space to stop new work in; archiving the tenant's last unarchived one is refused.
--reason REASONyesWhy the space is archived; a reason shaped like a password, key or token is refused as INVALID_NAME.
--actor ACTORyesThe id of an active administrator of the tenant, whom the change is made and audited as.

execbound space-unarchive​

Let a space take work again.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.
--space SPACEyesThe space to let take work again.
--reason REASONyesWhy the space is unarchived; a reason shaped like a password, key or token is refused as INVALID_NAME.
--actor ACTORyesThe id of an active administrator of the tenant, whom the change is made and audited as.

execbound space-assign​

Give a person a role in a space; the role narrows and never raises.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.
--space SPACEyesThe space to seat the person in.
--principal PRINCIPALyesThe person to seat; an assignment that would leave the tenant with no tenant administrator is refused.
--role {ADMIN,HUMAN_APPROVER}noThe person's role in the space, which narrows and never raises: ADMIN is refused for a HUMAN_APPROVER principal. One of ADMIN, HUMAN_APPROVER. Default HUMAN_APPROVER.
--actor ACTORyesThe id of an active administrator of the tenant, whom the change is made and audited as.

execbound space-unassign​

Remove a membership; the rows it governed keep their space.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.
--space SPACEyesThe space to remove the person from.
--principal PRINCIPALyesThe person to remove; the rows the membership governed keep their space.
--actor ACTORyesThe id of an active administrator of the tenant, whom the change is made and audited as.

execbound space-list​

List a tenant's spaces.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.

execbound executor-key-register​

Register an executor's public key: Ed25519 as 64 hex characters, or ES256 as PEM, JWK or compressed hex.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.
--key-id KEY_IDyesA new id for the key; a taken id, or one shaped like a password, key or token, is INVALID_KEY.
--public-key PUBLIC_KEYnoThe executor's public key in --algorithm's form: Ed25519 as 64 hex characters (uppercase is normalized); ES256 as an SPKI PEM, a P-256 JSON Web Key or compressed SEC1 hex. Material already live for the tenant or recorded as compromised, or that nobody holds the private half of, is INVALID_KEY.
--public-key-file PUBLIC_KEY_FILEnoA file holding that public key in the same forms, read instead of --public-key; trailing whitespace such as a final newline is stripped, and an unreadable file is INVALID_KEY.
--algorithm {ED25519,ES256}noThe key's signature scheme; a key attests only reports in its own scheme. One of ED25519, ES256. Default ED25519.
--actor ACTORyesThe id of an active administrator of the tenant, whom the change is made and audited as.

Exactly one of --public-key, --public-key-file.

execbound executor-key-rotate​

Register a new executor key and revoke the previous one.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.
--key-id KEY_IDyesThe live key to replace, retired as RETIRED in the same transaction so a proof for a grant issued while it was current still verifies; an unknown or already revoked id is INVALID_KEY.
--new-key-id NEW_KEY_IDyesA new id for the replacement key, other than --key-id; a taken id, or one shaped like a password, key or token, is INVALID_KEY.
--public-key PUBLIC_KEYnoThe replacement's public key in --algorithm's form: Ed25519 as 64 hex characters (uppercase is normalized); ES256 as an SPKI PEM, a P-256 JSON Web Key or compressed SEC1 hex. Material already live for the tenant or recorded as compromised, or that nobody holds the private half of, is INVALID_KEY.
--public-key-file PUBLIC_KEY_FILEnoA file holding that public key in the same forms, read instead of --public-key; trailing whitespace such as a final newline is stripped, and an unreadable file is INVALID_KEY.
--algorithm {ED25519,ES256}noThe key's signature scheme; a key attests only reports in its own scheme. One of ED25519, ES256. Default ED25519.
--actor ACTORyesThe id of an active administrator of the tenant, whom the change is made and audited as.

Exactly one of --public-key, --public-key-file.

execbound executor-key-revoke​

Revoke an executor key; proofs for earlier grants still verify.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.
--key-id KEY_IDyesThe live key to retire as RETIRED; a proof for a grant issued while it was current still verifies. INVALID_STATE while it is the tenant's last live key and a bundle a space selects declares an external executor; an unknown or already revoked id is INVALID_KEY.
--actor ACTORyesThe id of an active administrator of the tenant, whom the change is made and audited as.

execbound executor-key-compromise​

Cut off a stolen executor key; it attests nothing, including earlier grants.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.
--key-id KEY_IDyesThe key whose private half is in someone else's hands, live or already retired: it and every other id of the tenant carrying the same public key are recorded COMPROMISED and attest nothing, earlier grants included, even when no live key is left; a key already cut off, or an unknown id, is INVALID_KEY.
--actor ACTORyesThe id of an active administrator of the tenant, whom the change is made and audited as.

execbound executor-key-list​

List a tenant's executor keys and their revocations.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.

execbound account-create​

Create a connector account for one provider.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.
--space SPACEnoThe space that owns the account; the tenant's only one by default.
--provider {graph,mock_crowdstrike,mock_entra}yesA provider the action catalog binds; the gateway's private configuration names the account it creates by id. One of graph, mock_crowdstrike, mock_entra.
--actor ACTORyesThe id of an active administrator of the tenant, whom the change is made and audited as.
--account ACCOUNTnoCreate it under this id; for a private configuration that already names one.

execbound config-init​

Write a private gateway configuration and both mock accounts files.

ArgumentRequiredDescription
--output OUTPUTyes
--origin ORIGINyesthe public origin clients and approvers will use.
--tenant TENANTyesThe tenant's id.
--endpoint-account ENDPOINT_ACCOUNTyes
--identity-account IDENTITY_ACCOUNTyes
--endpoint-origin ENDPOINT_ORIGINnoloopback only; a provider elsewhere must serve HTTPS. Default http://127.0.0.1:8001.
--identity-origin IDENTITY_ORIGINnoDefault http://127.0.0.1:8002.

execbound account-list​

List a tenant's connector accounts.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.

execbound mapping-list​

List a tenant's operation mappings.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.

execbound resource-list​

List a tenant's resources with their targets and aliases.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.

execbound mapping-create​

Bind a catalog action to an account's provider operation under an operation ref.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.
--account ACCOUNTyesThe active connector account the mapping binds to; INVALID_ACCOUNT otherwise.
--action {endpoint.isolate,endpoint.lift_isolation,identity.disable,identity.enable,identity.reset_password,identity.revoke_sessions}yesA catalog action bound for the account's provider (INVALID_ACTION otherwise); the provider operation and schema version come from the catalog, never the caller. One of endpoint.isolate, endpoint.lift_isolation, identity.disable, identity.enable, identity.reset_password, identity.revoke_sessions.
--ref REFnoOperation ref agents use; defaults to the action.
--mapping-version MAPPING_VERSIONno1 to 80 characters, matching the version the bundle's mapping refs name; INVALID_VERSION otherwise, or when shaped like a password, key or token. Default map-v1.
--contract-version {endpoint-isolation.v1,endpoint-isolation.v2,endpoint-recovery.v1,identity-control.v1,identity-credential.v1}noA context contract version serving the action; defaults to the catalog's. One of endpoint-isolation.v1, endpoint-isolation.v2, endpoint-recovery.v1, identity-control.v1, identity-credential.v1.
--actor ACTORyesThe id of an active administrator of the tenant, whom the change is made and audited as.

execbound target-create​

Create a canonical target.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.
--actor ACTORyesThe id of an active administrator of the tenant, whom the change is made and audited as.

execbound resource-create​

Register a provider resource with its canonical target and aliases.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.
--account ACCOUNTyesThe active connector account the resource belongs to (INVALID_ACCOUNT otherwise); --source must be an inventory source of the same account.
--resource-type {endpoint,identity}yesThe resource's type, whose contract domains check the optional facts, which can also arrive later through context-import; only an endpoint takes --hostname. One of endpoint, identity.
--provider-id PROVIDER_IDyesThe provider's id for the resource, which becomes its provider_id alias for an agent's selector; INVALID_PROVIDER_ID when the account already holds it for this type, or when it is shaped like a password, key or token.
--source SOURCEyesThe inventory context source that attests it.
--target TARGETnoAn existing canonical target; a new one is created otherwise.
--hostname HOSTNAMEnoEndpoint hostname alias.
--version VERSIONnoThe resource's version, 1 to 80 characters; INVALID_VERSION otherwise, or when shaped like a password, key or token. Default resource-v1.
--alias-days ALIAS_DAYSnoDays the provider_id and hostname aliases stay valid from creation, 1 to 3660; INVALID_ALIAS otherwise. Default 365.
--role ROLEnoAn endpoint's role, one of domain_controller, server or workstation; INVALID_FACT otherwise, and for an identity.
--privilege-class PRIVILEGE_CLASSnoAn identity's privilege class, one of privileged, standard or tier0; INVALID_FACT otherwise, and for an endpoint.
--environment ENVIRONMENTnoThe resource's environment, one of development, production or staging; INVALID_FACT otherwise.
--criticality CRITICALITYnoThe resource's criticality, 0 to 4; INVALID_FACT otherwise.
--actor ACTORyesThe id of an active administrator of the tenant, whom the change is made and audited as.

execbound ruleset-compile​

Compile a ruleset file into a bundle document over the tenant's active mappings.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.
--input INPUTyesThe ruleset file.
--output OUTPUTyesBundle document to write; refuses to overwrite.
--ref REFnoCompile over this active mapping only; repeatable. Default: every active mapping.
--signal-mappings SIGNAL_MAPPINGSnoA JSON array of signal mappings to carry into the bundle (docs/SIGNALS.md)

execbound context-source-create​

Create a trusted context source with its writer labels.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.
--account ACCOUNTyesThe active connector account the source belongs to (INVALID_ACCOUNT otherwise); its manifests and the resources it attests are that account's.
--kind {inventory,incident}yesWhat it attests, inventory facts or incidents: a manifest of the other kind is INVALID_SOURCE, and resource-create takes only an inventory source. One of inventory, incident.
--writer WRITERyesA writer label; repeat for several.
--actor ACTORyesThe id of an active administrator of the tenant, whom the change is made and audited as.

execbound context-source-deactivate​

Deactivate a context source; its facts stop resolving.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.
--source SOURCEyesThe active source to deactivate; every fact it attests then fails resolution. An unknown or already inactive source is INVALID_SOURCE.
--actor ACTORyesThe id of an active administrator of the tenant, whom the change is made and audited as.

execbound context-import​

Import a context manifest of inventory facts or incidents.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.
--manifest MANIFESTyesAn execbound.context-manifest.v1 file an adapter wrote, at most 16 MiB; validated against the contract catalog and the tenant's sources and applied in one audited transaction, or refused with nothing written.
--actor ACTORyesThe id of an active administrator of the tenant, whom the change is made and audited as.
--strictnoRefuse the manifest when a resource is unknown.
--report REPORTnoWrite per-entry outcomes to a new file.

execbound signal-source-create​

Register a security signal producer; writes its token once.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.
--actor ACTORyesThe id of an active administrator of the tenant, whom the change is made and audited as.
--label LABELyesA label for the producer, 1 to 96 characters of letters, digits, space and ._:- starting with a letter or digit; INVALID_LABEL otherwise, or when shaped like a password, key or token.
--producer PRODUCERyesName its envelopes carry.
--version-min VERSION_MINyesThe lowest producer version accepted, as three integers separated by dots and compared as numbers; INVALID_VERSION otherwise, or when above --version-max.
--version-max VERSION_MAXyesThe highest producer version accepted, in the same form; an envelope from a version outside the range is refused INCOMPATIBLE_PRODUCER.
--capability CAPABILITYnoRepeat for several; default resource_compromise.v1.
--principal PRINCIPALnoAn agent it may vouch for; repeatable.
--group GROUPnoA principal group it may vouch for.
--space SPACEnoThe space that owns the source; the tenant's only one by default, and INVALID_SPACE when it has several.
--offerednoUsable by every space.
--input-path {agent_forwarded,independent}noWhether the agent can feed the producer: independent if not, agent_forwarded if so; a required signal mapping admits only an independent source. One of agent_forwarded, independent. Default independent.
--attests-livenessnoOnly set when the producer proves it is still observing each subject.
--hours HOURSnoThe token's lifetime in hours, 1 to 720; INVALID_LIFETIME otherwise. Default 720.
--output OUTPUTyesNew file for the token; refuses to overwrite.

Exactly one of --principal, --group.

execbound signal-source-rotate​

Replace a producer token; the old one keeps a grace window.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.
--source SOURCEyesThe source to give a new token; a revoked source is INVALID_STATE.
--actor ACTORyesThe id of an active administrator of the tenant, whom the change is made and audited as.
--hours HOURSnoThe new token's lifetime in hours, 1 to 720; INVALID_LIFETIME otherwise. Default 720.
--grace-seconds GRACE_SECONDSnoHow long the old token keeps working, 0 to 3600 seconds and never past its own expiry; INVALID_GRACE otherwise. Default 600.
--output OUTPUTyesNew file for the new token, written once and owner-only; refuses to overwrite.

execbound signal-source-revoke​

Revoke a producer immediately and finally.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.
--source SOURCEyesThe source to revoke, immediately and finally: every token stops, a rotation's grace included. A source already revoked is INVALID_STATE.
--actor ACTORyesThe id of an active administrator of the tenant, whom the change is made and audited as.

execbound signal-source-list​

List producers with their registration and health.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.

execbound invitations-run​

Drain due teammate invitations across every tenant; needs no identity.

ArgumentRequiredDescription
--limit LIMITnoDefault 50.

execbound weekly-summary-run​

Queue and send this week's opt-in summaries across every tenant; needs no identity.

ArgumentRequiredDescription
--limit LIMITnoAt most this many summaries a run, 1 to 50. Default 50.

execbound failures​

List authentication failure windows for a tenant, or unattributed ones.

ArgumentRequiredDescription
--tenant TENANTnoThe tenant's id.
--since-hours SINCE_HOURSnoDefault 24.
--unattributednoRows without a verified tenant or subject.

execbound bundle-create​

Create DRAFT bundle content from a JSON file.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.
--credential-file CREDENTIAL_FILEyesA private file holding a current administrator's API key, which is never passed on the command line.
--input INPUTyesThe JSON bundle file; tenant_id must match --tenant and bundle_id is generated when omitted.

execbound bundle-validate​

Validate a DRAFT bundle.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.
--credential-file CREDENTIAL_FILEyesA private file holding a current administrator's API key, which is never passed on the command line.
--bundle BUNDLEyesThe DRAFT bundle to validate.

execbound bundle-activate​

Activate a bundle for the tenant's first space; the one it replaces returns to VALIDATED once no space selects it.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.
--credential-file CREDENTIAL_FILEyesA private file holding a current administrator's API key, which is never passed on the command line.
--bundle BUNDLEyesA VALIDATED bundle, or one another space selects, to select for the tenant's first space; the bundle it replaces returns to VALIDATED unless another space still selects it.
--reason REASONnoWhy this policy is being activated; recorded in the audit event.

execbound bundle-retire​

Retire a bundle no space selects.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.
--credential-file CREDENTIAL_FILEyesA private file holding a current administrator's API key, which is never passed on the command line.
--bundle BUNDLEyesThe bundle to retire; a bundle any space still selects is refused as INVALID_STATE, so activate a replacement first.

execbound bundle-list​

List bundle lifecycle states.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.
--credential-file CREDENTIAL_FILEyesA private file holding a current administrator's API key, which is never passed on the command line.

execbound bundle-preview​

Replay a candidate bundle over recent history without activating it.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.
--credential-file CREDENTIAL_FILEyesA private file holding a current administrator's API key, which is never passed on the command line.
--bundle BUNDLEyesThe candidate bundle to replay; it is never activated.
--window-hours WINDOW_HOURSnoHours of recent history to replay the candidate over, at most 720. Default 24.

execbound tenant-stop​

Activate the tenant emergency stop with a required reason.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.
--credential-file CREDENTIAL_FILEyesA private file holding a current workspace administrator's API key, which is never passed on the command line.
--reason REASONyes

execbound tenant-resume​

Release the tenant emergency stop with a required reason.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.
--credential-file CREDENTIAL_FILEyesA private file holding a current workspace administrator's API key, which is never passed on the command line.
--reason REASONyes

execbound tenant-status​

Show the tenant emergency stop and enforcement mode.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.
--credential-file CREDENTIAL_FILEyesA private file holding a current administrator's API key, which is never passed on the command line.

execbound tenant-mode​

Set the tenant enforcement mode (ENFORCE or OBSERVE) with a reason.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.
--credential-file CREDENTIAL_FILEyesA private file holding a current workspace administrator's API key, which is never passed on the command line.
--reason REASONyes
--set {ENFORCE,OBSERVE}yesOne of ENFORCE, OBSERVE.

execbound tenant-approval-deadline​

Set how long a new approval may wait: seconds from 120 to 3600, or off, with a reason.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.
--credential-file CREDENTIAL_FILEyesA private file holding a current workspace administrator's API key, which is never passed on the command line.
--reason REASONyes
--set SETyesseconds (120 to 3600) or off.

execbound tenant-assistant​

Turn the console assistant on or off for the tenant with a reason; prompts and answers are kept by the model provider for up to 30 days under its terms.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.
--credential-file CREDENTIAL_FILEyesA private file holding a current workspace administrator's API key, which is never passed on the command line.
--reason REASONyes
--set {on,off}yesOne of on, off.

execbound observe-report​

Summarize observed decisions from the audit chain.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.
--credential-file CREDENTIAL_FILEyesA private file holding a current workspace administrator's API key, which is never passed on the command line.
--since-hours SINCE_HOURSnoDefault 24.

execbound rotation-readiness​

Show unsettled operations and outstanding expiries that still need current keys.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.
--credential-file CREDENTIAL_FILEyesA private file holding a current workspace administrator's API key, which is never passed on the command line.

execbound recover​

Settle committed but unsettled operations from provider evidence.

ArgumentRequiredDescription
--tenant TENANTnoThe tenant's id.
--credential-file CREDENTIAL_FILEnoA private file holding a current administrator's API key, which is never passed on the command line.
--tenants-file TENANTS_FILEnoA tenant-to-token map; one run per tenant.
--all-tenantsnoEvery active workspace, as its scheduler principal, with no credential.
--budget-seconds BUDGET_SECONDSnoWith --all-tenants: start no workspace after this many seconds (default 480)
--limit LIMITnoDefault 50.
--grace-seconds GRACE_SECONDSnoDefault 300.
--cancel-unattemptedno

execbound audit-verify​

Verify each workspace's audit chain to its head and each retained checkpoint on it.

ArgumentRequiredDescription
--all-tenantsnoEvery workspace in the directory, inactive ones too, with no credential.
--tenant TENANTnoOne workspace; may be given again.
--checkpoint CHECKPOINTnoA retained head that audit-export wrote; may be given again.
--checkpoints CHECKPOINTSnoA directory of retained heads, each *.head.json in it.
--budget-seconds BUDGET_SECONDSnoStart no workspace after this many seconds (default 480)

execbound reconcile​

Settle one committed or indeterminate operation from provider evidence.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.
--credential-file CREDENTIAL_FILEyesA private file holding a current administrator's API key, which is never passed on the command line.
--execution EXECUTIONyes
--reason REASONyes
--cancel-if-missingno

execbound notify​

Deliver pending approval notifications to the configured destinations.

ArgumentRequiredDescription
--tenant TENANTnoThe tenant's id.
--credential-file CREDENTIAL_FILEnoA private file holding a current administrator's API key, which is never passed on the command line.
--tenants-file TENANTS_FILEnoA tenant-to-token map; one drain per tenant.
--all-tenantsnoEvery workspace a destination names, with no credential.
--limit LIMITnoDefault 50.

execbound notifications​

List approval notifications and their delivery state.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.
--credential-file CREDENTIAL_FILEyesA private file holding a current administrator's API key, which is never passed on the command line.
--state {PENDING,IN_FLIGHT,DELIVERED,FAILED}noOne of PENDING, IN_FLIGHT, DELIVERED, FAILED.

execbound export-events​

Export new audit events and failure summaries to the destinations.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.
--credential-file CREDENTIAL_FILEyesA private file holding a current administrator's API key, which is never passed on the command line.
--limit LIMITnoDefault 100.

execbound export-status​

Show export cursor state and lag per destination.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.
--credential-file CREDENTIAL_FILEyesA private file holding a current administrator's API key, which is never passed on the command line.

execbound export-resume​

Resume a failed export cursor from where it stopped.

ArgumentRequiredDescription
--tenant TENANTyesThe tenant's id.
--credential-file CREDENTIAL_FILEyesA private file holding a current administrator's API key, which is never passed on the command line.
--destination DESTINATIONyes

execbound plugins​

List the plugins EXECBOUND_PLUGINS enables, and the plugin API.

python -m execbound.monitoring.commands​

Explicit Tines monitoring and local validation tools.

CommandWhat it does
check-tinesMake one read-only Tines stories-list request
init-demoCreate a new local synthetic monitoring tenant/config
create-sourceRegister one story as a current ADMIN
rotate-sourceIssue a replacement token as a current ADMIN
revoke-sourceDisable a source for good as a current ADMIN
create-connectionRegister the read-only collection connection as a current ADMIN
revoke-connectionDisable a collection connection as a current ADMIN
collect-tinesRun one bounded, read-only collection as a current ADMIN
collect-entraRun one bounded, read-only Entra collection as a current ADMIN
collect-dueCollect every due connection this host can open (an operator key file, a sealed key with --collector-key, a consented directory with --platform-app), inside its lease
collector-keygenWrite a new collector key pair: the public half for the gateway, the private for the collector
collector-resealRe-seal every sealed connection from the old collector key to the new one
link-agentBind an external agent to an active agent principal, as a current ADMIN
unlink-agentWithdraw that binding, as a current ADMIN
record-egressRecord the addresses a Tines tenant's HTTP requests leave from, as a current ADMIN
accept-reachRecord that an ADMIN accepts one ungoverned path
withdraw-reachWithdraw an ADMIN's acceptance of one ungoverned path
set-profileActivate the next detection profile version as a current ADMIN
show-profileShow the active detection profile
deliveriesList finding deliveries and their state as a current ADMIN
serveServe monitoring with no configured execution connectors
receiverRun the authenticated loopback test receiver
emit-demoSend synthetic heartbeat and tool result to the loopback gateway
processEvaluate a bounded batch; optionally deliver findings

python -m execbound.monitoring.commands check-tines​

Make one read-only Tines stories-list request.

ArgumentRequiredDescription
--env-file ENV_FILEyes

python -m execbound.monitoring.commands init-demo​

Create a new local synthetic monitoring tenant/config.

ArgumentRequiredDescription
--output OUTPUTyes
--gateway-port GATEWAY_PORTnoDefault 8120.
--receiver-port RECEIVER_PORTnoDefault 8121.

python -m execbound.monitoring.commands create-source​

Register one story as a current ADMIN.

ArgumentRequiredDescription
--credential-file CREDENTIAL_FILEyesA private file holding a current administrator's API key, which is never passed on the command line.
--label LABELyes
--story-id STORY_IDyes
--hours HOURSnoDefault 8.
--output OUTPUTyes

python -m execbound.monitoring.commands rotate-source​

Issue a replacement token as a current ADMIN.

ArgumentRequiredDescription
--credential-file CREDENTIAL_FILEyesA private file holding a current administrator's API key, which is never passed on the command line.
--source SOURCEyes
--hours HOURSnoDefault 8.
--grace-minutes GRACE_MINUTESnoDefault 10.
--output OUTPUTyes

python -m execbound.monitoring.commands revoke-source​

Disable a source for good as a current ADMIN.

ArgumentRequiredDescription
--credential-file CREDENTIAL_FILEyesA private file holding a current administrator's API key, which is never passed on the command line.
--source SOURCEyes

python -m execbound.monitoring.commands create-connection​

Register the read-only collection connection as a current ADMIN.

ArgumentRequiredDescription
--credential-file CREDENTIAL_FILEyesA private file holding a current administrator's API key, which is never passed on the command line.
--label LABELyes
--key-file KEY_FILEyes
--kind {tines,entra_agent_id}noOne of tines, entra_agent_id. Default tines.
--team-id TEAM_IDno
--space SPACEnoRegister in this authorised, active Space.

python -m execbound.monitoring.commands revoke-connection​

Disable a collection connection as a current ADMIN.

ArgumentRequiredDescription
--credential-file CREDENTIAL_FILEyesA private file holding a current administrator's API key, which is never passed on the command line.
--connection CONNECTIONyes

python -m execbound.monitoring.commands collect-tines​

Run one bounded, read-only collection as a current ADMIN.

ArgumentRequiredDescription
--credential-file CREDENTIAL_FILEyesA private file holding a current administrator's API key, which is never passed on the command line.
--connection CONNECTIONyes
--key-file KEY_FILEyes
--audit-pages AUDIT_PAGESnoDefault 20.
--inventoryno

python -m execbound.monitoring.commands collect-entra​

Run one bounded, read-only Entra collection as a current ADMIN.

ArgumentRequiredDescription
--credential-file CREDENTIAL_FILEyesA private file holding a current administrator's API key, which is never passed on the command line.
--connection CONNECTIONyes
--key-file KEY_FILEyes

python -m execbound.monitoring.commands collect-due​

Collect every due connection this host can open (an operator key file, a sealed key with --collector-key, a consented directory with --platform-app), inside its lease.

ArgumentRequiredDescription
--all-tenantsnoEvery active workspace, as its scheduled actor with no credential.
--tenant TENANTnoOne workspace, as its current ADMIN.
--credential-file CREDENTIAL_FILEnoWith --tenant: that workspace's ADMIN credential.
--key-files KEY_FILESnoA directory of .env key files; a connection without one is skipped.
--collector-key COLLECTOR_KEYnoThe collector's private key file, which opens sealed connections; give it again for the key a rotation is retiring. A path that names no file is no key yet.
--platform-app PLATFORM_APPnoThe platform app's credential file, which reads every consented directory. A path that names no file is no credential yet.
--budget-seconds BUDGET_SECONDSnoStart no collection after this many seconds (1 to 3600, default 240) Default 240.
--per-tenant PER_TENANTnoStart at most this many collections a workspace (1 to 20, default 4) Default 4.

python -m execbound.monitoring.commands collector-keygen​

Write a new collector key pair: the public half for the gateway, the private for the collector.

ArgumentRequiredDescription
--output OUTPUTyesA directory for collector-public.json and collector-private.json; neither may exist.

python -m execbound.monitoring.commands collector-reseal​

Re-seal every sealed connection from the old collector key to the new one.

ArgumentRequiredDescription
--old-key OLD_KEYyesThe current collector's private key file.
--new-key NEW_KEYyesThe new collector's public key file.
--all-tenantsnoEvery active workspace, as its scheduled actor with no credential.

Bind an external agent to an active agent principal, as a current ADMIN.

ArgumentRequiredDescription
--credential-file CREDENTIAL_FILEyesA private file holding a current administrator's API key, which is never passed on the command line.
--connection CONNECTIONyes
--agent AGENTyesThe directory object identifier.
--principal PRINCIPALyes

Withdraw that binding, as a current ADMIN.

ArgumentRequiredDescription
--credential-file CREDENTIAL_FILEyesA private file holding a current administrator's API key, which is never passed on the command line.
--connection CONNECTIONyes
--agent AGENTyesThe directory object identifier.

python -m execbound.monitoring.commands record-egress​

Record the addresses a Tines tenant's HTTP requests leave from, as a current ADMIN.

ArgumentRequiredDescription
--credential-file CREDENTIAL_FILEyesA private file holding a current administrator's API key, which is never passed on the command line.
--connection CONNECTIONyesThe Tines connection.
--address ADDRESSnoOne egress address as Tines shows it at /info; give it again for each, at most 8.
--clearnoClear the recorded addresses.

python -m execbound.monitoring.commands accept-reach​

Record that an ADMIN accepts one ungoverned path.

ArgumentRequiredDescription
--credential-file CREDENTIAL_FILEyesA private file holding a current administrator's API key, which is never passed on the command line.
--connection CONNECTIONyes
--agent AGENTyesThe directory object identifier.
--action ACTIONyes
--path-kind {grant,role,inherited,observation}yesOne of grant, role, inherited, observation.
--path PATHyes
--reason REASONyesA stable reason code, A to Z and _.
--days DAYSno0 leaves the acceptance open. Default 0.

python -m execbound.monitoring.commands withdraw-reach​

Withdraw an ADMIN's acceptance of one ungoverned path.

ArgumentRequiredDescription
--credential-file CREDENTIAL_FILEyesA private file holding a current administrator's API key, which is never passed on the command line.
--connection CONNECTIONyesThe connection that lists the agent.
--agent AGENTyesThe directory object identifier.
--action ACTIONyesThe catalog action of the accepted path.
--path-kind {grant,role,inherited,observation}yesThe accepted path's kind. One of grant, role, inherited, observation.
--path PATHyesThe accepted path's reference.

python -m execbound.monitoring.commands set-profile​

Activate the next detection profile version as a current ADMIN.

ArgumentRequiredDescription
--credential-file CREDENTIAL_FILEyesA private file holding a current administrator's API key, which is never passed on the command line.
--input INPUTyes

python -m execbound.monitoring.commands show-profile​

Show the active detection profile.

ArgumentRequiredDescription
--credential-file CREDENTIAL_FILEyesA private file holding a current administrator's API key, which is never passed on the command line.

python -m execbound.monitoring.commands deliveries​

List finding deliveries and their state as a current ADMIN.

ArgumentRequiredDescription
--credential-file CREDENTIAL_FILEyesA private file holding a current administrator's API key, which is never passed on the command line.
--state {PENDING,ROUTED,IN_FLIGHT,DELIVERED,FAILED}noList only the deliveries in this state. One of PENDING, ROUTED, IN_FLIGHT, DELIVERED, FAILED.

python -m execbound.monitoring.commands serve​

Serve monitoring with no configured execution connectors.

ArgumentRequiredDescription
--config CONFIGyes

python -m execbound.monitoring.commands receiver​

Run the authenticated loopback test receiver.

ArgumentRequiredDescription
--config CONFIGyes
--output OUTPUTyes

python -m execbound.monitoring.commands emit-demo​

Send synthetic heartbeat and tool result to the loopback gateway.

ArgumentRequiredDescription
--config CONFIGyes

python -m execbound.monitoring.commands process​

Evaluate a bounded batch; optionally deliver findings.

ArgumentRequiredDescription
--config CONFIGno
--all-tenantsnoEvaluate every active workspace as its scheduled actor; with --deliver, send its findings.
--deliver-localnoSend findings to the monitoring file's loopback test receiver; refused (FINDINGS_DESTINATIONS_CONFIGURED) where EXECBOUND_RUNTIME_CONFIG names a findings destination.
--delivernoSend findings to the destinations EXECBOUND_RUNTIME_CONFIG names.
--limit LIMITnoDefault 50.