Docs

Command Reference

Complete reference for all pncli commands, flags, and options. Auto-generated from source.

All commands return structured JSON to stdout. Check the ok field — false means an error occurred and the error field has details.

Flags marked required must be supplied. All others are optional.

Git

pncli git status

Show staged, unstaged, and untracked files as JSON

pncli git diff

Show diff as structured JSON

  • --staged — Show staged changes only
  • --file <path> — Limit diff to a specific file

pncli git log

Show recent commits as JSON

  • --count <n> — Number of commits to show
  • --since <date> — Show commits since date (e.g. "2 weeks ago")

pncli git branch

Show current branch and all local/remote branches

pncli git report

Report lines of code and commit counts for a branch, optionally filtered by date

  • --branch <name> — Branch to report on (defaults to current branch)
  • --base <ref> — Base ref to compare against, e.g. "main" (base..branch, or base..HEAD if --branch is omitted)
  • --since <date> — Include commits on or after this date (e.g. "2024-01-01")
  • --until <date> — Include commits on or before this date (e.g. "2024-12-31")
  • --csv — Output as CSV instead of JSON

pncli git current-pr

Find the open PR for the current branch

pncli git credentials inspect

Show the credential each remote uses after insteadOf rewriting, and (online) whether it can read the repo

  • --remote <name> — Only this remote (default: all remotes)
  • --scan <dir> — Inspect every clone under this directory instead
  • --depth <n> — How many directory levels --scan descends
  • --problems-only — With --scan, only list remotes that have problems
  • --offline — Skip network checks (ls-remote and the GitHub API)

pncli git credentials mappings

List every insteadOf URL rewrite and URL-scoped credential helper in your gitconfig, tokens redacted and (online) validated

  • --offline — Skip validating embedded GitHub tokens

pncli git credentials stored

List credentials git keeps in Git Credential Manager, Windows Credential Manager, the macOS Keychain, or ~/.git-credentials, with what git would send per host and (online) token health

  • --host <host...> — Also ask git what it would send for these hosts
  • --offline — Skip validating GitHub tokens

pncli git credentials forget

Remove a stored credential for a host through git credential reject (works for every helper: Git Credential Manager, wincred, osxkeychain, libsecret, store)

  • --host <host> required — Host to forget, e.g. github.com
  • --username <username> — Only this account (when several are stored for the host)
  • --path <path> — Repository path, for helpers that store per repository (e.g. Azure Repos in Git Credential Manager)

Jira

pncli jira get-issue

Get a Jira issue by key

  • --key <issue-key> required — Issue key (e.g. PROJ-123)

pncli jira create-issue

Create a Jira issue

  • --project <key> — Project key
  • --type <type> — Issue type (Bug, Story, Task, ...)
  • --summary <text> — Issue summary (required, unless supplied via --input-file)
  • --description <text> — Issue description
  • --priority <name> — Priority name
  • --assignee <username> — Assignee username
  • --labels <labels> — Comma-separated labels
  • --parent <key> — Parent issue key — sets fields.parent in the create payload
  • --field <Name=value> — Custom field value; use Name=@file.json to read value from file (repeatable)
  • --fields-file <path> — Path to a JSON file mapping field names/IDs to their Jira API values

pncli jira update-issue

Update a Jira issue

  • --key <issue-key> required — Issue key
  • --summary <text> — New summary
  • --description <text> — New description
  • --priority <name> — New priority
  • --assignee <username> — New assignee username
  • --labels <labels> — Comma-separated labels
  • --field <Name=value> — Custom field value; use Name=@file.json to read value from file (repeatable)
  • --fields-file <path> — Path to a JSON file mapping field names/IDs to their Jira API values

pncli jira schema

Print the --input-file JSON schema and an example for create-issue/update-issue

pncli jira transition-issue

Transition a Jira issue to a new status

  • --key <issue-key> required — Issue key
  • --transition <name-or-id> required — Transition name or ID

pncli jira list-transitions

List available transitions for an issue

  • --key <issue-key> required — Issue key

pncli jira add-comment

Add a comment to a Jira issue

  • --key <issue-key> required — Issue key
  • --body <text> required — Comment text

pncli jira log-work

Add a worklog (time spent) entry to a Jira issue

  • --key <issue-key> required — Issue key
  • --time-spent <duration> required — Time spent in Jira duration format (e.g. "2h 30m", "1d")
  • --comment <text> — Worklog comment
  • --started <datetime> — When the work started, in Jira datetime format (e.g. 2024-01-15T09:00:00.000+0000); defaults to now

pncli jira list-comments

List comments on a Jira issue

  • --key <issue-key> required — Issue key

Search Jira issues with JQL (consider --output-file for large results)

  • --jql <query> — JQL query string
  • --max-results <n> — Maximum number of results
  • --start-at <n> — Index of the first result to return (for resuming or paging)
  • --fields <list> — Comma-separated fields to return instead of the default set (names or ids, e.g. summary,status,"Story Points")

pncli jira add-label

Add one or more labels to a Jira issue (non-destructive)

  • --key <issue-key> required — Issue key
  • --labels <labels> required — Comma-separated labels to add

pncli jira remove-label

Remove one or more labels from a Jira issue (non-destructive)

  • --key <issue-key> required — Issue key
  • --labels <labels> required — Comma-separated labels to remove

pncli jira assign

Assign a Jira issue to a user

  • --key <issue-key> required — Issue key
  • --assignee <username> required — Assignee username

Link two Jira issues together

  • --key <issue-key> required — Source issue key
  • --link-type <type> required — Link type name or ID
  • --target <issue-key> required — Target issue key

pncli jira add-attachment

Upload a file as an attachment to a Jira issue

  • --key <issue-key> required — Issue key (e.g. PROJ-123)
  • --file <path> required — Path to the file to upload

pncli jira list-attachments

List attachments on a Jira issue

  • --key <issue-key> required — Issue key (e.g. PROJ-123)

pncli jira download-attachment

Download a Jira issue attachment to .pncli/ (or --dir)

  • --key <issue-key> required — Issue key (e.g. PROJ-123)
  • --attachment-id <id> required — Attachment ID from list-attachments output
  • --dir <path> — Output directory (default: .pncli relative to cwd)

pncli jira fields

List custom fields (configured or discovered from Jira API) (consider --output-file for large results)

  • --discover — Fetch field metadata from Jira API
  • --custom-only — Show only custom fields (requires --discover)
  • --project <key> — Project key — fetches allowedValues for select fields via createmeta (requires --discover)
  • --issue-type <type> — Filter allowedValues to a specific issue type (requires --project)

pncli jira list-boards

List Agile boards for a project

  • --project <key> required — Project key

pncli jira list-sprints

List sprints for a board or project, including start/end dates

  • --board <id> — Board ID
  • --project <key> — Project key — resolves to that project's board(s)
  • --state <states> — Comma-separated states to filter (active,future,closed)

pncli jira set-sprint

Move a Jira issue into a sprint

  • --key <issue-key> required — Issue key
  • --sprint <id> required — Sprint ID (from list-sprints)

Bitbucket

pncli bitbucket create-repo

Create a new repository in a project

  • --name <name> required — Repository name (slug)
  • --description <desc> — Repository description
  • --project <key> — Bitbucket project key (overrides parent --project)

pncli bitbucket list-prs

List pull requests

  • --state <state> — PR state: OPEN|MERGED|DECLINED|ALL
  • --author <username> — Filter by author username
  • --reviewer <username> — Filter by reviewer username
  • --created-after <date> — Only PRs created on/after this ISO 8601 date (e.g. 2025-01-31)
  • --created-before <date> — Only PRs created before this ISO 8601 date

pncli bitbucket get-pr

Get a pull request by ID

  • --id <pr-id> required — Pull request ID

pncli bitbucket create-pr

Create a pull request

  • --title <title> required — PR title
  • --source <branch> required — Source branch
  • --target <branch> — Target branch (defaults to config)
  • --description <desc> — PR description
  • --reviewers <users> — Comma-separated reviewer usernames
  • --project <key> — Bitbucket project key (overrides parent --project; use ~username for personal repos)
  • --repo <slug> — Bitbucket repository slug (overrides parent --repo)

pncli bitbucket create-prs

Create pull requests for multiple repositories in a project

  • --from <branch> required — Source branch
  • --to <branch> required — Target branch
  • --repos <slugs> required — Comma-separated repository slugs
  • --title <title> — PR title (defaults to "Promote <from> to <to>")
  • --description <desc> — PR description
  • --reviewers <users> — Comma-separated reviewer usernames
  • --project <key> — Bitbucket project key (overrides parent --project)

pncli bitbucket update-pr

Update a pull request

  • --id <pr-id> required — Pull request ID
  • --title <title> — New title
  • --description <desc> — New description
  • --reviewers <users> — Comma-separated reviewer usernames

pncli bitbucket merge-pr

Merge a pull request

  • --id <pr-id> required — Pull request ID
  • --strategy <strategy> — Merge strategy: merge|squash|ff
  • --delete-branch — Delete source branch after merge

pncli bitbucket decline-pr

Decline a pull request

  • --id <pr-id> required — Pull request ID

pncli bitbucket list-comments

List comments on a pull request (includes threaded replies by default)

  • --pr <pr-id> required — Pull request ID
  • --no-with-replies — Exclude replies; return top-level comments only
  • --inline-only — Return only inline file comments
  • --general-only — Return only general (non-inline) PR comments

pncli bitbucket add-comment

Add a comment to a pull request

  • --pr <pr-id> required — Pull request ID
  • --body <text> required — Comment text

pncli bitbucket add-inline-comment

Add an inline comment to a file in a pull request

  • --pr <pr-id> required — Pull request ID
  • --file <path> required — File path
  • --line <n> required — Line number
  • --body <text> required — Comment text
  • --line-type <type> — Line type: ADDED|REMOVED|CONTEXT

pncli bitbucket reply-comment

Reply to a comment on a pull request

  • --pr <pr-id> required — Pull request ID
  • --comment-id <id> required — Comment ID to reply to
  • --body <text> required — Reply text

pncli bitbucket resolve-comment

Resolve a comment thread on a pull request (use the root comment ID, not a reply)

  • --pr <pr-id> required — Pull request ID
  • --comment-id <id> required — Comment ID
  • --comment-version <n> — Comment version, as reported by list-comments

pncli bitbucket delete-comment

Delete a comment on a pull request

  • --pr <pr-id> required — Pull request ID
  • --comment-id <id> required — Comment ID
  • --comment-version <n> — Comment version, as reported by list-comments

pncli bitbucket diff

Get unified diff for a pull request

  • --pr <pr-id> required — Pull request ID
  • --file <path> — Limit diff to a specific file
  • --context-lines <n> — Lines of context around changes

pncli bitbucket list-files

List files changed in a pull request

  • --pr <pr-id> required — Pull request ID

pncli bitbucket approve

Approve a pull request

  • --pr <pr-id> required — Pull request ID

pncli bitbucket unapprove

Remove approval from a pull request

  • --pr <pr-id> required — Pull request ID

pncli bitbucket needs-work

Mark a pull request as needs-work

  • --pr <pr-id> required — Pull request ID

pncli bitbucket list-reviewers

List reviewers of a pull request

  • --pr <pr-id> required — Pull request ID

pncli bitbucket list-default-reviewers

List the default-reviewer conditions configured for a repository

pncli bitbucket add-reviewer

Add a reviewer to a pull request

  • --pr <pr-id> required — Pull request ID
  • --user <username> required — Username to add as a reviewer

pncli bitbucket list-builds

List build statuses for a pull request

  • --pr <pr-id> required — Pull request ID

pncli bitbucket get-build-status

Get build status for a commit SHA

  • --commit <sha> required — Commit SHA

Confluence

pncli confluence get-page

Get a Confluence page by ID

  • --id <page-id> required — Page ID
  • --expand <fields> — Comma-separated fields to expand

pncli confluence get-page-by-title

Find a Confluence page by space key and title

  • --space <key> required — Space key
  • --title <title> required — Page title

pncli confluence list-pages

List pages in a Confluence space (consider --output-file for large results)

  • --space <key> required — Space key
  • --limit <n> — Max total pages to return (default: all)
  • --start <n> — Offset for first result

pncli confluence get-page-children

Get child pages of a Confluence page

  • --id <page-id> required — Parent page ID

pncli confluence get-labels

Get labels on a Confluence page

  • --id <page-id> required — Page ID

Search Confluence with CQL

  • --cql <query> required — CQL query string (e.g. "space=PROJ AND type=page")
  • --limit <n> — Maximum number of results
  • --start <n> — Offset for first result
  • --expand <fields> — Comma-separated fields to expand

pncli confluence create-page

Create a new Confluence page

  • --space <key> required — Space key
  • --title <title> required — Page title
  • --body <html> — Page body (storage format HTML or Markdown when --markdown is set)
  • --markdown — Convert body from Markdown to storage format via Confluence API
  • --parent-id <id> — Parent page ID (to nest under a page)
  • --representation <format> — Body format: storage (default) or wiki

pncli confluence update-page

Update a Confluence page (fetches current version automatically)

  • --id <page-id> required — Page ID
  • --title <title> — New page title
  • --body <html> — New page body (storage format HTML or Markdown when --markdown is set)
  • --markdown — Convert body from Markdown to storage format via Confluence API
  • --status <status> — Page status: current (default) or draft
  • --representation <format> — Body format: storage (default) or wiki

pncli confluence delete-page

Delete a Confluence page

  • --id <page-id> required — Page ID

pncli confluence list-comments

List comments on a Confluence page

  • --id <page-id> required — Page ID

pncli confluence add-comment

Add a comment to a Confluence page

  • --id <page-id> required — Page ID
  • --body <text> required — Comment body (storage format HTML)
  • --representation <format> — Body format: storage (default) or wiki

pncli confluence add-label

Add labels to a Confluence page

  • --id <page-id> required — Page ID
  • --labels <names> required — Comma-separated label names

pncli confluence remove-label

Remove a label from a Confluence page

  • --id <page-id> required — Page ID
  • --label <name> required — Label name to remove

pncli confluence list-spaces

List Confluence spaces

  • --type <type> — Space type: global or personal
  • --limit <n> — Max total spaces to return (default: all)

pncli confluence get-space

Get a Confluence space by key

  • --key <space-key> required — Space key

pncli confluence list-attachments

List attachments on a Confluence page

  • --id <page-id> required — Page ID

pncli confluence upload-attachment

Upload a file as an attachment to a Confluence page

  • --id <page-id> required — Page ID
  • --file <path> required — Path to the file to upload
  • --comment <text> — Optional comment to attach to the file version

pncli confluence download-attachment

Download a Confluence attachment to .pncli/ (or --dir)

  • --id <attachment-id> required — Attachment content ID
  • --dir <path> — Output directory (default: .pncli relative to cwd)

pncli confluence delete-attachment

Delete an attachment from Confluence by its content ID (moves it to the trash; does not permanently purge it)

  • --id <attachment-id> required — Attachment content ID

pncli confluence get-page-history

Get the version history metadata for a Confluence page

  • --id <page-id> required — Page ID

SonarQube

pncli sonar quality-gate

Get quality gate status for a project

  • --project <key> — SonarQube project key (or set defaults.sonar.project in config)
  • --branch <name> — Branch name

pncli sonar issues

Search/list issues for a project

  • --project <key> — SonarQube project key (or set defaults.sonar.project in config)
  • --severities <list> — Filter by severity: BLOCKER,CRITICAL,MAJOR,MINOR,INFO (comma-separated)
  • --types <list> — Filter by type: BUG,VULNERABILITY,CODE_SMELL (comma-separated)
  • --statuses <list> — Filter by status: OPEN,CONFIRMED,REOPENED,RESOLVED,CLOSED (comma-separated)
  • --branch <name> — Branch name
  • --resolved <bool> — Filter resolved issues: true or false
  • --page <n> — Page number (1-based)
  • --page-size <n> — Results per page (max 500)
  • --all — Fetch all pages (consider --output-file for large results; ignores --page/--page-size)

pncli sonar measures

Get key metrics for a project

  • --project <key> — SonarQube project key (or set defaults.sonar.project in config)
  • --metrics <list> — Comma-separated metric keys
  • --branch <name> — Branch name

pncli sonar projects

Search/list projects

  • --query <text> — Search query
  • --page <n> — Page number (1-based)
  • --page-size <n> — Results per page
  • --all — Fetch all pages (consider --output-file for large results)

pncli sonar hotspots

List security hotspots for a project

  • --project <key> — SonarQube project key (or set defaults.sonar.project in config)
  • --status <status> — Filter: TO_REVIEW or REVIEWED
  • --resolution <list> — Filter: FIXED,SAFE,ACKNOWLEDGED (comma-separated)
  • --branch <name> — Branch name
  • --page <n> — Page number (1-based)
  • --page-size <n> — Results per page
  • --all — Fetch all pages (consider --output-file for large results)

SDElements

pncli sde server-info

Get server version and platform info (requires super-user)

pncli sde whoami

Get current authenticated user

pncli sde users

List users

  • --email <email> — Filter by email address
  • --first-name <name> — Filter by first name
  • --last-name <name> — Filter by last name
  • --active <bool> — Filter by active status: true or false
  • --page <n> — Page number (1-based)
  • --page-size <n> — Results per page
  • --all — Fetch all pages (consider --output-file for large results)

pncli sde projects

List projects

  • --name <name> — Filter by project name
  • --search <text> — Text search on name and profile
  • --active <val> — Filter by active status: true, false, or all
  • --ordering <field> — Sort by: name, created, updated (prefix with - for descending)
  • --expand <fields> — Expand nested fields (comma-separated): application,business_unit,creator
  • --include <fields> — Include extra fields (comma-separated): task_counts,permissions
  • --page <n> — Page number (1-based)
  • --page-size <n> — Results per page
  • --all — Fetch all pages (consider --output-file for large results)

pncli sde project

Get a single project by ID

  • --id <id> — Project ID (or set defaults.sde.project in config)
  • --expand <fields> — Expand nested fields (comma-separated): application,business_unit,creator
  • --include <fields> — Include extra fields (comma-separated): task_counts,permissions

pncli sde tasks

List countermeasures for a project

  • --project <id> — Project ID (or set defaults.sde.project in config)
  • --phase <slug> — Filter by phase slug (e.g. development, architecture-design)
  • --priority <n> — Filter by priority (1-10)
  • --status <id> — Filter by status ID (e.g. TS1, TS2)
  • --assigned-to <email> — Filter by assignee email
  • --source <val> — Filter by source: default, custom, manual, project
  • --verification <val> — Filter by verification: pass, fail, partial, none
  • --tag <name> — Filter by tag name
  • --accepted <bool> — Filter by accepted status: true or false
  • --relevant <bool> — Filter by relevant status: true or false
  • --expand <fields> — Expand nested fields (comma-separated): status,phase,problem,text
  • --include <fields> — Include extra fields (comma-separated): how_tos,last_note,references,regulation_sections
  • --page <n> — Page number (1-based)
  • --page-size <n> — Results per page
  • --all — Fetch all pages (consider --output-file for large results)

