id = "asimov" name = "Asimov" homepage = "https://github.com/AsimovMac/asimov" description = "Automatically exclude development dependencies from Apple Time Machine backups." executables = ["asimov"] [dotfiles] # The official Asimov README's doctor output identifies its user config as # ~/.config/asimov/config. Its cache under ~/.cache/asimov is rebuildable local # state and is excluded from synchronization. # https://github.com/AsimovMac/asimov#verifying-it-worked paths = ["~/.config/asimov/config"] exclude = ["~/.cache/asimov/"] secret = [] [commands] format = 1 label = "Exclude dependency folders from Time Machine" description = "Scan a directory (default: home) for dependency folders and exclude them from backups. The prune and doctor subcommands are left out." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = false, short_attached = false, short_bundles = false } [[commands.source]] id = "readme" kind = "help" url = "https://github.com/AsimovMac/asimov/blob/master/README.md" revision = "master 2026-10-27" evidence = """ asimov [--dry-run] [--verbose] [--quiet] [--stats] [--no-read-cache] [--no-write-cache] [--help] [--version] [directory] | `--dry-run` | Print what would be excluded without changing Time Machine | | `--verbose` | Show all directories including already-excluded ones | | `--quiet` | Suppress all output except errors | | `--stats` | Show per-directory sizes and a total-space summary | | `--no-read-cache` | Ignore cached state; re-discover and re-verify everything, then rebuild the cache | | `--no-write-cache` | Run normally but don't persist any cache updates | """ [[commands.field]] id = "directory" label = "Directory to scan" type = "path" path = { kind = "directory", role = "input" } position = 0 sources = ["readme"] [[commands.field]] id = "dry_run" label = "Preview only" type = "boolean" option = ["--dry-run"] sources = ["readme"] [[commands.field]] id = "stats" label = "Show sizes" type = "boolean" option = ["--stats"] sources = ["readme"] [[commands.field]] id = "verbose" label = "Show already-excluded too" type = "boolean" option = ["--verbose"] sources = ["readme"] [[commands.field]] id = "quiet" label = "Quiet" type = "boolean" option = ["--quiet"] sources = ["readme"] [[commands.field]] id = "no_read_cache" label = "Ignore cache (rescan)" type = "boolean" option = ["--no-read-cache"] sources = ["readme"] [[commands.field]] id = "no_write_cache" label = "Do not update cache" type = "boolean" option = ["--no-write-cache"] sources = ["readme"] [[commands.task]] id = "preview" label = "Preview with sizes" set = { dry_run = [true], stats = [true] } lock = ["dry_run"] fields = ["directory", "dry_run", "stats", "verbose"] [[commands.task]] id = "apply" label = "Apply exclusions" fields = ["directory", "stats", "quiet"] [[commands.group]] id = "basic" label = "Basic" fields = ["directory", "dry_run", "stats"] [[commands.group]] id = "advanced" label = "Advanced" fields = ["verbose", "quiet", "no_read_cache", "no_write_cache"]