g-udi is a collection of tools for making a macOS and Unix-like development environment reproducible, comfortable, and inspectable. The projects cover machine bootstrap, shell frameworks, prompt themes, and desktop/status-bar widgets.
The common goal is simple: a fresh machine should be able to become a working environment from versioned configuration, and the tools that keep it running should be small enough to understand.
| Repository | Purpose |
|---|---|
| gaudi | Workstation bootstrapper for installing prerequisites, templates, software lists, configuration scripts, backups, and the gaudi CLI. |
| gaudi-templates | Public templates used by Gaudi to define package lists, hooks, and machine configuration. |
| gaudi-helper | Shell helper that watches successful package-manager installs and keeps Gaudi template package lists updated. |
| Repository | Purpose |
|---|---|
| gaudi-shell | Cross-shell framework for aliases, plugins, completions, and themes across Bash and Zsh. |
| gaudi-bash | Bash-focused shell framework and loader. |
| gaudi-bash-components | Component container for aliases, plugins, completions, and themes. |
| gaudi-bash-aliases | Bash alias components. |
| gaudi-bash-completions | Bash completion components. |
| gaudi-bash-plugins | Bash plugin components. |
| gaudi-bash-themes | Bash theme components. |
| gaudi-theme | Modular asynchronous Bash prompt theme with segments for Git, runtimes, cloud context, Docker, system state, and more. |
| Repository | Purpose |
|---|---|
| gaudi-sketchybar | macOS SketchyBar setup for notifications, system stats, yabai spaces, and app-local status. |
| gaudiBar.ubersicht.widget | Responsive Übersicht menu bar made from configurable widgets. |
| gaudiDesktop.ubersicht.widgets | Übersicht desktop dashboard for productivity inboxes, metrics, GitHub, and calendar cards. |
Gaudi starts with the machine:
- gaudi bootstraps the workstation.
- gaudi-templates defines what gets installed and configured.
- gaudi-helper keeps those lists current as you install new tools.
- gaudi-shell, gaudi-bash, and the shell component repos shape the interactive terminal.
- gaudi-theme, gaudi-sketchybar, and the Übersicht widgets surface useful context while you work.
Contributions are welcome across the public repos. The short version:
- Open an issue first for behavioral changes, new public APIs, or larger refactors.
- Keep changes scoped to the repo and feature being touched.
- Match the existing shell, JavaScript, CSS, and documentation style.
- Add or update smoke tests when behavior changes.
- Avoid committing machine-local files, secrets, generated runtime output, or private templates.
- Run the repo's documented validation command before opening a pull request.
See the organization-wide contributing guide for details.
Across the organization, we prefer:
- Small, composable shell scripts with strict quoting and predictable failure modes.
- Idempotent installers and profile updates.
- Clear environment-variable based configuration.
- Portable defaults with macOS-first behavior where a project is explicitly macOS-focused.
- README files that explain the user workflow, not only the implementation.
- Setting up a machine: gaudi
- Managing shell components: gaudi-shell
- Maintaining package templates while you work: gaudi-helper
- Building a prompt: gaudi-theme
- Building a macOS status bar: gaudi-sketchybar