# Install bash-language-server with Homebrew, MacPorts, Nix, pacman

Language Server for Bash. Version 5.6.0 via Homebrew; verified from local package data.

## Install

```sh
sudo av install brew:bash-language-server
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install bash-language-server
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install bash-language-server
```

  Evidence: MacPorts ports tree: devel/bash-language-server/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- Nix (92%):

```sh
nix profile install nixpkgs#bash-language-server
```

  Evidence: nixpkgs package indexes: pkgs/by-name/ba/bash-language-server/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

- pacman (92%):

```sh
sudo pacman -S bash-language-server
```

  Evidence: Arch Linux sync databases: bash-language-server from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz

## Package facts

- **Package key:** brew:bash-language-server
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/bash-language-server>
- **Version:** 5.6.0
- **Source summary:** Language Server for Bash
- **Homepage:** <https://github.com/bash-lsp/bash-language-server>
- **Repository:** <https://github.com/bash-lsp/bash-language-server>
- **Upstream docs:** <https://github.com/bash-lsp/bash-language-server#readme>
- **License:** MIT
- **Source archive:** <https://registry.npmjs.org/bash-language-server/-/bash-language-server-5.6.0.tgz>
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- bash-language-server (cli)
- bash-language-server (alias)

## Dependencies

- node

## Install behavior

- Post-install hook: not defined
- Bottle: available on all

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 5.6.0
- Local data: ok
- Upstream repository: https://github.com/bash-lsp/bash-language-server
- info: No package-manager update timestamp was available.
- info: No cached GitHub release or tag data was available.
## Project history and usage

Bash Language Server is an implementation of the Language Server Protocol for shell scripts. It packages the modern editor-LSP idea for one of the oldest daily-use programming environments: Bourne-style shell scripting.

### Project history

The official README describes Bash Language Server as bringing an IDE-like experience for Bash scripts to most editors. It is based on the Tree-sitter Bash parser and integrates with explainshell, ShellCheck, and shfmt.

The project is written for editor integration rather than direct end-user scripting. Its releases are split across server and VS Code client tags, and the README documents installing the server binary from npm or distribution packages for editors that already have generic LSP clients.

### Adoption history

Its adoption follows the spread of LSP support from VS Code into Vim, Neovim, Emacs, Sublime Text, Helix, Eclipse, JupyterLab, and other editors. The official README lists clients for all of those editor families, which is the project's real adoption story: one server reused by many editor integrations.

The batch input shows Homebrew, MacPorts, Nix, and Arch packaging. That packaging matters because shell scripting is often edited outside Node-centric workflows, so system package managers make the server available to users who only need the `bash-language-server` executable.

### How it is used

Users install `bash-language-server`, configure an editor LSP client to run `bash-language-server start`, and optionally install ShellCheck for diagnostics and shfmt for formatting. The README includes editor-specific setup snippets for Vim, Neovim, coc.nvim, ALE, Emacs lsp-mode, Emacs eglot, and other clients.

Configuration is mainly editor/workspace configuration plus environment variables such as `BASH_IDE_LOG_LEVEL`; the README points detailed configuration variables to the project's `config.ts` source.

### Why package nerds care

Bash Language Server is package-nerd interesting because it makes shell tooling look like the rest of the LSP era. Instead of each editor shipping its own Bash intelligence, package managers can distribute one server that composes Tree-sitter parsing, ShellCheck linting, shfmt formatting, and editor-native LSP clients.

It is also a reminder that even mature Unix scripting ecosystems keep absorbing new developer-tool protocols. The package is small, but it connects Bash to modern editor workflows without replacing Bash itself.

### Timeline

- 2010s: Language Server Protocol adoption makes reusable editor backends common outside VS Code.
- 2010s: Bash Language Server appears with separate server and VS Code client release tags.
- 2020s: README documents broad editor support including Vim, Neovim, Emacs, Sublime Text, Helix, Eclipse, and JupyterLab.
- 2020s: Homebrew, MacPorts, Nix, and Arch package the server executable.

