ColdBox CLI

The ColdBox CLI is a powerful command-line interface tool that helps you create, manage, and scaffold ColdBox applications and components with ease.

Welcome to the ColdBox CLI - your ultimate command-line companion for rapid ColdBox development! πŸš€ This powerful tool streamlines the creation, management, and scaffolding of ColdBox applications and components for both CFML and BoxLang projects.

🎯 BoxLang First: BoxLang is now the default language for all new applications, reflecting the modern direction of ColdBox development.

πŸ“¦ CLI Versions & Compatibility

The CLI follows semantic versioning aligned with ColdBox major releases:

ColdBox Version
CLI Version
Status
Installation Command

ColdBox 8

@8

βœ… Current

box install coldbox-cli@8

ColdBox 7

@7.8.0

🟑 Supported

box install [email protected]

ColdBox 6

@6

πŸ”Ά Legacy

box install coldbox-cli@6

πŸ’‘ Pro Tip: Always use the CLI version that matches your ColdBox framework version for the best compatibility and latest features.

⚑ Quick Installation

Get started in seconds with CommandBox:

# Install the latest ColdBox CLI (v8)
box install coldbox-cli

# Get help anytime
coldbox --help

πŸ”— Source Code: Explore the CLI on GitHub at coldbox/coldbox-cli - contributions welcome!

🎯 Getting Started

The ColdBox CLI supercharges your development workflow with intelligent scaffolding and modern development tools. Whether you're building BoxLang or CFML applications, the CLI has you covered!

πŸ“š Help is Always Available: Every command supports the --help flag for detailed usage information.

πŸ₯Š Application Creation

Create stunning ColdBox applications from professionally crafted templates. BoxLang leads the way as the default language for modern development:

πŸ—οΈ Application Templates & Features

Choose from various templates and enhance with powerful features:

πŸ§™β€β™‚οΈ Interactive App Wizard - Perfect for Beginners!

New to ColdBox? The App Wizard is your friendly guide to creating the perfect application setup:

The wizard walks you through every decision with helpful prompts:

Step
What It Asks
Why It Matters

πŸ“ Location

Create in current folder or new directory?

Project organization

πŸ”₯ Language

BoxLang (default) or CFML?

Development preference

🎯 Type

API/REST service or full web app?

Architecture choice

🎨 Frontend

Include Vite for modern UI?

Asset management

🐳 Environment

Docker containerization?

Deployment strategy

πŸ—ƒοΈ Database

Need migration support?

Data management

Example Wizard Session:

πŸ’‘ Pro Tip: The wizard is perfect for exploring all available options and learning about ColdBox features as you create your app!

πŸ“‹ Application Templates - Choose Your Foundation

Select from professionally crafted templates or bring your own via ForgeBox ID, GitHub repo, local path, ZIP file, or URL. Our modern templates prioritize BoxLang for cutting-edge development:

These can be used for BoxLang PRIME projects or CFML projects with the bx-cfml-compat module for compatibility.

Template
Description
Best For

boxlang ⭐

Default - Modern ColdBox with latest BoxLang features

New projects, modern architecture

modern

Contemporary app supporting BoxLang + CFML

Hybrid projects, gradual migration

πŸ“œ FLAT CFML Templates (Traditional Development)

Can also be used for BoxLang projects but using the bx-cfml-compat modules to ensure compatibility.

Template
Description
Best For

flat

Classic flat-structure ColdBox app

Traditional CFML projects

rest

BoxLang-optimized REST API template

Microservices, API development

rest-hmvc

RESTful app with HMVC architecture

Complex API systems

supersimple

Bare-bones minimal setup

Learning, prototyping

vite

CFML app with Vite integration (legacy)

Legacy frontend modernization

πŸš€ Enhanced Template Features

Modern templates (boxlang, modern) unlock powerful development features through simple flags:

Feature Flag
What It Does
Perfect For

--vite 🎨

Modern frontend with hot reload & optimized builds

Interactive UIs, SPAs

--rest 🌐

REST API configuration with OpenAPI docs

Microservices, APIs

--docker 🐳

Complete containerization setup

Cloud deployment, consistency

--migrations πŸ—ƒοΈ

Database migration system

Data-driven apps

Power Combinations:

⚑ Vite Integration - Modern Frontend Made Easy

Transform your frontend development with Vite's lightning-fast build system and hot module replacement:

🎁 What You Get Out of the Box:

Feature
Benefit
Developer Experience

πŸ”§ Pre-configured Setup

vite.config.mjs ready to go

Zero configuration needed

πŸ”₯ Hot Module Replacement

Instant updates without refresh

Ultra-fast development

πŸ“¦ Optimized Builds

Code splitting & tree shaking

Production-ready performance

🎨 Asset Processing

CSS, SCSS, JS, TS support

