Best for
- Use this CLI when an agent or technician needs fleet-wide answers across many NinjaOne organizations - patch compliance, unprotected-device detection, AV threat blast-radius, OS end-of-life exposure, software sprawl, or…
Servosity/msp-skills/skills/ninjaone/SKILL.md
Every NinjaOne report, plus a local store that answers fleet-wide questions no single API call can: patch compliance, backup gaps, AV blast-radius, health, drift. Trigger phrases: `check patch compliance in ninjaone`, `which ninjaone devices have no backup`, `ninjaone av threat sweep`, `ninjaone fleet health for an org`, `show stale ninjaone devices`, `use ninjaone`, `run ninjaone`.
Decision brief
Every NinjaOne report, plus a local store that answers fleet-wide questions no single API call can: patch compliance, backup gaps, AV blast-radius, health, drift. Trigger phrases: `check patch compliance in ninjaone`, `which ninjaone devices have no backup`, `ninjaone av threat sweep`, `ninjaone fleet health for an org`, `show stale ninjaone devices`, `use…
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/Servosity/msp-skills --skill "skills/ninjaone"Inspect the Agent Skill "ninjaone" from https://github.com/Servosity/msp-skills/blob/30e109db0872897de0b88adb38d81d4c292da3ae/skills/ninjaone/SKILL.md at commit 30e109db0872897de0b88adb38d81d4c292da3ae. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
Sync the fleet, then get a per-org compliance table ready to pipe into a report or an agent.
NinjaOne uses OAuth2 client-credentials. Create an API app under Administration Apps API, then set NINJAONECLIENTID and NINJAONECLIENTSECRET. The default base URL is https://app.ninjarmm.com; for non-US tenants set NINJAONEBASEURL (e.g. https://eu.ninjarmm.com) and NINJAONETOKEN…
This skill drives the ninjaone-cli binary. You must verify the CLI is installed before invoking any command from this skill. If it is missing, install it first:
Use this CLI when an agent or technician needs fleet-wide answers across many NinjaOne organizations - patch compliance, unprotected-device detection, AV threat blast-radius, OS end-of-life exposure, software sprawl, or week-over-week drift - rather than a single device or repor…
Do not use this CLI for: - Inspecting a single device's backup bytes or job history - use the generated backup / queries backup-usage commands, not backup-coverage - Trend-over-time questions - use drift, not fleet-health; point-in-time scoring - use fleet-health, not drift - Re…
Permission review
The documentation asks the agent to run terminal commands or scripts.
npx -y @mvanhorn/printing-press-library install ninjaone --cli-onlyThe documentation asks the agent to run terminal commands or scripts.
go install github.com/mvanhorn/printing-press-library/library/monitoring/ninjaone/cmd/ninjaone-cli@latestThe documentation includes sending, uploading, or posting data to a remote service.
| `webhook:<url>` | POST the output body to the URL (`application/json` or `application/x-ndjson` when `--compact`) |The documentation includes network, browsing, or remote request actions.
| `webhook:<url>` | POST the output body to the URL (`application/json` or `application/x-ndjson` when `--compact`) |Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 83/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 15 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
This skill drives the ninjaone-cli binary. You must verify the CLI is installed before invoking any command from this skill. If it is missing, install it first:
$HOME/.local/bin on macOS/Linux and %LOCALAPPDATA%\Programs\PrintingPress\bin on Windows:
npx -y @mvanhorn/printing-press-library install ninjaone --cli-only
ninjaone-cli --version$PATH for the agent/runtime that will invoke this skill.If the npx install fails (no Node, offline, etc.), fall back to a direct Go install (requires Go 1.26.4 or newer). This installs into $GOPATH/bin (default $HOME/go/bin), so add that directory to $PATH instead:
go install github.com/mvanhorn/printing-press-library/library/monitoring/ninjaone/cmd/ninjaone-cli@latest
If --version reports "command not found" after install, the runtime cannot see the binary directory on $PATH. Do not proceed with skill commands until verification succeeds.
Existing NinjaOne tools are 1:1 API mirrors or Python libraries you script yourself. This CLI syncs your whole estate into local SQLite, then answers the questions MSPs actually ask across clients with offline FTS, analytics rollups, --json/--select/--csv, and typed exit codes. Commands like patch-compliance, backup-coverage, av-sweep, fleet-health, and drift are cross-fleet joins the API never returns in one call, and every command is agent-native through the MCP Cobra-tree mirror.
Use this CLI when an agent or technician needs fleet-wide answers across many NinjaOne organizations - patch compliance, unprotected-device detection, AV threat blast-radius, OS end-of-life exposure, software sprawl, or week-over-week drift - rather than a single device or report lookup. It is also the right tool for scripted automation: every command speaks --json/--select with typed exit codes, and the local store keeps queries fast and offline.
Do not use this CLI for:
These capabilities aren't available in any other tool for this API.
patch-compliance - One row per organization showing percent OS-patched, percent software-patched, failed counts, and the worst-offender device across your whole fleet.
Reach for this when an agent or tech needs the single 'who is non-compliant' answer across many clients instead of pivoting two reports by hand.
ninjaone-cli patch-compliance --min-pct 95 --agent
backup-coverage - Lists every device with no backup usage (or zero bytes / stale job), grouped by organization, so unprotected endpoints surface immediately.
The fastest DR-oversight answer: which managed endpoints are silently unprotected right now.
ninjaone-cli backup-coverage --agent --select deviceName,org,reason
software-audit - For each software title, counts the distinct versions installed across the fleet and where each version lives; flags titles fragmented across many versions.
Find license sprawl and update lag (the same app at 14 versions) in one query instead of scrolling per-device inventories.
ninjaone-cli software-audit --min-versions 3 --json
fleet-health - A transparent 0-100 score per organization from patch, backup, AV, and stale-device signals, with the contributing deductions itemized.
One artifact for a quarterly business review: an agent can read the itemized deductions and explain why a client is trending down.
ninjaone-cli fleet-health --org 42 --agent
av-sweep - Given a threat name or a stale-definition window, lists every device fleet-wide carrying it, grouped by organization and location.
Turns one threat detection into a blast-radius answer during triage without walking the API device by device.
ninjaone-cli av-sweep --definition-stale-days 7 --agent
stale-devices - Lists devices whose last contact exceeds a threshold, with days-since and owning organization and location.
Surfaces endpoints that quietly stopped checking in, which are invisible in per-org device lists.
ninjaone-cli stale-devices --days 14 --csv
os-eol - Lists devices running end-of-life operating systems, grouped by organization, against a curated EOL reference table.
A security-and-compliance answer for QBRs: which clients are running OS versions past their support date.
ninjaone-cli os-eol --agent
drift - Diffs the current sync against the previous stored snapshot to show which organizations got better or worse on patch, backup, or stale metrics.
The only way to answer 'which clients are drifting' without rebuilding a spreadsheet from scratch each week.
ninjaone-cli drift --metric patch --agent
activities - Manage activities
ninjaone-cli activities - Returns activity log in reverse chronological orderalert - Manage alert
ninjaone-cli alert <uid> - Resets alert/condition by UIDalerts - Manage alerts
ninjaone-cli alerts - Returns list of active alerts/triggered conditionsattachments - Manage attachments
ninjaone-cli attachments - Upload temporary attachmentsautomation - Manage automation
ninjaone-cli automation - Returns list of all available automation scriptsbackup - Backup
ninjaone-cli backup get-integrity-check-jobs - Returns a list of integrity check jobs.ninjaone-cli backup get-jobs - Returns list of backup jobsninjaone-cli backup submit-integrity-check-job - Creates an integrity check jobchecklist - Manage checklist
ninjaone-cli checklist archive-template - Archive a checklist template by idninjaone-cli checklist create-templates - Creates multiple checklist templatesninjaone-cli checklist delete-template - Delete a checklist template by idninjaone-cli checklist delete-templates - Deletes checklist templates by idninjaone-cli checklist get-templates - List checklists templates with given criterianinjaone-cli checklist restore-template - Restore a checklist template by idninjaone-cli checklist update-templates - Updates multiple checklist templatescontact - Manage contact
ninjaone-cli contact delete - Delete a contact by their IDninjaone-cli contact get-by-id - Get a contact by their IDninjaone-cli contact update - Update a contact by their IDcontacts - Manage contacts
ninjaone-cli contacts create - Create a new contactninjaone-cli contacts get - Get all contactscustom-fields - Custom Fields
ninjaone-cli custom-fields <entityId> - Get custom field signed urlsdevice - Devices
ninjaone-cli device get - Returns device detailsninjaone-cli device update - Change device friendly name, user data, etc.device-custom-fields - Manage device custom fields
ninjaone-cli device-custom-fields - Returns list of all custom fieldsdevices - Devices
ninjaone-cli devices get - Returns list of devices (basic node information)ninjaone-cli devices node-approval-operation - Approve or reject devices that are waiting for approvalninjaone-cli devices search - Returns list of entities matching search termdevices-detailed - Manage devices detailed
ninjaone-cli devices-detailed - Returns list of devices with additional informationdocument-templates - Document Templates
ninjaone-cli document-templates archive - Archives multiple document template by idsninjaone-cli document-templates create - Create document templateninjaone-cli document-templates delete - Deletes a document template by idninjaone-cli document-templates get - Get document templateninjaone-cli document-templates get-with-attributes - List document templates with fieldsninjaone-cli document-templates restore - Restores a document template by idninjaone-cli document-templates update - Updates a document template by idgroup - Groups/Search
groups - Groups/Search
ninjaone-cli groups - List groups (saved searches)itam - Manage itam
ninjaone-cli itam create-unmanaged-device-public-api - Create an Unmanaged Device with the provided detailsninjaone-cli itam delete-unmanaged-device-public-api - Delete an Unmanaged Device with the provided idninjaone-cli itam update-unmanaged-device-public-api - Update an Unmanaged Device with the provided detailsknowledgebase - Manage knowledgebase
ninjaone-cli knowledgebase archive-knowledge-base-articles - Archive knowledge base articlesninjaone-cli knowledgebase archive-knowledge-base-folders - Archive knowledge base foldersninjaone-cli knowledgebase create-knowledge-base-articles - Create knowledge base articlesninjaone-cli knowledgebase delete-knowledge-base-articles - Delete knowledge base articlesninjaone-cli knowledgebase delete-knowledge-base-folders - Delete knowledge base foldersninjaone-cli knowledgebase download-knowledge-base-article - Download knowledge base articleninjaone-cli knowledgebase get-client-knowledge-base-articles - Lists organization knowledge base articlesninjaone-cli knowledgebase get-global-knowledge-base-articles - Lists global knowledge base articlesninjaone-cli knowledgebase get-knowledge-base-article-signed-urls - Get knowledge base article signed urlsninjaone-cli knowledgebase get-knowledge-base-folder-content - Returns knowledge base folder and its contentninjaone-cli knowledgebase get-knowledge-base-folder-path-content - Returns knowledge base folder and its contentninjaone-cli knowledgebase move - Move knowledge base folders and documents to another knowledge base folderninjaone-cli knowledgebase restore-knowledge-base-articles - Restore archived knowledge base articlesninjaone-cli knowledgebase restore-knowledge-base-folders - Restore archived knowledge base foldersninjaone-cli knowledgebase update-knowledge-base-articles - Update knowledge base articlesninjaone-cli knowledgebase upload-knowledge-base-articles - Upload knowledge base articleslocations - Location
ninjaone-cli locations - Returns flat list of all locations for all organizationsninjaone-public-jobs - Manage ninjaone public jobs
ninjaone-cli ninjaone-public-jobs - Returns list of running jobsnotification-channels - Manage notification channels
ninjaone-cli notification-channels get - Returns list of notification channelsninjaone-cli notification-channels get-enabled - Returns list of enabled notification channelsorganization - Organizations
ninjaone-cli organization archive-checklists - Archive multiple organization checklistsninjaone-cli organization archive-client-document - Archives an organization document by idninjaone-cli organization archive-multi-page-client-documents - Archives multiple organization documents by idninjaone-cli organization create-checklists - Creates multiple organization checklistsninjaone-cli organization create-documents - Creates organization documents and returns the documents createdninjaone-cli organization delete-client-checklist - Deletes an organization checklist by idninjaone-cli organization delete-client-checklists - Deletes organization checklists by idninjaone-cli organization delete-client-document - Deletes an archived organization document by idninjaone-cli organization get - Returns organization details (policy mappings, locations)ninjaone-cli organization get-client-checklist - Get a client checklist by idninjaone-cli organization get-client-checklist-signed-urls - Get organization checklist signed urlsninjaone-cli organization get-client-checklists - List client checklists with given criterianinjaone-cli organization get-client-document-signed-urls - Get organization document signed urlsninjaone-cli organization get-client-documents-with-attribute-values - List all organization documents with field valuesninjaone-cli organization get-installer - Generates and returns URL for installer with specified settingsninjaone-cli organization promote-client-checklists - Promote organization checklists by idninjaone-cli organization promote-client-checklists-1 - Promote organization checklists by idninjaone-cli organization restore-checklists - Restore multiple organization checklistsninjaone-cli organization restore-client-document - Restores an organization document by idninjaone-cli organization restore-multi-page-client-documents - Restore multiple multi page organization documentsninjaone-cli organization update - Change organization name, description and policy mappingsninjaone-cli organization update-checklists - Updates multiple organization checklistsninjaone-cli organization update-documents - Updates organization documents and returns the documents updatedorganizations - Organizations
ninjaone-cli organizations create - Creates new organization with optional list of locations and policy mappings.ninjaone-cli organizations get - Returns list of organizations (Brief mode)organizations-detailed - Manage organizations detailed
ninjaone-cli organizations-detailed - Returns list of organizations with locations and policy mappingspolicies - Manage policies
ninjaone-cli policies create-policy - Creates new policy using (New Root, Child, Copy)ninjaone-cli policies get - Returns list of policiesqueries - Queries
ninjaone-cli queries get-antivirus-status-report - Returns list of statues of antivirus software installed on devicesninjaone-cli queries get-antivirus-threats - Returns list of antivirus threatsninjaone-cli queries get-computer-systems - Returns computer systems information for devicesninjaone-cli queries get-custom-fields-detailed-report - Returns Custom Fields report with additional information about each fieldninjaone-cli queries get-custom-fields-report - Returns Custom Fields reportninjaone-cli queries get-device-health-report - Returns list of device health summary recordsninjaone-cli queries get-device-usage - Returns the backup usage by deviceninjaone-cli queries get-disk-drives - Returns list of physical disksninjaone-cli queries get-installed-ospatches - Returns patch installation history records (successful and failed)ninjaone-cli queries get-installed-software-patches - Returns 3rd party software patch installation history records (successful and failed)ninjaone-cli queries get-last-logged-on-users-report - Returns usernames and logon timesninjaone-cli queries get-network-interfaces - Returns list of Network Interfaces for each deviceninjaone-cli queries get-operating-systems - Returns operating systems' for devicesninjaone-cli queries get-pending-failed-rejected-ospatches - Returns list of OS patches for which there were no installation attemptsninjaone-cli queries get-pending-failed-rejected-software-patches - Returns list of 3rd party Software patches for which there were no installation attemptsninjaone-cli queries get-policy-overrides-1 - Returns list of overridden policy sections for each deviceninjaone-cli queries get-processors - Returns list of processorsninjaone-cli queries get-raidcontroller-report - Returns list of RAID controllersninjaone-cli queries get-raiddrive-report - Returns list of drives connected to RAID controllersninjaone-cli queries get-scoped-custom-fields-detailed-report - Returns report for Custom Fields defined at different scopes (device, location, organization)ninjaone-cli queries get-scoped-custom-fields-report - Returns report for Custom Fields defined at different scopes (device, location, organization)ninjaone-cli queries get-software - Returns list software installed on devicesninjaone-cli queries get-volumes - Returns list of disk volumesninjaone-cli queries get-windows-services-report - Returns list of Windows Services and their statusesrelated-items - Related Items
ninjaone-cli related-items create - Relate an attachment to an entityninjaone-cli related-items create-for-entity - Create a relation between two entitiesninjaone-cli related-items create-for-entity-1 - Create multiple relations between two entitiesninjaone-cli related-items create-secure-for-entity - Create a relation to a secure valueninjaone-cli related-items delete - Deletes related itemninjaone-cli related-items delete-relateditems - Deletes related items associated with an entityninjaone-cli related-items get-all - List all related itemsninjaone-cli related-items get-attachments-signed-urls - Get related item attachments signed urls for an entityninjaone-cli related-items get-for-host-entity - List related items for a specific host entity filterable by scopeninjaone-cli related-items get-with-entity - List related items for a specific related entityninjaone-cli related-items get-with-entity-type - List related entities for a related entity typeninjaone-cli related-items get-with-host-entity-type - List relations and references for a host entity typeroles - Manage roles
ninjaone-cli roles - Returns list of device rolessoftware-products - Manage software products
ninjaone-cli software-products - Returns available software products (3rd party patching)tab - Manage tab
ninjaone-cli tab create-custom-public-api - Create a Custom Tab with the provided detailsninjaone-cli tab delete-unmanaged-device-public-api-1 - Delete a Custom Tabninjaone-cli tab get-custom-public-api - Gets a custom tab. NOTE: This will not fetch tab extensions. You must use the GET tab/{tabId}/role/{roleId} for thatninjaone-cli tab get-summary-for-end-user - Retrieve all of the custom tabs available to end user viewsninjaone-cli tab get-summary-for-organization - Retrieve all of the custom tabs available to organizations and locationsninjaone-cli tab get-summary-for-role - Retrieve all of the custom tabs that would appear for the given roleninjaone-cli tab rename-custom-public-api - Renames a Custom Tabninjaone-cli tab update-custom-display - Using this API it is possible to configure tabs to be hidden for roles and their childrenninjaone-cli tab update-custom-public-api - Update a Custom Tab.ninjaone-cli tab update-end-user-custom-order - Update the order of custom tabs for end-user tabs. NOTE: All tabs defined for end-users must be specified in the payloadninjaone-cli tab update-organization-custom-order - Update the order of custom tabs for organizations and locations.ninjaone-cli tab update-role-custom-order - Update the order of custom tabs for a specific role. NOTE: Only tabs created on this role can be ordered.tag - Manage tag
ninjaone-cli tag batch-update - Update tags for the supplied assetIds. Tags will be added and removed as specifiedninjaone-cli tag create - Create an Asset Tag with the provided name and descriptionninjaone-cli tag delete - Delete Asset Tags having the provided idsninjaone-cli tag delete-tagid - Delete the Asset Tag with the provided idninjaone-cli tag get - Get a list of created Asset Tagsninjaone-cli tag merge - Merges tags. Can merge into an existing or new tag depending on the input parametersninjaone-cli tag set-for-asset - Set the tags for an asset to exactly the supplied valuesninjaone-cli tag update - Update an Asset Tag with the provided metadatatasks - Manage tasks
ninjaone-cli tasks - Returns list of registered scheduled tasksticketing - ticketing
ninjaone-cli ticketing create - Create a new ticket, does not accept filesninjaone-cli ticketing create-comment - Add a new comment to a ticket, allows filesninjaone-cli ticketing get-all-statuses - Get list of ticket statusninjaone-cli ticketing get-all-user-and-contacts - Returns list of users (contacts, end-user, technician)ninjaone-cli ticketing get-boards - Returns list of ticketing boardsninjaone-cli ticketing get-contacts-1 - Returns list of contactsninjaone-cli ticketing get-ticket-attributes - Returns list of the ticket attributesninjaone-cli ticketing get-ticket-by-id - Returns a ticketninjaone-cli ticketing get-ticket-form-by-id - Returns a ticket form with fieldsninjaone-cli ticketing get-ticket-forms - Returns list of ticket forms with their fieldsninjaone-cli ticketing get-ticket-log-entries-by-ticket-id - Returns list of the ticket log entries for a ticketninjaone-cli ticketing get-tickets-by-board - Run a board. Returns list of tickets matching the board condition and filters. Allows paginationninjaone-cli ticketing update - Change ticket fields. Does not accept commentsuser - Users
ninjaone-cli user add-role-members - Add members to user roleninjaone-cli user create-end - Create an end userninjaone-cli user create-technician - Create a new technicianninjaone-cli user delete-end - Delete an end userninjaone-cli user delete-technician - Delete a technician by their IDninjaone-cli user get-end - Get details for a specific end user identifierninjaone-cli user get-end-1 - Get all end usersninjaone-cli user get-node-custom-fields-3 - Returns list of end user custom fieldsninjaone-cli user get-roles - Get list of user rolesninjaone-cli user get-technician - Get details for a specific technician identifierninjaone-cli user get-technicians - Get all techniciansninjaone-cli user patch-end - Update a specific end user by their IDninjaone-cli user remove-role-members - Remove users from user roleninjaone-cli user update-node-attribute-values-3 - Update end user custom field valuesninjaone-cli user update-technician - Update technician by their IDusers - Users
ninjaone-cli users - Returns list of usersvulnerability - Manage vulnerability
ninjaone-cli vulnerability fetch-all-scan-groups - Fetches all Scan Groups.ninjaone-cli vulnerability fetch-scan-group-by-id - Fetches a single Scan Group by ID.ninjaone-cli vulnerability update-scan-group - Upload CSV to an existing scan group.webhook - Webhook Endpoints
ninjaone-cli webhook configure - Creates or updates Webhook configuration for current application/clientninjaone-cli webhook disable - Disables Webhook configuration for current application/clientWhen you know what you want to do but not which command does it, ask the CLI directly:
ninjaone-cli which "<capability in your own words>"
which resolves a natural-language capability query to the best matching command from this CLI's curated feature index. Exit code 0 means at least one match; exit code 2 means no confident match - fall back to --help or use a narrower query.
ninjaone-cli sync && ninjaone-cli patch-compliance --min-pct 95 --agent
Sync the fleet, then get a per-org compliance table ready to pipe into a report or an agent.
ninjaone-cli backup-coverage --agent --select deviceName,org,reason
List every device with no/stale backup, narrowing the agent-shaped output to the fields that matter.
ninjaone-cli av-sweep --threat 'Trojan.Generic' --json
Find every device fleet-wide carrying a named threat, grouped by org and location.
ninjaone-cli fleet-health --org 42 --agent
Get an itemized 0-100 health score an agent can narrate in a quarterly review.
ninjaone-cli queries get-device-health-report --agent --select results.deviceId,results.healthStatus
Use --select with dotted paths to keep only the fields you need from a large nested report.
NinjaOne uses OAuth2 client-credentials. Create an API app under Administration > Apps > API, then set NINJAONE_CLIENT_ID and NINJAONE_CLIENT_SECRET. The default base URL is https://app.ninjarmm.com; for non-US tenants set NINJAONE_BASE_URL (e.g. https://eu.ninjarmm.com) and NINJAONE_TOKEN_URL (e.g. https://eu.ninjarmm.com/ws/oauth/token). Run 'ninjaone-cli doctor' to confirm auth and reachability.
Run ninjaone-cli doctor to verify setup.
Add --agent to any command. Expands to: --json --compact --no-input --no-color --yes.
Pipeable - JSON on stdout, errors on stderr
Filterable - --select keeps a subset of fields. Dotted paths descend into nested structures; arrays traverse element-wise. Critical for keeping context small on verbose APIs:
ninjaone-cli activities --agent --select id,name,status
Previewable - --dry-run shows the request without sending
Offline-friendly - sync/search commands can use the local SQLite store when available
Non-interactive - never prompts, every input is a flag
Explicit retries - use --idempotent only when an already-existing create should count as success, and --ignore-missing only when a missing delete target should count as success
Commands that read from the local store or the API wrap output in a provenance envelope:
{
"meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
"results": <data>
}
Parse .results for data and .meta.source to know whether it's live or local. A human-readable N results (live) summary is printed to stderr only when stdout is a terminal AND no machine-format flag (--json, --csv, --compact, --quiet, --plain, --select) is set - piped/agent consumers and explicit-format runs get pure JSON on stdout.
When you (or the agent) notice something off about this CLI, record it:
ninjaone-cli feedback "the --since flag is inclusive but docs say exclusive"
ninjaone-cli feedback --stdin < notes.txt
ninjaone-cli feedback list --json --limit 10
Entries are stored locally at ~/.local/share/ninjaone-cli/feedback.jsonl. They are never POSTed unless NINJAONE_FEEDBACK_ENDPOINT is set AND either --send is passed or NINJAONE_FEEDBACK_AUTO_SEND=true. Default behavior is local-only.
Write what surprised you, not a bug report. Short, specific, one line: that is the part that compounds.
Every command accepts --deliver <sink>. The output goes to the named sink in addition to (or instead of) stdout, so agents can route command results without hand-piping. Three sinks are supported:
| Sink | Effect |
|---|---|
stdout | Default; write to stdout only |
file:<path> | Atomically write output to <path> (tmp + rename) |
webhook:<url> | POST the output body to the URL (application/json or application/x-ndjson when --compact) |
Unknown schemes are refused with a structured error naming the supported set. Webhook failures return non-zero and log the URL + HTTP status on stderr.
A profile is a saved set of flag values, reused across invocations. Use it when a scheduled agent calls the same command every run with the same configuration - HeyGen's "Beacon" pattern.
ninjaone-cli profile save briefing --json
ninjaone-cli --profile briefing activities
ninjaone-cli profile list --json
ninjaone-cli profile show briefing
ninjaone-cli profile delete briefing --yes
Explicit flags always win over profile values; profile values win over defaults. agent-context lists all available profiles under available_profiles so introspecting agents discover them at runtime.
For endpoints that submit long-running work, the generator detects the submit-then-poll pattern (a job_id/task_id/operation_id field in the response plus a sibling status endpoint) and wires up three extra flags on the submitting command:
| Flag | Purpose |
|---|---|
--wait | Block until the job reaches a terminal status instead of returning the job ID immediately |
--wait-timeout | Maximum wait duration (default 10m, 0 means no timeout) |
--wait-interval | Initial poll interval (default 2s; grows with exponential backoff up to 30s) |
Use async submission without --wait when you want to fire-and-forget; use --wait when you want one command to return the finished artifact.
| Code | Meaning |
|---|---|
| 0 | Success |
| 2 | Usage error (wrong arguments) |
| 3 | Resource not found |
| 4 | Authentication required |
| 5 | API error (upstream issue) |
| 7 | Rate limited (wait and retry) |
| 10 | Config error |
Parse $ARGUMENTS:
help, or --help → show ninjaone-cli --help outputinstall → ends with mcp → MCP installation; otherwise → see Prerequisites above--agent)go install github.com/mvanhorn/printing-press-library/library/monitoring/ninjaone/cmd/ninjaone-mcp@latest
claude mcp add ninjaone-mcp -- ninjaone-mcp
claude mcp listwhich ninjaone-cli
If not found, offer to install (see Prerequisites at the top of this skill).--agent flag:
ninjaone-cli <command> [subcommand] [args] --agent
ninjaone-cli <command> --help.Alternatives
coreyhaines31/marketingskills
When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "should I test this," "which version is better," "test two versions," "statistical significance," "how long should I run this test," "growth experiments," "experiment velocity," "experiment backlog," "ICE score," "experimentation program
event4u-app/agent-config
Use when the user says "review the design", "check the UI", or wants a comprehensive UI/UX review. Uses a 7-phase methodology covering interaction, responsiveness, accessibility, and more.
K-Dense-AI/scientific-agent-skills
Distributed computing for larger-than-RAM pandas/NumPy workflows. Use when you need to scale existing pandas/NumPy code beyond memory or across clusters. Best for parallel file processing, distributed ML, integration with existing pandas code. For out-of-core analytics on single machine use vaex; for in-memory speed use polars.
K-Dense-AI/scientific-agent-skills
Use NeuroKit2 to build or audit reproducible research workflows for physiological time-series preprocessing, event/interval analysis, multimodal alignment, variability, and complexity. Trigger when code imports neurokit2 or needs its current APIs, schemas, and method-aware validation—not for diagnosis or device validation.