• Stars
    star
    164
  • Rank 230,032 (Top 5 %)
  • Language
    Go
  • License
    Apache License 2.0
  • Created almost 3 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

🌳 Go Bonzai™ Composite Commander, meticulously manicured monolith and multicall binaries, built from imported composite commands, on any device, with recursive, light-weight tab completion, and colorful embedded documentation from terminal or local web browser. Replace messy collections of shell scripts ported to clean Go.

🌳 Go Bonzai™ Command Compositor

GoDoc License Go Report Card

"It's like a modular, multicall BusyBox builder for Go with built in completion and embedded documentation support."

"The utility here is that Bonzai lets you maintain your own personal 'toolbox' with built in auto-complete that you can assemble from various Go modules. Individual commands are isolated and unaware of each other and possibly maintained by other people."

"I used Bonzai for a pentest ... was able to inject ebpf.io kernel modules that were part of bin lol! Bonzai is Genius!"

logo

Bonzai was born from a very real need to replace messy collections of shell scripts, wasteful completion sourcing, and OS-specific documentation with a single, stateful, binary composed of commands organized as rooted node trees with a clean, modular, portable, statically-compiled, and dynamically self-documenting design.

There's no better language than Go for such things.

Bonzai gets its name from the fact that Bonzai users are fond of meticulously manicuring their own stateful command trees, built from imported composite commands that they can easily copy and run on on any device, anywhere.

Bonzai users can easily share their own commands with others just like they would any other Go module and since any Bonzai command also doubles as a high-level library package, even non-Bonzai users benefit.

Most realize Bonzai really distinguishes itself from anything else out there the first time they turn any command branch into a fully-documented, tab-completing, stand-alone binary simply by wrapping it in five lines of code. Such is the beauty of stateful command tree design. There's simply nothing else like it, in Go or any other language.

Getting Started

Read the book:

Copy or clone the example template:

Get ideas for your own by looking at others

Legal

Copyright 2022 Robert S. Muhlestein (mailto:[email protected])
SPDX-License-Identifier: Apache-2.0

"Bonzai" and "bonzai" are legal trademarks of Robert S. Muhlestein but can be used freely to refer to the Bonzai™ project https://github.com/rwxrob/bonzai without limitation. To avoid potential developer confusion, intentionally using these trademarks to refer to other projects --- free or proprietary --- is prohibited.

More Repositories

1

boost

Get started right. Become a shell native. This is the way.
557
star
2

awesome-go

🌟 My personal "awesome" list of Go code, tools, books, and learning resources. I'm very picky about what makes it on. Want to learn Go? Start here.
286
star
3

dot

Migrating to z Bonzai stateful command tree monolith
Shell
194
star
4

skilstak

Shell
82
star
5

rwxrob

Cloud-Native Engineer and Application Developer • Professional Mentor • Writer • Presenter • Occasional Hacker
HTML
60
star
6

pomo

🍅🌳 Pomodoro Bonzai Branch
Go
47
star
7

book-terminal-velocity

📕 Terminal Velocity: Mastering the Fastest Human-Computer Interface
Shell
47
star
8

cmdbox

🍱 "It's like a modular, multicall BusyBox builder for Go with built in completion and multi-lingual, embedded documentation support."
Go
41
star
9

keg

Go
37
star
10

workspace

This workspace container image has all my favorite tools (and some toys) in one place. Also see my rwxrob/dot files.
Shell
32
star
11

cv

Professional Curriculum Vitae and Resume for Robert Sterling Muhlestein
HTML
31
star
12

homelab

Home Lab, Design, Details, and Planning
Shell
30
star
13

cmdbox-pomo

Go
28
star
14

cmd-zet

Shell
25
star
15

learnvim

💡 How to exit vim (and other happy-fun lessons for vim noobs)
Go
24
star
16

z

🌳 Personal stateful command tree monolith with Bonzai
Go
22
star
17

ws-skilstak

⚡ SKILSTAK Workspace Container
21
star
18

lynx

Shell
21
star
19

fluff

# Fluff, Local cloud-init VMware VMs
Go
21
star
20

keg-spec

Knowledge Exchange Graph (KEG) 2023-01 Specification
Go
19
star
21

hugo-tutorial-link-data-to-type

Hugo Tutorial: Linking Data to Hugo Types
HTML
18
star
22

lab

Learning happens in the lab, not the lecture hall. This repo contains various different coding and technical lab experiments, exercises, and explorations. I refer to these during Beginner Boost a lot.
Shell
18
star
23

pegn-spec

PEGN is a universal notation for expressing any grammar without any specific implementation in mind.
Shell
17
star
24

template-bash-command

Shell
15
star
25

boostvm

SKILSTAK Beginner Boost Virtual Machine
Shell
13
star
26

cmdtab

Go
13
star
27

fn

Functional Go (1.18) with Generics
Go
12
star
28

challenges

Learning Challenges
10
star
29

auth-go

Go
10
star
30

engineer

😊 Path of Joy and Happiness as an IT Engineer 📖
9
star
31

vim-pandoc-syntax-simple

Pandoc Markdown Vim syntax highlighting with more reasonable defaults and addition of smart quotes and other smart punctuation.
Vim Script
9
star
32

pegn-go

🌑 PEGN library in Go
Go
8
star
33

learngo

