This repository has been archived on 2026-03-13. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
greywall/docs
Mathieu Virbel 3dd772d35a
Some checks failed
Build and test / Lint (push) Failing after 1m29s
Build and test / Build (push) Successful in 13s
Build and test / Test (Linux) (push) Failing after 58s
Build and test / Test (macOS) (push) Has been cancelled
feat: add --learning mode, --template flag, and fix DNS relay
Learning mode (--learning) traces filesystem access with strace and
generates minimal sandbox config templates. A background monitor kills
strace when the main command exits so long-lived child processes (LSP
servers, file watchers) don't cause hangs.

Other changes:
- Add 'greywall templates list/show' subcommand
- Add --template flag to load specific learned templates
- Fix DNS relay: use TCP DNS (options use-vc) instead of broken UDP
  relay through tun2socks
- Filter O_DIRECTORY opens from learned read paths
- Add docs/experience.md with development notes
2026-02-11 08:22:53 -06:00
..

Greywall Documentation

Greywall is a sandboxing tool that restricts network and filesystem access for arbitrary commands. It's most useful for running semi-trusted code (package installs, build scripts, CI jobs, unfamiliar repos) with controlled side effects.

Getting Started

  • Quickstart - Install greywall and run your first sandboxed command in 5 minutes
  • Why Greywall - What problem it solves (and what it doesn't)

Guides

Reference

Examples

See examples/ for runnable demos.

Quick Reference

Common commands

# Block all network (default)
greywall <command>

# Use custom config
greywall --settings ./greywall.json <command>

# Debug mode (verbose output)
greywall -d <command>

# Monitor mode (show blocked requests)
greywall -m <command>

# Expose port for servers
greywall -p 3000 <command>

# Run shell command
greywall -c "echo hello && ls"