{"id":13392796,"url":"https://github.com/fish-shell/fish-shell","last_synced_at":"2025-12-30T18:06:52.733Z","repository":{"id":3242776,"uuid":"4279682","full_name":"fish-shell/fish-shell","owner":"fish-shell","description":"The user-friendly command line shell.","archived":false,"fork":false,"pushed_at":"2025-05-05T14:23:24.000Z","size":79894,"stargazers_count":29696,"open_issues_count":456,"forks_count":2053,"subscribers_count":290,"default_branch":"master","last_synced_at":"2025-05-05T15:54:10.910Z","etag":null,"topics":["fish","rust","shell","terminal"],"latest_commit_sha":null,"homepage":"https://fishshell.com","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fish-shell.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.rst","contributing":"CONTRIBUTING.rst","funding":null,"license":"COPYING","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2012-05-10T03:00:55.000Z","updated_at":"2025-05-05T09:40:05.000Z","dependencies_parsed_at":"2025-05-05T15:59:24.810Z","dependency_job_id":null,"html_url":"https://github.com/fish-shell/fish-shell","commit_stats":{"total_commits":18021,"total_committers":989,"mean_commits":"18.221435793731043","dds":0.7917984573553076,"last_synced_commit":"67a3aaa66aa7e127a210ad352eaa627146eb389a"},"previous_names":[],"tags_count":84,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fish-shell%2Ffish-shell","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fish-shell%2Ffish-shell/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fish-shell%2Ffish-shell/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fish-shell%2Ffish-shell/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fish-shell","download_url":"https://codeload.github.com/fish-shell/fish-shell/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253796990,"owners_count":21965815,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fish","rust","shell","terminal"],"created_at":"2024-07-30T17:00:37.309Z","updated_at":"2025-12-28T12:07:30.623Z","avatar_url":"https://github.com/fish-shell.png","language":"Rust","readme":".. |Cirrus CI| image:: https://api.cirrus-ci.com/github/fish-shell/fish-shell.svg?branch=master\n      :target: https://cirrus-ci.com/github/fish-shell/fish-shell\n      :alt: Cirrus CI Build Status\n\n`fish \u003chttps://fishshell.com/\u003e`__ - the friendly interactive shell |Build Status| |Cirrus CI|\n=============================================================================================\n\nfish is a smart and user-friendly command line shell for macOS, Linux,\nand the rest of the family. fish includes features like syntax\nhighlighting, autosuggest-as-you-type, and fancy tab completions that\njust work, with no configuration required.\n\nFor downloads, screenshots and more, go to https://fishshell.com/.\n\nQuick Start\n-----------\n\nfish generally works like other shells, like bash or zsh. A few\nimportant differences can be found at\nhttps://fishshell.com/docs/current/tutorial.html by searching for the\nmagic phrase “unlike other shells”.\n\nDetailed user documentation is available by running ``help`` within\nfish, and also at https://fishshell.com/docs/current/index.html\n\nGetting fish\n------------\n\nmacOS\n~~~~~\n\nfish can be installed:\n\n-  using `Homebrew \u003chttp://brew.sh/\u003e`__: ``brew install fish``\n-  using `MacPorts \u003chttps://www.macports.org/\u003e`__:\n   ``sudo port install fish``\n-  using the `installer from fishshell.com \u003chttps://fishshell.com/\u003e`__\n-  as a `standalone app from fishshell.com \u003chttps://fishshell.com/\u003e`__\n\nNote: The minimum supported macOS version is 10.12.\n\nPackages for Linux\n~~~~~~~~~~~~~~~~~~\n\nPackages for Debian, Fedora, openSUSE, and Red Hat Enterprise\nLinux/CentOS are available from the `openSUSE Build\nService \u003chttps://software.opensuse.org/download.html?project=shells%3Afish\u0026package=fish\u003e`__.\n\nPackages for Ubuntu are available from the `fish\nPPA \u003chttps://launchpad.net/~fish-shell/+archive/ubuntu/release-4\u003e`__,\nand can be installed using the following commands:\n\n::\n\n   sudo apt-add-repository ppa:fish-shell/release-4\n   sudo apt update\n   sudo apt install fish\n\nInstructions for other distributions may be found at\n`fishshell.com \u003chttps://fishshell.com\u003e`__.\n\nWindows\n~~~~~~~\n\n-  On Windows 10/11, fish can be installed under the WSL Windows Subsystem\n   for Linux with the instructions for the appropriate distribution\n   listed above under “Packages for Linux”, or from source with the\n   instructions below.\n-  Fish can also be installed on all versions of Windows using\n   `Cygwin \u003chttps://cygwin.com/\u003e`__ or `MSYS2 \u003chttps://github.com/Berrysoft/fish-msys2\u003e`__.\n\nBuilding from source\n~~~~~~~~~~~~~~~~~~~~\n\nIf packages are not available for your platform, GPG-signed tarballs are\navailable from `fishshell.com \u003chttps://fishshell.com/\u003e`__ and\n`fish-shell on\nGitHub \u003chttps://github.com/fish-shell/fish-shell/releases\u003e`__. See the\n`Building \u003c#building\u003e`_ section for instructions.\n\nRunning fish\n------------\n\nOnce installed, run ``fish`` from your current shell to try fish out!\n\nDependencies\n~~~~~~~~~~~~\n\nRunning fish requires:\n\n-  some common \\*nix system utilities (currently ``mktemp``), in\n   addition to the basic POSIX utilities (``cat``, ``cut``, ``dirname``,\n   ``ls``, ``mkdir``, ``mkfifo``, ``rm``, ``sh``, ``sort``, ``tee``, ``tr``,\n   ``uname`` and ``sed`` at least, but the full coreutils plus ``find`` and\n   ``awk`` is preferred)\n\nThe following optional features also have specific requirements:\n\n-  builtin commands that have the ``--help`` option or print usage\n   messages require ``man`` for display\n-  automated completion generation from manual pages requires Python 3.5+\n-  the ``fish_config`` web configuration tool requires Python 3.5+ and a web browser\n-  the :ref:`alt-o \u003cshared-binds-alt-o\u003e` binding requires the ``file`` program.\n-  system clipboard integration (with the default Ctrl-V and Ctrl-X\n   bindings) require either the ``xsel``, ``xclip``,\n   ``wl-copy``/``wl-paste`` or ``pbcopy``/``pbpaste`` utilities\n-  full completions for ``yarn`` and ``npm`` require the\n   ``all-the-package-names`` NPM module\n-  ``colorls`` is used, if installed, to add color when running ``ls`` on platforms\n   that do not have color support (such as OpenBSD)\n\nBuilding\n--------\n\nDependencies\n~~~~~~~~~~~~\n\nCompiling fish requires:\n\n-  Rust (version 1.85 or later)\n-  CMake (version 3.15 or later)\n-  a C compiler (for system feature detection and the test helper binary)\n-  PCRE2 (headers and libraries) - optional, this will be downloaded if missing\n-  gettext (only the msgfmt tool) - optional, for translation support\n-  an Internet connection, as other dependencies will be downloaded automatically\n\nSphinx is also optionally required to build the documentation from a\ncloned git repository.\n\nAdditionally, running the full test suite requires diff, git, Python 3.5+, pexpect, less, tmux and wget.\n\nBuilding from source with CMake\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nRather than building from source, consider using a packaged build for your platform. Using the\nsteps below makes fish difficult to uninstall or upgrade. Release packages are available from the\nlinks above, and up-to-date `development builds of fish are available for many platforms\n\u003chttps://github.com/fish-shell/fish-shell/wiki/Development-builds\u003e`__\n\nTo install into ``/usr/local``, run:\n\n.. code:: shell\n\n   mkdir build; cd build\n   cmake ..\n   cmake --build .\n   sudo cmake --install .\n\nThe install directory can be changed using the\n``-DCMAKE_INSTALL_PREFIX`` parameter for ``cmake``.\n\nCMake Build options\n~~~~~~~~~~~~~~~~~~~\n\nIn addition to the normal CMake build options (like ``CMAKE_INSTALL_PREFIX``), fish's CMake build has some other options available to customize it.\n\n- Rust_COMPILER=path - the path to rustc. If not set, cmake will check $PATH and ~/.cargo/bin\n- Rust_CARGO=path - the path to cargo. If not set, cmake will check $PATH and ~/.cargo/bin\n- Rust_CARGO_TARGET=target - the target to pass to cargo. Set this for cross-compilation.\n- WITH_DOCS=ON|OFF - whether to build the documentation. By default, this is ON when Sphinx is installed.\n- FISH_USE_SYSTEM_PCRE2=ON|OFF - whether to use an installed pcre2. This is normally autodetected.\n- WITH_GETTEXT=ON|OFF - whether to include translations.\n- extra_functionsdir, extra_completionsdir and extra_confdir - to compile in an additional directory to be searched for functions, completions and configuration snippets\n\nBuilding fish with Cargo\n~~~~~~~~~~~~~~~~~~~~~~~~\n\nYou can also build fish with Cargo.\nThis example uses `uv \u003chttps://github.com/astral-sh/uv\u003e`__ to install Sphinx (which is used for man-pages and ``--help`` options).\nYou can also install Sphinx another way and drop the ``uv run --no-managed-python`` prefix.\n\n.. code:: shell\n\n    git clone https://github.com/fish-shell/fish-shell\n    cd fish-shell\n\n    # Optional: check out a specific version rather than building the latest\n    # development version.\n    git checkout \"$(git for-each-ref refs/tags/ | awk '$2 == \"tag\" { print $3 }' | tail -1)\"\n\n    uv run --no-managed-python \\\n        cargo install --path .\n\nThis will place standalone binaries in ``~/.cargo/bin/``, but you can move them wherever you want.\n\nTo disable translations, disable the ``localize-messages`` feature by passing ``--no-default-features --features=embed-manpages`` to cargo.\n\nYou can also link this build statically (but not against glibc) and move it to other computers.\n\nHere are the remaining advantages of a full installation, as currently done by CMake:\n\n- Man pages like ``fish(1)`` installed in standard locations, easily accessible from outside fish.\n- Separate files for builtins (e.g. ``$PREFIX/share/fish/man/man1/abbr.1``).\n- A local copy of the HTML documentation, typically accessed via the ``help`` fish function.\n  In Cargo builds, ``help`` will redirect to `\u003chttps://fishshell.com/docs/current/\u003e`__\n- Ability to use our CMake options extra_functionsdir, extra_completionsdir and extra_confdir,\n  (also recorded in ``$PREFIX/share/pkgconfig/fish.pc``)\n  which are used by some package managers to house third-party completions.\n  Regardless of build system, fish uses ``$XDG_DATA_DIRS/{vendor_completion.d,vendor_conf.d,vendor_functions.d}``.\n\nContributing Changes to the Code\n--------------------------------\n\nSee the `Guide for Developers \u003cCONTRIBUTING.rst\u003e`__.\n\nContact Us\n----------\n\nQuestions, comments, rants and raves can be posted to the official fish\nmailing list at https://lists.sourceforge.net/lists/listinfo/fish-users\nor join us on our `matrix\nchannel \u003chttps://matrix.to/#/#fish-shell:matrix.org\u003e`__. Or use the `fish tag\non Unix \u0026 Linux Stackexchange \u003chttps://unix.stackexchange.com/questions/tagged/fish\u003e`__.\nThere is also a fish tag on Stackoverflow, but it is typically a poor fit.\n\nFound a bug? Have an awesome idea? Please `open an\nissue \u003chttps://github.com/fish-shell/fish-shell/issues/new\u003e`__.\n\n.. |Build Status| image:: https://github.com/fish-shell/fish-shell/workflows/make%20test/badge.svg\n   :target: https://github.com/fish-shell/fish-shell/actions\n","funding_links":[],"categories":["C++","Applications","Rust","Shell","Official Resources","Cross-Platform","Terminal","Ports and Programs","Thanks","终端","应用","Shells","Tools","Packages","Table of Contents","rust","\u003ca name=\"Rust\"\u003e\u003c/a\u003eRust","App / CLI","Table of contents"],"sub_categories":["System tools","Visual Studio Code","Development","JavaScript","Shell","UNIX Shells","We have teams","网络服务_其他","开发","Shells","PCAP"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffish-shell%2Ffish-shell","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffish-shell%2Ffish-shell","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffish-shell%2Ffish-shell/lists"}