Command Reference

Complete documentation for every slcli command group, option, and output format.

Command Groups

slcli organizes commands into logical groups. Every list command supports --format and --take options.

testmonitor

Test results, products, steps, measurements

slcli testmonitor result list

asset

Hardware assets, calibration, fleet summary

slcli asset list

system

Managed systems, package comparison, jobs, reports

slcli system list

workitem

Work items, templates, workflows

slcli workitem list

template

Test plan templates

slcli template list

notebook

Jupyter notebooks, execution records

slcli notebook manage list

routine

Event-action routines (v1 & v2)

slcli routine list

feed

NI Package Manager feeds & packages

slcli feed list

file

File upload, download, query, watch

slcli file list

tag

Tags: create, read, set values

slcli tag list

user

User & service account management

slcli user list

auth

Authorization policies & templates

slcli auth policy list

workspace

Workspace listing, info, disable

slcli workspace list

webapp

Static web app lifecycle

slcli webapp list

comment

Comments on any resource

slcli comment list

customfield

Custom field configurations

slcli customfield list

example

Demo environment provisioning

slcli example list

Output Formats

All list and get commands support --format/-f with table (default) or json.

  • Table — colored, paginated (25 rows per page by default), with box-drawing and truncation
  • JSON — complete results without pagination, ideal for scripting and jq processing
# Human-readable table
slcli testmonitor result list

# Machine-readable JSON
slcli testmonitor result list --format json

Flag Conventions

FlagDescription
--format/-fOutput format: table or json
--take/-tNumber of items to return (default: 25)
--output/-oFile path for export operations
--workspace/-wFilter by workspace name or ID
--id/-iResource identifier
--fileInput file for import operations
--filterDynamic LINQ or API filter expression
--yes/-ySkip confirmation prompts
--forceForce overwrite or skip confirmation

testmonitor

Query test results, products, steps, and measurements from the Test Monitor service.

Results

# List test results with filters
slcli testmonitor result list --status passed --program-name "Calibration"

# Filter by part number and serial number
slcli testmonitor result list --part-number "cRIO-9030" --serial-number "abc-123"

# Advanced filter with substitutions
slcli testmonitor result list \
  --filter '(operator == @0) && (totalTimeInSeconds < @1)' \
  --substitution "user1" \
  --substitution 30

# Summary statistics grouped by status
slcli testmonitor result list --summary --group-by status

# Get result details with steps and measurements
slcli testmonitor result get <result-id> --include-steps --include-measurements

Products

# List products with filters
slcli testmonitor product list --name "cRIO" --family "cRIO"

# Create a product
slcli testmonitor product create --part-number "156502A-11L" \
  --name "cRIO-9030" --family "cRIO" \
  --keyword "embedded" --property "region=us"

# Update a product
slcli testmonitor product update <product-id> --name "cRIO-9030 Rev B"

# Delete products
slcli testmonitor product delete --yes <id1> <id2>

asset

Manage hardware assets with rich filtering, calibration tracking, and location history.

List & Filter

# Filter by model, serial number, bus type
slcli asset list --model "PXI-4071"
slcli asset list --serial-number "01BB877A"
slcli asset list --bus-type PCI_PXI

# Show connected & calibratable assets
slcli asset list --connected --calibratable

# Advanced filter
slcli asset list --filter 'ModelName.Contains("PXI") and BusType = "PCI_PXI"'

# Inline summary statistics
slcli asset list --summary

Get Details

# Detailed view with calibration history
slcli asset get <asset-id> --include-calibration

Fleet Summary

slcli asset summary

Calibration & Location History

# Calibration history
slcli asset calibration <asset-id> --take 10

# Location history with date range
slcli asset location-history <asset-id> \
  --from "2025-12-01T00:00:00Z" \
  --to "2025-12-02T00:00:00Z"

Create, Update, Delete

slcli asset create --model-name "PXI-4071" --serial-number "SN-123" --bus-type PCI_PXI
slcli asset update <asset-id> --name "Updated Name"
slcli asset delete <asset-id> --force

system

Manage registered systems, compare software and assets, inspect packages and jobs, and generate reports.

List & Filter

slcli system list --state CONNECTED --os "Windows"
slcli system list --has-package "ni-daqmx"
slcli system list --has-keyword "production"
slcli system list --property "Location=Building 5"

Get System Details

# Basic details
slcli system get <system-id>

# Include all related resources
slcli system get <system-id> --include-all

# Individual includes
slcli system get <system-id> --include-packages --include-feeds
slcli system get <system-id> --include-assets --include-alarms
slcli system get <system-id> --include-jobs --include-results --include-workitems

Compare Systems

# Compare by alias
slcli system compare "PXI Controller A" "PXI Controller B"

# Compare by system ID with JSON output
slcli system compare <system-a> <system-b> --format json

Compares installed software and connected assets across two systems. Accepts system IDs or aliases and highlights package-only differences, version differences, asset count mismatches, and slot differences.

Summary & Reports

