General
What is Loopress?
Loopress is the Git layer for WordPress. A versioned file describes the desired state of a site's code and critical config, a hook, a plugin version, a Composer dependency, an API route, an app bundle. Loopress diffs that file against the live site and reconciles it. It ships as a CLI and a WordPress plugin that work together, and it never touches your content or database.
Does Loopress version my content?
No, by design. Posts, pages, editorial content and the database are out of scope. Versioning content is what sank the last serious attempt at Git for WordPress (VersionPress). Loopress stays on code and critical config, where a diff and a rollback are actually safe.
Is it free?
The CLI and the WordPress plugin are open source and free. The Loopress console (console.loopress.dev) is free to use during the alpha. Paid Pro and Agency tiers are coming, pricing will be announced separately.
Who is Loopress for?
Agencies and freelancers who maintain existing WordPress sites they did not necessarily build, and want a real Git workflow over them: clone, diff, push, roll back. It works on the stock wp-content layout, no restructuring required.
Comparisons
How is Loopress different from Roots Bedrock?
Bedrock restructures your project (code into web/app, WordPress core into web/wp) and its recommended deploy path, Trellis, needs SSH. It's a solid choice for teams that can commit to that structure upfront. Loopress takes a different trade: no restructuring, works on the stock wp-content layout your host already runs, no SSH required.
How is Loopress different from staging/DB-sync plugins like WP Staging or Duplicator?
Those tools move a site as a point-in-time snapshot: you pick what to include by hand and push it as one operation, with no diff against the last sync. Loopress tracks changes continuously and pushes only what changed, the same way Git does for code.
Isn't this what VersionPress tried to do?
VersionPress aimed at Git-based version control for WordPress including the database and content, and never left developer preview before being archived. The concept of WordPress plus Git drew real interest; versioning content is most likely what made it unworkable. Loopress takes the opposite constraint: code and critical config only, never content, so there is no serialized-data merge to get wrong.
Hooks and Snippets
What are Hooks?
Hooks let you declare WordPress actions and filters as PHP 8 classes with attributes, versioned as files. Loopress loads and wires each file onto native add_action / add_filter, with no admin paste box and no runtime of its own. It is in active development.
Should I use Snippets or Hooks?
Use Snippets to pull what already lives in Code Snippets or WPCode into Git, for a one-off edit or as a migration step. For behavior you intend to keep, Hooks is the durable home: it is a plain file in your repo, wired through native WordPress primitives. The Snippets commands are not going anywhere; they interoperate with the plugins you already run.
CLI
What does the CLI do?
lps pull writes the live state of a site's resources to local files (plugins, Composer, ACF, API routes, forms, pages, SEO, snippets); you commit and review them in Git; lps push reconciles the site with what the files say. Individual resource commands (lps plugin, lps api, lps app, and so on) do the same for one resource at a time.
How do I authenticate?
Loopress uses WordPress application passwords. No SSH access required. You configure a project once with lps project config, which by default opens your browser and creates the application password for you automatically (manual entry is available as a fallback). Credentials are stored locally on your machine, in your OS's standard config directory.
Can I manage multiple projects or environments?
Yes. The CLI supports multiple named projects, each with multiple environments (local, staging, production). You switch between them with lps project switch.
Does it work with any WordPress installation?
It works with any self-hosted WordPress site that has the Loopress plugin installed and the REST API enabled.
Snippets
Which snippet plugins are supported?
Code Snippets and WPCode are both supported. Loopress detects whichever one is active on the site, no configuration needed.
What happens when I push a snippet?
Loopress reads the metadata from the .json sidecar file (id, name, tags, active status) and creates or updates the corresponding snippet in WordPress via the REST API.
Can I create new snippets from the CLI?
Yes. Any snippet file without an id in its .json sidecar will be created as a new snippet. The generated id is written back into the .json metadata file after creation.
Can I share the same snippet across multiple sites?
lps snippet publish uploads a project's snippets to your Loopress account, separately from any single WordPress site, so they can be deployed to other projects from the console. Requires being logged in (lps login) and the project synced (lps project sync).
Plugin management
How does the plugin lockfile work?
You declare plugin slugs and versions in loopress.json under a plugins key. Running lps plugin push installs missing plugins, activates them, and flags version mismatches for review.
Where do plugins come from?
From the official WordPress.org plugin directory. Loopress downloads and installs any plugin available at wordpress.org/plugins.
What if a plugin is already installed but inactive?
Loopress will activate it automatically as part of lps plugin push.
WordPress plugin
What does the WordPress plugin do?
It exposes a REST API that the CLI communicates with, and provides an admin panel to manage Composer dependencies directly from the WordPress dashboard. No terminal or SSH access needed.
Is there a production lock?
Yes. You can lock a site to prevent package installs or removals, either from the admin panel or by setting LOOPRESS_PRODUCTION_LOCK in wp-config.php.
Does it support Composer?
Yes. The WordPress plugin runs Composer via PHP and installs packages from Packagist into wp-content/loopress/. The autoloader is registered automatically.