{"id":28491611,"url":"https://github.com/hougesen/opad","last_synced_at":"2026-03-06T04:03:50.555Z","repository":{"id":295131591,"uuid":"987355354","full_name":"hougesen/opad","owner":"hougesen","description":"Easily manage package version across multiple package manager systems in mono repositories","archived":false,"fork":false,"pushed_at":"2025-12-22T17:56:14.000Z","size":197,"stargazers_count":1,"open_issues_count":9,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-24T06:52:12.799Z","etag":null,"topics":["bun","cargo","npm","package-management","pnpm","yarn"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hougesen.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-05-21T00:49:58.000Z","updated_at":"2025-12-22T17:54:33.000Z","dependencies_parsed_at":"2025-07-05T23:22:37.361Z","dependency_job_id":"06df3c39-1f7b-4395-a402-42f46703813e","html_url":"https://github.com/hougesen/opad","commit_stats":null,"previous_names":["hougesen/crosspmv","hougesen/opad"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/hougesen/opad","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hougesen%2Fopad","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hougesen%2Fopad/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hougesen%2Fopad/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hougesen%2Fopad/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hougesen","download_url":"https://codeload.github.com/hougesen/opad/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hougesen%2Fopad/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30161345,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-05T22:39:40.138Z","status":"online","status_checked_at":"2026-03-06T02:00:08.268Z","response_time":250,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bun","cargo","npm","package-management","pnpm","yarn"],"created_at":"2025-06-08T08:07:51.609Z","updated_at":"2026-03-06T04:03:50.445Z","avatar_url":"https://github.com/hougesen.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# opad\n\nEasily manage package version across multiple package manager systems in mono repositories.\n\n## Installation\n\n### Using Cargo\n\nopad can be installed using Cargo, the package manager for Rust ([crates.io](https://crates.io/crates/opad)).\n\n```shell\ncargo install opad\n```\n\n### Using Homebrew\n\nIf you're on macOS or Linux, you can install opad using Homebrew:\n\n```shell\n# Tap and install\nbrew tap hougesen/tap\nbrew install opad\n\n# Or install directly in one command\nbrew install hougesen/tap/opad\n```\n\n### Using npm/npx\n\nYou can install `opad` using [npm](https://www.npmjs.com/package/opad):\n\n```shell\nnpm install -g opad\n\nopad format .\n```\n\nOr run it directly using npx:\n\n```shell\nnpx opad format .\n```\n\n### Precompiled Binaries\n\nIf you do not have/want Rust or Homebrew installed on your device, you can find precompiled binaries on the [release](https://github.com/hougesen/opad/releases) page or run one of the installers below.\n\n#### Linux \u0026 MacOS\n\n```shell\ncurl --proto '=https' --tlsv1.2 -LsSf https://github.com/hougesen/opad/releases/latest/download/opad-installer.sh | sh\n```\n\n#### Windows\n\n```powershell\npowershell -ExecutionPolicy ByPass -c \"irm https://github.com/hougesen/opad/releases/latest/download/opad-installer.ps1 | iex\"\n```\n\n## Usage\n\n\u003c!-- START_SECTION:base-command-help --\u003e\n\n```\nopad 0.1.0\nEasily manage package version across multiple package manager systems in mono repositories\nMads Hougesen \u003cmads@mhouge.dk\u003e\n\nUsage: opad [OPTIONS]\n\nOptions:\n      --check-hidden-files\n          Check hidden files/foldersfor support package managers files\n\n          Default: `false`\n\n      --check-gitignored-files\n          Check gitignored files/folders for support package managers files\n\n          Default: `false`\n\n      --completions \u003cCOMPLETIONS\u003e\n          Generate shell completions\n\n          [possible values: bash, elvish, fish, nushell, powershell, zsh]\n\n  -h, --help\n          Print help (see a summary with '-h')\n\n  -V, --version\n          Print version\n```\n\n\u003c!-- END_SECTION:base-command-help --\u003e\n\n### Updating package versions\n\nStart by selecting the packages you wish to update:\n\n```\n$ opad\n\n? Which files do you wish to update?\n  [x] Cargo.toml\n  [ ] cli/Cargo.toml\n\u003e [ ] docs/package.json\n[↑↓ to move, space to select one, → to all, ← to none, type to filter]\n```\n\nInput the new package version:\n\n```\n\u003e Which files do you wish to update? Cargo.toml\n? Cargo.toml: What do you wish to set the version to? 1.2.3\n```\n\nChoose whether to update the associated lock files:\n\n```\n\u003e Which files do you wish to update? Cargo.toml\n\u003e Cargo.toml: What do you wish to set the version to? 1.2.3\n🟩 Cargo.toml has been updated\n\u003e Do you wish to update the lock files (experimental) Yes\n🟦 Updating lock files connected to Cargo.toml\n    Checking opad v1.2.3 (/home/houge/Desktop/projects/opad/cli)\n    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.23s\n🟩 Lock files has been updated\n```\n\n## Supported package management systems\n\n| Language                   | Package manager | File             | Update lock file command                                  |\n| -------------------------- | --------------- | ---------------- | --------------------------------------------------------- |\n| `Rust`                     | `cargo`         | `Cargo.toml`     | `cargo check` (`Cargo.lock`)                              |\n| `JavaScript`, `TypeScript` | `npm`           | `package.json`   | `npm install` (`package-lock.json`)                       |\n| `JavaScript`, `TypeScript` | `pnpm`          | `package.json`   | `pnpm install` (`pnpm-lock.yam`)                          |\n| `JavaScript`, `TypeScript` | `bun`           | `package.json`   | `bun install` (`bun.lock`, `bun.lockb`)                   |\n| `JavaScript`, `TypeScript` | `yarn`          | `package.json`   | `yarn install` (`yarn.lock`)                              |\n| `JavaScript`, `TypeScript` | `deno`          | `deno.json`      | `deno install` (`deno.lock`,)                             |\n| `JavaScript`, `TypeScript` | `lerna`         | `lerna.json`     | Depends on the `npmClient` field                          |\n| `Python`                   | `uv`            | `pyproject.toml` | `uv lock` (`uv.lock`)                                     |\n| `Python`                   | `rye`           | `pyproject.toml` | `rye lock` (`requirements.lock`, `requirements-dev.lock`) |\n| `Python`                   | `poetry`        | `pyproject.toml` | n/a (`poetry.lock` does not include version)              |\n| `Gleam`                    | `gleam`         | `gleam.toml`     | n/a (`manifest.toml` does not include version)            |\n| `Dart`                     | `pub`           | `pubspec.yaml`   | n/a (`pubspec.lock` does not include version)             |\n| `Crystal`                  | `shards`        | `shard.yml`      | n/a (`shard.lock` does not include version)               |\n| `Elm`                      | `elm`           | `elm.json`       | n/a (elm does not have a lock file (?))                   |\n\n## Shell completion\n\nShell completion can be generated using the `opad --completions $SHELL` command.\n\n### Bash\n\nAdd the following to your `.bashrc`.\n\n```bash\neval \"$(opad --completions bash)\"\n```\n\n### Zsh\n\nAdd the following to your `.zshrc`:\n\n```zsh\neval \"$(opad --completions zsh)\"\n```\n\n### Fish\n\nAdd the following to `~/.config/fish/config.fish`.\n\n```fish\nopad --completions fish | source\n```\n\n### PowerShell\n\nAdd the following to your PowerShell configuration (Can be found by running `$PROFILE`).\n\n```powershell\nInvoke-Expression (\u0026opad --completions powershell)\n```\n\n### Elvish\n\nAdd the following to `~/.elvish/rc.elv`.\n\n```elvish\neval (opad --completions elvish)\n```\n\n### Nushell\n\nGenerate completions for [nushell](https://github.com/nushell/nushell).\n\n```nushell\nopad --completions nushell\n```\n\n## Disclaimer\n\nI wrote `opad` since I got tired of manually updating package version in my mono repositories that included multiple different languages and build tools. It might be useful for you, or it might not be. Feel free to let me know if something isn't working as you would expect, or if a feature is missing.\n\nPlease be aware that not all file parsers used by this tool respect prior formatting, so you might want to run your preferred formatting tool on the files after usage.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhougesen%2Fopad","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhougesen%2Fopad","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhougesen%2Fopad/lists"}