slcli system summary
slcli system report --type SOFTWARE --output software_report.csv
slcli system report --type HARDWARE --filter 'connected.data.state = "CONNECTED"' --output hw_report.csv

Job Management

slcli system job list --state FAILED
slcli system job get <job-id>
slcli system job summary
slcli system job cancel <job-id>

Update & Remove

slcli system update <system-id> --alias "New Name" --workspace "Production"
slcli system remove <system-id> --force

workitem

Full work item lifecycle — create, schedule, execute, and manage associated templates and workflows.

CRUD

# List and filter
slcli workitem list --state NEW --workspace "Production"

# Create
slcli workitem create --name "Battery Cycle Test" --type testplan --state NEW \
  --part-number "P-BAT-001"

# Create from a template
slcli workitem create-from-template <template-id> --name "My Test Run"

# Update
slcli workitem update <id> --state IN_PROGRESS

# Delete
slcli workitem delete <id1> <id2> --yes

Execute & Schedule

slcli workitem execute <id> --action START
slcli workitem schedule <id> --start 2026-03-01T09:00:00Z \
  --system <system-id> --fixture <slot-id> --dut <dut-id>

Templates

slcli workitem template list
slcli workitem template create --name "Battery Test" --type testplan --template-group "Functional"
slcli workitem template update <id> --name "Updated Template"
slcli workitem template delete <id> --yes

Workflows

# List, get, export
slcli workitem workflow list
slcli workitem workflow get --name "Battery Test Workflow"
slcli workitem workflow export --id <id> --output workflow.json

# Create scaffold, import, update
slcli workitem workflow init --name "My Workflow"
slcli workitem workflow import --file workflow.json
slcli workitem workflow update --id <id> --file updated.json

# Visual preview (Mermaid diagram)
slcli workitem workflow preview --id <id>
slcli workitem workflow preview --file my-workflow.json --format mmd --output wf.mmd

template

Manage test plan templates — scaffold, list, export, import, and delete.

# Create a template scaffold
slcli template init --name "Battery Test Template" --template-group "Production Tests"

# List and filter
slcli template list --workspace "Production" --filter "battery"

# Get / export
slcli template get --name "My Template" --format json
slcli template export --name "My Template" --output template.json

# Import / delete
slcli template import --file template.json
slcli template delete --id <template-id>

notebook

Manage Jupyter notebooks — create, download, update, and assign interfaces. Execute records can be listed via the execute subgroup.

# Initialize a local notebook
slcli notebook init --name MyLocalNotebook.ipynb

# List remote notebooks
slcli notebook manage list --workspace MyWorkspace

# Download content
slcli notebook manage download --name MyNotebook --output mynotebook.ipynb

# Create from file
slcli notebook manage create --file mynotebook.ipynb --workspace MyWorkspace --name MyNotebook

# Assign an interface
slcli notebook manage set-interface --id <id> --interface "File Analysis"

# List execution records
slcli notebook execute list --status succeeded --format json

Available interfaces: Assets Grid, Data Table Analysis, Data Space Analysis, File Analysis, Periodic Execution, Resource Changed Routine, Specification Analysis, Systems Grid, Test Data Analysis, Test Data Extraction, Work Item Automations, Work Item Operations, Work Item Scheduler.

routine

Manage event-action routines across two API versions (v2 default, v1 for notebook execution).

# List routines
slcli routine list --enabled --event-type tag

# Create v2 event-action routine
slcli routine create --name "Tag alarm" \
  --event '{"type":"tag","triggers":[...]}' \
  --actions '[{"type":"alarm","configuration":{...}}]' \
  --enabled

# Create v1 scheduled notebook routine
slcli routine create --api-version v1 --name "Daily report" \
  --type SCHEDULED --notebook-id <id> \
  --schedule '{"startTime":"2026-01-01T08:00:00Z","repeat":"DAY"}'

# Enable / disable / delete
slcli routine enable <id>
slcli routine disable <id>
slcli routine delete <id> --yes

feed

Manage NI Package Manager feeds and packages for SLE and SLS.

# List feeds
slcli feed list

# Create a feed
slcli feed create --name my-feed --platform windows --workspace Default

# List packages in a feed
slcli feed package list --feed-id <feed-id> --format json

# Upload a package (wait for completion)
slcli feed package upload --feed-id <feed-id> --file mypkg.nipkg --wait

# Delete a feed
slcli feed delete --id <feed-id> --yes

file

Full file lifecycle — upload, download, query, update metadata, and watch directories.

# Upload
slcli file upload /path/to/myfile.txt --workspace <workspace-id>

# Download
slcli file download <file-id> --output /path/to/save/file.txt

# Query with filter
slcli file query --filter 'name:("*report*") AND extension:("pdf")'

# Watch folder for auto-upload
slcli file watch /path/to/watch --pattern "*.csv" --recursive

# Update metadata
slcli file update-metadata <file-id> --name "new-name.txt"

tag

Create, read, update tags and manage their values. All operations are workspace-scoped.

