{"id":25170862,"url":"https://github.com/mistweaverco/zana-client","last_synced_at":"2026-02-27T11:53:08.664Z","repository":{"id":276362356,"uuid":"929052906","full_name":"mistweaverco/zana-client","owner":"mistweaverco","description":"Zana is a minimal CLI for managing LSP servers, DAP servers, linters, and formatters, for Neovim, but not limited to just Neovim.","archived":false,"fork":false,"pushed_at":"2025-12-25T15:04:13.000Z","size":581,"stargazers_count":63,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-26T15:08:41.182Z","etag":null,"topics":["golang","lspinstall","manager","neovim","nvim","nvim-lsp","nvim-lsp-installer","package","package-manager","packages"],"latest_commit_sha":null,"homepage":"https://getzana.net","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mistweaverco.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-02-07T18:09:49.000Z","updated_at":"2025-12-25T15:03:43.000Z","dependencies_parsed_at":"2025-08-08T19:20:53.821Z","dependency_job_id":"663308a3-9635-4570-a937-d6296ea3f362","html_url":"https://github.com/mistweaverco/zana-client","commit_stats":null,"previous_names":["mistweaverco/zana-client"],"tags_count":34,"template":false,"template_full_name":null,"purl":"pkg:github/mistweaverco/zana-client","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mistweaverco%2Fzana-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mistweaverco%2Fzana-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mistweaverco%2Fzana-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mistweaverco%2Fzana-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mistweaverco","download_url":"https://codeload.github.com/mistweaverco/zana-client/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mistweaverco%2Fzana-client/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29892859,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-27T09:48:51.284Z","status":"ssl_error","status_checked_at":"2026-02-27T09:48:43.992Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["golang","lspinstall","manager","neovim","nvim","nvim-lsp","nvim-lsp-installer","package","package-manager","packages"],"created_at":"2025-02-09T09:16:52.084Z","updated_at":"2026-02-27T11:53:08.657Z","avatar_url":"https://github.com/mistweaverco.png","language":"Go","funding_links":[],"categories":["awesome-nvim-treesitter"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n![Zana logo][logo]\n\n# zana-client\n\n[![Made with love][badge-made-with-love]][contributors]\n[![Go][badge-golang]][golang-website]\n[![Development status][badge-development-status]][development-status]\n[![Our manifesto][badge-our-manifesto]][our-manifesto]\n[![Latest release][badge-latest-release]][latest-release]\n\n[Terms used](#requirements) •\n[Requirements](#requirements) •\n[Install](#install) •\n[Usage](#usage) •\n[Supported providers](#supported-providers)\n\n\u003cp\u003e\u003c/p\u003e\n\n![Zana Demo Gif](assets/demo.gif)\n\n\u003cp\u003e\u003c/p\u003e\n\nZana 📦 aims to be like Mason.nvim 🧱,\nbut with the goal of supporting 🌈 not only Neovim,\nbut rather any other editor 🫶.\n\nZana is [swahili] for \"tools\" or \"tooling.\"\n\n\u003cp\u003e\u003c/p\u003e\n\nCurrently, Zana is in early development,\nbut should be considered stable enough for general use.\n\n\u003cp\u003e\u003c/p\u003e\n\n\u003c/div\u003e\n\n## Terms used\n\n- *Language Server Protocol* (LSP): A protocol that defines\n  how code editors and IDEs communicate with language servers.\n- *Debug Adapter Protocol* (DAP): A protocol that defines\n  how code editors and IDEs communicate with debuggers.\n- *Package*: A package is a LSP server, DAP server, formatter\n  or linter that can be installed via Zana.\n- *Provider*: A provider is a package source,\n    e.g., `npm`, `pypi`, `golang`, etc.\n- *Package ID*: A package ID is a unique identifier for a package,\n    e.g., `npm:@mistweavercokulala-ls@0.1.0`.\n- *Zana Registry*: The Zana Registry is a registry of\n    available packages that can be installed via Zana.\n- *Terminal User Interface* (TUI): A text-based user interface\n  that runs in a terminal emulator.\n\nA minimal LSP/DAP/formatter/linter package manager\nuses the [Zana Registry][zana-registry] to install and manage packages.\n\nEasily install and manage LSP servers, DAP servers, linters, and formatters.\n\n## Requirements\n\nZana is a CLI, therefore you need to have a terminal emulator available.\n\nBesides that, we shell out a lot to install packages.\n\nE.g. if you want to install `npm` packages,\nyou need to have `npm` installed.\n\nFor the packages to work in Neovim, you either need to\n[zana.nvim] installed,\nor source the environment setup in your shell.\n\n```sh\nsource \u003c(zana env)\n```\n\n## Install\n\nJust head over to the [download page][download-website] or\ngrab it directtly from the [releases][latest-release].\n\n## Usage\n\nThe heart of Zana is its `zana-lock.json` file.\nThis file is used to keep track of the installed packages and their versions.\n\nYou can tell Zana where to find the `zana-lock.json` and\nthe packages by setting the environment variable `ZANA_HOME`.\n\nIf `ZANA_HOME` isn't set,\nZana will look for the `zana-lock.json` file in the default locations:\n\n- Linux: `$XDG_CONFIG_HOME/zana/zana-lock.json` or\n  `$HOME/.config/zana/zana-lock.json`\n- macOS: `$HOME/Library/Application Support/zana/zana-lock.json`\n- Windows: `%APPDATA%\\zana\\zana-lock.json`\n\nIf the file doesn't exist,\nZana will create it for you (when you install a package).\n\nIt's advised to keep the `zana-lock.json` file in version control.\n\n### Modify environment path\n\nIf you want the installed packages to be available in your path,\nyou can add the following to your shell configuration file:\n\n#### bash environment setup\n\nadd to `~/.bashrc`:\n\n```sh\nsource \u003c(zana env)\n```\n\n#### zsh environment setup\n\nadd to `~/.zshrc`:\n\n```sh\nsource \u003c(zana env zsh)\n```\n\nor with [evalcache](https://github.com/mroth/evalcache) for zsh,\nadd to `~/.zshrc`:\n\n```sh\n_evalcache zana env zsh\n```\n\n#### PowerShell environment setup\n\nadd to `profile`:\n\n```sh\nzana env powershell | Invoke-Expression\n```\n\n### CLI autocompletion\n\nIf you want autocompletion for the CLI commands,\nyou can add the following to your shell configuration file:\n\n#### bash autocompletion setup\n\nadd to `~/.bashrc`:\n\n```sh\nsource \u003c(zana completion bash)\n```\n\n#### zsh autocompletion setup\n\nadd to `~/.zshrc`:\n\n```sh\nsource \u003c(zana completion zsh)\n```\n\n#### fish autocompletion setup\n\nadd to `~/.config/fish/completions/zana.fish`:\n\n```sh\nzana completion fish \u003e ~/.config/fish/completions/zana.fish\n```\n\n#### powershell autocompletion setup\n\nadd to `profile`:\n\n```sh\nzana completion powershell | Invoke-Expression\n```\n\n### CLI Options\n\nYou can run `zana --help` to see the available CLI options.\n\n#### zana show\n\n`show/info/details` shows information about one or more packages.\n\n```sh\nzana show \\\n  npm:@mistweavercokulala-ls@0.1.0 \\\n  pypi:black \\\n  golang:golangci-lint\n```\n\n#### zana install\n\n`install`/`add` install packages\n\n```sh\nzana install \\\n  npm:@mistweavercokulala-ls@0.1.0 \\\n  pypi:black \\\n  golang:golangci-lint\n```\n\n#### zana sync\n\n`sync` syncs the installed packages or registry data.\n\nFor packages,\nit'll make sure exactly the same packages are installed\nthat are listed in the `zana-lock.json` file.\n\n```sh\nzana sync packages\n```\n\nFor registry data,\nit'll update the local registry cache\nwith the latest data from the Zana Registry.\n\n```sh\nzana sync registry\n```\n\nThe registry data is cached locally,\nbut with the `sync registry` command you can force an update.\n\n#### zana list\n\n`list`/`ls` list all installed packages.\n\n```sh\nzana list\n```\n\nor with `--all`/`-A` flag all available packages.\n\n```sh\nzana list --all\n```\n\nYou can also filter packages by\nprefix of either the package id or name.\n\n```sh\n # lists all available packages with \"yaml\" in the name\nzana list -A yaml\n```\n\n#### zana update\n\n`update`/`up` updates packages.\n\n```sh\nzana update \\\n  npm:@mistweavercokulala-ls \\\n  pypi:black@latest\n```\n\nYou can also update all packages at once with the `--all`/`-A` flag.\n\n```sh\nzana update --all\n```\n\nor filter packages by\nprefix of either the package id or name.\n\n```sh\n # updates all installed packages with \"yaml\" in the name\nzana update -A yaml\n```\n\nZana can also update itself with:\n\n```sh\nzana update --self\n```\n\n#### zana remove\n\n`remove`/`rm` removes packages.\n\n```sh\nzana remove \\\n  npm:@mistweavercokulala-ls \\\n  pypi:black\n```\n\nor filter packages by\nprefix of either the package id or name.\n\n```sh\n # removes all installed packages with \"yaml\" in the name\nzana remove -A yaml\n```\n\n#### zana health\n\n- `health` checks for requirements\n(for shelling out to install packages)\n\n```sh\nzana health\n```\n\n### Where are the packages?\n\nZana uses a basepath to install packages of different types.\n\nIf you have set the `ZANA_HOME` environment variable,\nthe basepath will be `$ZANA_HOME/packages`.\n\nIf `ZANA_HOME` isn't set, the basepath is:\n\n- Linux: `$XDG_DATA_HOME/zana/packages` or `$HOME/.local/share/zana/packages`\n- macOS: `$HOME/Library/Application Support/zana/packages`\n- Windows: `%APPDATA%\\zana\\packages`\n\nThe packages are installed in the following directory structure:\n\n```\n$basepath/$provider/$package-name/\n```\n\n## Supported providers\n\n- `cargo`\n- `codeberg`\n- `composer`\n- `gem`\n- `generic` (shell commands)\n- `github`\n- `gitlab`\n- `golang`\n- `luarocks`\n- `npm`\n- `nuget`\n- `opam`\n- `openvsx`\n- `pypi`\n\n\n\n[logo]: assets/logo.svg\n[badge-made-with-love]: assets/badge-made-with-love.svg\n[badge-golang]: assets/badge-golang.svg\n[badge-development-status]: assets/badge-development-status.svg\n[badge-our-manifesto]: assets/badge-our-manifesto.svg\n[badge-latest-release]: https://img.shields.io/github/v/release/mistweaverco/zana-client?style=for-the-badge\n[our-manifesto]: https://mistweaverco.com/manifesto\n[development-status]: https://github.com/orgs/mistweaverco/projects/5/views/1?filterQuery=repo%3Amistweaverco%2Fzana-client.nvim\n[registry-website]: https://registry.getzana.net\n[golang-website]: https://golang.org\n[website]: https://getzana.net\n[contributors]: https://github.com/mistweaverco/zana-client/graphs/contributors\n[swahili]: https://en.wikipedia.org/wiki/Swahili_language\n[latest-release]: https://github.com/mistweaverco/zana-client/releases/latest\n[download-website]: https://getzana.net/#download\n[zana-registry]: https://github.com/mistweaverco/zana-registry\n[zana.nvim]: https://github.com/mistweaverco/zana-nvim\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmistweaverco%2Fzana-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmistweaverco%2Fzana-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmistweaverco%2Fzana-client/lists"}