Modern toolchain

πŸ”— Dev Server + Proxy

Seamless ColdBox integration

Unified development experience

πŸš€ Development Workflow:

πŸ’‘ Pro Tip: Vite's dev server automatically proxies to your ColdBox application, giving you the best of both worlds!

🐳 Docker Integration - Deploy Anywhere, Run Everywhere

Containerize your ColdBox applications for consistent development and bulletproof deployments:

🎁 Complete Container Solution:

Component
What's Included
Benefit

πŸ“¦ Multi-stage Dockerfile

Optimized for ColdBox apps

Minimal production images

πŸ”§ docker-compose.yml

Complete dev environment

One-command setup

πŸ—ƒοΈ Database Services

PostgreSQL/MySQL ready

Consistent data layer

⚑ Redis Caching

High-performance caching

Speed & scalability

🌐 Environment Config

Secure variable management

Production-ready security

πŸ’š Health Checks

Built-in monitoring

Reliable deployments

πŸš€ Container Commands:

🎯 Production Ready: The Docker setup includes production optimizations like multi-stage builds, security best practices, and health monitoring!

🎯 Handlers (Controllers) - Your Application Logic

Generate powerful MVC controllers with intelligent scaffolding for actions, views, and tests:

🎁 Handler Generation Options:

Flag
What It Creates
Perfect For

--rest

RESTful endpoints (GET, POST, PUT, DELETE)

API development

--resource

Full CRUD operations

Data management

--views

Corresponding view templates

Full-stack apps

--integrationTests

Test files for actions

Quality assurance

πŸ’‘ Smart Generation: The CLI creates handlers in the correct directory structure and generates appropriate code for your project language (BoxLang/CFML)!

πŸ“Š Models & Services - Your Business Logic Powerhouse

Create robust domain models and business services that form the backbone of your application:

🎁 Model Generation Features:

Option
What You Get
Use Case

--accessors

Getter/setter methods

Clean property access

--migration

Database table creation

Data persistence

--service

Business logic layer

Complex operations

--all

Complete MVC stack

Full feature development

πŸ’‘ Smart Property Generation:

πŸš€ Pro Tip: Use --all when you need a complete feature with model, service, handler, database migration, and test seeders!

🎨 Views & Layouts - Beautiful User Interfaces

Craft stunning user interfaces with intelligent view and layout generation:

🎁 View Generation Options:

Component
Purpose
Best Practice

Views

Page content & UI components

Keep focused & reusable

Layouts

Page structure & common elements

Master templates

Helpers

View-specific utility functions

Clean separation of concerns

πŸ’‘ Smart Content Generation:

  • Views are placed in the correct directory structure

  • Layouts include proper view rendering calls

  • Helper files provide utility functions for complex views

  • All generated code follows your project's language (BoxLang/CFML)

🎨 Design Tip: Use layouts for common page structure (header, navigation, footer) and views for specific page content!

πŸ”§ Resources & CRUD - Complete Feature Development

Generate complete, production-ready resourceful components with full CRUD operations:

🎁 What Gets Generated:

Component
Purpose
Files Created

🎯 Handler

CRUD actions (index, show, create, edit, delete)

handlers/Photos.cfc

πŸ“Š Model

Data model with validation

models/Photo.cfc

🎨 Views

Complete UI for all actions

