Automic VaultAutomic Vault

brew

Install oils-for-unix with Homebrew, apk, Nix, pacman, zypper, dnf

Bash-compatible Unix shell with more consistent syntax and semantics. Version 0.37.0 via Homebrew; verified 2026-06-22.

install

Additional install commands

macOS

Homebrewverified · 100%
brew install oils-for-unix

local Homebrew formula metadata

Linux

Alpine Linux apkverified · 92%
sudo apk add oils-for-unix

Alpine Linux edge package indexes · oils-for-unix · source: dl-cdn.alpinelinux.org

Nixverified · 92%
nix profile install nixpkgs#oils-for-unix

nixpkgs package indexes · pkgs/by-name/oi/oils-for-unix/package.nix · source: api.github.com

Arch Linux pacmanverified · 92%
sudo pacman -S oils-for-unix

Arch Linux sync databases · oils-for-unix · source: geo.mirror.pkgbuild.com

openSUSE zypperverified · 92%
sudo zypper install oils-for-unix

openSUSE Tumbleweed package metadata · oils-for-unix · source: download.opensuse.org

Fedora dnfverified · 92%
sudo dnf install osh-client

Fedora Rawhide package metadata · osh-client · source: dl.fedoraproject.org

overview

Package summary

Bash-compatible Unix shell with more consistent syntax and semantics

Commands and aliases

  • oils-for-unix
  • osh
  • ysh

history

Project history and usage

Oils for Unix is a shell project that contains OSH, a POSIX/bash-compatible shell for existing scripts, and YSH, a newer shell language aimed at programmers who want shell's process orchestration with more regular syntax and data structures.

Project history

Andy Chu began Oils in 2016 as an independent project to restore and re-imagine the Unix shell. The GitHub repository was created on 2016-11-15, and Chu's resume describes the work as an independent, non-profit language-engineering project funded by NLnet from 2022 to 2026.

The project deliberately took a compatibility-first path. Chu's 2021 explanation separates POSIX shell, bash, OSH, and Oil: OSH is the implementation intended to run existing shell scripts, while Oil was the incompatible new language intended to fix decades of accumulated shell language problems. The same essay says OSH had run existing scripts since January 2018 and had matured through regular releases.

In 2023 the project renamed itself from Oil/Oil Shell to Oils for Unix, with OSH and YSH as the named subprojects. The rename clarified the difference between the compatible shell and the new shell language, provided a globally unique package and project identity, and matched the busybox-like release layout with `oils-for-unix` plus `osh` and `ysh` symlinks.

Adoption history

Oils has a larger footprint than the other shell packages in this batch: the GitHub API reported 3,357 stars and 193 forks for `oils-for-unix/oils`, and Homebrew's 2026-07-01 formula API reported 331 installs over 365 days. The formula also records the old Homebrew name `oil`, showing the packaging transition caused by the 2023 rename.

NLnet's project page frames Oils as an upgrade path from traditional shells like bash to a more structured language and runtime, with OSH running thousands of lines of unmodified POSIX and bash scripts and YSH offering a language influenced by Python, Ruby, JavaScript, JSON, and YAML. That external funding and packaging across Homebrew, apk, Nix, Arch, and openSUSE-style systems give Oils more than hobby-project status, even though it remains specialized.

How it is used

Developers use OSH to test or run existing shell scripts under a more explicit implementation, and use YSH for new scripts where shell-like command composition is useful but bash syntax is too irregular. The README shows `bin/osh` for interactive use or for running an existing script, and `bin/ysh` for the newer language.

The implementation model matters: the source is written in Python for easier development, then translated to C++ with custom tools so released executables are fast, small, and do not depend on Python. The project asks users to consume release tarballs from `oils.pub` rather than cloning the development repository.

Why package nerds care

Oils is significant because it treats shell as both legacy infrastructure and language-design territory. Package maintainers see the practical side in the formula: one source tarball installs `oils-for-unix`, `osh`, and `ysh`, depends on readline, and conflicts with packages that also install an `osh` binary.

For shell/package historians, Oils sits at the intersection of POSIX shell compatibility, bash's network effect, language migration strategy, and distribution naming. Its rename from `oil` to `oils-for-unix` is unusually well documented and visible directly in package-manager metadata.

Timeline

  • 2016: Andy Chu began the Oils/Oil Shell work.
  • 2016-11-15: the GitHub repository was created.
  • 2018-01: OSH was documented by the project as running existing shell scripts.
  • 2022-04 to 2023-02: NLnet's NGI Assure grant period supported the Oil Shell project.
  • 2023-03-31: the project published the rename rationale for Oils, OSH, and YSH.
  • 2026-07-01: Homebrew's formula API reported stable version 0.37.0 and executables `oils-for-unix`, `osh`, and `ysh`.

