What's New in 3.1.1


Now CommandBox will not only start up Lucee 4 servers with a single command, but you can start up Adobe ColdFusion, Railo, and even Luce 5 servers all at the same time. Now it's easier than ever to test your code across multiple platforms. CommandBox's embedded server makes for a fast and easy development machine too regardless of what CF engine you need.

# Start the latest stable Railo engine
CommandBox> start cfengine=railo

# Start a specific engine and version
CommandBox> start cfengine=adobe@10.0.12

# Start any Java WAR
CommandBox> start WARPath=/var/www/myApp.war

ForgeBox 2.0 API

We'v released a brand new ForgeBox.io site with a new UI, fresh features, and a shiny new API. CommandBox 3.1.1 is now powered by the new ForgeBox site and API which includes features like having more than one version for a package.

Semantic Versioning support

When you install packages from ForgeBox, you can use fancy semver ranges to specify the versions of a package you're willing to install. CommandBox will automatically grab the latest version that satisfies your version range. This also applies to the "update" command which makes keeping your projects' dependencies up-to-date even easier.

# A specific version
CommandBox> install foo@1.2.3

# Any version with a major number of 4 (4.1, 4.2, 4.9, etc)
CommandBox> install foo@4.x

# Any version greater than 1.5.0
CommandBox> install foo@>1.5.0

# Any version greater than 5.2 but less than or equal to 6.3.4
CommandBox> install "foo@>5.2 <=6.3.4"

Create user from CLI

Another feature of the new ForgeBox site is the ability to create a new ForgeBox user right from the CLI. After creation, you'll be logged in with your ForgeBox API Key which let's you update your packages.

CommandBox> forgebox register

Publish packages from the CLI

You no longer need to visit the ForgeBox web site to publish new or updated packages to ForgeBox. This is all available from the CLI once you've logged in. This means you can even automate the process of publishing to cut down on the number of manual steps it takes you to update your projects and share those changes with the community.

CommandBox> forgebox publish

Interceptor-based CLI scripts

You can now run commands of your choosing automatically when certain events in the CLI happen (like publishing a package, or starting a server). You can also create ad-hoc collections of commands to run whenever you want to help automate things like building your projects or publishing to ForgeBox.

  "name" : "My Package",
  "slug" : "my-package",
  "version" : "1.0.0",
  "scripts" : {
   "postVersion" : "package set location='gitUser/gitRepo#`package version`'"
   "postPublish" : "!git push"

Have Fun

We hope you enjoy playing with the new features. As always, jump on our mailing list, or the CFML slack team with any questions or feedback. And remember, we provide tools like CommandBox CLI free of charge to the community as professionally-supported open source. If you have specific needs in the form of features or training for your team, Ortus is here to help you. Contact us with any questions.

Release Notes


New Feature



  • [COMMANDBOX-293] - Return with exit code 1 when things fail

  • [COMMANDBOX-338] - Add ability to use environment variables to supply java args for BOX itself

  • [COMMANDBOX-341] - install my-module installs unneeded devDependencies

  • [COMMANDBOX-345] - Add ability to specify a server.json by path

  • [COMMANDBOX-346] - Modify build to include sdk format of Unix binary

  • [COMMANDBOX-349] - Improve error message when using "box" from interactive shell

  • [COMMANDBOX-359] - Convert all existing ForgeBox calls to new API format.

  • [COMMANDBOX-362] - Improve messaging and logging when errors connecting to Forgebox

  • [COMMANDBOX-366] - Enhance semver logic for satisfying versions

  • [COMMANDBOX-370] - Allow param completion UDF to see typed text

  • [COMMANDBOX-375] - Capture full java exception stack from Jgit errors

  • [COMMANDBOX-377] - Convert CF Engine downloads to S3/ForgeBox

  • [COMMANDBOX-378] - Fix right click options on server tray icon to be non-Lucee

  • [COMMANDBOX-380] - Allow masking of user input

  • [COMMANDBOX-381] - Auto-correct rewritesEnabled to be rewritesEnable in the start command

  • [COMMANDBOX-387] - Update module scaffolding to create in modules_app folder.

  • [COMMANDBOX-388] - Make help for commands more intuitive

  • [COMMANDBOX-389] - Don't create init methods for models if included in the method list

[COMMANDBOX-390] - Switch create controller command to create handler command