Oils is a Unix shell interpreter and scripting language runtime that combines a modern shell language with POSIX and Bash compatibility. It functions as a structured data shell, integrating JSON and J8 formats to manage complex data without relying on string parsing.
The system is distinguished by a C++ transpiled interpreter that converts a subset of Python source code into strongly typed C++ for high-performance execution. It features a garbage-collected typed runtime that supports prototype-based polymorphism, lexical closures, and reference-based variable mutation. To decouple shell logic from the user interface, it can operate as a background server using socket-based communication.
The project covers a broad range of capabilities including advanced text pattern matching with regular expressions and globs, structured data serialization, and a strict error-handling framework featuring try-catch interception. It also provides an interactive command-line environment with customizable prompts and an AST inspection system for structural analysis of scripts.
The runtime is implemented in Python for development and testing purposes.