Skip to main content
Use 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

Use --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

Rules support --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
Use the API field names in JSON, including 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.