macOS
brew install okshlocal Homebrew formula metadata
sudo port install okshMacPorts ports tree · shells/oksh/Portfile · source: api.github.com
brew / rank 8710
Portable OpenBSD ksh, based on the public domain Korn shell (pdksh). Version 7.9 via Homebrew; verified 2026-06-11. Also installable with nix: nix profile install nixpkgs#oksh.
install
brew install okshlocal Homebrew formula metadata
sudo port install okshMacPorts ports tree · shells/oksh/Portfile · source: api.github.com
sudo apk add okshAlpine Linux edge package indexes · oksh · source: dl-cdn.alpinelinux.org
sudo dnf install okshFedora Rawhide package metadata · oksh · source: dl.fedoraproject.org
nix profile install nixpkgs#okshnixpkgs package indexes · pkgs/by-name/ok/oksh/package.nix · source: api.github.com
overview
Portable OpenBSD ksh, based on the public domain Korn shell (pdksh)
history
oksh is a portable version of OpenBSD `ksh(1)`, itself descended from the Public Domain Korn Shell. It packages the OpenBSD ksh experience for systems outside OpenBSD while trying to stay self-contained and portable across operating systems and C compilers.
The deeper lineage starts with pdksh. OpenBSD's `bin/ksh` README says pdksh was a mostly complete AT&T ksh look-alike, maintained by Michael Rendell after earlier maintainers Simon J. Gerraty, John R. MacMillan, and Eric Gisin. The CONTRIBUTORS file records Gisin creating pdksh from Charles Forsyth's public-domain V7 shell with pieces from the BRL shell around 1987 to 1989.
oksh turns OpenBSD's maintained ksh into a portable project. Its repository was created on 2015-01-06, and the README states that it is not an official OpenBSD project. The stated reason is simple and opinionated: all operating systems deserve a good shell.
The project is intentionally conservative about behavior. The README asks contributors to send behavior changes upstream to OpenBSD tech@ first, and says oksh will sync with upstream OpenBSD code once a patch is accepted there. Portability changes are welcome in oksh; shell semantics belong upstream.
oksh's adoption is mostly among users and distributors who want OpenBSD ksh outside OpenBSD. The README lists support across OpenBSD, the BSDs, macOS, glibc and musl Linux, Cygwin, Android via Termux, AIX, IBM i PASE, Solaris, Illumos, WSL, Haiku, SerenityOS, MSYS2, QNX, and more. It also records many tested C compilers, from clang and gcc to pcc, cparser, tcc, CompCert, chibicc, and other niche compilers.
Package-manager coverage is broad for a small shell. The input metadata includes apk, Homebrew, dnf, MacPorts, and Nix. Homebrew's 2026-07-01 formula API reported 121 installs over 365 days, and the upstream README links package status via Repology.
Users install oksh when they want the OpenBSD ksh command language and interactive shell on a non-OpenBSD system. It can act as an interactive login shell or as a script interpreter for ksh-style scripts, while retaining the OpenBSD/pdksh flavor rather than tracking AT&T ksh93.
Builders use the provided `configure` script and POSIX Makefile path. The README documents native builds, out-of-tree builds, cross compilation with `--no-thanks`, optional ncurses support for screen-clearing routines, and a design goal of remaining self-contained.
oksh is significant because it is a living portability layer around a base-system shell. It gives package managers a way to ship OpenBSD ksh semantics on platforms where `/bin/ksh` may be missing, old, or from a different lineage.
Its licensing is also package-nerd-friendly but nontrivial: the main Korn shell files are public domain, while portability files are BSD or ISC licensed. Homebrew reflects that as `LicenseRef-Homebrew-public-domain AND BSD-3-Clause AND ISC`.
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 |
|---|---|---|---|
oksh | executable | indexed executable | Discovered from the local executable index. |
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:oksh |
|---|---|
| Version | 7.9 |
| Package manager | Homebrew |
| Homepage | https://github.com/ibara/oksh |
| Repository | https://github.com/ibara/oksh |
| Last updated | 2026-06-11T02:00:48Z |
| Pulse | updated |
| Bottle | not recorded |
| Service | none declared |
source database matches
Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.
oksh
nix profile install nixpkgs#okshoksh 7.8-r1
Portable OpenBSD ksh, based on the Public Domain KornShell (pdksh)
sudo apk add okshoksh-doc 7.8-r1
Portable OpenBSD ksh, based on the Public Domain KornShell (pdksh) (documentation)
sudo apk add oksh-docoksh 7.9-2.fc45
Portable OpenBSD ksh, based on the Public Domain Korn Shell
sudo dnf install okshoksh
sudo port install okshsource 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.