GitHub Actions Language Server
A lightweight wrapper around @actions/languageserver to simplify installation and usage in CLI tools and LSP (Language Server Protocol) clients.
Important
January 2026
The official @actions/languageserver standalone executable is available as of v0.3.30 - actions/languageservices#56 (comment).
The Mason Registry (gh-actions-language-server) has been updated to reflect it too - mason-org/mason-registry#13000.
Please follow the official README.md and guidelines to configure GitHub Actions in Neovim.
The @actions/languageserver module is published without an executable binary (see issue #56), which makes it less convenient to use directly. This package bridges that gap by providing an easy-to-install binary.
Initially, the plan was to contribute a pull request to @actions/languageserver to add a bin field. However, it seems that configuring package exports for this purpose requires some adjustments, so creating this standalone package was a quicker solution.
Note: This package may be archived and deprecated once native support for a bin executable is added to @actions/languageserver.
To install globally via npm, run:
npm install --global gh-actions-language-server
Create a a file at ftdetect/github-actions.lua with:
vim.filetype.add({
pattern = {
['.*/%.github[%w/]+workflows[%w/]+.*%.ya?ml'] = 'yaml.github',
},
})Note
Once these PRs get merged, mason and nvim-lspconfig should support gh-actions-language-server out of the box:
If you're using nvim-lspconfig, you can configure the gh-actions-language-server as follows:
Create a new configuration file at lua/lspconfig/configs/gh_actions_ls.lua with the following content:
local util = require('lspconfig.util')
return {
default_config = {
cmd = { 'gh-actions-language-server', '--stdio' },
filetypes = { 'yaml.github' },
root_dir = util.root_pattern('.github'),
single_file_support = true,
capabilities = {
workspace = {
didChangeWorkspaceFolders = {
dynamicRegistration = true,
},
},
},
},
docs = {
description = [[
https://github.com/lttb/gh-actions-language-server
Language server for GitHub Actions.
`gh-actions-language-server` can be installed via `npm`:
```sh
npm install -g gh-actions-language-server
```
]],
},
}Add the following code to initialise the language server:
require('lspconfig').gh_actions_ls.setup({})