Zillowe FoundationZillowe Documentation

Installation via curl

Learn how to securely install software using the curl | zsm pattern.

One of the primary goals of ZSM is to provide a safe alternative to the dangerous curl | bash pattern. With ZSM, you get the convenience of one-liner installations with the security of a supervised sandbox.

The Pattern

To install software from a remote ZSM script, use the following command:

curl -fsSL https://example.com/install.zsm | zsm

How it Works

When you pipe a script into ZSM, the tool performs the following steps:

  1. Source Identification: ZSM reads the # :: url header from the piped input to identify the script source.
  2. Security Audit: ZSM parses the declarative headers and displays a summary of all requested permissions (Network, Filesystem, External Tools).
  3. Unique Approval: ZSM checks its local cache (~/.cache/zsm) for a previous approval of this specific script and version.
  4. Interactive TTY Prompt: If not cached, ZSM opens /dev/tty to ask for your permission. This ensures you can interact with the prompt even though stdin is busy reading the script.
  5. Supervised Execution: Once approved, ZSM executes the script logic while enforcing the approved sandbox.

Advantages over curl | bash

Featurecurl | bashcurl | zsm
Trust ModelBlind TrustCapability-Based
AuditabilityRead 100s of lines of codeReview simple headers
PersistenceRe-runs code every timeRemembers your approval
SupervisionFull system accessBlocked unless approved

Using with Dry-Run

You can safely test a remote installation script before committing to it by adding the --dry-run flag:

curl -fsSL https://example.com/install.zsm | zsm --dry-run

ZSM will show you exactly what it would have done without touching your system.


A software organization

2026 © All Rights Reserved.

  • All the content is available under CC BY-SA 4.0, expect where otherwise stated.

Last updated on