macOS
brew install jolocal Homebrew formula metadata
sudo port install joMacPorts ports tree · textproc/jo/Portfile · source: api.github.com
brew
JSON output from a shell. Version 1.9 via Homebrew; verified from local package data.
install
brew install jolocal Homebrew formula metadata
sudo port install joMacPorts ports tree · textproc/jo/Portfile · source: api.github.com
sudo apk add joAlpine Linux edge package indexes · jo · source: dl-cdn.alpinelinux.org
sudo apt install joDebian stable package indexes · jo · source: deb.debian.org
sudo dnf install joFedora Rawhide package metadata · jo · source: dl.fedoraproject.org
nix profile install nixpkgs#jonixpkgs package indexes · pkgs/by-name/jo/jo/package.nix · source: api.github.com
sudo pacman -S joArch Linux sync databases · jo · source: geo.mirror.pkgbuild.com
sudo zypper install joopenSUSE Tumbleweed package metadata · jo · source: download.opensuse.org
scoop install main/joScoop official bucket manifest trees · bucket/jo.json · source: api.github.com
winget install --id jpmens.jo -eWindows Package Manager source index · jpmens.jo · source: cdn.winget.microsoft.com
overview
JSON output from a shell
history
jo is a small C command-line utility for producing JSON from shell arguments or standard input. Jan-Piet Mens introduced it in March 2016 as a response to the awkwardness of hand-writing JSON in shell scripts, and the repository describes it plainly as JSON output from a shell.
The GitHub repository was created on March 4, 2016, and Jan-Piet Mens published a companion article on March 5 explaining the motivation: producing valid JSON from shell scripts becomes hard once quoting, variables, and embedded strings enter the picture. The early 0.x releases followed within days, and 1.0 arrived on March 11, 2016.
The changelog shows a project that grew carefully around shell ergonomics: nested elements, pretty printing, booleans, file inclusion, OpenBSD pledge support, type coercion, object paths, Docker support, array reading, zsh completion, Meson support, and fixes for Windows and long-line stdin handling.
jo spread through package managers because it solves a narrow shell-scripting pain point without pulling in a large runtime. Its README lists Homebrew, MacPorts, Ubuntu, Gentoo, Fedora, Snap, Scoop, AIX, Void Linux, Arch, OpenBSD, FreeBSD, Guix, pkgsrc, Repology, and Docker as distribution routes or related package entries.
Users call jo with key=value words to emit JSON objects, use -a for arrays, -p for pretty output, and type prefixes or special value forms when they need stronger control over numbers, booleans, nulls, file contents, or nested data. It is commonly paired with shell scripts, HTTP clients, monitoring hooks, and other command-line pipelines.
jo is package-nerd significant because it is the Unix philosophy version of JSON generation: small, composable, scriptable, packaged almost everywhere, and complementary to jq. It sits in the gap between fragile echo/printf JSON and starting a Python, Ruby, Node, or jq program just to build an object.
security posture
generalized runtime or code generation signal.
yellow risk · medium confidence · runtime
Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.
executables
| Command | Kind | Exposure | Note |
|---|---|---|---|
jo | cli | global executable |
freshness
These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.
install metadata
| Package key | brew:jo |
|---|---|
| Version | 1.9 |
| Package manager | Homebrew |
| Package manager page | https://formulae.brew.sh/formula/jo |
| Homepage | https://github.com/jpmens/jo |
| Repository | https://github.com/jpmens/jo |
| Upstream docs | https://github.com/jpmens/jo#readme |
| License | GPL-2.0-or-later AND MIT |
| Source archive | https://github.com/jpmens/jo/releases/download/1.9/jo-1.9.tar.gz |
| Bottle | available (on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, arm64_ventura, sonoma, ventura, x86_64_linux) |
| Homebrew post-install | not defined |
| Service | none declared |
registry facts
| Source Database | Homebrew formula API |
|---|---|
| Tap | homebrew/core |
| Full Name | jo |
| 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 |
|
source database matches
Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.
jo 1.9-2
command-line processor to output JSON from a shell
sudo apt install jojo
nix profile install nixpkgs#jojo 1.9-1
command-line processor to output JSON from a shell
sudo apt install jojo 1.9-r2
JSON output from a shell
sudo apk add jojo-bash-completion 1.9-r2
Bash completions for jo
sudo apk add jo-bash-completionjo-doc 1.9-r2
JSON output from a shell (documentation)
sudo apk add jo-docjo-zsh-completion 1.9-r2
Zsh completions for jo
sudo apk add jo-zsh-completionjo 1.9-20.fc45
Small utility to create JSON objects
sudo dnf install jojo 1.9-3
JSON output from a shell
sudo pacman -S jojo 1.9-1.10
JSON output from a shell
sudo zypper install jojo-bash-completion 1.9-1.10
Bash Completion for jo
sudo zypper install jo-bash-completionjo-zsh-completion 1.9-1.10
ZSH completion for jo
sudo zypper install jo-zsh-completionjo
sudo port install jomain/jo
scoop install main/jojpmens.jo
winget install --id jpmens.jo -esource trail
This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.
View the package source record on GitHub.