{"id":18947193,"url":"https://github.com/candrewlee14/webman","last_synced_at":"2025-04-15T22:31:33.621Z","repository":{"id":39586206,"uuid":"486363591","full_name":"candrewlee14/webman","owner":"candrewlee14","description":"Add, remove, and manage different versions of web-distributed software binaries. No elevated permissions required!","archived":false,"fork":false,"pushed_at":"2024-03-28T00:11:19.000Z","size":715,"stargazers_count":64,"open_issues_count":4,"forks_count":4,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-03-29T03:51:16.643Z","etag":null,"topics":["cli","cross-platform","golang","package","package-manager","packages"],"latest_commit_sha":null,"homepage":"","language":"Go","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/candrewlee14.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2022-04-27T22:01:22.000Z","updated_at":"2025-01-17T08:37:54.000Z","dependencies_parsed_at":"2024-03-28T00:26:51.566Z","dependency_job_id":"beffb33a-26d3-4c3c-ab88-fff0b9629aad","html_url":"https://github.com/candrewlee14/webman","commit_stats":null,"previous_names":[],"tags_count":24,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/candrewlee14%2Fwebman","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/candrewlee14%2Fwebman/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/candrewlee14%2Fwebman/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/candrewlee14%2Fwebman/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/candrewlee14","download_url":"https://codeload.github.com/candrewlee14/webman/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249166111,"owners_count":21223385,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["cli","cross-platform","golang","package","package-manager","packages"],"created_at":"2024-11-08T13:09:15.004Z","updated_at":"2025-04-15T22:31:28.599Z","avatar_url":"https://github.com/candrewlee14.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"/assets/webmanLogo.svg\" width=260/\u003e\n \u003c/p\u003e\n\u003ch3 align=\"center\"\u003e\n  A cross-platform package manager for the web!\n\u003c/h3\u003e\n\u003chr/\u003e\n\n![schema-linter](https://github.com/candrewlee14/webman-pkgs/actions/workflows/schema-linter.yml/badge.svg)\n![bintest](https://github.com/candrewlee14/webman-pkgs/actions/workflows/bintest.yml/badge.svg)\n![report-card](https://goreportcard.com/badge/github.com/candrewlee14/webman)\n\nAdd, remove, and manage different versions of web-distributed software binaries.\nNo elevated permissions required!\n\n\u003e Warning: This repo is still under development and has not stabilized.\nThere may be frequent breaking changes until a 1.x release.\n\nPackage recipes are located in the [webman-pkgs](https://github.com/candrewlee14/webman-pkgs) repo.\nRecipes are simple YAML files that make it easy to submit a new package.\nWebman locates version numbers online and installs packages from the web, so you'll always have the most up-to-date software available!\n\nWindows (Powershell), Linux, and MacOS are supported!\n\n\u003cimg alt=\"webman help example\" src=\"/assets/tapes/webman.gif\" width=600/\u003e\n\n### Installation\n\n#### MacOS, Linux, Git Bash, WSL, etc.\n```bash\ncurl https://raw.githubusercontent.com/candrewlee14/webman/main/scripts/install.sh | sh\n```\n\n#### Windows Powershell\nWebman requires the ability to create symlinks!\nMake sure to [enable developer mode](https://learn.microsoft.com/en-us/windows/apps/get-started/enable-your-device-for-development) so that admin privileges aren't required.\n```powershell\nInvoke-Expression (New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/candrewlee14/webman/main/scripts/install.ps1')\n```\n\n\u003e NOTE: Never blindly run a shell script from the internet. Please check the source [shell](scripts/install.sh) or [powershell](scripts/install.ps1) file.\nAlternatively, download the [latest release](/releases/latest) manually.\n\n\n# Philosophy\n\nI wanted a cross-platform package manager like [webi](https://github.com/webinstall/webi-installers) with no dependencies, a nice CLI, and a simple package configuration format.\nI wanted a generalized version of [nvm](https://github.com/nvm-sh/nvm), [nvm-windows](https://github.com/coreybutler/nvm-windows), and [gvm](https://github.com/moovweb/gvm) for easily switching between package versions.\nI wanted an easy way to install groups of packages, like the tools in [modern-unix](https://github.com/ibraheemdev/modern-unix).\n\nThat's why I built `webman`.\n\nAll of `webman`'s resources are located in `~/.webman`.\nThe only directory that needs to go on your system PATH is `~/.webman/bin`.\nSimply remove the `~/.webman` directory and all of webman's packages and resources will be removed.\n\nSecurity is an important priority to me here.\nPackage recipes cannot specify commands to be run, only endpoints to access.\nEverything is implemented in Go.\n\n# Examples\n\nBelow are examples of adding, removing, and switching with webman.\n\n## Add Software\n\n`webman add go` will install the latest version of Go.\n\n`webman add zig@0.9.1` will install a specific version (`0.9.1`) of Zig.\n\n`webman add rg lsd zig node go rg@12.0.0` will install each of the package versions listed.\n\n`webman group add modern-unix` will allow checkbox selections for adding packages in the `modern-unix` group.\n\n\u003cimg alt=\"webman add example\" src=\"/assets/addNodeZigGoRg.gif\" width=600/\u003e\n\n## Run Software\n\n`webman run go` will run the in-use version of Go (if installed).\n\n`webman run zig@0.9.1 --version` will run a specific version (`0.9.1`) of Zig with the argument `--version`.\n\n`webman run node:npm --version` will run `npm --version` using the in-use version of node.\n\n## Remove Software\n\n`webman remove go` will allow you to select an installed version of the Go package to uninstall/\n\n`webman group remove modern-unix` will allow checkbox selections for removing packages in the `modern-unix` group.\n\n\u003cimg alt=\"webman remove example\" src=\"/assets/removeNode.gif\" width=600/\u003e\n\n## Switch to Other Versions of Software\n\n`webman switch go` will allow you to select an installed version of the `go` package to switch to use.\nIf `rg --version` previously showed `13.0.0`, try running `webman switch rg` and selecting version `12.0.0` (after it has been installed).\nRunning `rg --version` again will say `12.0.0`.\n\nWebman does version management.\n\n\u003cimg alt=\"webman switch example\" src=\"/assets/switchRg.gif\" width=600/\u003e\n\n## Check Packages \u0026 Test Locally\n\nYou can create new package recipes by adding a simple recipe file in a cloned [webman-pkgs](https://github.com/candrewlee14/webman-pkgs) directory. Check if it is in a valid format with `webman dev check [WEBMAN-PKGS-DIR]`.\n\nNext, `webman dev bintest [NEW-PKG] -l [WEBMAN-PKGs-DIR]` will do a cross-platform installation test on a package.\n\nThe package recipe format was built around making it easy to contribute new packages to webman, so if you're missing a package, go ahead and create it!\n\n## Disable output color and ANSI escape codes\n\nSet `NO_COLOR` environment variable to hava a raw console output.\n\n# Setup\n\nRun the script above or download the binary for your OS and architecture [here](/releases/latest).\n\nAlternatively, if you have Go installed, run:\n\n```bash\ngo install https://github.com/candrewlee14/webman@latest\n```\n\nNext, add `~/.webman/bin` to your system PATH.\nIf you are on Windows, use `%USERPROFILE%` instead of `~`.\n\nNow you're ready to use webman! Hope you enjoy :)\n\n# Updating\n\nYou can update webman at any time using `webman add webman --switch`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcandrewlee14%2Fwebman","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcandrewlee14%2Fwebman","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcandrewlee14%2Fwebman/lists"}