### Related projects

- The official README names Tree-sitter Bash, explainshell, ShellCheck, and shfmt as the main related projects. It also relates the server to editor LSP clients such as Bash IDE for VS Code, vim-lsp, nvim-lspconfig, coc.nvim, ALE, lsp-mode, and eglot.

### Sources

- Official GitHub releases page exposes server and VS Code client release streams.
- Official README describes the LSP purpose, Tree-sitter basis, ShellCheck and shfmt integrations, installation, clients, and logging.
- Official config.ts is cited by the README for configuration variables.
- input.source_facts.package-manager lists Homebrew, MacPorts, Nix, and Arch packaging.


## Security Notes

broad file, network, media, or database tool signal.

- **Geiger risk:** blue / medium
- broad file, network, media, or database tool signal

## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** bash-language-server
- **Version Scheme:** 0
- **Revision:** 0
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** stable

## Other Package-Manager Records

- Nix - bash-language-server: normalized package name match | nixpkgs package indexes: pkgs/by-name/ba/bash-language-server/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- pacman - bash-language-server - 5.6.0-1: normalized package name match | Arch Linux sync databases: bash-language-server from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz | Bash language server implementation based on Tree Sitter and its grammar for Bash | https://github.com/bash-lsp/bash-language-server
- MacPorts - bash-language-server: normalized package name match | MacPorts ports tree: devel/bash-language-server/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1


## Related links

- [Source-control packages](https://www.automicvault.com/pkg/source-control-tools/) - Belongs to a source-control command family.
- [Secret-risk packages](https://www.automicvault.com/pkg/secret-risk-packages/) - Has protected-tool coverage, approval-gate, or non-low Geiger security signals.
- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Text processing packages](https://www.automicvault.com/pkg/text-processing-tools/) - Matched text, document, or structured-data processing metadata.
- [node](https://www.automicvault.com/pkg/brew/node/) - Runtime dependency declared by Homebrew.
- [typescript-language-server](https://www.automicvault.com/pkg/brew/typescript-language-server/) - Shares av.db curated category or tags: cli, developer-tools, language-server, lsp, typescript.
- [vtsls](https://www.automicvault.com/pkg/brew/vtsls/) - Shares av.db curated category or tags: cli, developer-tools, language-server, lsp, typescript.
- [vue-language-server](https://www.automicvault.com/pkg/brew/vue-language-server/) - Shares av.db curated category or tags: cli, developer-tools, language-server, lsp, typescript.
- [ansible-language-server](https://www.automicvault.com/pkg/brew/ansible-language-server/) - Shares av.db curated category or tags: cli, developer-tools, language-server, lsp.
- [clojure-lsp](https://www.automicvault.com/pkg/brew/clojure-lsp/) - Shares av.db curated category or tags: cli, developer-tools, language-server, lsp.
- [codebook-lsp](https://www.automicvault.com/pkg/brew/codebook-lsp/) - Shares av.db curated category or tags: cli, developer-tools, language-server, lsp.
- [crystalline](https://www.automicvault.com/pkg/brew/crystalline/) - Shares av.db curated category or tags: cli, developer-tools, language-server, lsp.
- [ctags-lsp](https://www.automicvault.com/pkg/brew/ctags-lsp/) - Shares av.db curated category or tags: cli, developer-tools, language-server, lsp.
- [bash-language-server](https://www.automicvault.com/pkg/npm/bash-language-server/) - Same normalized package name appears in another local ecosystem. Shared terms: bash, bash-language-server, language, node, server.
- [bash-language-server](https://www.automicvault.com/pkg/npm/bash-language-server/) - Same normalized package name in another local ecosystem.

## Combined YAML source

View the package source record on GitHub. [combined/bash-language-server.yml](https://github.com/automic-vault/db/blob/main/combined/bash-language-server.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