pncli sde task

Get a single countermeasure

  • --project <id> — Project ID (or set defaults.sde.project in config)
  • --task <id> required — Task ID (e.g. T21)
  • --expand <fields> — Expand nested fields (comma-separated): status,phase,problem,text
  • --include <fields> — Include extra fields (comma-separated): how_tos,last_note,references

pncli sde threats

List threats for a project

  • --project <id> — Project ID (or set defaults.sde.project in config)
  • --severity <n> — Filter by severity (1-10)
  • --search <text> — Full-text search on title and threat ID
  • --ordering <field> — Sort by: threat__severity, threat_id, status (prefix - for descending)
  • --capec-id <id> — Filter by CAPEC attack pattern ID
  • --component-id <id> — Filter by component ID
  • --page <n> — Page number (1-based)
  • --page-size <n> — Results per page
  • --all — Fetch all pages (consider --output-file for large results)

Dependencies

pncli deps frisk

Scan all dependencies for CVEs and output remediation paths (requires OSV.dev, Sonatype OSS Index, or Sonatype IQ Server)

  • --ecosystem <ecosystem> — Filter to one ecosystem: npm, nuget, maven, all
  • --direct-only — Only scan direct dependencies (default: include transitive)
  • --include-dev — Include dev/test dependencies
  • --application-id <id> — Sonatype IQ Server application ID (required when --source sonatypeiq)

pncli deps scan

Inventory all dependencies from manifest files (local only, no network)

  • --ecosystem <ecosystem> — Filter to one ecosystem: npm, nuget, maven, all
  • --include-transitive — Include transitive dependencies
  • --include-dev — Include dev/test dependencies

pncli deps diff

Show dependency changes between two git refs (local only, no network)

  • --from <ref> required — Base git ref (commit, tag, or branch)
  • --to <ref> — Target git ref (default: working tree)
  • --ecosystem <ecosystem> — Filter to one ecosystem: npm, nuget, maven, all
  • --include-dev — Include dev/test dependencies

pncli deps outdated

Check for newer versions available in Artifactory (requires Artifactory)

  • --ecosystem <ecosystem> — Filter to one ecosystem: npm, nuget, maven, all
  • --major — Only show major version bumps
  • --minor — Only show minor version bumps or higher
  • --patch — Only show patch version bumps or higher

pncli deps license-check

Report licenses for all direct dependencies via Artifactory (requires Artifactory)

  • --ecosystem <ecosystem> — Filter to one ecosystem: npm, nuget, maven, all
  • --include-dev — Include dev/test dependencies

pncli deps connectivity

Test network access to Artifactory, OSV.dev, and Sonatype OSS Index, report available tier

Config

pncli config init

Setup wizard for service credentials (interactive)

  • --repo — Write repo config (.pncli.json) instead of global config

pncli config show

Print fully resolved config (PATs masked)

pncli config set

