Skip to content

Community Scripts

Script Library Naming Conventions

File Names

Under /scripts the file name should generally follow this format:

(Platform)_(Category or Function)_(What It Does).xxx

Platforms for now are:


Good filename examples include:



This is so that at a glance you can see if there is already a script with that function, and you can avoid duplication of functionality.

Name Field (in community_scripts.json)

Consider they are viewed in 3 different locations:

Script Manager

  • List View (sortable by any column)

  • Folder View (Grouped by Categories)

Run or Add Script

  • Running scripts manually or adding tasks (or adding in Automation Manager).


A good max length is 50-60 chars or less for display in these 3 locations.

Make sure your Name roughly follows the order of file naming as above.

Category or Function - What It Does

Consider how the alphabetic sort will affect display.


JSON Field Names


    "guid": "bfd61545-839b-45da-8b3d-75ffc4d43272",
    "filename": "Win_Sophos_EndpointProtection_Install.ps1",
    "submittedBy": "",
    "name": "Sophos Endpoint Protection Install",
    "description": "Installs Sophos Endpoint Protection via the Sophos API.  Products include Antivirus, InterceptX, MDR, Device Encryption.  The script requires API credentials, Custom Fields, and Arguments passed to script.  See script comments for details",
    "args": [
      "-ClientId {{client.SophosClientId}}",
      "-ClientSecret {{client.SophosClientSecret}}",
      "-TenantName {{client.SophosTenantName}}",
      "-Products antivirus,intercept"
    "default_timeout": "3600",
    "supported_platforms": ["windows"],
    "shell": "powershell",
    "category": "TRMM (Win):3rd Party Software"


guid: Must be unique in the file.

filename: File with that name must exist in /scripts folder.

submittedBy: Get credit for creator.

args: default args pre-filled in arg field.

default_timeout: Sets the default timeout for the script.

supported_platforms: ["windows", "linux", "darwin"] (case sensitive, if missing, assumes all platforms are supported). darwin=macOS

shell: can be powershell, cmd, python or shell

syntax: See scripting

category: Preferably use existing categories and format structure for library sorting, add new as needed.

Making Script Files

Use the template to start with a good common structure.

Good Habits

  • Try and make them fully self-contained.

  • If they pull data from elsewhere, create comment notes at the top with references for others to audit/validate.

  • Good folder locations to use for standardized things:

  • Command Parameters are good. Optional command parameters for extra functions are better.
    [string] $Username,
    [switch] $log,
    [int] $numberofdays,
    [array] $packages #separated by commas
  • Add standardized Comment headers to scripts (include the first 2, more if appropriate):
    Short description
    eg Check IP address

    Long description
    eg Checks IP address on all local network adapters, and returns results

    Inputs to this cmdlet (if any)

    Inputs to this cmdlet (if any)

    Output from this cmdlet (if any)

    Example of how to use this cmdlet

    Another example of how to use this cmdlet

    v1.0 1/1/2020 username notes
    General notes

Bad Habits

  • Assumes non-standard configurations.

  • Doesn't play well with other community scripts (reused names etc.).

Script Parameters

Useful Reference Script Examples

RunAsUser (since Tactical RMM runs as system)

Command Parameter Ninja

Optional Command Parameters and testing for errors

Volunteers Needed

If you want to contribute back to the project there are a lot of scripts that need some TLC (Tender Loving Care) please peruse thru them in The Script WIP (Work In Progress):

Discuss/ask questions in the Discord group here.

What you can add is:

  • Add standardized Comment headers per above.
  • Consolidate and parameterize scripts where appropriate.
  • Add $ExitCode and error conditions as appropriate.
  • Contact @silversword in Discord if you need help doing Github additions/edits/adding to the community Library and have questions about Script Library Naming Conventions.