safe-chains 0.221.0

Auto-allow safe bash commands in agentic coding tools
Documentation
[[command]]
name = "flutter"
description = "Flutter SDK CLI. `analyze`, `doctor`, `devices`, `emulators`, `precache`, `config`, `channel`, `--version` are read-only diagnostics. `pub get/upgrade/add/remove/publish` contact pub.dev (network). `build`, `assemble`, `run`, `test`, `drive`, `attach` execute or compile project code (arbitrary). `create`, `gen-l10n`, `pub get` modify project files. `clean` removes build artifacts."
url = "https://docs.flutter.dev/reference/flutter-cli"
researched_version = "Flutter 3.x"
bare_flags = ["--help", "--version", "-h", "-v"]
examples_safe = [
    "flutter logs",
    "flutter logs -d ABC123",
    "flutter doctor",
]
examples_denied = [
    "flutter logs --clear",
    "flutter logs --evil-flag",
    "flutter run",
    "flutter build apk",
]

[[command.sub]]
name = "doctor"
level = "Inert"
bare = true
standalone = ["--help", "--android-licenses", "--check-for-remote-artifacts", "--verbose", "-v", "-h"]

[[command.sub]]
name = "devices"
level = "Inert"
bare = true
standalone = ["--help", "--machine", "-h"]
valued = ["--device-discovery-timeout", "--device-id", "--device-timeout", "-d"]

[[command.sub]]
name = "emulators"
level = "Inert"
bare = true
standalone = ["--help", "-h"]
valued = ["--launch", "--name"]

[[command.sub]]
name = "analyze"
level = "SafeRead"
bare = true
tolerate_unknown_short = true
standalone = ["--congratulate", "--current-package", "--fatal-infos", "--fatal-warnings", "--help", "--machine", "--no-fatal-infos", "--no-fatal-warnings", "--no-pub", "--preamble", "--watch", "-h"]
valued = ["--cache", "--exit-code", "--write"]
write_flags = ["--write"]

[[command.sub]]
name = "channel"
level = "Inert"
bare = true
tolerate_unknown_short = true
standalone = ["--help", "-h"]

[[command.sub]]
name = "config"
level = "Inert"
bare = true
standalone = ["--analytics", "--clear-features", "--clear-ios-signing-cert", "--enable-analytics", "--enable-android", "--enable-fuchsia", "--enable-ios", "--enable-linux-desktop", "--enable-macos-desktop", "--enable-native-assets", "--enable-web", "--enable-windows-desktop", "--help", "--list", "--no-analytics", "--no-enable-android", "--no-enable-fuchsia", "--no-enable-ios", "--no-enable-linux-desktop", "--no-enable-macos-desktop", "--no-enable-web", "--no-enable-windows-desktop", "--no-jdk-dir", "-h"]
valued = ["--android-sdk", "--android-studio-dir", "--build-dir", "--jdk-dir", "--no-android-sdk", "--no-android-studio-dir", "--no-build-dir"]

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

[[command.sub]]
name = "help"
allow_all = true

[[command.sub]]
name = "build"
candidate = true

[[command.sub]]
name = "create"
candidate = true

[[command.sub]]
name = "run"
candidate = true

[[command.sub]]
name = "test"
candidate = true

[[command.sub]]
name = "drive"
candidate = true

[[command.sub]]
name = "attach"
candidate = true

[[command.sub]]
name = "screenshot"
candidate = true

[[command.sub]]
name = "pub"
candidate = true

[[command.sub]]
name = "clean"
candidate = true

[[command.sub]]
name = "precache"
candidate = true

[[command.sub]]
name = "upgrade"
candidate = true

[[command.sub]]
name = "downgrade"
candidate = true

[[command.sub]]
name = "install"
candidate = true

[[command.sub]]
name = "logs"
level = "SafeRead"
bare = true
standalone = ["--help", "-h"]
valued = ["-d", "--device-id"]

[[command.sub]]
name = "format"
candidate = true

[[command.sub]]
name = "gen-l10n"
candidate = true

[[command.sub]]
name = "symbolize"
candidate = true

[[command.sub]]
name = "ide-config"
candidate = true

[[command.sub]]
name = "make-host-app-editable"
candidate = true