https://github.com/mistweaverco/zana-client
Zana 📦 is Mason.nvim 🧱, but maintained by the community 🌈.
https://github.com/mistweaverco/zana-client
golang lspinstall manager neovim nvim nvim-lsp nvim-lsp-installer package package-manager packages
Last synced: about 1 month ago
JSON representation
Zana 📦 is Mason.nvim 🧱, but maintained by the community 🌈.
- Host: GitHub
- URL: https://github.com/mistweaverco/zana-client
- Owner: mistweaverco
- License: mit
- Created: 2025-02-07T18:09:49.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2025-02-18T21:15:54.000Z (3 months ago)
- Last Synced: 2025-02-18T21:28:41.495Z (3 months ago)
- Topics: golang, lspinstall, manager, neovim, nvim, nvim-lsp, nvim-lsp-installer, package, package-manager, packages
- Language: Go
- Homepage: https://getzana.net
- Size: 282 KB
- Stars: 5
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README

# zana-client
[](https://github.com/mistweaverco/zana-client/graphs/contributors)
[](https://golang.org/)
[](https://github.com/mistweaverco/zana-client/releases/latest)
[](https://getzana.net/discord)[Requirements](#requirements) • [Install](#install) • [Usage](#usage) • [What is working?](#what-is-working)

Zana 📦 aims to be like Mason.nvim 🧱,
but with the goal of supporting 🌈 not only Neovim,
but rather any other editor 🫶.Zana is swahili for "tools" or "tooling".
A minimal package manager for Neovim (and other editors) which
uses the [Zana Registry][zana-registry] to install and manage packages.Easily install and manage LSP servers, DAP servers, linters, and formatters.
Currently, Zana is in pre-alpha and under active development.
## Requirements
Zana is a TUI, therefore you need to have a terminal emulator available.
Besides that, we shell out to `npm`, `pip`, `cargo`, `go`, and `git` to install packages,
depending on the package type.E.g. if you want to install `pkg:npm` packages, you need to have `npm` installed.
For the packages to work in Neovim, you need to
[Zana.nvim](https://github.com/mistweaverco/zana.nvim) installed.## Install
Just head over to the [download page][download-page] or
grab it directtly from the [releases][releases-page].## Usage
The heart of Zana is its `zana-lock.json` file.
This file is used to keep track of the installed packages and their versions.Zana expects `zana-lock.json` to be in the following directories:
- Linux: `$XDG_CONFIG_HOME/zana/zana-lock.json` or `$HOME/.config/zana/zana-lock.json`
- macOS: `$HOME/Library/Application Support/zana/zana-lock.json`
- Windows: `%APPDATA%\zana\zana-lock.json`If the file does not exist,
Zana will create it for you (when you install a package).1. Start Zana by running `zana` in your terminal.
2. Use the arrow keys (or hjkl) to navigate the packages.
3. Use `enter` to install a package.
4. Use `enter` to update a package.
5. Use `backspace` to remove a package.
6. Use `/` to filter packages.
7. Use `q` to quit Zana.It's advised to keep the `zana-lock.json` file in version control.
### Where are the packages?
Zana uses a basepath to install packages of different types.
The basepath is:
- Linux: `$XDG_CONFIG_HOME/zana/packages` or `$HOME/.config/zana/packages`
- macOS: `$HOME/Library/Application Support/zana/packages`
- Windows: `%APPDATA%\zana\packages`The packages are installed in the following directories:
- `pkg:npm`: `$basepath/npm`
- `pkg:pypi`: `$basepath/pypi`
- `pkg:github`: `$basepath/github`
- `pkg:golang`: `$basepath/golang`
- `pkg:cargo`: `$basepath/cargo`## What is working?
- [x] [registry](https://github.com/mistweaverco/zana-registry) updates on startup
- [x] Updates available for installed packages?
- [x] Filtering packages
- [x] Vim keymaps
- [x] Install `pkg:npm` packages
- [x] Update `pkg:npm` packages
- [x] Remove `pkg:npm` packages
- [ ] Install `pkg:github` packages
- [ ] Update `pkg:github` packages
- [ ] Remove `pkg:github` packages
- [x] Install `pkg:pypi` packages
- [x] Update `pkg:pypi` packages
- [x] Remove `pkg:pypi` packages
- [x] Install `pkg:golang` packages
- [x] Update `pkg:golang` packages
- [x] Remove `pkg:golang` packages
- [ ] Install `pkg:cargo` packages
- [ ] Update `pkg:cargo` packages
- [ ] Remove `pkg:cargo` packages[download-page]: https://getzana.net/#download
[releases-page]: https://github.com/mistweaverco/zana-client/releases/latest
[zana-registry]: https://github.com/mistweaverco/zana-registry