Claude AI Skills for generating production-ready RMM scripts (PowerShell, macOS, Linux) targeting NinjaOne, Action1, and other endpoint management platforms.
These are Claude Skills — structured instruction sets that teach Claude how to generate, review, and translate scripts specifically for RMM (Remote Monitoring and Management) deployment. They encode the hard-won knowledge of what works (and what breaks) when scripts run unattended on endpoints via an RMM agent.
When a skill is active, Claude will automatically apply it whenever you ask for an RMM script — enforcing version constraints, security practices, correct privilege context, and platform-specific custom field syntax without you having to repeat those requirements every time.
| Skill | Platform | Key Constraints |
|---|---|---|
rmm-powershell |
Windows (PowerShell 5.1) | SYSTEM context, [CmdletBinding()] mandatory (except Action1), no PS Core 6.0+ features, full cmdlet names only |
rmm-macos |
macOS (zsh, Catalina 10.15+) | User context by default (not root), set -euo pipefail, all variables quoted |
rmm-linux |
Linux (bash 4.x+) | Root context by default, distro-aware (apt vs dnf), getopts for parameters |
Each skill includes:
- Scope boundaries — Only activates when you mention RMM, NinjaOne, Action1, or endpoint deployment. Won't interfere with general scripting.
- NinjaOne custom field reference — PowerShell module commands (Windows) and
ninjarmm-clisyntax (macOS/Linux) for reading and writing custom fields and documentation fields. - NinjaOne WYSIWYG field reference — Complete reference (
NINJAONE-WYSIWYG-REFERENCE.md) for allowed HTML elements, inline CSS properties, NinjaOne CSS classes, Font Awesome 6 icons, Charts.css, and Bootstrap 5 grid layout in WYSIWYG custom fields. - Action1 custom attribute reference —
Action1-Set-CustomAttributesyntax and known limitations. - Cross-platform translation — Maps concepts between platforms when converting scripts (e.g.,
Ninja-Property-Get↔ninjarmm-cli get, privilege context differences). - Code review mode — Provide an existing script and get expert analysis for RMM compliance, security, and best practices.
- Common mistakes — Cross-platform and platform-specific gotchas covering checkbox comparisons, empty string handling, WYSIWYG pitfalls,
ConvertTo-Jsondepth, DateTime parsing, and more.
All three skills share RMM-CONVENTIONS.md (non-interactive execution, security, idempotency, logging, NinjaOne agent environment variables, device tags, and common mistakes) and NINJAONE-WYSIWYG-REFERENCE.md (WYSIWYG field styling reference).
- Download the ZIP for the skill(s) you need from Releases
- Go to Settings → Capabilities → Skills
- Upload the ZIP file
- Toggle the skill on
- Ensure Code Execution is enabled
Global install (available in all projects):
# Clone the repo
git clone https://github.com/DeusMaximus/rmm-skills.git
# Symlink or copy into your global skills directory
mkdir -p ~/.claude/skills
cp -r rmm-skills/rmm-powershell ~/.claude/skills/
cp -r rmm-skills/rmm-macos ~/.claude/skills/
cp -r rmm-skills/rmm-linux ~/.claude/skills/Per-project install (repo-specific):
mkdir -p .claude/skills
cp -r /path/to/rmm-skills/rmm-powershell .claude/skills/rmm-skills/
├── README.md
├── LICENSE
├── rmm-powershell/
│ ├── SKILL.md # PowerShell 5.1 skill definition
│ ├── RMM-CONVENTIONS.md # Shared conventions
│ └── NINJAONE-WYSIWYG-REFERENCE.md # WYSIWYG field styling reference
├── rmm-macos/
│ ├── SKILL.md # macOS zsh skill definition
│ ├── RMM-CONVENTIONS.md # Shared conventions
│ └── NINJAONE-WYSIWYG-REFERENCE.md # WYSIWYG field styling reference
└── rmm-linux/
├── SKILL.md # Linux bash skill definition
├── RMM-CONVENTIONS.md # Shared conventions
└── NINJAONE-WYSIWYG-REFERENCE.md # WYSIWYG field styling reference
Once installed, just ask Claude naturally:
"Write a NinjaOne PowerShell script that checks disk space and writes the result to a custom field called diskSpaceStatus"
"I need a bash script for NinjaOne that collects installed package versions on Ubuntu and Debian and stores them in a multiline custom field"
"Review this PowerShell script I'm deploying via Action1 — does it have any issues?"
"Convert this Windows RMM script to macOS"
The skill activates automatically based on keywords like "RMM", "NinjaOne", "Action1", or "deploy to endpoints". For general scripting that isn't RMM-related, the skills stay out of the way.
- NinjaOne — Custom fields (PowerShell module + CLI), documentation fields, secure fields, all field types, WYSIWYG field styling, device tags, agent environment variables
- Action1 — Custom attributes,
[CmdletBinding()]incompatibility noted, Windows-only scripting
The shared conventions (non-interactive execution, SYSTEM/root context, stdout/stderr logging) apply to most RMM platforms. If you use a different RMM, the scripts will still follow best practices — you'll just need to substitute the platform-specific custom field commands.
| Issue | Details |
|---|---|
Action1 + [CmdletBinding()] |
Action1 does not support [CmdletBinding()] or param() blocks. The PowerShell skill includes a separate template for Action1. |
| NinjaOne Dropdown GUIDs | Dropdown and MultiSelect fields return GUIDs by default. Use -Type Dropdown (PowerShell) or the options command (CLI) to get friendly names. |
| NinjaOne Secure Fields | Write-only for documentation fields. Only accessible during automation execution — not from web terminal or local terminal. Limited to 200 characters. |
Linux ninjarmm-cli |
Must use ./ninjarmm-cli or the full path /opt/NinjaRMMAgent/programdata/ninjarmm-cli. Bare ninjarmm-cli won't resolve. |
| macOS Privilege Context | Default is user context, not root. This is the opposite of Windows (SYSTEM) and Linux (root), however root level scripts can be explicitly requested (sudo not required). |
Found an issue or want to add support for another RMM platform? PRs welcome.
To add a new platform:
- If it has custom field/attribute commands, add them to the relevant SKILL.md file(s)
- If it has
[CmdletBinding()]or other scripting quirks, add to the compatibility table in the PowerShell skill - Update
RMM-CONVENTIONS.mdif the platform has unique data storage concepts - Update this README