Skip to content
/ cli Public

vixcpp/cli – Command Line Interface for vix.cpp. Scaffold new projects, run the server with hot reload, and generate models or resources.

License

Notifications You must be signed in to change notification settings

vixcpp/cli

Repository files navigation

🧩 Vix.cpp — CLI Module

Modern C++ Runtime Tooling • Zero-Friction Development • Fast Web Apps

C++ License Status Platform Runtime

Vix CLI is the official command-line interface for
Vix.cpp — the modern C++ backend runtime.

It provides a professional, modern, runtime-like developer experience for C++, comparable to Python, Node.js, Deno, or Bun.


🚀 Overview

The Vix CLI (vix) brings modern runtime ergonomics to C++:

  • Instant project creation
  • Smart CMake-based builds
  • Friendly compiler diagnostics
  • Sanitizer-first validation
  • Script-like execution of .cpp files
  • Packaging & artifact verification
  • Built-in interactive REPL (default)

Running vix with no arguments launches the interactive REPL.


⚙️ Features

🧠 Built-in REPL (default)

vix
  • Variables & expressions
  • JSON literals
  • Math evaluation
  • Runtime APIs (Vix.cwd(), Vix.env(), etc.)
  • Script-like exploration

Explicit mode:

vix repl

🏗️ Project scaffolding

vix new blog

Creates:

  • CMake-based project
  • Modern C++20 structure
  • Ready-to-run Vix app

⚡ Smart build system

vix build
  • Uses CMake presets automatically
  • Parallel builds
  • Colored logs & spinners
  • Clean Ctrl+C handling

🚀 Run applications

vix run
  • Auto-build if required
  • Real-time logs
  • Runtime log-level injection

Script mode:

vix run demo.cpp

🧪 Check & Tests (Sanitizers ready)

Compile-only validation:

vix check
vix check demo.cpp

With sanitizers:

vix check demo.cpp --san
vix check demo.cpp --asan
vix check demo.cpp --ubsan
vix check demo.cpp --tsan

Run tests:

vix tests
vix tests --san

📦 Packaging & Verification

Create a distribution artifact:

vix pack --name blog --version 1.0.0

Verify artifacts:

vix verify dist/blog@1.0.0
vix verify dist/blog@1.0.0 --require-signature

🧠 ErrorHandler — your C++ teacher

  • Explains template & overload errors
  • Detects missing includes
  • Highlights the first real error
  • Provides actionable hints

🧰 Commands

vix <command> [options]
Command Description
vix Start REPL (default)
vix repl Start REPL explicitly
vix new <name> Create a new project
vix build [name] Configure + build
vix run [name] [--args] Build and run
vix dev [name] Dev mode (watch & reload)
vix check [path] Compile-only validation
vix tests [path] Run tests
vix pack [options] Create distribution artifact
vix verify [options] Verify artifact
vix orm <subcommand> ORM tooling
vix help [command] Show help
vix version Show version

🧪 Usage Examples

vix
vix new api
cd api
vix dev
vix check --san
vix tests
vix pack --name api --version 1.0.0
vix verify dist/api@1.0.0

🧩 Architecture

The CLI is built around a command dispatcher:

std::unordered_map<std::string, CommandHandler> commands;

Main components

Path Responsibility
include/vix/cli/CLI.hpp CLI entry & parsing
src/CLI.cpp Command routing
src/ErrorHandler.cpp Compiler diagnostics
src/commands/ReplCommand.cpp Interactive REPL
src/commands/CheckCommand.cpp Validation
src/commands/PackCommand.cpp Packaging
src/commands/VerifyCommand.cpp Verification

🔧 Build & Installation

Standalone CLI build

git clone https://github.com/vixcpp/vix.git
cd vix/modules/cli
cmake -B build -S .
cmake --build build -j$(nproc)

Binary:

./build/vix

Full Vix build

cd vix
cmake -B build -S .
cmake --build build

⚙️ Configuration

Environment variables

Variable Description
VIX_LOG_LEVEL Runtime log level
VIX_STDOUT_MODE line for real-time logs
VIX_MINISIGN_SECKEY Secret key for pack
VIX_MINISIGN_PUBKEY Public key for verify

📦 CLI Help Output

Vix.cpp — Modern C++ backend runtime
Version: v1.x.x

Usage:
  vix [GLOBAL OPTIONS] <COMMAND> [ARGS...]
  vix help <command>

Quick start:
  vix new api
  cd api && vix dev
  vix pack --name api --version 1.0.0 && vix verify

Commands:
  Project:
    new <name>               Create a new Vix project
    build [name]             Configure + build
    run   [name]             Build and run
    dev   [name]             Dev mode
    check [path]             Compile-only validation
    tests [path]             Run tests

  Packaging & security:
    pack                     Create distribution artifact
    verify                   Verify artifact or package

  REPL:
    repl                     Start interactive REPL
    (default)                Run `vix` to start the REPL

Global options:
  --verbose
  -q, --quiet
  --log-level <level>
  -h, --help
  -v, --version

🧾 License

MIT License © Gaspard Kirira
See LICENSE for details.

About

vixcpp/cli – Command Line Interface for vix.cpp. Scaffold new projects, run the server with hot reload, and generate models or resources.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Languages