Line 01 Least-privilege project trials

Inspect the route.
Then run the code.

Give an unfamiliar project an empty workspace, named destinations, and nothing else. Capsule prints the capability diff before a rootless container starts.

Open source · No telemetry · One Go binary

An ivory project crate passes through three geometric inspection gates toward an amber terminal light.
Origin Unfamiliar repo Destination Reviewed process

The sealed line

Four stops. No hidden transfers.

Every grant is visible in one small file. The defaults stay shut.

  1. Declare

    Name the image, install and run commands, remote hosts, and localhost ports.

  2. Review

    Read the effective filesystem, network, ports, and hardening diff before execution.

  3. Run

    Work happens in an empty tmpfs with a read-only root and an isolated network.

  4. Receipt

    Teardown records what was granted, when it ended, and the process outcome.

Local preview

Draft the manifest, see the boundary.

This browser preview makes no requests and stores nothing. The real CLI validates the same hostname and port shapes.

CAP / 001Before departure

Capability review

Filesystem
+ empty /workspace
− host home
− project directory
Network
− direct egress
+ named proxy hosts only
Ports
+ approved loopback only
− LAN binding
Process
+ rootless engine
+ capabilities dropped
Generated command

Board in two minutes

One binary. One declaration.

Build with Go 1.22+, then point Capsule at rootless Podman or rootless Docker. It never prompts, so the same path works in CI.

shell
$ CGO_ENABLED=0 go install github.com/B-Divyesh/\
  sf-project-install-capsule/cmd/capsule@latest

$ capsule init --install 'git clone … .' \
  --run 'npm install && npm run dev' \
  --allow-host github.com --port 3000

$ capsule inspect
FILESYSTEM  + empty /workspace  − host home
NETWORK     − direct  + github.com via proxy

$ capsule verify
PASS  seeded home secret is unreadable

Read the fine print

A smaller blast radius, not a malware verdict.

Capsule checks the engine is rootless and removes common ambient access. Containers still share a host kernel. For deliberately hostile code, kernel exploits, or work near production credentials, use a disposable VM on a separate account.

Read the security model

Platform notes

Questions before departure

Why not just Docker?

Docker and Podman are the engine. Capsule supplies the repeatable least-privilege route: no host mounts, explicit proxy destinations, a readable diff, and a receipt.

Can the project reach my LAN?

No. Direct container networking is disabled. The proxy rejects IP literals and any destination resolving to loopback, private, link-local, multicast, or unspecified addresses.

Where does project data go?

The workspace is memory-backed and disappears when the process ends. The only persistent output is a local JSON teardown receipt containing capabilities and timestamps.

Does it support every installer?

Installers that honor HTTP_PROXY and HTTPS_PROXY work. Protocols such as SSH and git:// stay blocked by design; use an HTTPS source or prebuilt image.