Related projects

  • Oils is directly related to POSIX shell, GNU bash, zsh, fish, ksh-family shells, and other attempts to make shell programming safer or more regular. Its internal split between OSH and YSH is the central related-project relationship: OSH preserves compatibility, while YSH is the migration target.

security posture

Risk level: yellow

generalized runtime or code generation signal.

Risk classifier

yellow risk · medium confidence · runtime

Why

  • generalized runtime or code generation signal

Signals

  • text:shell

Install behavior

  • No Homebrew post-install hook is recorded in formula metadata.
  • Homebrew bottle metadata is available for 6 platform targets.
  • Installs with 1 runtime dependencies.

Recommended review

Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.

executables

Installed executables

CommandKindExposureNote
oils-for-unixcliglobal executable
oshcliglobal executable
yshcliglobal executable

freshness

Version and 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.

page generated2026-07-08
manager version0.37.0
manager updated2026-06-22
local dataok
upstreamnot checked
latest detectednot detected

https://oils.pub/

  • infoRelease/tag comparison is only available for GitHub repositories.https://oils.pub/none confidence

install metadata

Package metadata

Package keybrew:oils-for-unix
Version0.37.0
Package managerHomebrew
Package manager pagehttps://formulae.brew.sh/formula/oils-for-unix
Homepagehttps://oils.pub/
Repositoryhttps://github.com/oils-for-unix/oils
Upstream docshttps://github.com/oils-for-unix/oils#readme
LicenseApache-2.0
Source archivehttps://oils.pub/download/oils-for-unix-0.37.0.tar.gz
Last updated2026-06-22T14:05:40-07:00
Pulseupdated
Dependenciesreadline
Bottleavailable (on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux)
Homebrew post-installnot defined
Servicenone declared

registry facts

Source database details

Source DatabaseHomebrew formula API
Taphomebrew/core
Full Nameoils-for-unix
Version Scheme0
Revision0
Conflicts With
  • etsh
  • omake
Bottle Stable Root URLhttps://ghcr.io/v2/homebrew/core
Deprecatedno
Disabledno
Keg Onlyno
URL Keys
  • stable

source database matches

Other package-manager records

Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.

Nix95%

oils-for-unix

nix profile install nixpkgs#oils-for-unix
  • normalized package name match
  • Matched by: Oils For Unix
nixpkgs package indexes · api.github.com · nixpkgs package indexes: pkgs/by-name/oi/oils-for-unix/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
apk95%

oils-for-unix 0.37.0-r0

Unix shell with JSON-compatible structured data

https://www.oils.pub/

sudo apk add oils-for-unix
  • License: Apache-2.0
  • Architecture: x86_64
  • Source Package: oils-for-unix
  • 1 dependencies
  • 1 provides
  • normalized package name match
  • Matched by: Oils For Unix
Alpine Linux edge package indexes · dl-cdn.alpinelinux.org · Alpine Linux edge package indexes: oils-for-unix from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz
apk95%

oils-for-unix-bash 0.37.0-r0

oils-for-unix as /bin/bash

https://www.oils.pub/

sudo apk add oils-for-unix-bash
  • License: Apache-2.0
  • Architecture: x86_64
  • Source Package: oils-for-unix
  • 1 dependencies
  • 1 provides
  • normalized package name match
  • Matched by: Oils For Unix
Alpine Linux edge package indexes · dl-cdn.alpinelinux.org · Alpine Linux edge package indexes: oils-for-unix-bash from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz
apk95%

oils-for-unix-binsh 0.37.0-r0

oils-for-unix as /bin/sh

https://www.oils.pub/

sudo apk add oils-for-unix-binsh
  • License: Apache-2.0
  • Architecture: x86_64
  • Source Package: oils-for-unix
  • 1 dependencies
  • 1 provides
  • normalized package name match
  • Matched by: Oils For Unix
Alpine Linux edge package indexes · dl-cdn.alpinelinux.org · Alpine Linux edge package indexes: oils-for-unix-binsh from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz
apk95%

oils-for-unix-doc 0.37.0-r0

Unix shell with JSON-compatible structured data (documentation)

https://www.oils.pub/

sudo apk add oils-for-unix-doc
  • License: Apache-2.0
  • Architecture: x86_64
  • Source Package: oils-for-unix
  • normalized package name match
  • Matched by: Oils For Unix
Alpine Linux edge package indexes · dl-cdn.alpinelinux.org · Alpine Linux edge package indexes: oils-for-unix-doc from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz
pacman95%

oils-for-unix 0.37.0-3

Oils for Unix: OSH and YSH shells

