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 definitionsabt- project-specific task runner that searches forABTaskFiledefinitions in the current directory tree
- 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), andccm_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
bashandzsh
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.
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 |
|| ||
