Manage your WordPress plugins and themes with Composer https://wp-packages.org/
Find a file
Ben Word cc6c32cc2d
Some checks failed
ci / Go Modules Tidy (push) Successful in 2m22s
ci / GolangCI-Lint (push) Failing after 7m22s
ci / Integration Test (push) Failing after 4s
govulncheck / govulncheck (push) Failing after 2s
ci / Go Test (push) Failing after 15m24s
Count tombstoned packages in status check deactivated total
Tombstoned packages were being written to status_check_changes but
excluded from the run's deactivated count, which both hid them from
the displayed total and suppressed the expand list (the handler only
loads changes when Deactivated > 0 || Reactivated > 0).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-14 09:28:55 -05:00
.github/workflows Remove only from usage instructions (#43) 2026-03-21 13:45:35 -05:00
benchmarks Remove only from usage instructions (#43) 2026-03-21 13:45:35 -05:00
cmd/wppackages Count tombstoned packages in status check deactivated total 2026-05-14 09:28:55 -05:00
deploy/ansible Add mass closure history page + API (#107) 2026-05-09 21:12:44 -05:00
docs Add public status page (#89) 2026-04-02 21:24:20 -05:00
internal Add cleanup-r2-orphans command for bulk R2 deletion (#109) 2026-05-11 09:36:43 -05:00
migrations Add mass closure history page + API (#107) 2026-05-09 21:12:44 -05:00
scripts Add user prompt for script deletion after successful migration (#64) 2026-03-25 14:42:33 -05:00
test Replace shell smoke test with Go integration tests (#26) 2026-03-19 00:38:21 -04:00
.air.toml Split make dev into bootstrap + live-reload (#55) 2026-03-22 21:37:33 -04:00
.gitignore WP Packages rename (#42) 2026-03-19 11:50:12 -05:00
.golangci.yml Update lint config (#45) 2026-03-19 23:36:56 -04:00
CLAUDE.md WP Packages rename (#42) 2026-03-19 11:50:12 -05:00
go.mod Add GET /api/stats endpoint for total downloads badge (#53) 2026-03-23 15:08:31 -05:00
go.sum Add GET /api/stats endpoint for total downloads badge (#53) 2026-03-23 15:08:31 -05:00
LICENSE.md Initial commit 2026-03-14 13:36:07 -05:00
litestream.yml Fix database is locked errors by tuning WAL checkpointing for Litestream (#94) 2026-04-04 10:37:27 -05:00
Makefile Incremental sync refactor (phase 2) (#90) 2026-04-03 10:11:18 -05:00
migrations.go WP Packages rename (#42) 2026-03-19 11:50:12 -05:00
README.md Add per-package install total API and badge example 2026-05-03 18:35:51 -05:00
seeds.yaml Initial commit 2026-03-14 13:36:07 -05:00

WP Packages

Total Installs Status Build status Follow Roots Sponsor Roots

Manage your WordPress plugins and themes with Composer.

Support us

Roots is an independent open source org, supported only by developers like you. Your sponsorship funds WP Packages and the entire Roots ecosystem, and keeps them independent. Support us by purchasing Radicle or sponsoring us on GitHub — sponsors get access to our private Discord.

Sponsors

Carrot WordPress.com Itineris Kinsta

WP Packages vs WPackagist

WP Packages WPackagist
Open source Fully open source — application, infrastructure, and deployment all in the public repo Application + Docker build only; production infrastructure remains proprietary, and public repo has historically diverged from production
Package naming wp-plugin/* wp-theme/* wpackagist-plugin/* wpackagist-theme/*
Package metadata Includes authors, description, homepage, and support links Missing — requested since 2020
Update frequency Every 5 minutes ~1.5 hours (estimated)
Composer v2 metadata-url
Composer v2 metadata-changes-url
Install statistics
Public status page See status page
Untagged plugin installs Immutable — pinned to SVN revision Mutable, resulting in unexpected plugin updates
Closed plugins & themes Removed in sync with WordPress.org closures Continues serving closed plugins with no notice

Composer resolve times

Cold resolve (no cache) — lower is better:

Plugins WP Packages WPackagist Speedup
10 plugins 0.7s 12.3s 17x faster
20 plugins 1.1s 19.0s 17x faster

Documentation

See the documentation for usage instructions, example composer.json configurations, and more.

Roots WordPress Packages

Roots provides WordPress core as Composer packages — roots/wordpress, roots/wordpress-full, and roots/wordpress-no-content. Learn more.

Migrating from WPackagist

Use the migration script to automatically update your composer.json:

curl -sO https://raw.githubusercontent.com/roots/wp-packages/main/scripts/migrate-from-wpackagist.sh && bash migrate-from-wpackagist.sh

Community