The fish shell is a command-line shell for Unix-like systems, written primarily in Rust with a modular crate architecture. It provides an interactive environment with syntax highlighting, autosuggestions, tab completions, and a scripting language. The core is in `src/` with builtins, parser, reader, history, job control, etc. External dependencies include PCRE2, nix, fluent for localization, and various Rust crates. The architecture is a single binary with many built-in commands and a large set of shell functions and completions. Key entry points: `fish` binary, `fish_indent`, `fish_key_reader`. Data flows: user input -> parser -> execution -> output. Completions are dynamically generated from shell functions and external command output. The project is actively maintained with a comprehensive test suite and CI/CD pipeline.
Oh My Zsh is a community-driven framework for managing Zsh shell configuration. It consists of a core library (lib/), over 200 plugins providing aliases, functions, and completions for development tools and workflows, and over 100 prompt themes. The system is loaded by sourcing oh-my-zsh.sh, which initializes libraries, plugins, custom configurations, and the chosen theme. Plugins follow a consistent structure and many generate completions asynchronously. The repository also includes install/update/uninstall tooling and CI automation for dependency updates. While the vast majority of files are simple aliases or READMEs, several components exhibit high craftsmanship—notably the emoji definitions (auto-generated from Unicode data), the git prompt library (lib/git.zsh) with async support and security patches, the Zsh Navigation Tools (plugins/zsh-navigation-tools) providing full-screen interactive widgets, and the dependency updater script. Some content is stale (outdated completions for rustc, scala, yarn v1, docker-compose v1) and there is a long tail of low-effort plugins, but the core framework is well-maintained and actively developed.