{"id":35216098,"url":"https://github.com/trywpm/cli","last_synced_at":"2026-05-16T18:11:25.747Z","repository":{"id":278908695,"uuid":"909047787","full_name":"trywpm/cli","owner":"trywpm","description":"Package Manager for WordPress","archived":false,"fork":false,"pushed_at":"2026-05-16T14:34:11.000Z","size":825,"stargazers_count":17,"open_issues_count":1,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-05-16T14:41:16.979Z","etag":null,"topics":["package-manager","wordpress","wpm"],"latest_commit_sha":null,"homepage":"https://wpm.so","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/trywpm.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,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE.txt","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-12-27T16:11:59.000Z","updated_at":"2026-05-16T13:08:57.000Z","dependencies_parsed_at":"2026-01-28T19:06:38.715Z","dependency_job_id":null,"html_url":"https://github.com/trywpm/cli","commit_stats":null,"previous_names":["trywpm/cli"],"tags_count":26,"template":false,"template_full_name":null,"purl":"pkg:github/trywpm/cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trywpm%2Fcli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trywpm%2Fcli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trywpm%2Fcli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trywpm%2Fcli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/trywpm","download_url":"https://codeload.github.com/trywpm/cli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trywpm%2Fcli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33113557,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-16T04:41:52.686Z","status":"ssl_error","status_checked_at":"2026-05-16T04:41:52.009Z","response_time":115,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["package-manager","wordpress","wpm"],"created_at":"2025-12-29T22:02:52.374Z","updated_at":"2026-05-16T18:11:25.718Z","avatar_url":"https://github.com/trywpm.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# wpm\n\n`wpm` is a package manager designed to manage WordPress plugins and themes as packages, similar to how npm works for Node.js or Composer for PHP.\n\n## Table of Contents\n\n- [Overview](#overview)\n- [Installation](#installation)\n- [Quick Start](#quick-start)\n- [Usage](#usage)\n    - [Common Commands](#common-commands)\n- [Configuration with wpm.json](#configuration-with-wpmjson)\n    - [Required Fields](#required-fields)\n    - [Optional Fields](#optional-fields)\n- [Excluding Files from Publishing](#excluding-files-from-publishing)\n- [Documentation](#documentation)\n- [Support](#support)\n- [License](#license)\n\n## Overview\n\n`wpm` provides a structured way to manage WordPress plugins and themes. It uses a `wpm.json` file to define package metadata, including dependencies, versioning, and other relevant information. The tool interacts with a remote registry (currently in a development/conceptual stage at `registry.wpm.so`) to publish and retrieve packages.\n\n## Installation\n\n**Linux and Mac**\n```\ncurl -fsSL https://wpm.so/install | bash\n```\n\n**Windows**\n```\npowershell -c \"irm wpm.so/install.ps1|iex\"\n```\n\n**Docker**\n```\ndocker pull trywpm/cli\n```\n\n**Build from Source**\n```bash\ngit clone git@github.com:trywpm/cli.git wpm\ncd wpm\ngo build -o wpm ./cmd/wpm\n```\n\nor download the binaries from the [release](https://github.com/trywpm/cli/releases) page.\n\n## Quick Start\n\n1. **Initialize a new package:**\n   ```bash\n   wpm init\n   ```\n   This will create a `wpm.json` file in your project.\n\n2. **Install dependencies:**\n   ```bash\n   wpm install\n   ```\n\n3. **Publish your package:**\n   ```bash\n   wpm publish\n   ```\n\n## Usage\n\n```bash\nwpm [OPTIONS] COMMAND\n```\n\n### Common Commands\n\n* `auth`: Authenticate with the wpm registry\n  * `login`: Log in to the registry\n  * `logout`: Log out from the registry\n\n* `init`: Initialize a new WordPress package\n  * Use `-y` or `--yes` to accept all defaults\n\n* `install`: Install dependencies from `wpm.json`\n  * `--no-dev`: Skip installing dev dependencies\n  * `--ignore-scripts`: Do not run lifecycle scripts\n  * `--dry-run`: Simulate installation without making changes\n  * `--save-dev`: Save installed packages as dev dependencies\n  * `--save-prod`: Save installed packages as production dependencies (default)\n  * `--network-concurrency`: Set number of concurrent network requests (default 16)\n\n* `publish`: Publish a package to the registry\n  * `--dry-run`: Validate without publishing\n  * `--tag`: Set the package tag (default: latest)\n  * `--access`: Set access level (public/private)\n  * `--verbose`: Show detailed output\n\n* `whoami`: Display the current logged-in user\n\n### Global Options\n\n* `--config`: Location of client config files (default: `~/.wpm`)\n* `-D, --debug`: Enable debug mode\n* `-l, --log-level`: Set logging level (`debug`, `info`, `warn`, `error`, `fatal`)\n* `-v, --version`: Print version information\n* `-h, --help`: Show help\n\nRun `wpm COMMAND --help` for more information about a specific command.\n\n## Configuration with wpm.json\n\nThe `wpm.json` file defines your package and its dependencies:\n\n```json\n{\n  \"name\": \"my-awesome-plugin\",\n  \"description\": \"A short description of my plugin\",\n  \"type\": \"plugin\",\n  \"version\": \"1.0.0\",\n  \"license\": \"GPL-2.0-or-later\",\n  \"requires\": {\n    \"wp\": \"\u003e=6.0\",\n    \"php\": \"\u003e=7.4\"\n  },\n  \"dependencies\": {\n    \"akismet\": \"*\", // always fetch latest version\n    \"hello-dolly\": \"1.7.2\"\n  },\n  \"devDependencies\": {\n    \"some-dev-plugin\": \"3.20.2\"\n  },\n  \"config\": {\n    \"bin-dir\": \"wp-bin\",\n    \"content-dir\": \"wp-content\",\n    \"runtime\": {\n      \"wp\": \"6.9\",\n      \"php\": \"8.2\"\n    }\n  }\n}\n```\n\n### Required Fields\n\n* `name`: Package name (lowercase, alphanumeric, hyphens)\n* `type`: Either `plugin` or `theme`\n* `version`: SemVer compatible version\n\n### Optional Fields\n\n* `description`: Brief package description\n* `private`: Set `true` to prevent accidental publishing\n* `license`: License identifier\n* `homepage`: URL to your package's homepage\n* `tags`: Keywords (maximum 5)\n* `dependencies`: Production dependencies\n* `devDependencies`: Development-only dependencies\n* `requires`: Minimum requirements which the package supports\n* `config`: Custom configuration options\n\n## Configuration Options\n* `bin-dir`: Directory for executable files (default: `wp-bin`)\n* `content-dir`: WordPress content directory (default: `wp-content`)\n* `runtime`: Runtime environment versions this project is geared to run on\n* `runtime.wp`: WordPress version (e.g., `6.7`, `6.8`, `6.9`)\n* `runtime.php`: PHP version (e.g., `7.4`, `8.0`, `8.1`, `8.2`)\n\n## Excluding Files from Publishing\n\nCreate a `.wpmignore` file in your project root to exclude files when publishing:\n\n```\nnode_modules/\n.git/\n.github/\n*.zip\n*.log\n```\n\n## Documentation\n\n*Documentation will be available soon on the docs.wpm.so site. For now, you can refer to the command line help for detailed usage instructions.*\n\n## Support\n\n* GitHub: [https://github.com/trywpm/cli/discussions](https://github.com/trywpm/cli/discussions)\n* Twitter: [@thelovekesh](https://twitter.com/thelovekesh)\n\n## License\n\nThis project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrywpm%2Fcli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftrywpm%2Fcli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrywpm%2Fcli/lists"}