Install AI Skills
Six bundled skills give your AI assistant current SystemLink domain knowledge across CLI operations, webapps, notebooks, test applications, packaging, and job debugging.
| Skill | What it teaches |
|---|---|
| slcli | How to query and manage SystemLink resources, build Nimble Angular webapps with @ni/nimble-angular and @ni/systemlink-clients-ts, create notebooks, debug jobs, package deployments, and handle other SystemLink workflows |
Install the bundled skills
Install the skills into the current repository or a personal assistant directory before you start asking for SystemLink-specific help.
# Project-scoped install for most agents
slcli skill install --client agents --scope project
# Personal install for both supported clients
slcli skill install --client all --scope personal
Ask your assistant about SystemLink
Once the bundled skills are installed, ask natural-language questions about the exact SystemLink workflow you want to build or debug. Try prompts like:
"Show me all failed test results from this week"
"Which assets need calibration?"
"Build me a fleet health dashboard for SystemLink"
"Create a SystemLink notebook that reports daily yield by station"
"Debug this stuck state.apply job from the Jobs API"
"Install the demo-complete-workflow example in the Training workspace"
Use the skills in context
Use project-scoped installs for repo-specific work and personal installs when you want the same SystemLink guidance available across multiple workspaces.
Tip: The skills follow the Agent Skills open standard. Use slcli skill install for personal or project-scoped installs depending on how broadly you want the skills available.
Build a Nimble Angular WebApp with AI
The bundled slcli skill includes the hosted webapp guidance your AI assistant needs: @ni/nimble-angular components, @ni/systemlink-clients-ts SDK usage, hash routing, CSP compliance, theme synchronization, and deployment. One command sets up everything your assistant needs.
Scaffold the project
webapp new creates the recommended hosted Angular starter with buildable routes, SystemLink hosting defaults, and publish scripts. Use webapp init only when you intentionally want the low-level manual path.
slcli webapp new fleet-dashboard
cd fleet-dashboard
The scaffolded directory includes:
- a buildable Angular 20 app shell with starter routes for common SystemLink layouts
README.md— local development, publish, and hosting guidance for the generated app
Use webapp init only when you want the manual bootstrap path with starter prompts and project-scoped skills preinstalled into .agents/skills.
Describe your webapp to AI
Open the project in your editor and describe what you need. Your AI assistant knows the full Nimble component library, SystemLink APIs, and deployment requirements — just describe your goals.
"I need a web dashboard for monitoring our production test
systems. It should show which systems are online, recent test
results, and any assets due for calibration."
"Create a page where I can browse recent test results,
filter by status and program name, and see a summary of
failure rates."
"Build a dashboard with key metrics: first-pass yield,
test throughput per hour, and a trend chart of failures
over the last 30 days."
Build and publish
# Create Plugin Manager packaging config
slcli webapp manifest init . \
--description "A dashboard for monitoring fleet health and calibration status." \
--section Dashboard \
--maintainer "Your Name <you@example.com>" \
--license MIT \
--icon-file ./icon.svg
ng build --configuration production
# Pack the app and generate manifest.json with the artifact SHA-256
slcli webapp pack --config nipkg.config.json
slcli webapp publish dist/<app-name> \
--name "Fleet Dashboard" \
--workspace Production
Open and iterate
# Open the deployed webapp
slcli webapp open --id <webapp-id>
# Re-publish after changes (same --name updates in place)
ng build --configuration production
slcli webapp publish dist/<app-name> \
--name "Fleet Dashboard" --workspace Production
Key patterns the skill teaches: nimble-theme-provider with automatic theme detection, APP_BASE_HREF via DI (no <base> tag), useHash: true routing, inlineCritical: false for CSP, same-origin cookie authentication, and the full Nimble component library (tables, tabs, buttons, drawers, dialogs, spinners, banners).
Provision Demo Environments
Instantly provision complete SystemLink environments with realistic data for demonstrations, training classes, and evaluation.
Available Examples
| Example | Contents | Time |
|---|---|---|
| demo-complete-workflow | Systems, assets, DUTs, templates, products, results | ~5 min |
| demo-test-plans | Locations, products, systems, assets, DUTs, test template | ~5 min |
| spec-compliance-notebooks | 3 Jupyter notebooks for spec compliance analysis | ~3 min |
| exercise-5-1-parametric-insights | 18 test results with parametric measurements, deliberate anomalies | ~5 min |
| exercise-7-1-test-plans | Test plan creation and scheduling exercises | ~5 min |
Install an Example
# Browse available examples
slcli example list
# Inspect what will be created
slcli example info demo-complete-workflow
# Dry-run (validate without creating)
slcli example install demo-complete-workflow --workspace Training --dry-run
# Install with audit log
slcli example install demo-complete-workflow \
--workspace Training \
--audit-log install-log.json
Clean Up
# Remove all resources from a previous install
slcli example delete demo-complete-workflow \
--workspace Training \
--audit-log delete-log.json
Training Exercises
The example datasets are designed for hands-on SystemLink training courses. Each exercise includes structured data with intentional patterns for students to discover.
Exercise 5-1: Parametric Insights
Students query and visualize 18 thermal cycle test results across three test stands to discover:
- TC-03 runs ~3–4 °C warmer than TC-01/TC-02 (calibration offset)
- TC-01 Cycle 5: internal resistance spike → FAIL
- TC-03 Cycle 4: cell temperature spike → FAIL
# Install the exercise data
slcli example install exercise-5-1-parametric-insights \
--workspace "Training Lab"
# Query the data with the AI skill
"Show me test results grouped by system for the Training Lab workspace.
Which test stand has consistently higher temperature readings?"
Exercise 7-1: Test Plans
Students learn to create and schedule test plans using templates and workflows.
slcli example install exercise-7-1-test-plans --workspace "Training Lab"
Multi-Environment Operations
Manage multiple SystemLink environments from a single terminal session using named profiles.
# Set up profiles for each environment
slcli login --profile dev --url "https://dev.example.com"
slcli login --profile staging --url "https://staging.example.com"
slcli login --profile prod --url "https://prod.example.com"
# Compare test results across environments
slcli -p dev testmonitor result list --summary --format json > dev-results.json
slcli -p prod testmonitor result list --summary --format json > prod-results.json
# Export templates from dev, import to staging
slcli -p dev template export --name "Battery Test" --output battery-test.json
slcli -p staging template import --file battery-test.json
# Migrate workflows between environments
slcli -p dev workitem workflow export --name "Production Flow" --output workflow.json
slcli -p staging workitem workflow import --file workflow.json
Readonly Mode for AI Agents
Create a readonly profile to let AI assistants query SystemLink safely without any risk of modifying data.
# Create a readonly profile for AI agents
slcli login --profile aiagent \
--url "https://prod.example.com" \
--api-key "your-api-key" \
--readonly
# AI can query freely
slcli -p aiagent testmonitor result list --summary
slcli -p aiagent system list --state CONNECTED
slcli -p aiagent asset list --calibratable --summary
# But mutations are blocked
slcli -p aiagent asset delete <id>
# ✗ Cannot delete: profile is in readonly mode
Best practice: Use readonly profiles with AI assistants so they can explore data without accidentally modifying production resources.
Automated File Uploads
Monitor a directory and automatically upload new files to SystemLink as they appear.
# Watch for new CSV files and upload them
slcli file watch /data/results --pattern "*.csv" --recursive
# Upload to a specific workspace
slcli file watch /data/results \
--workspace "Production" \
--pattern "*.csv" \
--recursive
# Move files after upload (prevents re-upload)
slcli file watch /data/inbox \
--move-to /data/uploaded \
--pattern "*.tdms"
# Delete files after successful upload
slcli file watch /data/inbox --delete-after-upload