Oils is a Unix shell that provides an upgrade path from bash to a better language and runtime, available in two modes: OSH for running existing shell scripts and YSH for Python and JavaScript users who avoid shell.
The project addresses the limitations of bash by offering a modernized shell language with improved syntax and semantics. It is written in Python for ease of modification and prototyping, but the codebase is translated to C++ using custom tools to produce a fast, small deployed executable that has no Python runtime dependency. This dual-nature approach allows developers to work in Python while delivering optimized binaries.
Oils suits developers who want to move beyond bash's constraints without abandoning shell scripting entirely, or those from Python and JavaScript backgrounds seeking a more familiar shell experience. The project explicitly welcomes contributors at all levels, emphasizing that the codebase is a medium-sized Python program with extensive tests, making it accessible to programmers experienced with Python. The maintainer notes that contributions need only work in Python initially, with C++ translation handled separately, and that even failing spec tests are valuable contributions for OSH compatibility work.
Development activity shows a maintainer who prioritizes responsiveness and accessibility. The contribution guidelines emphasize a low bar to entry and actively solicit small contributions, including test-only submissions that help define shell compatibility without requiring code changes. The continuous build tests changes at every commit, and the project maintains a clear separation between the development repository and release tarballs to set proper expectations for contributors.