appbuilder

command module
v0.15.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 24, 2026 License: Apache-2.0 Imports: 8 Imported by: 0

README

Choria App Builder

Overview

App Builder creates CLI applications from YAML definitions. Operations teams can wrap shell scripts, multi-line kubectl invocations, jq pipelines, and other operational tools into a single discoverable command.

Two binaries are produced from the same codebase:

  • appbuilder - validates and inspects application definitions
  • abt - project-specific task runner that searches for ABTaskFile definitions in the current directory tree

Features

  • Declarative YAML-based CLI definitions with nested sub-commands, flags, and arguments
  • Command types: exec (shell commands and scripts), parent (command grouping), form (interactive wizards), scaffold (multi-file template generation), and ccm_manifest (Choria Config Manager)
  • Output transformation pipeline with built-in JQ, ASCII graphs, Go templates, reports, and file writing
  • Input validation using expr expressions
  • Go template interpolation with Sprig functions
  • Per-application configuration files
  • Shell completion for bash and zsh

Installation

Binary releases, RPMs, DEBs, and zip archives are available on the Releases page.

Homebrew packages are available for macOS and Linux:

brew tap choria-io/tap
brew install choria-io/tap/appbuilder

A JSON Schema is available for editor integration.

Quick Example

The following definition creates a demo say command that wraps cowsay:

name: demo
description: Demo application
author: Operations <ops@example.net>
version: 1.0.0

commands:
  - name: say
    description: Say something using cowsay
    type: exec
    command: |
      {{ default .Config.Cowsay "cowsay" }} {{ .Arguments.message | escape }}
    arguments:
      - name: message
        description: The message to display
        required: true
$ demo say "hello world"
 _____________
< hello world >
 -------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
internal
sprig
Package sprig provides template functions for Go.
Package sprig provides template functions for Go.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL