id = "rye" name = "Rye" homepage = "https://rye.astral.sh/" description = "Python project and toolchain manager" executables = ["rye"] platforms = ["macos", "linux", "windows"] [dotfiles] # Rye's official configuration guide identifies config.toml in ~/.rye on Unix # and %USERPROFILE%/.rye on Windows as the global settings file. The rest of # that directory is managed toolchain/state data and is intentionally omitted. # https://rye.astral.sh/guide/config/ paths = [ "~/.rye/config.toml", "%USERPROFILE%/.rye/config.toml", ] secret = [] side_effect = false [commands] format = 1 label = "Rye" description = "Sync a Rye project's virtualenv and add dependencies. Other rye subcommands and the less common sync/add switches are left out." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.subcommand]] path = ["sync"] label = "Sync the project" description = "Update the lockfiles and install the dependencies into the virtualenv." [[commands.subcommand.source]] id = "docs" kind = "manual" url = "https://rye.astral.sh/guide/commands/sync/" revision = "2026-10-27" evidence = """ * `-f, --force`: Force the virtualenv to be re-created * `--no-dev`: Do not install dev dependencies * `--no-lock`: Do not update the lockfile. * `--update `: Update a specific package * `--update-all`: Update all packages to the latest * `--pre`: Update to pre-release versions * `--all-features`: Enables all features * `-v, --verbose`: Enables verbose diagnostics * `-q, --quiet`: Turns off all output """ [[commands.subcommand.field]] id = "force" label = "Re-create virtualenv" type = "boolean" option = ["--force", "-f"] effect = "overwrite" sources = ["docs"] [[commands.subcommand.field]] id = "no_dev" label = "Skip dev dependencies" type = "boolean" option = ["--no-dev"] sources = ["docs"] [[commands.subcommand.field]] id = "no_lock" label = "Do not update lockfile" type = "boolean" option = ["--no-lock"] sources = ["docs"] [[commands.subcommand.field]] id = "update" label = "Update a package" type = "string" option = ["--update"] sources = ["docs"] [[commands.subcommand.field]] id = "update_all" label = "Update all packages" type = "boolean" option = ["--update-all"] sources = ["docs"] [[commands.subcommand.field]] id = "pre" label = "Allow pre-releases" type = "boolean" option = ["--pre"] sources = ["docs"] [[commands.subcommand.field]] id = "all_features" label = "All features" type = "boolean" option = ["--all-features"] sources = ["docs"] [[commands.subcommand.field]] id = "verbose" label = "Verbose" type = "boolean" option = ["--verbose", "-v"] sources = ["docs"] [[commands.subcommand.task]] id = "sync" label = "Sync" fields = ["no_dev", "no_lock", "update_all", "verbose"] [[commands.subcommand.task]] id = "rebuild" label = "Rebuild the virtualenv" set = { force = [true] } lock = ["force"] fields = ["force", "no_dev", "verbose"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["no_dev", "no_lock", "update", "update_all", "force"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["pre", "all_features", "verbose"] [[commands.subcommand]] path = ["add"] label = "Add a dependency" description = "Add a Python package to this project's dependencies." [[commands.subcommand.source]] id = "docs" kind = "manual" url = "https://rye.astral.sh/guide/commands/add/" revision = "2026-10-27" evidence = """ * `...`: The package to add as PEP 508 requirement string. e.g. 'flask==2.2.3' * `--git `: Install the given package from this git repository * `--path `: Install the given package from this local path * `--features `: Adds a dependency with a specific feature * `--dev`: Add this as dev dependency * `--optional `: Add this to an optional dependency group * `--pre`: Include pre-releases when finding a package version * `--sync`: Runs `sync` automatically even if auto-sync is disabled. * `--no-sync`: Does not run `sync` automatically even if auto-sync is enabled. """ [[commands.subcommand.field]] id = "requirements" label = "Requirements" description = "PEP 508 requirement strings, e.g. flask==2.2.3." type = "string" position = 0 multiple = true min = 1 sources = ["docs"] [[commands.subcommand.field]] id = "dev" label = "Dev dependency" type = "boolean" option = ["--dev"] sources = ["docs"] [[commands.subcommand.field]] id = "optional" label = "Optional group" type = "string" option = ["--optional"] sources = ["docs"] [[commands.subcommand.field]] id = "features" label = "Feature (extra)" type = "string" option = ["--features"] sources = ["docs"] [[commands.subcommand.field]] id = "git" label = "Git repository" type = "url" option = ["--git"] sources = ["docs"] [[commands.subcommand.field]] id = "path" label = "Local path" type = "path" option = ["--path"] path = { kind = "directory", role = "input" } sources = ["docs"] [[commands.subcommand.field]] id = "pre" label = "Allow pre-releases" type = "boolean" option = ["--pre"] sources = ["docs"] [[commands.subcommand.field]] id = "sync" label = "Sync afterwards" type = "boolean" option = ["--sync"] sources = ["docs"] [[commands.subcommand.task]] id = "add" label = "Add a dependency" fields = ["requirements", "features", "pre", "sync"] required = ["requirements"] [[commands.subcommand.task]] id = "add-dev" label = "Add a dev dependency" set = { dev = [true] } lock = ["dev"] fields = ["requirements", "dev", "sync"] required = ["requirements"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["requirements", "dev", "features", "sync"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["optional", "git", "path", "pre"]