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--branchis 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
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 list-comments
List comments on a Jira issue
--key <issue-key>required — Issue key
pncli jira search
Search Jira issues with JQL (consider --output-file for large results)
--jql <query>— JQL query string--max-results <n>— Maximum number of results
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
pncli jira link-issue
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\--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
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 on a pull request
--pr <pr-id>required — Pull request ID--comment-id <id>required — Comment ID--version <n>— Comment version
pncli bitbucket delete-comment
Delete a comment on a pull request
--pr <pr-id>required — Pull request ID--comment-id <id>required — Comment ID--version <n>— Comment version
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 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
pncli confluence search
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--markdownis 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--markdownis 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-filefor 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-filefor 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-filefor 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-filefor 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-filefor 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-filefor 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-filefor 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--sourcesonatypeiq)
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
Doctor
pncli doctor
Diagnose pncli setup: config files, credentials, and agent skills
--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
pncli ado work link
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)
pncli ado work search
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
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-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
pncli artifactory search
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
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 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
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 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
--document— Include the full document node tree (can be large; omitted by default)
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)
Skills
pncli skills install
Install pncli skills into the current repo
--scope <scope>— Installation scope: project | user--claude— Shorthand for--agentclaude-code--all-agents— Install to every supported agent host in one run--target <dir>— Override install directory (ignores--agentand--scope)
pncli skills list
List locally installed skills
--scope <scope>— Installation scope: project | user--claude— Shorthand for--agentclaude-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)
--scope <scope>— Installation scope to uninstall from: project | user--claude— Shorthand for--agentclaude-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--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 marketplace add
Register a new marketplace, clone it, and install all its plugins
pncli skills marketplace setup
Alias for marketplace add — clone a marketplace and install all its plugins
pncli skills marketplace list
List all registered marketplaces
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
Pull latest marketplace content and install plugin skills (interactive picker when no plugin is given)
--marketplace <name>— Marketplace name to sync, or "all" to sync every registered marketplace (skips interactive selection)--claude— Shorthand for--agentclaude-code--force— Reinstall even if a marketplace has no new changes (applies to single-plugin and "all" installs alike)--installed-only— Only sync plugins that are already installed — skip plugins newly added to the marketplace
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)--claude— Shorthand for--agentclaude-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, add or remove marketplaces (interactive)
--claude— Shorthand for--agentclaude-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
--claude— Shorthand for--agentclaude-code--force— Skip confirmation — remove all skills without prompting
JWT
pncli jwt decode <token>
Decode a JWT token and output header, payload, and signature as JSON