Learn Go stuff
Go
7
star
34

bonzai-example

🌳 Go Bonzai™ Composite Command Tree, example template with documentation to help you start your own composite monolith and multicall binaries
Go
7
star
35

cmd-clip

Shell
7
star
36

ssh

Remote command execution (ssh, etc.)
Go
6
star
37

colearning-kubernetes

5
star
38

wish

5
star
39

lab-grammar-parser-in-go

Shell
5
star
40

learnk8s

Collection of Kubernetes Learning Resources
5
star
41

tinout

Easy Input-Output Test Specifications in YAML
Go
5
star
42

nano

Just say no to nano
Go
5
star
43

opsapi

An API for home lab operations
Go
5
star
44

kube

🌳 Kubernetes User Utilities and Tools
Go
5
star
45

klogin

Customizable kubectl login plugin template.
Go
5
star
46

dtime

Go
4
star
47

twitch

Go
4
star
48

rat

🐀 Scanner-less PEG packrat parser and meta-grammar interpreter in Go
Go
4
star
49

boost-cn

4
star
50

live

Live Streamer Utility Library in Go
Go
4
star
51

json

Marshal Anything as JSON in Go
Go
4
star
52

head-first-c-projects

Head First C Projects
HTML
4
star
53

ocms

⚡ OCMS Credentials
4
star
54

sample-docs

Sample team documentation directory
3
star
55

cozy

🍅 Simple coworking server and client with Twitch, GitHub, and pluggable extension integrations
Go
3
star
56

k8sapp

HTML
3
star
57

serve

Go
3
star
58

run-go

Higher level Golang functions for calling executables and dealing with output and errors
Go
3
star
59

me

My Personal KEG Site
Go
3
star
60

tree-go

Rooted node tree in Go
Go
3
star
61

pegn

PEGN Parser and Interpreter in Go
Go
3
star
62

learning-kubernetes

3
star
63

ocms.rwx.gg

Open Credential Merit Systems - composable learning requirements managed like software
3
star
64

java

Encapsulate Java in Go Packages
Go
3
star
65

conf-go

⛔ DEPRECATED: Golang package module to assist with conventional configuration data in flat JSON object (map).
Go
3
star
66

structs

Data Structs with Go (1.18) Generics
Go
3
star
67

uniq

🌳 Go Unique Identifiers
Go
3
star
68

vars

🌳 Go Bonzai™ Cached Variables, a persistent, portable alternative to environment variables and getopt insanity to preserve state between execution of commands
Go
3
star
69

register-cmdbox

🍱 Register your CmdBox command modules or peruse the manifest
HTML
3
star
70

foo

Sample foo
3
star
71

log

This is my personal log of events and things with chronological significance. Often it will contain a link to a note or some other content that has more details. This is raw and unfiltered, including swears.
3
star
72

zet

Zettelkasten Repo. This is where I dump my knowledge as it happens, all my zettels ("slips" or notes) about almost anything and everything. The idea is rather simple really and very powerful. Be warned, however, just because something is here doesn't mean it is accurate or even that I still believe it.
3
star
73

cmd-live

Shell
2
star
74

openapi

🌳 OpenAPI Tools
Vim Script
2
star
75

advent-2021

Advent of Code 2021 in Bash
Shell
2
star
76

learnwebdesign

Sample from Learning Web Design video series.
HTML
2
star
77

conf

🌳 Go YAML/JSON Configuration, centralized management of configuration data for all the commands composed into your Bonzai tree
Go
2
star
78

thumble

WIP - A big button frontend library for those who thumble around to click on stuff
CSS
2
star
79

k8sapp-postgresql-backup

K8SAPP: PostgreSQL backup CronJob
Shell
2
star
80

qca

📞 Questions, Advice, Conversations
2
star
81

k8sapp-jupyterhub

K8SAPP: JupyterHub
2
star
82

ama

Ask me just about anything, short anwsers and links to live #AMA videos on YouTube and Twitch
2
star
83

rwx.gg

RWX.GG Open Knowledge Project
2
star
84

good

🌳Common Go Tasks
Go
2
star
85

tv

Shell
2
star
86

rwxrob.tv

rwxrob.tv
2
star
87

template-k8sapp

Kubernetes Application Template (Minimal)
Shell
2
star
88

config

⛔ DEPRECATED 🌳 Go YAML/JSON Configuration
Go
2
star
89

k8sapp-nvgfd

K8SAPP GPU Feature Discovery
Mustache
2
star
90

compfile

🌳 Go Bonzai™ File Completer, normal completion looking at files and directories with trailing slashes on directories (like bash)
Go
2
star
91

linux-terminal-native

2
star
92

grep

🌳 Go Async Grep with Regex
Go
2
star
93

css-colors-solarized

Add solarized palette to your CSS or Stylus stylesheets
HTML
2
star
94

blah

Go
2
star
95

cmd-yt

YouTube Command Line Utility in Bash and Curl
Shell
2
star
96

k8sapp-harbor

1
star
97

sk

Command Line Utility for Private Mentored Community Managers
Go
1
star
98

zetcmd

🌳 Zettelkasten Bonzai Command
1
star
99

cozy-twitch

Cozy Agent for Twitch Integration
Go
1
star
100

obs

🌳 Go OBS CLI Client Bonzai Branch
Go
1
star