safe-chains 0.111.1

Auto-allow safe, read-only bash commands in agentic coding tools
Documentation
[[command]]
name = "bun"
url = "https://bun.sh/docs/cli"
bare_flags = ["--help", "--version", "-V", "-h"]

[[command.sub]]
name = "build"
level = "SafeWrite"
bare = false
standalone = [
    "--bytecode", "--compile", "--css-chunking",
    "--emit-dce-annotations", "--help", "--minify", "--minify-identifiers",
    "--minify-syntax", "--minify-whitespace", "--no-bundle",
    "--no-clear-screen", "--production", "--react-fast-refresh",
    "--splitting", "--watch", "--windows-hide-console",
    "-h",
]
valued = [
    "--asset-naming", "--banner", "--chunk-naming", "--conditions",
    "--entry-naming", "--env", "--external", "--footer",
    "--format", "--outdir", "--outfile", "--packages",
    "--public-path", "--root", "--sourcemap", "--target",
    "--windows-icon",
    "-e",
]

[[command.sub]]
name = "test"
level = "SafeRead"
standalone = ["--bail", "--help", "--only", "--rerun-each", "--todo", "-h"]
valued = ["--preload", "--timeout", "-t"]

[[command.sub]]
name = "outdated"
standalone = ["--help", "-h"]

[[command.sub]]
name = "pm"
[[command.sub.sub]]
name = "bin"
standalone = ["--help", "-h"]
[[command.sub.sub]]
name = "cache"
standalone = ["--help", "-h"]
[[command.sub.sub]]
name = "hash"
standalone = ["--help", "-h"]
[[command.sub.sub]]
name = "ls"
standalone = ["--help", "-h"]

[[command.sub]]
name = "x"
handler = "bun_x"

[[command]]
name = "yarn"
url = "https://yarnpkg.com/cli"
bare_flags = ["--help", "--version", "-V", "-h"]
first_arg = ["test", "test:*"]
level = "SafeRead"

[[command.sub]]
name = "list"
standalone = ["--help", "--json", "--long", "--production", "-h"]
valued = ["--depth", "--pattern"]

[[command.sub]]
name = "ls"
standalone = ["--help", "--json", "--long", "--production", "-h"]
valued = ["--depth", "--pattern"]

[[command.sub]]
name = "info"
standalone = ["--help", "--json", "-h"]

[[command.sub]]
name = "why"
standalone = ["--help", "--json", "-h"]

[[command]]
name = "npm"
url = "https://docs.npmjs.com/cli"
bare_flags = ["--help", "--version", "-V", "-h"]

[[command.sub]]
name = "list"
level = "Inert"
standalone = [
    "--all", "--help", "--json", "--link", "--long", "--omit",
    "--parseable", "--production", "--unicode",
    "-a", "-h", "-l",
]
valued = ["--depth", "--prefix"]

[[command.sub]]
name = "ls"
level = "Inert"
standalone = [
    "--all", "--help", "--json", "--link", "--long", "--omit",
    "--parseable", "--production", "--unicode",
    "-a", "-h", "-l",
]
valued = ["--depth", "--prefix"]

[[command.sub]]
name = "view"
level = "Inert"
standalone = ["--help", "--json", "-h"]

[[command.sub]]
name = "info"
level = "Inert"
standalone = ["--help", "--json", "-h"]

[[command.sub]]
name = "audit"
level = "Inert"
standalone = ["--help", "--json", "--omit", "--production", "-h"]
valued = ["--audit-level"]

[[command.sub]]
name = "test"
level = "SafeRead"
standalone = ["--help", "-h"]

[[command.sub]]
name = "doctor"
level = "Inert"
standalone = ["--help", "--json", "-h"]

[[command.sub]]
name = "explain"
level = "Inert"
standalone = ["--help", "--json", "-h"]

[[command.sub]]
name = "fund"
level = "Inert"
standalone = ["--help", "--json", "-h"]

[[command.sub]]
name = "outdated"
level = "Inert"
standalone = ["--help", "--json", "-h"]

[[command.sub]]
name = "prefix"
level = "Inert"
standalone = ["--help", "--json", "-h"]

[[command.sub]]
name = "root"
level = "Inert"
standalone = ["--help", "--json", "-h"]

[[command.sub]]
name = "why"
level = "Inert"
standalone = ["--help", "--json", "-h"]

[[command.sub]]
name = "config"
[[command.sub.sub]]
name = "get"
level = "Inert"
standalone = ["--help", "--json", "--long", "-h", "-l"]
[[command.sub.sub]]
name = "list"
level = "Inert"
standalone = ["--help", "--json", "--long", "-h", "-l"]

[[command.sub]]
name = "run"
first_arg = ["test", "test:*"]
level = "SafeRead"

