faq
Questions, answered.
Something missing? Open an issue on GitHub or send a message.
The basics
- What is Loopress?
- A CLI and a WordPress plugin that turn the parts of a site that are not content, configuration and code, into files in your repo. You edit them, review them in a PR, push them to any environment, and pull back what changed on the live site.
- Does it touch my content?
- No, by design. Posts, page content, orders, users and media are never written to the repo and never overwritten by a push. Versioning content is what sank earlier attempts at Git for WordPress, so Loopress stays on what a diff and a rollback can safely handle.
- Who is it for?
- Developers who look after several WordPress sites, often on their own, and want the same workflow on all of them: one repo per site, a diff before every change, an undo after it.
- Is it free?
- Yes. The CLI is open source under MPL-2.0, the WordPress plugin under GPL, and both editions of the plugin are free.
- Is it ready?
- Alpha, moving fast. It runs real sites today, and things still change between releases. Issues and pull requests on GitHub get read.
Your site
- Which sites does it work with?
- Any self-hosted site on WordPress 6.2+ and PHP 8.2+, with the REST API enabled. It works on the stock wp-content layout your host already runs: no restructuring, no host change, no SSH.
- Light or Full?
- Same plugin, two builds. Light puts your configuration in Git (ACF field groups, forms, menus, custom post types, taxonomies, post meta keys, roles, options, block theme styles) and is on WordPress.org. Full adds code: hooks, API routes, apps, pages, block templates and patterns, and the plugin lockfile. WordPress.org does not host plugins that deploy code, so Full ships from loopress.dev, and lps project config installs it for you.
- How do I connect a site?
- lps project config. By default it opens your browser and WordPress creates an Application Password for you, with manual entry as a fallback. Credentials stay on your machine. HTTPS is required, except for a local environment.
- Several sites, several environments?
- Yes. Each project has its own environments (local, staging, production), and lps project switch moves between them. lps promote staging production copies what you validated on staging.
- What if I stop using Loopress?
- Everything stays in your Git repo: configuration as plain files, hooks and API routes as plain PHP classes. Hooks use Loopress attributes, so they need the plugin to run, but the code is yours, readable, and nothing is locked on our side.
Code
- What are hooks?
- WordPress actions and filters written as PHP classes, one per file, declared with attributes like #[Filter('the_title')] instead of add_filter calls scattered across functions.php. Loopress wires them onto the native hook system, no runtime of its own.
- How does the plugin lockfile work?
- lps plugin pull writes the plugins installed on the site, each pinned to its running version, into loopress.json (or composer.json if your repo has one). lps plugin push installs the same set through Composer and WPackagist, keeps inactive plugins inactive, and uninstalls what you removed, after a confirmation.
- Can I use Composer packages?
- Yes. The plugin runs Composer from PHP and installs packages from Packagist into wp-content/loopress/, with the autoloader registered for you. That is how the cookbook recipes pull in libraries like a QR code generator or a PDF renderer.
- Can an AI agent use it?
- Your site is files, so any coding agent can edit it, and you still review the diff. To let the agent pull and push as well, the MCP server exposes the CLI as tools: claude mcp add loopress -- lps-mcp.
Compared to
- Roots Bedrock?
- Bedrock restructures the project (code into web/app, core into web/wp) and its usual deploy path, Trellis, needs SSH. A good choice when you can commit to that structure upfront. Loopress makes the opposite trade: the site stays as it is, no SSH.
- WP Staging, Duplicator and other sync plugins?
- They move a site as a snapshot, database included, with no diff against the last sync. Loopress pushes only what changed in your files, and never the content.
- VersionPress?
- VersionPress tried to put the database and content in Git and was archived before leaving developer preview. Loopress takes the opposite constraint, configuration and code only, so there is no serialized data to merge.