# Nushell vs Fish: source lines of code compared

The Nushell vs Fish comparison on OctoCounts shows side-by-side source line counts for nushell/nushell and fish-shell/fish-shell, counted with the same engine and analysis options on the dates shown in the methodology line: files, total lines, code lines, comment lines, blank lines, and per-language totals, pinned to the exact commits listed below.

As of 2026-08-30, nushell/nushell contains 344,326 total lines (294,921 code) across 1,681 files, while fish-shell/fish-shell contains 947,147 total lines (658,752 code) across 1,858 files as of 2026-09-16. fish-shell/fish-shell is about 2.2x the size of nushell/nushell by code lines. Code size is not code quality: a larger count only means more source material, not a better or worse project.

| Metric | [nushell/nushell](https://octocounts.com/github/nushell/nushell) | [fish-shell/fish-shell](https://octocounts.com/github/fish-shell/fish-shell) |
| --- | ---: | ---: |
| Files | 1,681 | 1,858 |
| Total lines | 344,326 | 947,147 |
| Code lines | 294,921 | 658,752 |
| Comment lines | 13,979 | 18,295 |
| Blank lines | 35,426 | 270,100 |
| Languages counted | 12 | 12 |

Top languages in nushell/nushell: Rust (97.0% of code), Nushell (1.9% of code), TOML (0.7% of code). Top languages in fish-shell/fish-shell: PO File (74.8% of code), Rust (12.5% of code), Fish (9.1% of code). Rust, Python appear in both top language lists; Nushell, TOML, Nix appear only in nushell/nushell's top languages; PO File, Fish, ReStructuredText appear only in fish-shell/fish-shell's top languages.

Methodology: both counts come from cached OctoCounts reports generated with tokei. nushell/nushell was counted at ref main (commit baaba71de9dd) on 2026-08-30; fish-shell/fish-shell was counted at ref 3db2321515cfe4e4c3edba9ce9702507f5db7549 (commit 3db2321515cf) on 2026-09-16. See the [counting methodology](https://octocounts.com/docs/methodology) for ignored directories and analysis options.
## About this comparison

nushell/nushell counts the Nushell repository: the structured-data shell written in Rust — parser, evaluation engine, built-in commands, and their tests. fish-shell/fish-shell counts the Fish repository: the user-friendly command-line shell written largely in C++, with its own parser, builtins, and documentation. Both counts measure shell source trees, counted on the dates shown in the methodology line.

The per-language tables mark the clearest difference between the two: Nushell's counted code is predominantly Rust, while Fish's is predominantly C++ — each project's chosen systems language for the same job.

Both repositories concentrate on the shell itself rather than on external plugins: Nushell ships its core commands in the main tree, and Fish builds its builtins into the single binary, so the totals are more directly comparable than for plugin-extensible tools.

_Repository size says nothing about startup time, memory use, or scripting capabilities — a shell's interactive feel depends on its features and versions, not on the line count of its source. The counts describe how much code maintains each shell._

Sources: [nushell/nushell repository](https://github.com/nushell/nushell) · [fish-shell/fish-shell repository](https://github.com/fish-shell/fish-shell). Statements verified 2026-09-16.

Evidence and next steps:

- [nushell/nushell SLOC report](https://octocounts.com/github/nushell/nushell)
- [fish-shell/fish-shell SLOC report](https://octocounts.com/github/fish-shell/fish-shell)
- [Compare nushell/nushell and fish-shell/fish-shell interactively](https://octocounts.com/compare?left=https%3A%2F%2Fgithub.com%2Fnushell%2Fnushell&right=https%3A%2F%2Fgithub.com%2Ffish-shell%2Ffish-shell)

Note: code size is not code quality. OctoCounts only reports reproducible line counts and makes no claim that either project is better.

## Compare FAQ

### Which has more lines of code, nushell/nushell or fish-shell/fish-shell?

fish-shell/fish-shell has more code: 658,752 code lines versus 294,921 for nushell/nushell, about 2.2x as much, based on cached OctoCounts reports as of 2026-09-16.

### Does more source lines of code mean more complexity?

Not necessarily. SLOC measures size, not complexity, quality, or maintainability. A larger codebase can mean more features, more generated or vendored code, more verbose language idioms, or more tests — none of which imply the code is harder to work with. Use SLOC to gauge the scale of what you'd be reading or maintaining, not as a quality signal for nushell/nushell, fish-shell/fish-shell, or any repository.

### How is this comparison calculated?

Methodology: both counts come from cached OctoCounts reports generated with tokei. nushell/nushell was counted at ref main (commit baaba71de9dd) on 2026-08-30; fish-shell/fish-shell was counted at ref 3db2321515cfe4e4c3edba9ce9702507f5db7549 (commit 3db2321515cf) on 2026-09-16. See the counting methodology for ignored directories and analysis options.

### Can I compare a different branch, tag, or commit?

Yes. This page shows the default branch for each repository. Use the interactive comparison tool to pick any public GitHub repository, branch, tag, or commit SHA for both sides and get a fresh side-by-side report.

## Related OctoCounts pages

- [Interactive repository comparison](https://octocounts.com/compare)
- [Recently analyzed repositories](https://octocounts.com/recent)
- [Popular SLOC reports](https://octocounts.com/popular)
- [Trending GitHub repositories](https://octocounts.com/trending)
- [Hall of Monoliths](https://octocounts.com/hall-of-monoliths)
- [Original research: how filtering changes SLOC counts](https://octocounts.com/research)
- [GitHub SLOC counter guide](https://octocounts.com/docs/github-sloc-counter)
- [Counting methodology](https://octocounts.com/docs/methodology)
- [SLOC and code metrics glossary](https://octocounts.com/docs/glossary)
- [OctoCounts API docs](https://octocounts.com/docs/api)
