# Install goctl with Homebrew, Nix

Generates server-side and client-side code for web and RPC services. Version 1.10.1 via Homebrew; verified from local package data.

## Install

```sh
sudo av install brew:goctl
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install goctl
```

  Evidence: local Homebrew formula metadata

### Linux

- Nix (92%):

```sh
nix profile install nixpkgs#goctl
```

  Evidence: nixpkgs package indexes: pkgs/by-name/go/goctl/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

## Package facts

- **Package key:** brew:goctl
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/goctl>
- **Version:** 1.10.1
- **Source summary:** Generates server-side and client-side code for web and RPC services
- **Homepage:** <https://go-zero.dev>
- **Repository:** <https://github.com/zeromicro/go-zero>
- **Upstream docs:** <https://go-zero.dev/getting-started/installation/goctl>
- **License:** MIT
- **Source archive:** <https://github.com/zeromicro/go-zero/archive/refs/tags/tools/goctl/v1.10.1.tar.gz>
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- goctl (cli)
- goctl (alias)

## Build dependencies

- go

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 1.10.1
- Local data: ok
- Upstream repository: https://github.com/zeromicro/go-zero
- Upstream latest detected: tools/goctl/v1.10.1 (current)
- info: No package-manager update timestamp was available.
## Project history and usage

goctl is the code-generation CLI for the go-zero Go microservices framework. It turns go-zero's API and RPC descriptions into server code, client code, models, Dockerfiles, Kubernetes manifests, templates, and other project scaffolding.

### Project history

The go-zero repository was created in August 2020. Its README says the framework grew from an early 2018 transition from a Java and MongoDB monolith to Go microservices, with goctl serving as the code-generation tool around go-zero's API description syntax.

goctl evolved as a tool module inside the go-zero repository. Official documentation describes it as go-zero's code generation tool for HTTP services, gRPC services, models, Dockerfiles, Kubernetes manifests, and related workflow tasks.

### Adoption history

go-zero became a large Go framework project, with GitHub repository metadata showing more than thirty thousand stars by June 2026. goctl's adoption is tied to that framework: users installing go-zero for API and RPC services also install goctl to generate the boilerplate that keeps services consistent.

Distribution follows both Go and package-manager norms. The official README documents `go install github.com/zeromicro/go-zero/tools/goctl@...`, Homebrew installation with `brew install goctl`, and a Docker image path.

### How it is used

Typical usage begins by creating a `.api` file, running `goctl api go -api ... -dir ...`, and then running the generated Go service. The README's quick start shows goctl generating handler, logic, config, service-context, and type files for an HTTP API.

The CLI reference groups goctl commands around API generation, RPC generation, model generation, Docker, Kubernetes, environment checks, config, templates, naming style, Swagger, upgrades, migration, shell completion, and bug reporting.

### Why package nerds care

Package nerds care about goctl because it is a generator packaged separately from the framework it serves. That split lets a team pin or install the CLI through Homebrew, Go tooling, or Docker while generated services depend on normal Go modules.

It is also a good example of spec-driven development in a package ecosystem: the `.api` file becomes a compact source artifact, and goctl expands it into a repeatable service layout.

### Timeline

- 2018: go-zero's README describes the internal microservices transition that motivated the framework.
- 2020-08: go-zero GitHub repository created.
- 2025-10: goctl v1.9.2 release tag published under tools/goctl.
- 2026-02: goctl v1.10.0 release tag published.
- 2026-03: goctl v1.10.1 release tag published.

### Related projects

- go-zero is the framework goctl serves.
- Protocol Buffers and gRPC are part of the RPC generation workflow.
- mcp-zero, ai-context, and zero-skills are related go-zero projects for AI-assisted framework-compliant development.

### Sources

- <https://api.github.com/repos/zeromicro/go-zero>
- <https://api.github.com/repos/zeromicro/go-zero/releases>
- <https://github.com/zeromicro/go-zero>
- <https://github.com/zeromicro/go-zero/releases>
- <https://go-zero.dev/getting-started/>
- <https://go-zero.dev/reference/cli-guide/>


## Security Notes

broad file, network, media, or database tool signal.

- **Geiger risk:** blue / medium
- broad file, network, media, or database tool signal

## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** goctl
- **Version Scheme:** 0
- **Revision:** 0
- **Head Version:** HEAD
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** head, stable

## Other Package-Manager Records

- Nix - goctl: normalized package name match | nixpkgs package indexes: pkgs/by-name/go/goctl/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1


## Related links

- [Secret-risk packages](https://www.automicvault.com/pkg/secret-risk-packages/) - Has protected-tool coverage, approval-gate, or non-low Geiger security signals.
- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Text processing packages](https://www.automicvault.com/pkg/text-processing-tools/) - Matched text, document, or structured-data processing metadata.
- [Developer build packages](https://www.automicvault.com/pkg/developer-build-tools/) - Matched build, compiler, generator, or developer workflow metadata.
- [go](https://www.automicvault.com/pkg/brew/go/) - Build dependency declared by Homebrew.
- [tproxy](https://www.automicvault.com/pkg/brew/tproxy/) - Shares the same upstream homepage.
- [protoc-gen-go-grpc](https://www.automicvault.com/pkg/brew/protoc-gen-go-grpc/) - Shares av.db curated category or tags: cli, code-generation, developer-tools, go, rpc.
- [counterfeiter](https://www.automicvault.com/pkg/brew/counterfeiter/) - Shares av.db curated category or tags: cli, code-generation, developer-tools, go.
- [go-bindata](https://www.automicvault.com/pkg/brew/go-bindata/) - Shares av.db curated category or tags: cli, code-generation, developer-tools, go.
- [gomodifytags](https://www.automicvault.com/pkg/brew/gomodifytags/) - Shares av.db curated category or tags: cli, code-generation, developer-tools, go.
- [gowsdl](https://www.automicvault.com/pkg/brew/gowsdl/) - Shares av.db curated category or tags: cli, code-generation, developer-tools, go.
- [hz](https://www.automicvault.com/pkg/brew/hz/) - Shares av.db curated category or tags: cli, code-generation, developer-tools, go.
- [ifacemaker](https://www.automicvault.com/pkg/brew/ifacemaker/) - Shares av.db curated category or tags: cli, code-generation, developer-tools, go.
- [mockery](https://www.automicvault.com/pkg/brew/mockery/) - Shares av.db curated category or tags: cli, code-generation, developer-tools, go.

## Combined YAML source

View the package source record on GitHub. [combined/goctl.yml](https://github.com/automic-vault/db/blob/main/combined/goctl.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
