Meet tj, a tool that helps you create new local WordPress development sites, manage existing sites, and deploy them, all from the command line.

tj handles all of the hard stuff: creation of a local development environment, managing local and remote WordPress sites, and the most annoying part of all, actually deploying those sites. Say goodbye to MAMP!

tj is built on top of tried and true open source libraries such as Capistrano for deployment, Vagrant for local development, and even a little bit of WP-CLI for database migration.


tj requires Vagrant and VirtualBox to be able to create virtual machines for local development. Please download and install both of these before getting started. If you plan on using tj for deployments, you should also ensure that your remote servers have WP-CLI installed in order for tj to be able to handle database migration.

I recommend one of the latest versions of Ruby MRI (2.2, 2.1, 2.0). tj requires at least MRI 1.9.3. For the full report, check out the Travis CI build status, where I test against an array of Ruby interpreters.

I also recommend you set up SSH-keys for GitHub. Internally, tj uses git clone with SSH URLs, so things might break if you don't have your keys set up properly.


gem install theme-juice


tj-setup - Setup an existing project


tj setup [--flag=arg] [--flag]


Sets up an existing local project within the development environment. You will go through a series of prompts to create the necessary files. This command is essentially an alias for tj create --bare.


-n, --name=name

Name of the project

-l, --location=path

Location of the local project

-u, --url=url

Development URL for the project

-r, --repository=repository

Initialize a new git(1) remote repository

-i, --import-db=path

Import an existing database


Skip repository prompts and use default settings


Skip database prompts and use default settings


Skip all prompts and use default settings


Project is not a wordpress(7) install

--no-wp-cli, --no-wp-cli-config

Skip creating the local wp-cli(1) config file


Project does not need a database


Project does not need a .env file

--no-config, --no-juicefile

Project does not have a Juicefile(5) config

--modify-wp-config, --wp-config-modify

Modify wp-config.php file contents with project configuration (this flag automatically disables the .env file when used)

--no-ssl, --no-https

Project does not need SSL support