views/photos/*.cfm

πŸ›£οΈ Routes

RESTful URL patterns

Added to config/Router.cfc

πŸ§ͺ Tests

Unit & integration tests (optional)

tests/specs/

πŸ—ƒοΈ Migration

Database table creation (optional)

resources/database/migrations/

πŸš€ Generated CRUD Actions:

⚑ Instant Productivity: Resources give you a complete feature with working CRUD operations in seconds!

πŸ“¦ Modules - Reusable Application Components

Create powerful, self-contained modules that can be shared across applications or published to ForgeBox:

🎁 Module Architecture:

Modules are mini-applications within your ColdBox app, complete with their own:

  • πŸ“ Directory Structure - Organized, self-contained file layout

  • βš™οΈ ModuleConfig - Independent configuration and settings

  • πŸ›£οΈ Routing - Module-specific URL patterns

  • πŸ“¦ Dependencies - Isolated dependency management

  • πŸ”§ Models & Handlers - Complete MVC architecture (optional)

  • 🎨 Views & Layouts - Independent UI components (optional)

πŸš€ Modular Power: Modules enable microservice architecture, code reuse, and team collaboration on large applications!

πŸ§ͺ Testing - Quality Assurance Made Easy

Generate comprehensive test suites to ensure your application works flawlessly:

🎁 Testing Types & Their Purpose:

Test Type
What It Tests
Best For

🎯 Unit

Individual methods & functions

Business logic, utilities

πŸ“‹ BDD

Behavior & requirements

User stories, acceptance criteria

🌐 Integration

Component interactions

Workflows, API endpoints

πŸ“Š Model

Data models & validation

Domain logic, persistence

πŸŽͺ Interceptor

AOP & cross-cutting concerns

Security, logging, caching

πŸ’‘ Testing Best Practices:

  • Fast Feedback - Unit tests run quickly for immediate validation

  • Behavior Focus - BDD tests document how features should work

  • Real Scenarios - Integration tests verify complete user workflows

  • Data Integrity - Model tests ensure business rules are enforced

πŸš€ Quality First: Well-tested applications deploy with confidence and maintain themselves over time!

πŸ—„οΈ ORM & Database

Work with ORM entities and database operations:

πŸ”— Interceptors

Create AOP interceptors:

πŸ”„ Development Workflow

Manage your development environment:

πŸŽ›οΈ Global Options - Command Superpowers

Enhance any CLI command with these powerful options for a customized experience:

🌟 Universal Command Options

Option
What It Does
Example Usage

--force ⚑

Overwrite existing files without prompting

coldbox create handler Users --force

--open πŸ“‚

Auto-open generated files in your editor

coldbox create model User --open

--help ❓

Show detailed command help

coldbox create app --help

πŸ—οΈ Application Creation Flags

Feature Flag
Adds To Your App
Perfect For

--migrations πŸ—ƒοΈ

Database migration system

Data-driven applications

--docker 🐳

Complete containerization

Cloud deployments, consistency

--vite ⚑

Modern frontend asset pipeline

Interactive UIs, SPAs

--rest 🌐

REST API configuration

Microservices, API development

πŸ”₯ Language Control

The CLI automatically detects your project language but you can override when needed:

Setting
Behavior
When To Use

Default 🎯

BoxLang for new apps, auto-detect for existing

Most scenarios

--boxlang πŸ₯Š

Force BoxLang generation

Override detection

--cfml πŸ“œ

Force CFML generation

Legacy projects, specific requirements

πŸŽͺ Power Combinations:

πŸ’‘ BoxLang Support

The CLI automatically detects BoxLang projects and generates appropriate code. You can also force BoxLang mode using the --boxlang flag.

πŸ” Automatic Detection

The CLI detects BoxLang projects using three methods (in order of precedence):

  1. Server Engine Detection: Running on a BoxLang server

  2. TestBox Runner Setting: When testbox.runner is set to "boxlang" in box.json

  3. Language Property: When language is set to "boxlang" in box.json

βš™οΈ Configuration Examples

Method 1: Language Property (Recommended)

Method 2: TestBox Runner Setting

πŸš€ Usage Examples

πŸ“ Generated Code Differences

When BoxLang mode is detected or forced:

  • Uses .bx file extensions instead of .cfc

  • Generates class syntax instead of component

  • Uses BoxLang-specific template variants

  • Creates BoxLang test files (.bxm extensions)

πŸ€– AI Coding Assistance

The CLI now includes Copilot instructions to enhance AI-powered development workflows. These instructions help AI assistants understand ColdBox project structure and generate appropriate code:

Features

  • Intelligent Code Generation: AI assistants can better understand ColdBox conventions and patterns

  • Template-Aware Suggestions: Context-aware code suggestions based on your project type

  • BoxLang & CFML Support: Appropriate suggestions for both language targets

  • Framework Integration: Deep understanding of ColdBox architecture and best practices

Copilot Instructions

The CLI includes specialized instruction sets:

  • Modern Apps: Instructions optimized for contemporary ColdBox applications

  • Legacy Projects: Support for traditional flat-structure applications

  • BoxLang Focus: Enhanced support for BoxLang-specific patterns

  • Framework Patterns: MVC, HMVC, and REST API architectural guidance

These instructions are automatically included in modern application templates to provide the best AI coding experience out of the box.

πŸ“– Getting Help - Never Get Stuck

The ColdBox CLI has your back with comprehensive help at every level:

🎯 Quick Help Commands

πŸ†˜ When You Need Help

Situation
Command
What You Get

πŸ€” What can I do?

coldbox help

Full command list

πŸ“‹ How do I use this command?

coldbox create app --help

Detailed usage & examples

πŸ› Something's not working

coldbox --version

Version info for troubleshooting

πŸ“š I want to learn more

Check the CLI Repository

Source code & documentation

πŸ’‘ Pro Help Tips

  • Every command has --help - never hesitate to use it!

  • Help shows examples, options, and flags for each command

  • When reporting issues, always include your CLI version

  • The GitHub repository has extensive documentation and examples

πŸŽ“ Learning Path: Start with coldbox create app-wizard to explore all options interactively, then use specific commands as you become more comfortable!

Last updated

Was this helpful?