# List and filter
slcli tag list --workspace "Production" --keywords "sensor,temperature"

# Create
slcli tag create "sensor.temp" --type DOUBLE --keywords "lab" --collect-aggregates

# Set / get values
slcli tag set-value "sensor.temp" "42.5"
slcli tag get-value "sensor.temp" --include-aggregates

# View details with aggregates
slcli tag get "sensor.temp" --include-aggregates

# Update and delete
slcli tag update "sensor.temp" --keywords "active" --properties "status=ok" --merge
slcli tag delete "sensor.temp"

Supported types: DOUBLE, INT, STRING, BOOLEAN, U_INT64, DATE_TIME

user

Comprehensive user management — list, create, update, and delete regular users and service accounts.

# List users with filter
slcli user list --filter 'firstName.StartsWith("John")' --type user

# Get user by email
slcli user get --email "john.doe@example.com"

# Create user
slcli user create --first-name "Jane" --last-name "Smith" \
  --email "jane@example.com" --policies "policy1,policy2"

# Create service account
slcli user create --type service --first-name "CI Bot"

# Update and delete
slcli user update --id <user-id> --email "new@example.com"
slcli user delete --id <user-id>

auth

Manage authorization policies and templates for workspace-based access control.

Policies

slcli auth policy list --type custom
slcli auth policy get <policy-id>
slcli auth policy create <template-id> --name "my-policy" --workspace <ws-id>
slcli auth policy update <policy-id> --name "new-name"
slcli auth policy diff <policy-id-1> <policy-id-2>
slcli auth policy delete <policy-id> --force

Templates

slcli auth template list
slcli auth template get <template-id>
slcli auth template delete <template-id>

User Integration

# Create user with workspace-scoped policies
slcli user create --type user --first-name Jane --last-name Doe \
  --email jane@example.com \
  --workspace-policies "DevWorkspace:template-dev,ProdWorkspace:template-prod"

workspace

Workspace listing, details, and administration.

slcli workspace list --filter "prod" --include-disabled
slcli workspace info --name "Production" --format json
slcli workspace disable --id <workspace-id>

webapp

Scaffold, pack, publish, and manage SystemLink web applications.

# Scaffold the Angular starter (installs AI skills automatically)
    slcli webapp init ./fleet-dashboard

    # Create Plugin Manager packaging config
    slcli webapp manifest init ./fleet-dashboard \
      --description "A dashboard for monitoring fleet health and calibration status." \
      --section Dashboard \
      --maintainer "Your Name <you@example.com>" \
      --license MIT \
      --icon-file ./icon.svg

    # Follow START_HERE.md to bootstrap Angular in place, then pack from config
    slcli webapp pack --config ./fleet-dashboard/nipkg.config.json

    # Publish (folder or .nipkg)
    slcli webapp publish ./dist/fleet-dashboard/browser --name MyApp --workspace Default

# List, get, open, delete
slcli webapp list --filter "MyApp"
slcli webapp get --id <id>
slcli webapp open --id <id>
slcli webapp delete --id <id>

comment

Manage comments on any SystemLink resource. Supports Markdown and @-mentions with email notifications.

# List comments on a resource
slcli comment list --resource-type testmonitor:Result --resource-id <result-id>

# Add a comment
slcli comment add -r testmonitor:Result -i <result-id> \
  -w "My Workspace" --message "Calibration looks good."

# Update / delete
slcli comment update <comment-id> --message "Revised: out of spec."
slcli comment delete <id1> <id2>

Supported resource types: testmonitor:Result, niapm:Asset, nisysmgmt:System, workorder:workorder, workitem:workitem, DataSpace

customfield

Manage custom field configurations, groups, and fields. Includes a web-based visual editor.

# List configurations
slcli customfield list --workspace "Production"

# Export / create / update
slcli customfield export --id <config-id> --output config.json
slcli customfield create --file config.json
slcli customfield update --file config.json

# Delete (recursive by default)
slcli customfield delete --id <config-id>

# Launch visual web editor
slcli customfield edit --id <config-id>

# Initialize a new configuration template
slcli customfield init --name "My Config" --workspace "MyWorkspace" \
  --resource-type workorder:workorder

example

Provision complete demo environments for training and evaluation.

# Discover available examples
slcli example list

# Inspect an example
slcli example info demo-complete-workflow

# Install (with audit log)
slcli example install demo-complete-workflow \
  --workspace Training --audit-log install-log.json

# Dry-run
slcli example install demo-complete-workflow --workspace Training --dry-run

# Delete provisioned resources
slcli example delete demo-complete-workflow \
  --workspace Training --audit-log delete-log.json

Available examples:

  • demo-complete-workflow — end-to-end workflow with systems, assets, DUTs, plans, and results
  • demo-test-plans — focused test-plan setup with reusable assets and templates
  • exercise-5-1-parametric-insights — parametric test data for training exercises
  • exercise-7-1-test-plans — test plan creation and scheduling exercises
  • spec-compliance-notebooks — Jupyter notebooks for specification compliance analysis