Set a config value by dot-notation key (e.g. jira.baseUrl https://...)

  • --repo — Write to repo config (.pncli.json) instead of global config

pncli config test

Test connectivity to configured services

pncli config check

Check PAT status for every service: Blank, Valid, or Invalid

  • --output <format> — Output format: json or table

Config — OS keychain

pncli config keychain status

Show the keychain backend, every keychain reference in config, and plaintext secrets that could move

pncli config keychain set

Store a secret in the OS keychain and point a config key at it

  • --stdin — Read the secret from stdin instead of prompting
  • --value <secret> — Pass the secret inline (ends up in shell history — prefer the prompt or --stdin)
  • --account <account> — Keychain account name to store under (default: the config key)

pncli config keychain remove

Delete a secret from the OS keychain and clear its config reference

  • --restore — Write the secret back into config as plaintext instead of clearing the key

pncli config keychain migrate

Move secrets between plaintext config and the OS keychain (--to keychain, the default, or --to config)

  • --to <destination> — keychain (move plaintext secrets in) or config (move keychain secrets back out)
  • --purge — With --to config: also delete the keychain entries once config holds the secrets
  • --dry-run — List what would move without touching the keychain or config

Doctor

pncli doctor

Diagnose pncli setup: config files, credentials, keychain references, git auth for marketplace hosts, agent skills, and marketplaces

  • --offline — Skip credential checks (no network calls)

Azure DevOps — Work Items

pncli ado work get

Get a work item by ID

  • --id <n> required — Work item ID

pncli ado work create

Create a work item

  • --type <type> — Work item type (e.g. Bug, Task, User Story) (required, unless supplied via --input-file)
  • --title <title> — Work item title (required, unless supplied via --input-file)
  • --description <text> — Description
  • --assignee <user> — Assigned to (display name or email)
  • --priority <n> — Priority (1-4)
  • --parent <id> — Parent work item ID — creates a parent link after creation
  • --field <name=value> — Additional field (repeatable)

pncli ado work update

Update a work item field

  • --id <n> required — Work item ID
  • --field <name=value> — Field to update (repeatable)

pncli ado work transition

Set the state of a work item

  • --id <n> required — Work item ID
  • --state <state> required — New state (e.g. Active, Resolved, Closed)

pncli ado work assign

Assign a work item to a user

  • --id <n> required — Work item ID
  • --to <user> required — User display name or email

Link two work items

  • --id <a> required — Source work item ID
  • --to <b> required — Target work item ID
  • --type <rel> — Link type (related|parent|child|duplicate|duplicate-of)

Run a WIQL query (consider --output-file for large results)

  • --wiql <query> required — WIQL query string

pncli ado work list-comments

List comments on a work item

  • --id <n> required — Work item ID

pncli ado work add-comment

Add a comment to a work item

  • --id <n> required — Work item ID
  • --body <text> required — Comment text

pncli ado work add-tag

Add one or more tags to a work item (non-destructive)

  • --id <n> required — Work item ID
  • --tags <tags> required — Semicolon- or comma-separated tags to add

pncli ado work remove-tag

Remove one or more tags from a work item (non-destructive)

  • --id <n> required — Work item ID
  • --tags <tags> required — Semicolon- or comma-separated tags to remove

pncli ado work list-attachments

List attachments on a work item

  • --id <n> required — Work item ID

pncli ado work add-attachment

Upload a local file and attach it to a work item

  • --id <n> required — Work item ID
  • --file <path> required — Path to the file to upload
  • --comment <text> — Optional comment for the attachment

pncli ado work download-attachment

Download a work item attachment to .pncli/ (or --dir)

  • --id <n> required — Work item ID
  • --attachment-id <guid> required — Attachment ID from work list-attachments output
  • --dir <path> — Output directory (default: .pncli relative to cwd)

pncli ado work list-areas

List classification areas for the team project (tree)

  • --depth <n> — Depth of the area tree to retrieve

pncli ado work list-iterations

List classification iterations for the team project (tree), including start/finish dates

  • --depth <n> — Depth of the iteration tree to retrieve

pncli ado work types

List work item types in the project

  • --discover — Fetch from server (always true for this command)
  • --save — Save discovered types to ~/.pncli/config.json

pncli ado work list-states

List valid states for a work item type

  • --type <type> required — Work item type name (e.g. Bug)

pncli ado work fields

List work item fields available in the collection (consider --output-file for large results)

  • --type <type> — Scope to fields for a specific work item type (e.g. Bug)
  • --custom-only — Exclude System.* and Microsoft.VSTS.* fields
  • --discover — Fetch from server (always true for this command)
  • --save — Save discovered fields and aliases to ~/.pncli/config.json

pncli ado work schema

Print the --input-file JSON schema and an example for work create/update

Azure DevOps — Repos & PRs

pncli ado repo list

List git repositories in the project

pncli ado repo create

Create a new git repository in the project

  • --name <name> required — Repository name

pncli ado repo get

Get a specific repository

pncli ado repo list-prs

List pull requests

  • --state <state> — PR state: active|abandoned|completed|all
  • --creator <alias> — Filter by creator
  • --reviewer <alias> — Filter by reviewer
  • --created-after <date> — Only PRs created on/after this ISO 8601 date (e.g. 2025-01-31)
  • --created-before <date> — Only PRs created before this ISO 8601 date

pncli ado repo get-pr

Get a pull request by ID

  • --id <n> required — Pull request ID

pncli ado repo create-pr

Create a pull request

  • --title <title> required — PR title
  • --source <branch> required — Source branch
  • --target <branch> — Target branch (default: main)
  • --description <text> — PR description
  • --reviewers <ids> — Comma-separated reviewer IDs or display names
  • --draft — Create as a draft pull request

pncli ado repo update-pr

Update a pull request

  • --id <n> required — Pull request ID
  • --title <title> — New title
  • --description <text> — New description
  • --reviewers <ids> — Comma-separated reviewer IDs
  • --draft <bool> — Set draft status: true|false

pncli ado repo merge-pr

Complete (merge) a pull request

  • --id <n> required — Pull request ID
  • --strategy <s> — Merge strategy: noFastForward|squash|rebase|rebaseMerge
  • --delete-source — Delete source branch after merge

pncli ado repo abandon-pr

Abandon a pull request

  • --id <n> required — Pull request ID

pncli ado repo list-comments

List all comments on a pull request (general + inline)

  • --pr <n> required — Pull request ID
  • --inline-only — Return only inline file comments
  • --general-only — Return only general PR comments

pncli ado repo add-comment

Add a general comment to a pull request

  • --pr <n> required — Pull request ID
  • --body <text> required — Comment text

pncli ado repo add-inline-comment

Add an inline comment on a file in a pull request

  • --pr <n> required — Pull request ID
  • --file <path> required — File path
  • --line <n> required — Line number
  • --body <text> required — Comment text
  • --line-type <side> — Line side: left|right (default: right)

pncli ado repo reply-comment

Reply to a comment thread

  • --pr <n> required — Pull request ID
  • --thread-id <id> required — Thread ID
  • --body <text> required — Reply text

pncli ado repo resolve-comment

Mark a comment thread as resolved (fixed)

  • --pr <n> required — Pull request ID
  • --thread-id <id> required — Thread ID

pncli ado repo delete-comment

Delete a comment from a thread

  • --pr <n> required — Pull request ID
  • --thread-id <id> required — Thread ID
  • --comment-id <id> required — Comment ID

pncli ado repo list-files

List files changed in a pull request

  • --pr <n> required — Pull request ID

pncli ado repo diff

Show files changed in a pull request with change types and commit metadata

  • --pr <n> required — Pull request ID
  • --path <p> — Filter diff to a specific file path

pncli ado repo get-build-status

Get CI/build statuses posted to a commit

  • --commit <sha> required — Commit SHA

pncli ado repo list-reviewers

List reviewers on a pull request

  • --pr <n> required — Pull request ID

pncli ado repo list-default-reviewers

List required-reviewer branch policies (default reviewers) that apply to the repository

pncli ado repo list-builds

List builds associated with a pull request

  • --pr <n> required — Pull request ID

Azure DevOps — Pipelines

pncli ado pipeline list

List pipeline definitions

pncli ado pipeline get

Get a pipeline definition by ID

  • --id <n> required — Pipeline definition ID

pncli ado pipeline run

Queue a pipeline run

  • --id <n> required — Pipeline definition ID
  • --branch <ref> — Source branch (e.g. refs/heads/main or main)
  • --parameter <k=v> — Build parameter (repeatable)
  • --wait — Wait for the run to complete before returning
  • --timeout <s> — Max wait time in seconds (default 600)
  • --poll <s> — Poll interval in seconds (default 10)

pncli ado pipeline list-runs

List pipeline runs

  • --definition <id> — Filter by definition ID
  • --name <name> — Filter by pipeline name (resolved to definition ID; use pipeline list to see names)
  • --branch <ref> — Filter by branch name
  • --status <filter> — Filter by status (inProgress|completed|cancelling|...)
  • --top <n> — Maximum results

pncli ado pipeline get-run

Get a pipeline run by build ID

  • --id <n> required — Build ID

pncli ado pipeline cancel-run

Cancel a running pipeline build

  • --id <n> required — Build ID

pncli ado pipeline logs

List or retrieve build logs (consider --output-file for large logs)

  • --build-id <n> — Build (run) ID — from pipeline list-runs or get-run
  • --id <n> — Build (run) ID — alias for --build-id (kept for backwards compatibility)
  • --log-id <n> — Specific log ID (omit to list all logs)

Azure DevOps — Projects

pncli ado project list-collections

List all project collections on the server

pncli ado project list

List team projects in a collection

pncli ado project get

Get a team project by name

  • --name <project> required — Project name

Jenkins

pncli jenkins instance list

List configured Jenkins instances (API tokens masked)

pncli jenkins instance add

Add a named Jenkins instance to the global config (appends — existing instances are preserved)

  • --name <name> required — Instance name used with --instance
  • --base-url <url> required — Jenkins base URL (e.g. jenkins.imagile.dev)
  • --username <user> — Jenkins username
  • --api-token <token> — Jenkins API token (prompted for when omitted on an interactive terminal, keeping it out of shell history)
  • --force — Overwrite an instance that already uses this name

pncli jenkins instance remove

Remove a named Jenkins instance from the global config

  • --name <name> required — Instance name to remove

pncli jenkins pipeline list

List all jobs on the Jenkins instance (or within a folder)

  • --folder <name> — Folder name to enumerate (supports nested folders: parentFolder/childFolder)

pncli jenkins pipeline get

Get details for a specific job

  • --name <job> required — Job name (use folder/job for folder-scoped jobs)

pncli jenkins pipeline run

Trigger a build

  • --name <job> required — Job name (use folder/job for folder-scoped jobs)
  • --parameter <k=v> — Build parameter (repeatable)
  • --wait — Wait for the build to complete before returning
  • --timeout <s> — Max wait time in seconds per phase (queue-wait and build-wait each get this budget; default 600)
  • --poll <s> — Poll interval in seconds (default 10)

pncli jenkins pipeline list-runs

List recent builds for a job

  • --name <job> required — Job name (use folder/job for folder-scoped jobs)
  • --top <n> — Maximum number of builds to return (default 25)

pncli jenkins pipeline get-run

Get details for a specific build

  • --name <job> required — Job name (use folder/job for folder-scoped jobs)
  • --number <n> required — Build number

pncli jenkins pipeline logs

Fetch console log for a build (consider --output-file for large logs)

  • --name <job> required — Job name (use folder/job for folder-scoped jobs)
  • --number <n> required — Build number

JFrog Artifactory

pncli artifactory ping

Check Artifactory connectivity and authentication

pncli artifactory repos

List repositories

  • --type <type> — Filter by type: local, virtual, remote, federated
  • --package-type <type> — Filter by package type: npm, maven, nuget, docker, pypi, etc.

pncli artifactory artifact-info <repo> <path>

Get metadata for an artifact or folder (checksums, size, timestamps)

pncli artifactory properties-get <repo> <path>

Read custom properties on an artifact

pncli artifactory properties-set <repo> <path> [keyvals...]

Set custom properties on an artifact (format: key=value key=value...)

  • --recursive — Apply recursively to folder contents

Search artifacts using AQL (Artifactory Query Language) (consider --output-file for large results)

  • --repo <name> — Filter by repository key
  • --name <pattern> — Filter by artifact name (supports * and ? wildcards)
  • --path <pattern> — Filter by artifact path (supports * and ? wildcards)
  • --after <date> — Created after this date (ISO 8601, e.g. 2024-01-01)
  • --before <date> — Created before this date (ISO 8601)
  • --limit <n> — Maximum results to return (default: 100)
  • --properties — Include artifact properties in results

pncli artifactory builds

List builds registered in Artifactory Build Integration (names may differ from ADO pipeline names; use "search --repo" when empty)

  • --timeout <s> — Request timeout in seconds (default 60; increase for large Artifactory instances)

pncli artifactory build-runs <name>

List all run numbers for a build

pncli artifactory build-info <name> <number>

Get build info (artifacts, dependencies, VCS revision) for a specific run

Checkmarx

pncli checkmarx project list

List all projects

pncli checkmarx project get

Get a project by ID

  • --id <id> required — Project UUID

pncli checkmarx scan list

List scans

  • --project <id> — Filter by project UUID
  • --last <n> — Return only the last N scans

pncli checkmarx scan get

Get a scan by ID

  • --id <id> required — Scan UUID

pncli checkmarx scan stats

Get results statistics for a scan

  • --id <id> required — Scan UUID

GitHub

pncli github create-repo

Create a new repository (personal or org)

  • --name <name> required — Repository name
  • --description <desc> — Repository description
  • --private — Create as a private repository
  • --auto-init — Initialize with a README

pncli github create-issue

Create a GitHub issue

  • --title <title> required — Issue title
  • --body <body> — Issue body (markdown)
  • --body-file <path> — Read issue body from a file (use - for stdin); overridden by --body
  • --label <label> — Label to apply (repeatable)
  • --assignee <login> — Assignee login (repeatable)

pncli github list-prs

List pull requests

  • --head <branch> — Filter by head branch (user:branch)
  • --base <branch> — Filter by base branch
  • --author <login> — Filter by author login
  • --created-after <date> — Only PRs created on/after this ISO 8601 date (e.g. 2025-01-31)
  • --created-before <date> — Only PRs created before this ISO 8601 date

pncli github get-pr

Get a pull request by number

  • --number <n> required — Pull request number

pncli github create-pr

Create a pull request

  • --title <title> required — PR title
  • --head <branch> required — Source branch (or user:branch for forks)
  • --base <branch> — Target branch (defaults to config or main)
  • --body <body> — PR description
  • --body-file <path> — Read PR description from a file (use - for stdin); overridden by --body
  • --draft — Create as draft PR
  • --owner <owner> — GitHub owner (overrides parent --owner)
  • --repo <repo> — GitHub repository name (overrides parent --repo)

pncli github update-pr

Update a pull request

  • --number <n> required — Pull request number
  • --title <title> — New title
  • --body <body> — New description
  • --base <branch> — New base branch

pncli github merge-pr

Merge a pull request (immediate merge — use enable-auto-merge for auto-merge)

  • --number <n> required — Pull request number
  • --commit-title <title> — Commit title for merge/squash
  • --commit-message <msg> — Commit message for merge/squash

pncli github enable-auto-merge

Enable auto-merge on a pull request (merges automatically when all requirements are met)

  • --number <n> required — Pull request number
  • --match-head-commit <sha> — Only enable if the PR head matches this SHA (prevents race conditions)

pncli github disable-auto-merge

Disable auto-merge on a pull request

  • --number <n> required — Pull request number

pncli github enqueue-pr

Add a pull request to the repository merge queue

  • --number <n> required — Pull request number
  • --match-head-commit <sha> — Only enqueue if the PR head matches this SHA (prevents race conditions)

pncli github close-pr

Close a pull request

  • --number <n> required — Pull request number

pncli github list-comments

List general comments on a pull request

  • --number <n> required — Pull request number

pncli github add-comment

Add a general comment to a pull request

  • --number <n> required — Pull request number
  • --body <text> required — Comment text

pncli github list-review-comments

List inline review comments on a pull request

  • --number <n> required — Pull request number

pncli github add-inline-comment

Add an inline review comment to a file in a pull request

  • --number <n> required — Pull request number
  • --commit <sha> required — Commit SHA the comment is on
  • --file <path> required — File path
  • --line <n> required — Line number
  • --body <text> required — Comment text

pncli github reply-comment

Reply to a review comment on a pull request

  • --number <n> required — Pull request number
  • --comment-id <id> required — Review comment ID to reply to
  • --body <text> required — Reply text

pncli github delete-comment

Delete a general issue comment

  • --comment-id <id> required — Comment ID

pncli github delete-review-comment

Delete an inline review comment

  • --comment-id <id> required — Review comment ID

pncli github diff

Get unified diff for a pull request

  • --number <n> required — Pull request number

pncli github list-files

List files changed in a pull request

  • --number <n> required — Pull request number

pncli github list-reviews

List reviews on a pull request

  • --number <n> required — Pull request number

pncli github approve

Approve a pull request

  • --number <n> required — Pull request number
  • --body <text> — Review body text

pncli github request-changes

Request changes on a pull request

  • --number <n> required — Pull request number
  • --body <text> required — Review feedback text

pncli github list-reviewers

List requested reviewers for a pull request

  • --number <n> required — Pull request number

pncli github list-review-threads

List review threads on a pull request (includes thread node IDs for resolve-thread)

  • --number <n> required — Pull request number

pncli github resolve-thread

Mark a review thread as resolved (use list-review-threads to get the thread id)

  • --thread-id <id> required — GraphQL node ID of the review thread (e.g. PRT_kwDO...)

pncli github get-status

Get combined commit status for a ref (branch, tag, or SHA)

  • --ref <ref> required — Git ref (branch, tag, or commit SHA)

pncli github list-checks

List check runs for a ref (branch, tag, or SHA)

  • --ref <ref> required — Git ref (branch, tag, or commit SHA)

pncli github pr-status

Aggregated PR status: review decision, checks, mergeability, draft state, and auto-merge

  • --number <n> required — Pull request number

pncli github convert-to-draft

Convert an open pull request to a draft

  • --number <n> required — Pull request number

pncli github ready-for-review

Mark a draft pull request as ready for review

  • --number <n> required — Pull request number

pncli github reopen-pr

Reopen a closed pull request

  • --number <n> required — Pull request number

pncli github add-labels

Add labels to a pull request or issue

  • --number <n> required — PR or issue number
  • --label <label> — Label to add (repeatable)

pncli github remove-label

Remove a label from a pull request or issue

  • --number <n> required — PR or issue number
  • --label <label> required — Label name to remove

pncli github add-reviewers

Request reviewers on a pull request

  • --number <n> required — Pull request number
  • --reviewer <login> — User reviewer login (repeatable)
  • --team-reviewer <slug> — Team slug to request (repeatable)

pncli github remove-reviewers

Remove requested reviewers from a pull request

  • --number <n> required — Pull request number
  • --reviewer <login> — User reviewer login to remove (repeatable)
  • --team-reviewer <slug> — Team slug to remove (repeatable)

pncli github add-assignees

Add assignees to a pull request or issue

  • --number <n> required — PR or issue number
  • --assignee <login> — Assignee login (repeatable)

pncli github remove-assignees

Remove assignees from a pull request or issue

  • --number <n> required — PR or issue number
  • --assignee <login> — Assignee login to remove (repeatable)

Contrast IAST

pncli contrast apps list

List applications in the organization

  • --limit <n> — Maximum number of results
  • --offset <n> — Pagination offset

pncli contrast findings list

List vulnerability findings for an application

  • --app <app-id> required — Application ID (UUID)
  • --severity <level> — Filter by severity: CRITICAL, HIGH, MEDIUM, LOW, NOTE
  • --status <status> — Filter by status: REPORTED, CONFIRMED, SUSPICIOUS, NOT_A_PROBLEM, REMEDIATED, FIXED
  • --limit <n> — Maximum number of results
  • --offset <n> — Pagination offset

pncli contrast findings get

Get details for a specific vulnerability finding

  • --app <app-id> required — Application ID (UUID)
  • --trace <trace-id> required — Trace/finding UUID

pncli contrast libraries list

List libraries used by an application, as shown on the Libraries tab

  • --app <app-id> required — Application ID (UUID)
  • --limit <n> — Maximum number of results
  • --offset <n> — Pagination offset

pncli contrast libraries get

Get details for a specific library used by an application, by hash

  • --app <app-id> required — Application ID (UUID)
  • --hash <library-hash> required — Library hash

Sonatype IQ

pncli sonatypeiq applications list

List all applications in Sonatype IQ Server

  • --organization-id <id> — Filter by organization ID

pncli sonatypeiq applications get

Get an application by its public ID

  • --public-id <id> required — Application public ID

pncli sonatypeiq organizations list

List all organizations in Sonatype IQ Server

pncli sonatypeiq policies list

List all policies

  • --organization-id <id> — Filter by organization ID

OpenShift / Kubernetes

pncli openshift cluster list

List all configured OpenShift environments and cluster instances

pncli openshift pods

List pod health summary for a namespace — pre-processed for LLM analysis. Use --raw to return the full unmodified Kubernetes pod objects.

  • --namespace <ns> required — Kubernetes namespace
  • --label-selector <selector> — Label selector (e.g. app=my-app)
  • --raw — Return full Kubernetes pod objects without summarization (includes env vars, images, node name, annotations, resources, etc.)

pncli openshift deployments

List Deployments (or OpenShift DeploymentConfigs with --deployment-configs) for a namespace, read-only. Use --raw to return the full unmodified objects.

  • --namespace <ns> required — Kubernetes namespace
  • --label-selector <selector> — Label selector (e.g. app=my-app)
  • --deployment-configs — Read OpenShift DeploymentConfigs (apps.openshift.io/v1) instead of Deployments (apps/v1)
  • --raw — Return full objects without summarization (includes pod template, env vars, strategy, etc.)

pncli openshift events

List Warning events for a namespace — pre-filtered for LLM analysis

  • --namespace <ns> required — Kubernetes namespace
  • --field-selector <selector> — Additional field selector (e.g. involvedObject.name=my-pod)
  • --all — Include Normal events in addition to Warning events

pncli openshift logs

Get recent log lines from a pod container

  • --namespace <ns> required — Kubernetes namespace
  • --pod <name> required — Pod name
  • --container <name> — Container name (defaults to first container)
  • --lines <n> — Number of most-recent lines to return
  • --previous — Return logs from the previous container instance

pncli openshift pod-metrics

Get CPU and memory usage for pods in a namespace (requires metrics-server)

  • --namespace <ns> required — Kubernetes namespace

pncli openshift resource-usage

Combined CPU/memory usage, limits, and requests for all pods in a namespace — all values normalized to millicores (m) and mebibytes (Mi). Requires metrics-server. Use --csv to emit a spreadsheet-friendly CSV.

  • --namespace <ns> required — Kubernetes namespace
  • --label-selector <selector> — Label selector (e.g. app=my-app)
  • --csv — Output as CSV instead of JSON (suitable for Excel)

Dynatrace

pncli dynatrace entities list

List monitored entities using an entity selector

  • --selector <selector> required — Dynatrace entity selector, e.g. type("SERVICE")
  • --from <time> — Start time (ISO 8601 or relative, e.g. now-2h)
  • --to <time> — End time (ISO 8601 or relative)
  • --fields <fields> — Additional entity fields

pncli dynatrace entities get

Get a monitored entity by ID

  • --id <id> required — Entity ID, e.g. SERVICE-1234567890ABCDEF
  • --from <time> — Start time
  • --to <time> — End time
  • --fields <fields> — Additional entity fields

pncli dynatrace services

List monitored services

  • --from <time> — Start time
  • --to <time> — End time

pncli dynatrace workloads

List monitored Kubernetes workloads

  • --from <time> — Start time
  • --to <time> — End time

pncli dynatrace problems list

List problems

  • --from <time> — Start time (default: now-2h)
  • --to <time> — End time (default: now)
  • --problem-selector <selector> — Dynatrace problem selector
  • --entity-selector <selector> — Affected entity selector

pncli dynatrace problems get

Get a problem by ID

  • --id <id> required — Problem ID
  • --fields <fields> — Additional fields

pncli dynatrace trace

Get distributed-trace spans from Grail

  • --id <trace-id> required — 16- or 32-character hexadecimal trace ID

LogScale

pncli logscale repositories list

List available repositories

pncli logscale query

Execute a LogScale Query Language (LQL) search against a repository

  • --repository <name> required — Repository name to query
  • --query <lql> required — LogScale Query Language expression (e.g. "error" or "level=error | count()")
  • --start <time> — Start time (ISO 8601 or relative such as 1h or 24h)
  • --end <time> — End time (ISO 8601 or relative)
  • --limit <n> — Maximum number of events to return
  • --timeout-ms <ms> — Client-side HTTP timeout in milliseconds

Elasticsearch

pncli elasticsearch cluster health

Show cluster health (status, node and shard counts)

pncli elasticsearch indices list

List indices with health, document count and size

  • --pattern <pattern> — Index name or wildcard pattern (e.g. "logs-*")

Search one or more indices with Query DSL JSON or a query string

  • --index <name> required — Index, data stream, alias or wildcard pattern; comma-separate several
  • --query <json> — Query DSL clause as JSON (e.g. '{"match":{"message":"error"}}')
  • --q <query-string> — Lucene query string (e.g. "level:error AND service:api")
  • --sort <field:order> — Sort, e.g. "@timestamp:desc"
  • --source <fields> — Comma-separated fields to return (_source filtering)
  • --size <n> — Maximum number of hits to return
  • --from <n> — Offset of the first hit
  • --timeout-ms <ms> — Client-side HTTP timeout in milliseconds

pncli elasticsearch count

Count documents matching a query

  • --index <name> required — Index, data stream, alias or wildcard pattern; comma-separate several
  • --query <json> — Query DSL clause as JSON
  • --q <query-string> — Lucene query string

Kibana

pncli kibana status

Show Kibana version and overall status

pncli kibana spaces list

List the spaces the API key can see

pncli kibana dashboards list

List dashboards (id, title, description, last updated)

  • --search <text> — Match dashboard titles; supports a trailing * wildcard (e.g. "payments*")
  • --page <n> — Page number
  • --per-page <n> — Results per page

pncli kibana dashboards export

Export dashboards as saved objects, including the visualizations and data views they reference

  • --id <ids...> required — Dashboard ID(s) to export
  • --no-references — Export only the dashboards themselves, not what they reference

pncli kibana data-views list

List data views (id, name, index pattern)

pncli kibana rules list

List alerting rules with their schedule and last execution status

  • --search <text> — Match rule names; supports a trailing * wildcard
  • --page <n> — Page number
  • --per-page <n> — Results per page

pncli kibana rules get

Get one alerting rule, including its params and actions

  • --id <id> required — Rule ID

Split.IO

pncli splitio workspaces list

List all Split.IO workspaces

pncli splitio environments list

List environments in a workspace

  • --workspace <id> required — Workspace ID

pncli splitio flags list

List feature flags in a workspace

  • --workspace <id> required — Workspace ID
  • --limit <n> — Maximum number of flags to return
  • --offset <n> — Pagination offset
  • --flag-set <name> — Filter by flag set name

pncli splitio flags get

Get a flag definition

  • --workspace <id> required — Workspace ID
  • --flag <name> required — Feature flag name
  • --environment <id> — Environment ID — include targeting rules for this environment

pncli splitio flags update

Submit a Change Request to replace a flag's full definition in an environment

  • --workspace <id> required — Workspace ID
  • --flag <name> required — Feature flag name
  • --environment <id> required — Environment ID
  • --mnemonic <text> required — Short Change Request title (mnemonic)
  • --description <text> required — Change Request description
  • --change-number <CHG> required — Change request number (e.g. CHG0001234)
  • --approvers <ids> — Comma-separated Split user IDs required to approve this CR
  • --input-file <path> — JSON file with the complete flag definition body (use - for stdin)
  • --yes — Skip interactive confirmation prompt

pncli splitio flags set-rule

Change one targeting rule without altering the rest of the flag definition

  • --workspace <id> required — Workspace ID
  • --flag <name> required — Feature flag name
  • --environment <id> required — Environment ID
  • --rule-index <n> required — Zero-based index of the targeting rule to update
  • --treatment <name> — Treatment to assign to the entire rule bucket
  • --weights <json> — JSON array of {treatment, size} objects for weighted distribution
  • --mnemonic <text> required — Short Change Request title (mnemonic)
  • --description <text> required — Change Request description
  • --change-number <CHG> required — Change request number (e.g. CHG0001234)
  • --approvers <ids> — Comma-separated Split user IDs required to approve this CR
  • --yes — Skip interactive confirmation prompt

pncli splitio flags set-default

Update the fallback default rule for traffic matching no targeting rule

  • --workspace <id> required — Workspace ID
  • --flag <name> required — Feature flag name
  • --environment <id> required — Environment ID
  • --treatment <name> required — Treatment to assign as the default
  • --mnemonic <text> required — Short Change Request title (mnemonic)
  • --description <text> required — Change Request description
  • --change-number <CHG> required — Change request number (e.g. CHG0001234)
  • --approvers <ids> — Comma-separated Split user IDs required to approve this CR
  • --yes — Skip interactive confirmation prompt

pncli splitio flags toggle

Enable or disable a single flag via a Change Request

  • --workspace <id> required — Workspace ID
  • --flag <name> required — Feature flag name
  • --environment <id> required — Environment ID
  • --enabled <bool> required — true to restore / false to kill the flag
  • --mnemonic <text> required — Short Change Request title (mnemonic)
  • --description <text> required — Change Request description
  • --change-number <CHG> required — Change request number (e.g. CHG0001234)
  • --approvers <ids> — Comma-separated Split user IDs required to approve this CR
  • --yes — Skip interactive confirmation prompt

pncli splitio flags batch-toggle

Enable or disable multiple flags from a JSON file (each creates its own Change Request)

  • --workspace <id> required — Workspace ID
  • --environment <id> required — Environment ID
  • --mnemonic <text> required — Short Change Request title prefix (mnemonic)
  • --description <text> required — Change Request description
  • --change-number <CHG> required — Change request number (e.g. CHG0001234)
  • --approvers <ids> — Comma-separated Split user IDs required to approve each CR
  • --input-file <path> — JSON file: array of {flag, enabled} objects (use - for stdin)
  • --yes — Skip interactive confirmation prompt

pncli splitio flags kill

Submit a Change Request to kill (disable) a flag

  • --workspace <id> required — Workspace ID
  • --flag <name> required — Feature flag name
  • --environment <id> required — Environment ID
  • --mnemonic <text> required — Short Change Request title (mnemonic)
  • --description <text> required — Change Request description
  • --change-number <CHG> required — Change request number (e.g. CHG0001234)
  • --approvers <ids> — Comma-separated Split user IDs required to approve this CR
  • --yes — Skip interactive confirmation prompt

pncli splitio flags restore

Submit a Change Request to restore a killed flag

  • --workspace <id> required — Workspace ID
  • --flag <name> required — Feature flag name
  • --environment <id> required — Environment ID
  • --mnemonic <text> required — Short Change Request title (mnemonic)
  • --description <text> required — Change Request description
  • --change-number <CHG> required — Change request number (e.g. CHG0001234)
  • --approvers <ids> — Comma-separated Split user IDs required to approve this CR
  • --yes — Skip interactive confirmation prompt

pncli splitio flags archive

Submit a Change Request to archive (delete definition of) a flag

  • --workspace <id> required — Workspace ID
  • --flag <name> required — Feature flag name
  • --mnemonic <text> required — Short Change Request title (mnemonic)
  • --description <text> required — Change Request description
  • --change-number <CHG> required — Change request number (e.g. CHG0001234)
  • --yes — Skip interactive confirmation prompt

pncli splitio change-requests list

List Change Requests for a workspace

  • --workspace <id> required — Workspace ID
  • --environment <id> — Filter by environment ID
  • --status <status> — Filter by status (REQUESTED, APPROVED, REJECTED, PUBLISHED)
  • --limit <n> — Maximum number of results
  • --offset <n> — Pagination offset

pncli splitio change-requests get

Get a Change Request by ID

  • --id <id> required — Change Request ID

Figma

pncli figma file

Get a Figma file — metadata, structure, and component/style inventory (or a single node with --node-id)

  • --document — Include the full document node tree (can be large; omitted by default)
  • --node-id <id> — Fetch only this node and its descendants instead of the whole file (overrides any node-id detected in the URL)

pncli figma comments

Get comments on a Figma file

  • --as-of <date> — ISO 8601 timestamp — return only comments created before this time

pncli figma versions

Get the version history of a Figma file

pncli figma project-files

List files in a Figma project

pncli figma me

Get the current Figma user (useful for verifying credentials)

Alation

pncli alation token status

Mint an API access token from the configured refresh token and report its expiry (verifies credentials)

pncli alation datasource list

List data sources

  • --include-undeployed — Include data sources whose setup is incomplete
  • --include-hidden — Include hidden data sources

pncli alation datasource get

Get a data source by ID

pncli alation schema list

List schemas, optionally within one data source

  • --ds <id> — Filter by data source ID
  • --name <name> — Filter by exact schema name
  • --limit <n> — Page size (max 1000)
  • --skip <n> — Number of results to skip

pncli alation schema get

Get a schema by ID

pncli alation table list

List tables (descriptions, custom fields, fully-qualified keys)

  • --ds <id> — Filter by data source ID
  • --schema <id> — Filter by schema ID
  • --schema-name <name> — Filter by schema name
  • --name <name> — Filter by exact table name
  • --search <text> — Case-insensitive substring match on table name
  • --limit <n> — Page size (max 1000)
  • --skip <n> — Number of results to skip

pncli alation table get

Get a table by ID, optionally with its columns

  • --columns — Also fetch the table's columns (up to 1000)

pncli alation column list

List columns of a table (types, descriptions, keys, custom fields)

  • --table <id> — Filter by table ID
  • --table-name <name> — Filter by table name
  • --schema <id> — Filter by schema ID
  • --ds <id> — Filter by data source ID
  • --name <name> — Filter by exact column name
  • --search <text> — Case-insensitive substring match on column name
  • --limit <n> — Page size (max 1000)
  • --skip <n> — Number of results to skip

pncli alation column get

Get a column by ID

Full-text search across the catalog

  • --limit <n> — Maximum results (default 20, max 10000)
  • --offset <n> — Index of the first result

pncli alation folder list

List folders in a Document Hub

  • --hub <id> — Document hub ID
  • --parent <id> — Parent folder ID (list its subfolders)
  • --search <text> — Filter on textual fields
  • --limit <n> — Page size (max 1000)
  • --skip <n> — Number of results to skip

pncli alation folder get

Get a Document Hub folder by ID

pncli alation document list

List documents in a Document Hub or folder

  • --hub <id> — Document hub ID
  • --folder <id> — Parent folder ID
  • --parent-document <id> — Parent document ID (list sub-documents)
  • --search <text> — Filter on all textual fields
  • --deleted — Return only deleted documents
  • --limit <n> — Page size (max 1000)
  • --skip <n> — Number of results to skip

pncli alation document get

Get a document by ID, including its custom field values

pncli alation document schema

Print the --input-file JSON schema and an example for document create/update

  • --example-only — Print only the runnable example JSON (no envelope) — pipeable straight into --input-file

pncli alation document create

Create a document (async — returns a job ID; check it with alation job get)

  • --title <title> — Document title
  • --description <text> — Document summary
  • --hub <id> — Document hub ID
  • --folder <id> — Parent folder ID
  • --template <id> — Template ID (required when custom fields are set)
  • --parent-document <id> — Parent document ID for a sub-document
  • --input-file <path> — JSON file with title/description/hub/folder/template/fields (see alation document schema); "-" reads stdin

pncli alation document update

Update a document (async — returns a job ID; custom field values replace existing values per field)

  • --title <title> — New title
  • --description <text> — New summary
  • --folder <id> — Move to this parent folder
  • --template <id> — Template ID (required when custom fields are set)
  • --input-file <path> — JSON file with title/description/folder/template/fields (see alation document schema); "-" reads stdin

pncli alation job get

Get the status of a bulk job (returned by document create/update)

Sauce Labs

pncli saucelabs status

Sauce Labs service status (operational flag, wait time)

pncli saucelabs concurrency

Concurrency allowed and in use for your organization and team (also verifies credentials)

pncli saucelabs platforms

Supported OS/browser/device platforms

  • --api <api> — Automation API: all, appium, webdriver

pncli saucelabs job list

List your recent jobs

  • --limit <n> — Maximum number of jobs to return
  • --skip <n> — Number of jobs to skip
  • --from <time> — Only jobs created after this time (Unix seconds or ISO 8601)
  • --to <time> — Only jobs created before this time (Unix seconds or ISO 8601)

pncli saucelabs job get

Get one job: status, platform, timings, and log/video URLs

pncli saucelabs job update

Update a job's name, build, tags, result, or visibility

  • --name <name> — Job name
  • --build <build> — Build name to group the job under
  • --tags <tags> — Comma-separated tags; replaces the existing tags
  • --passed — Mark the job as passed
  • --failed — Mark the job as failed
  • --public <visibility> — Visibility: public, public restricted, share, team, private

pncli saucelabs job stop

Stop a running job

pncli saucelabs job delete

Delete a job and all of its assets

pncli saucelabs job assets

List the asset files a job produced (logs, video, screenshots) — names only, no download

pncli saucelabs rdc-job list

List real-device jobs

  • --limit <n> — Maximum number of jobs to return
  • --offset <n> — Number of jobs to skip
  • --live — Only manual (live) tests

pncli saucelabs rdc-job get

Get one real-device job: device, result, timings, and log URLs

pncli saucelabs rdc-job update

Update a real-device job's name, build, tags, or result

  • --name <name> — Job name
  • --build <build> — Build name
  • --tags <tags> — Comma-separated tags; replaces the existing tags
  • --passed — Mark the job as passed
  • --failed — Mark the job as failed

pncli saucelabs rdc-job stop

Stop a running real-device job

pncli saucelabs rdc-job delete

Delete a real-device job (owner, team admin, or org admin only)

pncli saucelabs build list

List builds

  • --source <source> — Build source: vdc (virtual devices) or rdc (real devices)
  • --status <status> — Filter by status (repeatable or comma-separated): running, error, failed, complete, success
  • --name <name> — Filter by build name
  • --start <time> — Only builds started after this time (Unix seconds or ISO 8601)
  • --end <time> — Only builds ended before this time (Unix seconds or ISO 8601)
  • --limit <n> — Maximum number of builds to return
  • --offset <n> — Number of builds to skip
  • --sort <order> — Sort by creation time: asc or desc

pncli saucelabs build get

Get one build with its job counts

  • --source <source> — Build source: vdc (virtual devices) or rdc (real devices)

pncli saucelabs build jobs

List the jobs in a build

  • --source <source> — Build source: vdc (virtual devices) or rdc (real devices)
  • --failed — Only failed jobs
  • --errored — Only errored jobs
  • --passed — Only passed jobs
  • --running — Only running jobs
  • --queued — Only queued jobs
  • --completed — Only completed jobs
  • --finished — Only finished jobs
  • --faulty — Only faulty (failed or errored) jobs
  • --modified-since <time> — Only jobs modified since this ISO 8601 time

pncli saucelabs build for-job

Get the build a job belongs to

  • --source <source> — Build source: vdc (virtual devices) or rdc (real devices)

pncli saucelabs device list

List real devices your account can use

  • --name <regex> — Device name (regex), for example "iPhone." or "Samsung Galaxy S2[34]."
  • --os <os> — Operating system: android or ios
  • --os-version <version> — OS major version or regex, for example 17 or "1[78]"
  • --type <type> — Device type: phone or tablet

pncli saucelabs device get

Get one device's full descriptor (hardware, OS, screen)

pncli saucelabs device status

Live availability of real devices (AVAILABLE, IN_USE, CLEANING, ...)

  • --state <state> — Only devices in this state: available, in_use, cleaning, maintenance, rebooting, offline
  • --name <regex> — Device name (regex)
  • --private-only — Only your organization's private devices

pncli saucelabs session list

List your device sessions

  • --state <state> — Only sessions in this state: pending, creating, active, closing, closed, errored
  • --device-name <regex> — Device name (regex)

pncli saucelabs session create

Reserve a real device. Returns immediately in PENDING state unless --wait is passed

  • --device-name <regex> — Device name or regex, for example "iPhone 15.*" (any device when omitted)
  • --os <os> — Operating system: android or ios
  • --tunnel-name <name> — Route device traffic through this Sauce Connect tunnel
  • --tunnel-owner <username> — Owner of a shared tunnel
  • --duration <iso8601> — Session length as an ISO 8601 duration, for example PT30M (default 6h; public devices cap at 1h)
  • --wait — Poll until the session is ACTIVE (or fails) before returning
  • --timeout <seconds> — Maximum seconds to wait with --wait

pncli saucelabs session get

Get a session: state, device, expiry, Appium URL, and live-view link

pncli saucelabs session delete

Close a session and release the device

  • --reboot — Reboot the device after closing (private devices only)

pncli saucelabs session open-url

Open a URL on the device (Chrome on Android; Safari or a deep link on iOS)

pncli saucelabs session shell

Run an ADB shell command on an Android device (public devices allow only a safe subset)

pncli saucelabs session install-app

Install an app from Sauce app storage onto the device (runs in the background)

  • --launch — Launch the app once installed
  • --no-instrumentation — Install without Sauce instrumentation

pncli saucelabs session installations

List app installations on the device and their status

pncli saucelabs session launch-app

Launch an installed app

  • --bundle-id <id> — iOS bundle ID
  • --package-name <name> — Android package name
  • --activity <name> — Android activity to launch

pncli saucelabs session uninstall-app

Uninstall an app

  • --bundle-id <id> — iOS bundle ID
  • --package-name <name> — Android package name

pncli saucelabs session settings

Change device settings: orientation (both), locale and animations (Android only)

  • --orientation <orientation> — Screen orientation: portrait or landscape
  • --locale <locale> — Locale, for example en_US (Android only)
  • --animations <on|off> — Enable or disable system animations (Android only)

pncli saucelabs session start-test

Start recording a test (a job) inside the session

  • --name <name> — Test name
  • --build <build> — Build name
  • --tags <tags> — Comma-separated tags
  • --video — Record video
  • --device-logs — Capture device logs
  • --network-capture — Capture network traffic
  • --screenshots — Capture screenshots
  • --appium-logs — Capture Appium logs

pncli saucelabs session end-test

End the active test in the session, optionally recording its result

  • --passed — Mark the test as passed
  • --failed — Mark the test as failed

pncli saucelabs session tests

List the tests recorded in a session, with links to each job

pncli saucelabs session network-profiles

List the network throttling profiles available to a session

pncli saucelabs session network

Throttle the device network with a named profile or explicit conditions, or --reset to clear

  • --profile <name> — Named profile from network-profiles, for example 4G-fast
  • --download <kbps> — Download speed in kbps (0-50000)
  • --upload <kbps> — Upload speed in kbps (0-50000)
  • --latency <ms> — Added latency in ms (0-3000)
  • --loss <percent> — Packet loss percent (0-100)
  • --reset — Remove all throttling

pncli saucelabs session appium

Get the session's Appium server URL, or --start one

  • --start — Start an Appium server for the session
  • --appium-version <version> — Appium version to start (see appium-versions)

pncli saucelabs appium-versions

Appium versions available for real-device sessions, with end-of-life dates

pncli saucelabs tunnel list

List your tunnels with full details

  • --all — Include tunnels shared with you

pncli saucelabs tunnel get

Get one tunnel

pncli saucelabs tunnel jobs

Number of jobs currently running through a tunnel

pncli saucelabs tunnel stop

Shut down a tunnel

pncli saucelabs storage files

List uploaded app files

  • --query <text> — Search file names and app metadata
  • --kind <kind> — App kind: android or ios
  • --page <n> — Page number (starts at 1)
  • --per-page <n> — Results per page (max 100)

pncli saucelabs storage groups

List app groups (all versions of one app)

  • --query <text> — Search group names
  • --kind <kind> — App kind: android or ios
  • --page <n> — Page number (starts at 1)
  • --per-page <n> — Results per page (max 100)

pncli saucelabs team list

List teams

  • --name <prefix> — Team name prefix

pncli saucelabs team get

Get one team and its settings

pncli saucelabs team members

List a team's members

pncli saucelabs users

Look up users in your organization

  • --username <username> — Exact username
  • --phrase <text> — Search username, name, and email
  • --limit <n> — Maximum results (default 20, max 100)
  • --offset <n> — Number of results to skip

Skills

pncli skills install

Install the bundled pncli skills (project scope by default; --scope user for every repo)

  • --agent <agent> — Target agent host: codex | github-copilot | claude-code
  • --scope <scope> — Installation scope: project | user
  • --claude — Shorthand for --agent claude-code
  • --all-agents — Install to every supported agent host in one run
  • --target <dir> — Override install directory (ignores --agent and --scope)

pncli skills list

List locally installed skills

  • --agent <agent> — Target agent host: codex | github-copilot | claude-code
  • --scope <scope> — Installation scope: project | user
  • --claude — Shorthand for --agent claude-code
  • --target <dir> — Override skills directory to scan

pncli skills uninstall

Uninstall a skill (defaults to user scope, matching the marketplace install target; pass --scope project for skills installed via skills install)

  • --agent <agent> — Target agent host: codex | github-copilot | claude-code
  • --scope <scope> — Installation scope to uninstall from: project | user
  • --claude — Shorthand for --agent claude-code
  • --target <dir> — Override skills directory

pncli skills locations

List every skills install path pncli knows about, with per-directory skill counts

pncli skills status

Show every installed skill with its plugin, marketplace, and upstream remote

  • --marketplace <name> — Only show skills installed from this marketplace (name or clone URL)
  • --plugin <name> — Only show skills belonging to this plugin
  • --source <source> — Filter by provenance: marketplace | bundled | untracked
  • --agent <agent> — Only show locations for this agent host: codex | github-copilot | claude-code
  • --scope <scope> — Only show this scope: project | user | custom

pncli skills forget-target

Stop tracking a custom --target directory in skills locations / status (does not delete any files)

pncli skills guide

Explain how skills management works: bundled skill vs marketplace plugins, agent hosts, scopes, sync, and auth

  • --sections — List the section names as JSON instead of printing the guide

pncli skills marketplace add

Register a new marketplace, clone it, install all its plugins, and apply its shipped AGENTS.md / CLAUDE.md (setup is an alias)

  • --name <name> — Human-readable name for this marketplace (default: derived from URL)
  • --branch <branch> — Branch to clone (default: remote HEAD)
  • --token <token> — HTTP access token for authenticated clone and pull (GitHub PAT or Bitbucket token)
  • --keychain — Store --token in the OS keychain instead of plaintext config (see: pncli config keychain --help)
  • --username <username> — Username sent with the token (default: x-access-token on github.com, x-token-auth elsewhere; Bitbucket Data Center personal tokens usually need your username)
  • --provider <provider> — Git host type, when detection guesses wrong: github | bitbucket | ado | git
  • --agent <agent> — Target agent host for plugin install: codex | github-copilot | claude-code (default: codex)
  • --claude — Shorthand for --agent claude-code
  • --all-agents — Install to every supported agent host in one run
  • --no-instructions — Do not apply the shipped AGENTS.md / CLAUDE.md to user-level instructions files

pncli skills marketplace list

List all registered marketplaces

pncli skills marketplace update

Change a registered marketplace's token, username, or provider without re-adding it (rotate a token here)

  • --token <token> — New access token for clone and pull
  • --keychain — Store --token in the OS keychain instead of plaintext config
  • --username <username> — Username sent with the token (Bitbucket Data Center personal tokens usually need your username)
  • --provider <provider> — Git host type: github | bitbucket | ado | git
  • --clear-token — Remove the marketplace's own token (falls back to the provider token pncli has, if any)
  • --clear-username — Go back to the default username
  • --clear-provider — Go back to automatic provider detection

pncli skills marketplace plugins

List the plugins available in a registered marketplace

pncli skills marketplace remove

Remove a registered marketplace from the config (does not delete the local clone)

pncli skills marketplace sync

With no arguments, refreshes every already-installed plugin from every marketplace (same as --marketplace all --installed-only). Pass --force, a plugin, or --marketplace to get the interactive picker instead.

  • --marketplace <name> — Marketplace name to sync, or "all" to sync every registered marketplace (skips interactive selection)
  • --agent <agent> — Target agent host: codex | github-copilot | claude-code (default: codex)
  • --claude — Shorthand for --agent claude-code
  • --all-agents — Install to every supported agent host in one run
  • --force — Opt into the interactive picker instead of the installed-only shorthand (plugins are always refreshed from the local clone, with or without new upstream changes)
  • --installed-only — Only sync plugins that are already installed — skip plugins newly added to the marketplace
  • --no-instructions — Do not apply the shipped AGENTS.md / CLAUDE.md to user-level instructions files

pncli skills marketplace instructions list

Show which marketplaces ship instructions and whether each agent's user-level file has them installed and current

  • --marketplace <name> — Only report this marketplace (name or clone URL)

pncli skills marketplace instructions install

Apply (or refresh) the shipped instructions of one or every marketplace into the agent's user-level file

  • --marketplace <name> — Marketplace to apply (name or clone URL); default: every registered marketplace that ships instructions
  • --agent <agent> — Target agent host: codex | github-copilot | claude-code (default: codex)
  • --claude — Shorthand for --agent claude-code
  • --all-agents — Apply to every supported agent host in one run

pncli skills marketplace instructions remove

Strip a marketplace's instructions block from the agent's user-level file (everything else in the file is kept)

  • --agent <agent> — Target agent host: codex | github-copilot | claude-code (default: codex)
  • --claude — Shorthand for --agent claude-code
  • --all-agents — Remove from every supported agent host in one run

pncli skills marketplace purge-plugin

Remove all skills installed from a specific plugin (or all plugins in a marketplace)

  • --marketplace <name> — Restrict purge to skills from this marketplace (by name or repo URL)
  • --agent <agent> — Target agent host: codex | github-copilot | claude-code (default: codex)
  • --claude — Shorthand for --agent claude-code
  • --scope <scope> — Installation scope: project | user (default: user)
  • --target <dir> — Override skills directory

pncli skills marketplace disable

Temporarily deactivate a plugin's skills without deleting them (re-enable with marketplace enable)

  • --marketplace <name> — Restrict to skills from this marketplace (by name or repo URL)
  • --agent <agent> — Target agent host: codex | github-copilot | claude-code (default: codex)
  • --claude — Shorthand for --agent claude-code
  • --scope <scope> — Installation scope: project | user (default: user)
  • --target <dir> — Override skills directory

pncli skills marketplace enable

Re-activate a previously disabled plugin's skills

  • --marketplace <name> — Restrict to skills from this marketplace (by name or repo URL)
  • --agent <agent> — Target agent host: codex | github-copilot | claude-code (default: codex)
  • --claude — Shorthand for --agent claude-code
  • --scope <scope> — Installation scope: project | user (default: user)
  • --target <dir> — Override skills directory

pncli skills marketplace manage

Manage marketplaces and plugins: toggle plugins on/off, sync every marketplace, apply shipped AGENTS.md / CLAUDE.md, add or remove marketplaces (interactive)

  • --agent <agent> — Target agent host: codex | github-copilot | claude-code (default: codex)
  • --claude — Shorthand for --agent claude-code
  • --scope <scope> — Installation scope: project | user (default: user)
  • --target <dir> — Override skills directory

pncli skills purge-user

Remove all skills from the user-level skills folder for the target agent

  • --agent <agent> — Target agent host: codex | github-copilot | claude-code (default: codex)
  • --claude — Shorthand for --agent claude-code
  • --force — Skip confirmation — remove all skills without prompting

Skills — Git auth

pncli skills git-auth enable

Configure git to authenticate to marketplace repositories with pncli's credential (helper or OS keychain)

  • --marketplace <name> — Only this marketplace (default: every marketplace that has a credential)
  • --host <host> — A whole-host entry instead, answered with the provider token pncli has for that host
  • --mode <mode> — helper (git asks pncli) or keychain (store in the OS credential store)

pncli skills git-auth disable

Remove pncli's git credential entries and restore what they replaced (optionally also the OS keychain copy)

  • --marketplace <name> — Only this marketplace's entries
  • --host <host> — Only the whole-host entry for this host
  • --forget-keychain — Also erase the credential git stored in the OS keychain

pncli skills git-auth status

Show, per marketplace (and whole-host entry), how git authenticates and whether it sends the token pncli uses

  • --marketplace <name> — Only this marketplace

JWT

pncli jwt decode <token>

Decode a JWT token and output header, payload, and signature as JSON