safe-chains 0.210.2

Auto-allow safe bash commands in agentic coding tools
Documentation
[[command]]
name = "rsync"
description = "File / directory synchronizer. Copies files locally or over SSH / rsyncd. The destination (last positional argument) gets written; with -n / --dry-run, no writes happen. Remote sources or destinations (user@host:path or rsync://host/path) make network operations. --delete removes files at the destination. The wide flag set covers compression, attributes, filters, and bandwidth limits. Stable, ubiquitous."
url = "https://rsync.samba.org/"
researched_version = "rsync 3.x"
level = "SafeWrite"
bare = false
standalone = [
    "--8-bit-output", "--acls", "--address",
    "--append", "--archive", "--atimes", "--backup",
    "--blocking-io", "--bwlimit", "--checksum",
    "--checksum-choice", "--chmod", "--chown",
    "--compress", "--compress-level",
    "--contimeout", "--copy-as", "--copy-devices",
    "--copy-dirlinks", "--copy-links",
    "--copy-unsafe-links", "--cvs-exclude",
    "--debug", "--delete", "--delete-after",
    "--delete-before", "--delete-during",
    "--delete-excluded", "--delete-missing-args",
    "--devices", "--dirs", "--dry-run",
    "--exclude", "--exclude-from", "--executability",
    "--existing", "--fake-super", "--fileflags",
    "--files-from", "--filter", "--force",
    "--from0", "--fsync", "--full-help",
    "--fuzzy", "--group", "--groupmap",
    "--hard-links", "--help",
    "--human-readable", "--ignore-errors",
    "--ignore-existing", "--ignore-missing-args",
    "--ignore-times", "--inc-recursive",
    "--include", "--include-from", "--info",
    "--inplace", "--ipv4", "--ipv6",
    "--itemize-changes", "--keep-dirlinks",
    "--links", "--list-only", "--log-file",
    "--log-file-format", "--max-alloc",
    "--max-delete", "--max-size", "--min-size",
    "--mkpath", "--modify-window", "--msgs2stderr",
    "--munge-links", "--no-D", "--no-OO",
    "--no-W", "--no-blocking-io", "--no-detach",
    "--no-implied-dirs", "--no-iconv", "--no-i-r",
    "--no-incremental", "--no-inc-recursive",
    "--no-links", "--no-motd", "--no-o",
    "--no-perms", "--no-relative", "--no-specials",
    "--no-times", "--no-times-h", "--no-W",
    "--no-whole-file", "--no-xattrs",
    "--numeric-ids", "--old-args", "--old-d",
    "--omit-dir-times", "--omit-link-times",
    "--one-file-system", "--owner", "--partial",
    "--partial-dir", "--password-file",
    "--perms", "--port", "--preallocate",
    "--progress", "--protect-args", "--protocol",
    "--prune-empty-dirs", "--quiet", "--random",
    "--read-batch", "--recursive", "--relative",
    "--remote-option", "--remove-source-files",
    "--rsh", "--rsync-path", "--safe-links",
    "--secluded-args", "--secret",
    "--secret-file", "--server", "--size-only",
    "--skip-compress", "--sockopts", "--sparse",
    "--specials", "--stats", "--stop-after",
    "--stop-at", "--stop-fmt", "--super",
    "--suffix", "--temp-dir", "--timeout",
    "--times", "--trust-sender", "--update",
    "--usermap", "--use-qsort", "--verbose",
    "--version", "--whole-file",
    "-0", "-4", "-6", "-8", "-A", "-B", "-C", "-D",
    "-E", "-F", "-H", "-I", "-J", "-K",
    "-L", "-M", "-N", "-O", "-P", "-R", "-S",
    "-T", "-U", "-V", "-W", "-X", "-Z", "-a",
    "-b", "-c", "-d", "-e", "-f", "-g", "-h",
    "-i", "-k", "-l", "-m", "-n", "-o",
    "-p", "-q", "-r", "-s", "-t", "-u", "-v",
    "-x", "-y", "-z",
]
valued = [
    "--address", "--bwlimit", "--checksum-choice",
    "--chmod", "--chown", "--compress-level",
    "--contimeout", "--copy-as", "--debug",
    "--exclude", "--exclude-from", "--files-from",
    "--filter", "--info", "--log-file",
    "--log-file-format", "--max-alloc",
    "--max-delete", "--max-size", "--min-size",
    "--modify-window", "--out-format",
    "--partial-dir", "--password-file",
    "--port", "--protocol",
    "--read-batch", "--remote-option",
    "--rsh", "--rsync-path", "--secret-file",
    "--skip-compress", "--sockopts", "--stop-after",
    "--stop-at", "--stop-fmt", "--suffix",
    "--temp-dir", "--timeout", "--write-batch",
    "-T", "-e", "-f",
]

[command.path_gate]
flags = { "--password-file" = "read" }