Profile
Back to NewsBack
GitHub Trending 2 min
Reader Mode
choria-io/appbuilder: Tool to create friendly wrapping command lines over operations tools

choria-io/appbuilder: Tool to create friendly wrapping command lines over operations tools

16 hours ago

!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 <[email protected]>
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 |
                ||     ||

Links

Chat with me