pi-mason-bridge
Expose Neovim Mason's language-server binaries to Oh My Pi (OMP) — idempotent PATH bridge at startup.
Package details
Install pi-mason-bridge from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:pi-mason-bridge- Package
pi-mason-bridge- Version
0.2.2- Published
- Sep 6, 2026
- Downloads
- 1,071/mo · 565/wk
- Author
- loneexile
- License
- MIT
- Types
- extension
- Size
- 15.7 KB
- Dependencies
- 0 dependencies · 0 peers
Pi manifest JSON
{
"name": "pi-mason-bridge",
"description": "Expose Neovim Mason's language-server binaries to OMP — idempotent PATH bridge at startup.",
"extensions": [
"./extensions"
],
"image": "https://github.com/LoneExile/pi-mason-bridge/raw/main/assets/demo.gif",
"video": "https://github.com/LoneExile/pi-mason-bridge/raw/main/assets/demo.mp4"
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
pi-mason-bridge
Lets OMP use the language servers you already installed via Neovim Mason.
OMP only starts a language server when it can find the server's executable. This plugin adds Mason's bin folder to the search path, so OMP finds what's already there — no duplicate installs.

Install
omp plugin install pi-mason-bridge
Restart OMP (new session) after installing.
How it works
On startup, the plugin adds ~/.local/share/nvim/mason/bin to PATH (once,
idempotently; $MASON/bin if you set $MASON). If Mason isn't installed, it
does nothing.
That's it. OMP's built-in server discovery does the rest — you get code intelligence in projects whose servers live in Mason. Servers still start lazily, only when needed.
Status line (optional, off by default)
Set $PI_MASON_BRIDGE_STATUS to show a small presence indicator (a plug
icon, Nerd Font \uf1e6) in OMP's status line whenever a Mason-bridged
binary is currently running — never what OMP itself activated, since OMP
exposes no API for that, and never an inventory of everything Mason has
installed (a real Mason install commonly has 50+ entries — linters,
formatters, debuggers, not only language servers). Silent whenever nothing
matches a running process.
static— check once per session, no ongoing cost:[plug] gopls runningfull— same check, re-run after every turn (a lightweight process scan; heuristic, not proof OMP started them — it misses non-Mason servers like a project's own.venvbasedpyright, and a same-named process could be running for an unrelated reason). Multiple names are capped at 6, then summarized:[plug] gopls, pyright-langserver +3 more running- unset, or any other value — no status line entry at all (default; upgrading this plugin never changes existing behavior unless you set this)
Python: pick one checker
If a project has its own Python checker (e.g. basedpyright in .venv) and
Mason also has pyright, OMP sees both. To keep the project's own checker,
add this to the project:
.gitignore:
.omp/
.omp/lsp.json:
{
"servers": {
"pyright": {
"disabled": true
}
}
}
Pi
Installs and loads cleanly (pi install npm:pi-mason-bridge), but does nothing
useful there — Pi has no LSP tool, so there's nothing for it to feed. OMP-only.
Develop
npm install
bun test
npm run typecheck
License
MIT