@0xbigboss/silo

Isolated local development environments for Tilt and k3d.

Packages

Package details

skill

Install @0xbigboss/silo from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:@0xbigboss/silo
Package
@0xbigboss/silo
Version
0.8.1
Published
Aug 23, 2026
Downloads
1,328/mo · 40/wk
Author
alleneubank
License
MIT
Types
skill
Size
662.7 KB
Dependencies
1 dependency · 0 peers
Pi manifest JSON
{
  "skills": [
    "./.claude-plugin/silo/skills"
  ]
}

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

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.