https://oils.pub/

sudo pacman -S oils-for-unix
  • License: Apache-2.0
  • Architecture: x86_64
  • 7 dependencies
  • normalized package name match
  • Matched by: Oils For Unix
Arch Linux sync databases · geo.mirror.pkgbuild.com · Arch Linux sync databases: oils-for-unix from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz
zypper95%

oils-for-unix 0.37.0-1.2

A bash compatible shell and a new modern shell

https://oils.pub

sudo zypper install oils-for-unix
  • License: Apache-2.0 AND CNRI-Python-GPL-Compatible
  • Category: Unspecified
  • Architecture: x86_64
  • Source Package: oils-for-unix
  • 5 dependencies
  • 1 provides
  • normalized package name match
  • Matched by: Oils For Unix
openSUSE Tumbleweed package metadata · download.opensuse.org · openSUSE Tumbleweed package metadata: oils-for-unix from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst
dnf92%

osh-client 1.1.1-7.fc45

OpenScanHub CLI client

https://github.com/openscanhub/openscanhub/

sudo dnf install osh-client
  • License: GPL-3.0-or-later
  • Category: Unspecified
  • Architecture: noarch
  • Source Package: osh
  • 6 dependencies
  • 6 provides
  • installed executable or alias match
  • Matched by: Osh
Fedora Rawhide package metadata · dl.fedoraproject.org · Fedora Rawhide package metadata: osh-client from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst
dnf92%

osh-common 1.1.1-7.fc45

OpenScanHub shared files for client, hub and worker

https://github.com/openscanhub/openscanhub/

sudo dnf install osh-common
  • License: GPL-3.0-or-later
  • Category: Unspecified
  • Architecture: noarch
  • Source Package: osh
  • 1 dependencies
  • 1 provides
  • installed executable or alias match
  • Matched by: Osh
Fedora Rawhide package metadata · dl.fedoraproject.org · Fedora Rawhide package metadata: osh-common from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst
dnf92%

osh-hub 1.1.1-7.fc45

OpenScanHub xml-rpc interface and web application

https://github.com/openscanhub/openscanhub/

sudo dnf install osh-hub
  • License: GPL-3.0-or-later
  • Category: Unspecified
  • Architecture: noarch
  • Source Package: osh
  • 26 dependencies
  • 1 provides
  • installed executable or alias match
  • Matched by: Osh
Fedora Rawhide package metadata · dl.fedoraproject.org · Fedora Rawhide package metadata: osh-hub from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst
dnf92%

osh-hub-conf-devel 1.1.1-7.fc45

OpenScanHub hub devel configuration

https://github.com/openscanhub/openscanhub/

sudo dnf install osh-hub-conf-devel
  • License: GPL-3.0-or-later
  • Category: Unspecified
  • Architecture: noarch
  • Source Package: osh
  • 4 dependencies
  • 3 provides
  • installed executable or alias match
  • Matched by: Osh
Fedora Rawhide package metadata · dl.fedoraproject.org · Fedora Rawhide package metadata: osh-hub-conf-devel from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst
dnf92%

osh-worker 1.1.1-7.fc45

OpenScanHub worker

https://github.com/openscanhub/openscanhub/

sudo dnf install osh-worker
  • License: GPL-3.0-or-later
  • Category: Unspecified
  • Architecture: noarch
  • Source Package: osh
  • 11 dependencies
  • 1 provides
  • installed executable or alias match
  • Matched by: Osh
Fedora Rawhide package metadata · dl.fedoraproject.org · Fedora Rawhide package metadata: osh-worker from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst
dnf92%

osh-worker-conf-devel 1.1.1-7.fc45

OpenScanHub worker devel configuration

https://github.com/openscanhub/openscanhub/

sudo dnf install osh-worker-conf-devel
  • License: GPL-3.0-or-later
  • Category: Unspecified
  • Architecture: noarch
  • Source Package: osh
  • 3 provides
  • installed executable or alias match
  • Matched by: Osh
Fedora Rawhide package metadata · dl.fedoraproject.org · Fedora Rawhide package metadata: osh-worker-conf-devel from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst
dnf92%

osh-worker-manager 1.1.1-7.fc45

OpenScanHub worker manager

https://github.com/openscanhub/openscanhub/

sudo dnf install osh-worker-manager
  • License: GPL-3.0-or-later
  • Category: Unspecified
  • Architecture: noarch
  • Source Package: osh
  • 3 dependencies
  • 1 provides
  • installed executable or alias match
  • Matched by: Osh
Fedora Rawhide package metadata · dl.fedoraproject.org · Fedora Rawhide package metadata: osh-worker-manager from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst

source trail

Generated from repository data

This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.

Used sources

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