omp packages

@0xbigboss/silo0.8.1

Isolated local development environments for Tilt and k3d.

GitHub Actions Published 1 month ago MIT ~713 downloads/mo

Untested on omp

This is a pi package. No one has reported whether it works on omp yet. If you try it, add your result below.

Did it work for you?

Result

One report per person. A new report replaces your old one.

Reports 0

No reports yet.

Readme

silo

Isolated local development environments. silo solves instance isolation and k3d bootstrap sequencing for Tilt-based projects.

CI npm License: MIT

silo version command in a terminal, showing the silo ASCII art

Requirements

Install

npm i -g @0xbigboss/silo

Claude Code Skill

Install the silo skill in Claude Code so your AI assistant knows how to use silo:

/plugin marketplace add alleneubank/silo
/plugin install silo@alleneubank-silo

Pi package

Install silo as a pi package to expose the silo skill to the pi coding agent:

pi install git:https://github.com/alleneubank/silo.git

The skill shells out to the silo binary; install it first via npm i -g @0xbigboss/silo or the source build.

Quick start

silo init
# edit silo.toml
silo up dev

Print the bundled silo.toml reference:

silo doc config

Commands

silo init            # Create silo.toml starter config
silo up [name]       # Start environment (creates k3d if needed, starts Tilt)
silo down            # Stop environment (stops Tilt, keeps k3d by default)
silo status          # Show current instance state
silo env [name]      # Generate env file only, don't start anything
silo ci [name]       # Run Tilt in CI mode (tilt ci) after env + k3d setup
silo profiles        # List available profiles
silo doc [topic]     # Print bundled docs (config, profiles, k3d, hooks, etc.)
silo version         # Print version

Configuration

silo.toml defines ports, hosts, URLs, k3d settings, and hooks. For the canonical reference, run:

silo doc config

You can also browse SPEC.md for a detailed specification.

Child process environment

When silo launches child processes (Tilt, hooks, k3d, kubectl), it injects:

  • SILO_ACTIVE=1
  • SILO_WORKSPACE=<workspace name>
  • SILO_ENV_FILE=<absolute path to generated env file>

Process supervision

silo up starts Tilt as janitor --grace-ms <ms> -- tilt up, so Tilt cannot outlive the silo process that started it. janitor is required: a missing supervisor fails the run rather than starting an unsupervised Tilt.

See silo doc tilt for the details.

Working with a running stack

silo status is lockfile state (pid, ports, URLs), not Tilt resource health. After silo up, source .localnet.env and talk to the Tilt API:

tilt get uiresources --port "$TILT_PORT"

For HTTP, use the printed *.localhost URLs, not localhost:PORT. See silo doc tilt.

CI usage

silo env and silo ci auto-export env vars to $GITHUB_ENV when running in CI (or when --export-ci is provided), and skip the export with a warning when $GITHUB_ENV is not set. silo ci also sets CI=true for Tilt, so Tiltfiles that gate e2e resources on CI run them:

silo ci e2e --timeout 300s

If your Tiltfile uses the silo requirement extension in CI, prefer loading it from installed dependencies instead of v1alpha1.extension_repo():

load('./node_modules/@0xbigboss/silo/tilt-extensions/silo/require/Tiltfile', 'SILO_REQUIRE')

Development

See CONTRIBUTING.md.

License

MIT. See LICENSE.

Report vulnerabilities to the address in SECURITY.md.