Repolode
oils-for-unix

oils-for-unix/oils

Oils is a bash-compatible shell (OSH) plus a newer, Python-and-JavaScript-style shell language (YSH), written in Python and translated to C++.

Stars
3,400
Forks
194
Open issues
610
Last commit
4 days ago

What is it?

Oils is an upgrade path from bash. It includes OSH, which runs existing shell scripts, and YSH, a newer shell language aimed at Python and JavaScript users who prefer to avoid traditional shell syntax.

The codebase is written in Python so it is short and easy to modify. A custom translation tool converts it to C++ to produce a small, fast executable that does not depend on Python at runtime.

The repository is aimed at contributors. Its README describes building a dev build, which runs directly under Python, and points to a wiki and Zulip channel for development discussion. End users are directed to the official release pages instead of cloning the repo.

Key features

  • 01Runs existing bash-style shell scripts through OSH
  • 02Provides YSH, a newer shell language for Python and JavaScript users
  • 03Written in Python for easy modification and prototyping
  • 04Translated to C++ for a small executable with no Python dependency
  • 05Includes a spec test suite used to check shell compatibility

Use cases

  • Running legacy bash scripts under a more consistent shell runtime
  • Writing shell automation with Python-like syntax instead of classic shell
  • Contributing to shell compatibility by fixing failing spec tests

Quick start

  1. 1

    Build the dev build by following the Contributing instructions on the wiki

  2. 2

    Start the interactive OSH shell

    bin/osh
  3. 3

    Run a shell script with OSH

    bin/osh myscript.sh
  4. 4

    Start the YSH shell

    bin/ysh

Things to know

  • This repo builds a Python dev build, not a released binary; end users should use the tarball releases at oils.pub.
  • The license is not clearly specified in the metadata (NOASSERTION).

Topics

FAQ

What is oils?
Oils is a bash-compatible shell (OSH) plus a newer, Python-and-JavaScript-style shell language (YSH), written in Python and translated to C++. Oils is an upgrade path from bash. It includes OSH, which runs existing shell scripts, and YSH, a newer shell language aimed at Python and JavaScript users who prefer to avoid traditional shell syntax.
Is oils free to use? What license does it have?
oils is open source under the Other license. Check the license terms before using it in commercial products.
Is oils still maintained?
Actively maintained. The last commit to oils was on Oct 18, 2026.
What can I use oils for?
Running legacy bash scripts under a more consistent shell runtime Writing shell automation with Python-like syntax instead of classic shell Contributing to shell compatibility by fixing failing spec tests
How do I install oils?
Build the dev build by following the Contributing instructions on the wiki Start the interactive OSH shell: bin/osh Run a shell script with OSH: bin/osh myscript.sh Start the YSH shell: bin/ysh
Where can I get oils?
The source code and installation instructions are on GitHub: https://github.com/oils-for-unix/oils

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects