zeropath contexts, zeropath rules, and zeropath tags to manage the
configuration used by subsequent scans. These commands operate on the same
records as the dashboard and both MCP transports.
Commands
Authenticate with
zeropath auth <clientId> <clientSecret>, or set both
ZEROPATH_API_TOKEN_ID and ZEROPATH_API_TOKEN_SECRET. Add
--organization-id <id> to select an organization explicitly. Otherwise, the
API resolves the organization from your credentials. An organization selection
must match the organization your token belongs to.
Every command accepts --json for machine-readable output. Successful JSON
commands write one JSON value to stdout. Invalid input and API failures produce
an error on stderr and a nonzero exit status.
Context
--source-type and --scan-phase to limit where context applies. These
options accept repeated flags or multiple values; zeropath contexts create --help lists the accepted values. A title can be cleared with --title ''.
--text-file - reads UTF-8 text from stdin and cannot be combined with
--context.
Natural-language rules
--source-type. Use --text-file - to read a rule from stdin;
--rule and --text-file are mutually exclusive.
Targeting and pagination
Context and rule creation default to all repositories. Use--repository-id
for direct scope, or --tag-id alone for tag scope. To select the scope
explicitly, pass --scope allRepositories, --scope repositories, or
--scope tags, together with the relevant IDs. --all-repositories explicitly
selects organization-wide scope, including when tags are also supplied.
Omitted update fields preserve their existing values and scope.
list returns one page by default, with items, nextCursor, and hasMore.
--all fetches every remaining page and returns one combined result.
Repository-filtered listings include applicable organization and tag entries.
Tags
tags list returns every tag in the organization; it does not use pagination.
tags get includes effective members, exclusions, membership sources, and
whether the tag grants team access.
Use --custom-property-filter for automatic membership based on stored GitHub
custom properties, --dynamic-trigger INTERNET_EXPOSURE for the supported
dynamic trigger, and --default or --no-default to change default assignment.
Turning off a default does not release the assignments it already created;
use --release-repository-id to release those assignments.
Membership intent and previews
Only the named repositories change. Each repository may appear in one intent
operation per request.
preview accepts the same fields as update and returns
joining and leaving lists without saving configuration, assignments, or
membership audit entries. The preview covers changes to the selected tag.
Your existing permissions apply. Updating, previewing, or deleting a tag that
grants team access requires permission to manage teams.
JSON requests
Every operation also accepts a complete API request through--input <file> or
--input - for stdin. This supports explicit empty arrays and nullable fields:
tag-update.json
contextId, ruleId, or tagId
for a single record and contextIds for context deletion. --input cannot be
combined with positional IDs, resource flags, or --text-file. It can be
combined with --organization-id, --json, and listing’s --all.
See the MCP tools reference for the corresponding tool operations
and the API reference for request schemas.