Blog

CommandBox 4.4.0 Released

Brad Wood November 04, 2018

Spread the word

Brad Wood

November 04, 2018

Spread the word


Share your thoughts

We are pleased to announce a minor maintenance release of CommandBox. Version 4.4.0 is released just in time for CFCamp with a handful of fixes and a few nice features.   I'm writing this up on the plane on my way to Germany for CFCamp so I'll be brief :)  

Many of the cool new features came as pull requests for the community.  Thanks a ton to everyone who contributed!

Download

We have updated all the usual download locations including HomeBrew and the main download links on our site.  To upgrade, just grab the latest box binary and replace the old one.  

https://ortussolutions.com/products/commandbox#download

Documentation

All the docs have been updated for the 4.4.0 version and can be accessed here:

https://commandbox.ortusbooks.com/

http://apidocs.ortussolutions.com/commandbox/4.4.0/index.html

New Features

Here's a few notable features coming to you in CommandBox 4.4.0.

Iterate over JSON with foreach command

The foreach command which was introduced recently and allows you to iterate over any list of input and run a command using each item in the list has been enhanced to also allow you to iterate from the CLI over any JSON string that you pipe in.

package show dependencies | foreach

https://commandbox.ortusbooks.com/usage/foreach-command#iterating-over-json

Directory Watchers have more data

Now when you create a directory watcher in a task runner or custom command, you can not only get notified when something in that directory changes, but you also now receive a list of files added, removed, and modified.

watch()
    .onChange( function( paths ) {
        print
            .line( '#paths.added.len()# paths were added!' )
            .line( '#paths.removed.len()# paths were removed!' )
            .line( '#paths.changed.len()# paths were changed!' )            ;
    } )
    .start();

New "coldbox watch-reinit" command

Thanks to Scott Steinbeck, we have a new command called coldbox watch-reinit.  This will watch for changes to certain files in your project and will automatically issue a framework reinit when you edit things like configs or services.  

package set reinitWatchPaths= "config/**.cfc,models/**.cfc,ModuleConfig.cfc"
coldbox watch-reinit

Color all the JSONs

Thanks to John Berquist, CommandBox now has sweet color coding any time it outputs JSON to the screen.  Try it out by running something like "server show". 

Users can also customize the colors they see for JSON with the following config settings:

  • json.ansiColors.constant
  • json.ansiColors.key
  • json.ansiColors.number
  • json.ansiColors.string

Setting values can be any color name from the system-colors command.

New Gist endpoint

Thanks to Jason Steinshouer we have a new Gist endpoint for installing code from a public Gist.

install gist:b6cfe92a08c742bab78dd15fc2c1b2bb

https://commandbox.ortusbooks.com/package-management/code-endpoints/gist

4.4.0 Release Notes

Bug

  • [COMMANDBOX-876] - testbox watcher shows error when test fail
  • [COMMANDBOX-881] - Tab complete doesn't work on param values with spaces
  • [COMMANDBOX-882] - Long lines wrap in interactive jobs
  • [COMMANDBOX-887] - Exact versions don't update from ForgeBox when manually changed.
  • [COMMANDBOX-895] - Passing positional args to task errors with required param

New Feature

Improvement

Add Your Comment

Recent Entries

12 Days of BoxLang - Day 4: TestBox

12 Days of BoxLang - Day 4: TestBox

Today we’re celebrating one of the most exciting new additions to the BoxLang ecosystem:

the TestBox BoxLang CLI Runner — a fast, native way to run your TestBox tests directly through the BoxLang Runtime. ⚡

No server required. No CommandBox needed. Just pure, ultra-fast BoxLang-powered testing from the command lineon Windows, Mac, and Linux.

If you’re building modern applications with BoxLang — web apps, CLIs, serverless functions, Android apps, or OS-level utilities — this new feature gives you a unified, flexible testing workflow you can run anywhere.

Victor Campos
Victor Campos
December 13, 2025
12 days of BoxLang - Day 3: SocketBox!

12 days of BoxLang - Day 3: SocketBox!

As BoxLang continues evolving into a modern, high-performance, JVM-based runtime, real-time communication becomes essential for the applications we all want to build: dashboards, collaboration tools, notifications, live feeds, multiplayer features, and more.

That’s where SocketBox steps in — the WebSocket upgrade listener built to work seamlessly with CommandBox and the BoxLang MiniServer. ⚡

Today, for Day 3, we’re highlighting how SocketBox supercharges BoxLang development by giving you fast, flexible, and framework-agnostic WebSocket capabilities.

Maria Jose Herrera
Maria Jose Herrera
December 12, 2025
12 Days of BoxLang - Day 2: CommandBox

12 Days of BoxLang - Day 2: CommandBox

BoxLang + CommandBox: The Enterprise Engine Behind Your Deployments

For Day 2 of our 12 Days of Christmas series, we’re diving into one of the most powerful parts of the BoxLang ecosystem: CommandBox the defacto enterprise servlet deployment platform for BoxLang.

If BoxLang is the language powering your applications, CommandBox is the engine room behind it all. ⚙️

Victor Campos
Victor Campos
December 11, 2025