Log in to WordPress with secure passwordless magic links.

v1.5.0 2023-06-25 00:57 UTC

This package is auto-updated.

Last update: 2024-06-26 00:52:14 UTC


WP-CLI Login Command

Login to WordPress with secure passwordless links.

Test Packagist

Quick links: Using | Installation | Contributing



  wp login


  Manage magic passwordless sign-in.


  wp login <command>


  create          Create a magic sign-in link for the given user.
  email           Email a magic sign-in link to the given user.
  install         Install/update the companion server plugin.
  invalidate      Invalidate any existing magic links.
  toggle          Toggle the active state of the companion server plugin.

create / as

wp login create <user> [options]

or alternatively use the alias

wp login as <user> [options]

Create a magic sign-in link for the given user. Outputs the created URL with some extra information for the user regarding usage and expiration. URLs expire 15 minutes after creation (configurable), or at the time of use, whichever comes first.

<user> can be passed as an User ID, username/login or email address. This is the same for all login commands which accept this as a parameter.


Set the lifetime of the magic link in seconds.

10 minutes = 600
1 hour     = 3600
1 day      = 86400

Default: 900 (15 minutes)


Set the URL to redirect to upon successfully logging in. Defaults to admin_url().

Note: The redirect is executed using wp_safe_redirect which restricts the destination URL using a list of allowed hosts. By default, this is limited to the domain of the site, but can be extended using the allowed_redirect_hosts filter.


Outputs the created sign-in URL only. Great for scripting, piping to your clipboard, or anything else you can think of.


Launches the sign-in link your default browser immediately after creation. This is the fastest possible way to login.


wp login email <user> [options]

Email a magic sign-in link to the given user. Sends a nice HTML email to the user's email address containing their freshly created magic sign-in link. Planning to add support for both HTML and plain text emails in the future.


See above.


See above.


Optionally override the default email subject with your own custom string. You may use the {{ domain }} placeholder.

Default: Magic log-in link for {{domain}}


Optionally override the default email template with your own by providing the path to a different template file to use. The email template is compiled using the Mustache template engine, so you may use the {{ magic_url }} and {{ domain }} placeholders in your custom template. The default template can be found in this repository under template/email-default.mustache.


wp login install [options]

Install/update the companion server plugin. Installing the companion plugin is required before magic links will work on the host. The login command is aware of the installed version of the plugin, and will inform you if it needs to be installed, activated or upgraded. If the plugin is already installed, you will be prompted to overwrite it.


Optionally activate the plugin immediately after installation.


Install as a Must Use plugin.


Suppress prompting for confirmation to overwrite the existing plugin.

Using a Composer-based WordPress install? You can require the companion plugin using the package aaemnnosttv/wp-cli-login-server.


wp login invalidate

Invalidate any existing magic sign-in links. Any previously created links will most likely go to a 404 page.


wp login toggle [<on|off>]

Toggles the active status of the companion plugin. Optionally pass on or off to set the activation accordingly. Without it, the status is simply inverted.


Installing this package requires WP-CLI v0.23.0 or greater. Update to the latest stable release with wp cli update.

Once you've done so, you can install this package with wp package install aaemnnosttv/wp-cli-login-command.


We appreciate you taking the initiative to contribute to this project.

Contributing isn’t limited to just code. We encourage you to contribute in the way that best fits your abilities, by writing tutorials, giving a demo at your local meetup, helping other users with their support questions, or revising our documentation.

Reporting a bug

Think you’ve found a bug? We’d love for you to help us get it fixed.

Before you create a new issue, you should search existing issues to see if there’s an existing resolution to it, or if it’s already been fixed in a newer version.

Once you’ve done a bit of searching and discovered there isn’t an open or fixed issue for your bug, please create a new issue with the following:

  1. What you were doing (e.g. "When I run wp post list").
  2. What you saw (e.g. "I see a fatal about a class being undefined.").
  3. What you expected to see (e.g. "I expected to see the list of posts.")

Include as much detail as you can, and clear steps to reproduce if possible.

Creating a pull request

Want to contribute a new feature? Please first open a new issue to discuss whether the feature is a good fit for the project.

Once you've decided to commit the time to seeing your pull request through, please follow our guidelines for creating a pull request to make sure it's a pleasant experience:

  1. Create a feature branch for each contribution.
  2. Submit your pull request early for feedback.
  3. Include functional tests with your changes. Read the WP-CLI documentation for an introduction.
  4. Follow PSR-2 Coding Standards.