{
  "id": "rye",
  "name": "Rye",
  "homepage": "https://rye.astral.sh/",
  "description": "Python project and toolchain manager",
  "executables": [
    "rye"
  ],
  "platforms": [
    "macos",
    "linux",
    "windows"
  ],
  "dotfiles": {
    "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
    },
    "subcommand": [
      {
        "path": [
          "sync"
        ],
        "label": "Sync the project",
        "description": "Update the lockfiles and install the dependencies into the virtualenv.",
        "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\n* `--no-dev`: Do not install dev dependencies\n* `--no-lock`: Do not update the lockfile.\n* `--update <UPDATE>`: Update a specific package\n* `--update-all`: Update all packages to the latest\n* `--pre`: Update to pre-release versions\n* `--all-features`: Enables all features\n* `-v, --verbose`: Enables verbose diagnostics\n* `-q, --quiet`: Turns off all output\n"
          }
        ],
        "field": [
          {
            "id": "force",
            "label": "Re-create virtualenv",
            "type": "boolean",
            "option": [
              "--force",
              "-f"
            ],
            "effect": "overwrite",
            "sources": [
              "docs"
            ]
          },
          {
            "id": "no_dev",
            "label": "Skip dev dependencies",
            "type": "boolean",
            "option": [
              "--no-dev"
            ],
            "sources": [
              "docs"
            ]
          },
          {
            "id": "no_lock",
            "label": "Do not update lockfile",
            "type": "boolean",
            "option": [
              "--no-lock"
            ],
            "sources": [
              "docs"
            ]
          },
          {
            "id": "update",
            "label": "Update a package",
            "type": "string",
            "option": [
              "--update"
            ],
            "sources": [
              "docs"
            ]
          },
          {
            "id": "update_all",
            "label": "Update all packages",
            "type": "boolean",
            "option": [
              "--update-all"
            ],
            "sources": [
              "docs"
            ]
          },
          {
            "id": "pre",
            "label": "Allow pre-releases",
            "type": "boolean",
            "option": [
              "--pre"
            ],
            "sources": [
              "docs"
            ]
          },
          {
            "id": "all_features",
            "label": "All features",
            "type": "boolean",
            "option": [
              "--all-features"
            ],
            "sources": [
              "docs"
            ]
          },
          {
            "id": "verbose",
            "label": "Verbose",
            "type": "boolean",
            "option": [
              "--verbose",
              "-v"
            ],
            "sources": [
              "docs"
            ]
          }
        ],
        "task": [
          {
            "id": "sync",
            "label": "Sync",
            "fields": [
              "no_dev",
              "no_lock",
              "update_all",
              "verbose"
            ]
          },
          {
            "id": "rebuild",
            "label": "Rebuild the virtualenv",
            "set": {
              "force": [
                true
              ]
            },
            "lock": [
              "force"
            ],
            "fields": [
              "force",
              "no_dev",
              "verbose"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "no_dev",
              "no_lock",
              "update",
              "update_all",
              "force"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "pre",
              "all_features",
              "verbose"
            ]
          }
        ]
      },
      {
        "path": [
          "add"
        ],
        "label": "Add a dependency",
        "description": "Add a Python package to this project's dependencies.",
        "source": [
          {
            "id": "docs",
            "kind": "manual",
            "url": "https://rye.astral.sh/guide/commands/add/",
            "revision": "2026-10-27",
            "evidence": "* `<REQUIREMENTS>...`: The package to add as PEP 508 requirement string. e.g. 'flask==2.2.3'\n* `--git <GIT>`: Install the given package from this git repository\n* `--path <PATH>`: Install the given package from this local path\n* `--features <FEATURES>`: Adds a dependency with a specific feature\n* `--dev`: Add this as dev dependency\n* `--optional <OPTIONAL>`: Add this to an optional dependency group\n* `--pre`: Include pre-releases when finding a package version\n* `--sync`: Runs `sync` automatically even if auto-sync is disabled.\n* `--no-sync`: Does not run `sync` automatically even if auto-sync is enabled.\n"
          }
        ],
        "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"
            ]
          },
          {
            "id": "dev",
            "label": "Dev dependency",
            "type": "boolean",
            "option": [
              "--dev"
            ],
            "sources": [
              "docs"
            ]
          },
          {
            "id": "optional",
            "label": "Optional group",
            "type": "string",
            "option": [
              "--optional"
            ],
            "sources": [
              "docs"
            ]
          },
          {
            "id": "features",
            "label": "Feature (extra)",
            "type": "string",
            "option": [
              "--features"
            ],
            "sources": [
              "docs"
            ]
          },
          {
            "id": "git",
            "label": "Git repository",
            "type": "url",
            "option": [
              "--git"
            ],
            "sources": [
              "docs"
            ]
          },
          {
            "id": "path",
            "label": "Local path",
            "type": "path",
            "option": [
              "--path"
            ],
            "path": {
              "kind": "directory",
              "role": "input"
            },
            "sources": [
              "docs"
            ]
          },
          {
            "id": "pre",
            "label": "Allow pre-releases",
            "type": "boolean",
            "option": [
              "--pre"
            ],
            "sources": [
              "docs"
            ]
          },
          {
            "id": "sync",
            "label": "Sync afterwards",
            "type": "boolean",
            "option": [
              "--sync"
            ],
            "sources": [
              "docs"
            ]
          }
        ],
        "task": [
          {
            "id": "add",
            "label": "Add a dependency",
            "fields": [
              "requirements",
              "features",
              "pre",
              "sync"
            ],
            "required": [
              "requirements"
            ]
          },
          {
            "id": "add-dev",
            "label": "Add a dev dependency",
            "set": {
              "dev": [
                true
              ]
            },
            "lock": [
              "dev"
            ],
            "fields": [
              "requirements",
              "dev",
              "sync"
            ],
            "required": [
              "requirements"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "requirements",
              "dev",
              "features",
              "sync"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "optional",
              "git",
              "path",
              "pre"
            ]
          }
        ]
      }
    ]
  }
}
