Command reference

Use the high-level commands for a first copy or product integration. Use the smaller commands when your product needs to control individual stages.

php reprint.phar --help
php reprint.phar pull --help

Command-specific help describes the complete options and defaults for the client you downloaded. This page names every command, the conventions the handbook examples share, and the options those examples use.

Conventions

Reference pages write commands with three shell variables. Set them before pasting an example:

Variable Meaning
$URL The source’s Reprint API address, shown in Tools Reprint Server.
$STATE_DIR A private directory for the client’s credentials, saved progress, SQL download, and generated server files.
$FS_ROOT The directory that downloaded site files are written to.

Site address or API address. pull, pull-files, and pull-db accept the site address, such as https://example.com. Other commands need the Reprint API address, such as https://example.com/?reprint-api, shown in Tools Reprint Server.

Credentials. Commands that contact the source need one credential flag: --private-key-path=./reprint-key.pem after creating and authorizing that key with keygen, or --secret='TOKEN' when the source uses a connection token. Never pass both. Local-only commands such as db-apply, apply-runtime, and preflight-assert take no credential. See Authentication.

Directories. Keep $STATE_DIR outside $FS_ROOT and outside every web-served directory. Use one state directory per filesystem root, and do not run two commands against the same state directory at once. To continue an interrupted transfer, run the same command with the same source address, state directory, and filesystem root.

Complete workflows

Command Result
pull Preflight, files, database download and apply, optional flattening, and runtime setup.
pull-files Preflight and file download, without database apply or runtime setup.
pull-db Preflight, database download, and database apply, without file or runtime changes.
install-server Installation instructions for the source-site plugin; it does not install the plugin remotely.

Start with Clone your site or Build with Reprint.

Access and inspection

Command Result
keygen A private key and a public Migration Token to enroll on one source site.
preflight A report of the source environment, also saved for subsequent stages.
preflight-assert Checks of the saved preflight report without another request.
pull-metadata Saved pull lifecycle, artifacts, source details, and stored-key metadata; no network request.
files-stats File counts and sizes from the next remote index.
db-index Database table metadata written to db-tables.jsonl.

See Authentication, Preflight, and Progress, results, and exit codes.

Data transfer and preparation

Command Result
files-index A remote file index, without downloading file contents.
files-pull A file pull in catch-up or mirror mode, using a saved preflight report.
db-pull A SQL dump, or SQL streamed to stdout or a MySQL connection.
db-apply A database import with optional URL rewriting.
db-rewrite-urls URL changes directly in an existing database.
flat-docroot A standard WordPress layout assembled with symlinks to downloaded files.
merge-wp-content Local-only wp-content entries moved into the pulled tree.
apply-runtime Generated target runtime configuration and local source-host cleanup.
post-process Selected hosting cleanup and plugin startup-recovery tasks.
recover A WordPress startup check that can deactivate a failing regular plugin.

See File transfers, Database transfers, Runtime configuration, and Prepare a hosting destination.

Local change inspection and push

Push sends local file or database changes back to a site. The client can inspect local changes without uploading. Uploads need a separately configured push-capable target. The WordPress.org server package does not include push implementations; configuring it cannot enable them.

Command Result
files-diff Local changes compared with the retained local index; no upload.
files-push A resumable file push to a separately configured push-capable target.
db-push A staged full database overwrite requiring explicit confirmation.

Hosts developing that integration should use the implementation and configuration notes in the development repository. Do not offer push using the WordPress.org server package.

Options used in this handbook

Each command’s --help lists its complete options. These are the ones the handbook examples use, with the commands that accept them.

Option What it does Commands
--state-dir=DIR Private directory for credentials, saved progress, the SQL download, and generated server files. Every command that reads or writes state.
--fs-root=DIR Directory that site files are written to or read from. Transfer commands, apply-runtime, recover, post-process.
--private-key-path=PATH Private key that signs requests; overrides a key stored in the state directory. Commands that contact the source.
--secret=TOKEN Connection token for a source whose host lacks OpenSSL. Commands that contact the source.
--out=PATH Write the generated private key to PATH instead of the state directory. keygen
--insecure Allow an HTTP address and skip HTTPS certificate checks. REPRINT_INSECURE_TLS=1 does the same. Every command.
--progress=MODE Progress output: auto, tty, jsonl, or compact. JSONL and compact append a final command report. Every command.
--step=N, --steps=N Pipeline position written to progress.json. Every command.
--verbose Print detailed request and response logs, including audit-log entries. Transfer and runtime commands.
--abort Discard the named command’s unfinished work; its help says what is kept. pull, pull-files, pull-db, files-pull, files-index, db-pull, db-index, db-apply, db-rewrite-urls, and the push commands.
--target-engine=ENGINE Destination database engine: mysql or sqlite. pull, pull-db, db-apply, db-rewrite-urls, apply-runtime
--target-host, --target-port, --target-user, --target-pass, --target-db Destination MySQL connection. The user and database name are required for MySQL. Same as --target-engine.
--target-sqlite-path=PATH Destination SQLite file. Default: wp-content/database/.ht.sqlite under the copy. Same as --target-engine.
--new-site-url=URL New site address. Creates the matching --rewrite-url from the source address. pull, pull-files, files-pull, pull-db, db-apply, db-rewrite-urls
--rewrite-url FROM TO Replace FROM with TO in the database and CSS. Repeatable. Same as --new-site-url, plus db-push.
--include=SOURCE, --exclude=SOURCE Restrict the file pull to, or omit, a source prefix: a token such as :wp-content: or an absolute source path. Exclusions win. pull-files, files-pull
--remap SOURCE TARGET Place a selected source prefix at TARGET inside the filesystem root. pull-files, files-pull
--mode=MODE File pull mode: catch-up (default) or mirror. pull, pull-files, files-pull
--on-fs-root-nonempty=ACTION error (default) or preserve-local when the filesystem root already has files. pull, pull-files, files-pull
--no-follow-symlinks Copy a selected symlink as a link without indexing its target. pull, pull-files, files-pull
--exclude-host-plugins, --include-host-plugins Skip or keep host platform plugins; the choice is saved in state. On apply-runtime, they control local cleanup only. pull, pull-files, pull-db, files-pull, db-apply, apply-runtime
--sql-output=MODE with --mysql-host, --mysql-port, --mysql-user, --mysql-password, --mysql-database Where db-pull writes SQL: file (default), stdout, or mysql. db-pull
--site-admin=LOGIN Imported user who administers a site copied out of a network. pull, pull-db, db-apply
--flatten-to=PATH Assemble a standard WordPress layout at PATH with symlinks to the downloaded tree. --core-files=copy copies WordPress core instead. pull, flat-docroot
--core-files=MODE Place WordPress core in that layout as link (default) or copy. pull, flat-docroot
--runtime=RUNTIME Server configuration to generate: php-builtin, nginx-fpm, playground-cli, or none. pull, apply-runtime
--start-runtime=RUNTIME Runtime to launch after pull finishes; none starts nothing. pull
--output-dir=DIR Directory for generated runtime files. pull, apply-runtime
--flat-document-root=DIR Use an assembled layout as the document root. apply-runtime
--tasks=LIST Post-processing tasks to run, or all. post-process

See Runtime configuration for how the runtime options combine on pull.

Shared behavior

--abort is command-specific: it can discard an unfinished output or checkpoint. Read the command’s help before using it. It is not a general rollback command. Run the same command to continue an interrupted transfer. Use pull-files to fetch later file changes without replacing the local database. To reopen the local site without copying again, use the generated start script from Clone your site.