A smarter cd command that learns your most-used directories and lets you jump to them with a few keystrokes, across all major shells.
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
Build the dev build by following the Contributing instructions on the wiki
- 2
Start the interactive OSH shell
bin/osh - 3
Run a shell script with OSH
bin/osh myscript.sh - 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
A web tool and Python library that explains shell command lines by matching each argument to its manpage help text.
A command template and snippet manager for Bash, Zsh, Fish, Nushell and PowerShell that works like IntelliSense for your terminal.
An ECMAScript 5.1 JavaScript engine written in pure Go, for embedding JS execution in Go applications.
An interactive C++ interpreter built on Clang and LLVM, providing a REPL for running C++ code line by line.
A Python 3 interpreter written in Rust, able to run Python code without CPython bindings, with WebAssembly and embedding support.