safe-chains 0.112.2

Auto-allow safe, read-only bash commands in agentic coding tools
Documentation
# Skipped custom handlers: nslookup, route

[[command]]
name = "ping"
url = "https://man7.org/linux/man-pages/man8/ping.8.html"
level = "Inert"
bare = false
require_any = ["-c", "--count"]
standalone = [
    "-4", "-6", "-D", "-O", "-R", "-a", "-d", "-n", "-q", "-v",
    "--help", "-h", "--version", "-V",
]
valued = [
    "--count", "--deadline", "--interface", "--interval", "--ttl",
    "-I", "-Q", "-S", "-W", "-c", "-i", "-l", "-s", "-t", "-w",
]

[[command]]
name = "dig"
url = "https://man7.org/linux/man-pages/man1/dig.1.html"
level = "Inert"
bare = true
standalone = ["--help", "--version", "-4", "-6", "-V", "-h", "-m", "-r", "-u", "-v"]
valued = ["-b", "-c", "-f", "-k", "-p", "-q", "-t", "-x", "-y"]

[[command]]
name = "host"
url = "https://man7.org/linux/man-pages/man1/host.1.html"
level = "Inert"
bare = false
standalone = [
    "--help", "--version",
    "-4", "-6", "-C", "-V", "-a", "-c", "-d", "-h", "-l", "-r", "-s", "-v",
]
valued = ["-D", "-N", "-R", "-T", "-W", "-i", "-m", "-t"]

[[command]]
name = "ifconfig"
url = "https://man7.org/linux/man-pages/man8/ifconfig.8.html"
level = "Inert"
bare = true
max_positional = 1
standalone = ["--help", "--version", "-L", "-V", "-a", "-h", "-l", "-s", "-v"]

[[command]]
name = "mdfind"
url = "https://ss64.com/mac/mdfind.html"
level = "Inert"
bare = false
standalone = [
    "--help", "--version",
    "-0", "-V", "-count", "-h", "-interpret", "-literal", "-live",
]
valued = ["-attr", "-name", "-onlyin", "-s"]

[[command]]
name = "netstat"
url = "https://man7.org/linux/man-pages/man8/netstat.8.html"
level = "Inert"
bare = true
standalone = [
    "--all", "--continuous", "--extend", "--groups",
    "--help", "--interfaces", "--listening", "--masquerade",
    "--numeric", "--numeric-hosts", "--numeric-ports",
    "--numeric-users", "--program", "--route",
    "--statistics", "--symbolic", "--tcp", "--timers",
    "--udp", "--unix", "--verbose", "--version", "--wide",
    "-A", "-C", "-L", "-M", "-N", "-R", "-S", "-V", "-W", "-Z",
    "-a", "-b", "-c", "-d", "-e", "-f", "-g", "-h", "-i",
    "-l", "-m", "-n", "-o", "-p", "-q", "-r", "-s", "-t", "-u", "-v", "-w", "-x",
]
valued = ["-I"]

[[command]]
name = "ss"
url = "https://man7.org/linux/man-pages/man8/ss.8.html"
level = "Inert"
bare = true
standalone = [
    "--all", "--dccp", "--extended", "--family",
    "--help", "--info", "--ipv4", "--ipv6", "--listening", "--memory",
    "--no-header", "--numeric", "--oneline", "--options",
    "--packet", "--processes", "--raw", "--resolve",
    "--sctp", "--summary", "--tcp", "--tipc", "--udp",
    "--unix", "--version", "--vsock",
    "-0", "-4", "-6", "-E", "-H", "-O", "-V",
    "-a", "-e", "-h", "-i", "-l", "-m", "-n", "-o", "-p", "-r", "-s", "-t", "-u", "-w", "-x",
]
valued = ["--filter", "--query", "-A", "-F", "-f"]

[[command]]
name = "whois"
url = "https://man7.org/linux/man-pages/man1/whois.1.html"
level = "Inert"
bare = false
standalone = [
    "--help", "--version",
    "-A", "-B", "-G", "-H", "-I", "-K", "-L",
    "-M", "-Q", "-R", "-S", "-a", "-b", "-c",
    "-d", "-f", "-g", "-l", "-m", "-r", "-x",
]
valued = ["-T", "-V", "-h", "-i", "-p", "-s", "-t"]