What is Oils (oils.pub)?

Updated

Oils is a project that describes itself as "our upgrade path from bash to a better language and runtime." It ships two shells inside a single 2 MB binary called oils-for-unix: OSH, which runs your existing shell scripts, and YSH, aimed at Python and JavaScript users who want to avoid traditional shell syntax. The website at oils.pub is the project's home for installation instructions, documentation, a blog, and a language reference.

The two shells in one binary

Shell Who it's for What it does
OSH Anyone with existing bash/shell scripts Runs your current scripts; the site's example shows it catching an undefined variable (echo "hello $oops" → fatal: Undefined variable 'oops')
YSH Python and JavaScript users who avoid shell Offers a different syntax and data handling, e.g. json read < x.json followed by inspecting _reply as a (Dict)

Both live inside the same oils-for-unix binary, so installing one gives you access to both.

What the site offers

  • Install — entry point for getting Oils onto your system.
  • Docs — documentation for the project.
  • Blog — posts dating 2016–2024, originally at oilshell.org, covering topics like the Oils 2023 FAQ, "Why Create a New Unix Shell?", a YSH tour, and "YSH vs. Shell Idioms."
  • Oils Reference — language reference material.
  • Latest Release / All Releases — release downloads and version history.
  • Editor support — oils.vim for Vim users.
  • Source — the oils-for-unix/oils repository on GitHub.

Where to get help and follow along

  • Zulip chat at oilshell.zulipchat.com, with channels including #oil-help for user questions, #oil-discuss-public for general discussion, and #oil-dev for code changes (login required for that last one).
  • Community — /r/oilsforunix on Reddit.
  • Updates — follow @oilsforunix on Mastodon or Twitter, or subscribe via RSS.
  • Contact — the maintainer's email is listed on the site (andy at oilshell dot org).
  • Contributing — a # help-wanted section suggests places to start changing the code.

Who it's for

If you have working shell scripts and want a shell that runs them while catching errors like undefined variables, OSH is the relevant piece. If you come from Python or JavaScript and find traditional shell awkward, YSH is the intended audience. The project frames itself as an upgrade path rather than a replacement you adopt all at once.

The site does not list pricing information, so nothing here should be read as confirming whether the software or any related service is free or paid.