# zigman
read the [zig language reference](https://ziglang.org/documentation/master/) in your
terminal — for humans who don't want a browser tab, and for agents that can't render one.
it fetches the reference once, caches it, and prints any section as clean markdown.
source: [tangled.org/zzstoatzz.io/zigman](https://tangled.org/zzstoatzz.io/zigman) · MIT
## install
```
curl -fsSL https://nate.tngl.io/zigman/install.sh | sh
```
macos and linux, aarch64 and x86_64. installs to `$ZIGMAN_INSTALL` or `~/.local/bin`.
## use
type any part of a section's name. a unique match opens it; an ambiguous one lists the
candidates.
```
zigman comptime # opens the comptime section
zigman error # several match, so it lists them
zigman -o comptime # open it in your browser instead
zigman -l # the whole table of contents
zigman -V 0.15.1 comptime # read a specific langref version
```
for everyday workflows, composition, and using zigman from an AI agent, see the
[practical guide](https://nate.tngl.io/zigman/guide.html).
build from source
requires zig 0.16+.
```
git clone https://tangled.org/zzstoatzz.io/zigman
cd zigman
zig build -Doptimize=ReleaseSafe
```
the parser and renderer are a reusable zig module (`src/root.zig`, exported as `zigman`).
`zig build test` runs the unit tests.
shell completion
add one line to your shell's startup file:
```
# ~/.zshrc (after compinit)
eval "$(zigman --completions zsh)"
# ~/.bashrc
eval "$(zigman --completions bash)"
# ~/.config/fish/config.fish
zigman --completions fish | source
```
options & paging
```
-l, --list list section names instead of rendering
-o, --open open the section in your browser ($BROWSER, else the OS opener)
-V, --version langref version to read (default: master)
-r, --refresh bypass the cache and refetch
--no-pager don't page output on a terminal
-h, --help show help
```
output is plain markdown. on a terminal it pages through `$PAGER` (default `less -FRX`);
piped, it stays raw — so `zigman comptime | glow -` and `zigman -l | fzf` both work.