How packs are checked

A pack runs PowerShell in your Maester session, with every connection in it. Maester is not a sandbox. What it does is make sure the code that runs is the code you approved, that you saw what it reaches before approving it, and that your organisation can set limits.

Read, never run

The index and Install-MtPack read the manifest, every file and the syntax tree of every script. No pack code runs to list or install it.

Pinned

Each install is pinned to a commit and a digest of every file. Changed files stop the pack until you restore or approve them again.

Cooldown

A new release waits 72 hours before it installs, so a bad release can be caught and blocked first.

Signed blocklist

A blocked pack stops on every machine at its next run, not at its next update.

Your policy

Cap the risk level, allow only some publishers or sources, and refuse modules Maester cannot pin.

Shown apart

Pack results are labelled with their pack and can never pass as Maester's own checks.

What the index does not do

Risk levels describe what a scan can see. A Low risk pack can still read files or send data to the hosts it declares. Install counts and stars never change a pack's risk level or badges. Read-only Graph scopes limit what a pack can change in your tenant; they do not stop it reading local files.

Report a malicious or vulnerable pack through GitHub security advisories. The full model is at maester.dev/docs/packs/security.