# Install naml with Homebrew

Convert Kubernetes YAML to Golang. Version 1.0.3 via Homebrew; verified 2026-07-26.

## Install

```sh
sudo av install brew:naml
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install naml
```

  Evidence: local Homebrew formula metadata

## Package facts

- **Package key:** brew:naml
- **Package manager:** Homebrew
- **Version:** 1.0.3
- **Source summary:** Convert Kubernetes YAML to Golang
- **Homepage:** <https://github.com/krisnova/naml>
- **Repository:** <https://github.com/krisnova/naml>
- **Last updated:** 2026-07-26T19:43:13+02:00
- **Generated:** 2026-08-03T19:37:03+00:00

## Executables

- naml (alias)

## Install behavior

- Bottle: not available

## Freshness

- Page generated: 2026-08-03
- Package-manager version: 1.0.3
## Project history and usage

naml, short for Not Another Markup Language, is Kris Nova's Go tool for converting Kubernetes YAML into Go code and treating Kubernetes applications as compiled Go programs.

### Project history

The repository was created on 2021-06-12. The README frames naml as both a Go library and a CLI for developing and deploying Kubernetes applications, replacing YAML with raw Go so users can rely on Go syntax highlighting, cross-compiling, code generation, documentation, tests, and the Kubernetes client libraries.

The project moved quickly toward a 1.0 release in 2021. GitHub releases show v0.3.0 as the YAML release on 2021-08-20, v0.4.0 as a deployable release candidate on 2021-11-20, v1.0.0 on 2021-11-21, and v1.0.3 on 2021-11-24.

### Adoption history

naml had attention in the Kubernetes developer niche but not broad package-manager usage. Repository metadata consulted on 2026-07-01 showed 1,261 GitHub stars and 36 forks, while Homebrew listed 74 installs over the prior 365 days.

Its significance is tied to a recurring Kubernetes argument: whether YAML should be generated, templated, or replaced by typed code. naml chose the typed-code side, using existing Kubernetes Go APIs rather than inventing another runtime templating system.

### How it is used

The README's main workflow is `cat deploy.yaml | naml codify > main.go`, then `naml build -o app`, then running the generated application to emit YAML, install, or uninstall resources. It can also convert all objects in a namespace from `kubectl get all -n default -o yaml`.

Package nerds use naml as a translator and experiment harness: take existing manifests, turn them into formatted Go that implements a Deployable interface, inspect the generated Kubernetes objects, and decide whether code-backed deployment makes sense for a project.

### Why package nerds care

naml is not the default Kubernetes packaging path; Helm, Kustomize, Jsonnet, CUE, CDK8s, and Pulumi cover adjacent ground. Its value is historical and practical: it captures the 2021 wave of 'YAML fatigue' in a small Go-native tool.

### Timeline

- 2021-06-12: GitHub repository created.
- 2021-08-20: v0.3.0 YAML release published.
- 2021-11-20: v0.4.0 deployable release candidate published.
- 2021-11-21: v1.0.0 first major stable release published.
- 2021-11-24: v1.0.3 published.
- 2026-07-01: Homebrew Formulae page listed 74 installs over the prior 365 days.

### Related projects

- Kubernetes client-go
- kind
- Helm
- Kustomize
- Jsonnet
- CUE
- cdk8s
- Pulumi

### Sources

- <https://api.github.com/repos/krisnova/naml>
- <https://api.github.com/repos/krisnova/naml/releases?per_page=10>
- <https://formulae.brew.sh/formula/naml>
- <https://github.com/krisnova/naml>


## Security Notes

infrastructure mutation or orchestration signal.

- **Geiger risk:** orange / medium
- infrastructure mutation or orchestration signal


## Combined YAML source

View the package source record on GitHub. [combined/naml.yml](https://github.com/mxcl/pkgdb/blob/main/combined/naml.yml)


## Sources

- pkg.so package database
- Geiger risk classifier
- curated package history
- pkgdb category and tag curation
- cross-ecosystem install command graph