[[command.sub]]
name = "run-script"
first_arg = ["test", "test:*"]
level = "SafeRead"

[[command]]
name = "pnpm"
url = "https://pnpm.io/pnpm-cli"
bare_flags = ["--help", "--version", "-V", "-h"]

[[command.sub]]
name = "list"
level = "Inert"
standalone = ["--dev", "--help", "--json", "--long", "--no-optional", "--parseable", "--production", "--recursive", "-P", "-h", "-r"]
valued = ["--depth", "--filter"]

[[command.sub]]
name = "ls"
level = "Inert"
standalone = ["--dev", "--help", "--json", "--long", "--no-optional", "--parseable", "--production", "--recursive", "-P", "-h", "-r"]
valued = ["--depth", "--filter"]

[[command.sub]]
name = "audit"
level = "Inert"
standalone = ["--help", "--json", "--recursive", "-h", "-r"]
valued = ["--filter"]

[[command.sub]]
name = "outdated"
level = "Inert"
standalone = ["--help", "--json", "--recursive", "-h", "-r"]
valued = ["--filter"]

[[command.sub]]
name = "why"
level = "Inert"
standalone = ["--help", "--json", "--recursive", "-h", "-r"]
valued = ["--filter"]

[[command]]
name = "deno"
url = "https://docs.deno.com/runtime/reference/cli/"
bare_flags = ["--help", "--version", "-V", "-h"]

[[command.sub]]
name = "check"
level = "SafeRead"
standalone = ["--help", "--json", "--no-lock", "--quiet", "--unstable", "-h", "-q"]
valued = ["--config", "--import-map", "-c"]

[[command.sub]]
name = "doc"
level = "Inert"
standalone = ["--help", "--json", "--no-lock", "--quiet", "--unstable", "-h", "-q"]
valued = ["--config", "--import-map", "-c"]

[[command.sub]]
name = "fmt"
guard = "--check"
level = "Inert"
bare = false
standalone = ["--check", "--help", "--no-semicolons", "--single-quote", "--unstable", "-h", "-q"]
valued = ["--config", "--ext", "--ignore", "--indent-width", "--line-width", "--log-level", "--prose-wrap", "-c"]

[[command.sub]]
name = "info"
level = "Inert"
standalone = ["--help", "--json", "--no-lock", "--quiet", "--unstable", "-h", "-q"]
valued = ["--config", "--import-map", "-c"]

[[command.sub]]
name = "lint"
level = "SafeRead"
standalone = ["--help", "--json", "--no-lock", "--quiet", "--unstable", "-h", "-q"]
valued = ["--config", "--import-map", "-c"]

[[command.sub]]
name = "test"
level = "SafeRead"
standalone = ["--help", "--json", "--no-lock", "--quiet", "--unstable", "-h", "-q"]
valued = ["--config", "--import-map", "-c"]

[[command]]
name = "nvm"
url = "https://github.com/nvm-sh/nvm#readme"
bare_flags = ["--help", "--version", "-V", "-h"]

[[command.sub]]
name = "current"
level = "Inert"
standalone = ["--help", "--lts", "--no-colors", "-h"]

[[command.sub]]
name = "list"
level = "Inert"
standalone = ["--help", "--lts", "--no-colors", "-h"]

[[command.sub]]
name = "ls"
level = "Inert"
standalone = ["--help", "--lts", "--no-colors", "-h"]

[[command.sub]]
name = "ls-remote"
level = "Inert"
standalone = ["--help", "--lts", "--no-colors", "-h"]

[[command.sub]]
name = "version"
level = "Inert"
standalone = ["--help", "--lts", "--no-colors", "-h"]

[[command.sub]]
name = "which"
level = "Inert"
standalone = ["--help", "--lts", "--no-colors", "-h"]

[[command]]
name = "fnm"
url = "https://github.com/Schniz/fnm#readme"
bare_flags = ["--help", "--version", "-V", "-h"]

[[command.sub]]
name = "current"
level = "Inert"
standalone = ["--help", "-h"]

[[command.sub]]
name = "default"
level = "Inert"
standalone = ["--help", "-h"]

[[command.sub]]
name = "list"
level = "Inert"
standalone = ["--help", "-h"]

[[command.sub]]
name = "ls-remote"
level = "Inert"
standalone = ["--help", "-h"]

[[command]]
name = "volta"
url = "https://docs.volta.sh/reference"
bare_flags = ["--help", "--version", "-V", "-h"]

[[command.sub]]
name = "list"
level = "Inert"
standalone = ["--current", "--default", "--help", "-c", "-d", "-h"]
valued = ["--format"]

[[command.sub]]
name = "which"
level = "Inert"
standalone = ["--current", "--default", "--help", "-c", "-d", "-h"]
valued = ["--format"]