{"id":20162578,"url":"https://github.com/zdharma-continuum/zinit-annex-unscope","last_synced_at":"2025-07-11T21:34:31.466Z","repository":{"id":45993987,"uuid":"425242027","full_name":"zdharma-continuum/zinit-annex-unscope","owner":"zdharma-continuum","description":"A Zinit-Zsh annex that allows to install plugins without specifying the GitHub user name.","archived":false,"fork":false,"pushed_at":"2023-04-16T04:42:38.000Z","size":166,"stargazers_count":2,"open_issues_count":1,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-10T00:36:47.142Z","etag":null,"topics":["zinit","zinit-annex","zsh"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zdharma-continuum.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":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-11-06T12:45:44.000Z","updated_at":"2021-12-02T13:10:11.000Z","dependencies_parsed_at":"2024-11-14T00:37:13.428Z","dependency_job_id":null,"html_url":"https://github.com/zdharma-continuum/zinit-annex-unscope","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/zdharma-continuum/zinit-annex-unscope","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zdharma-continuum%2Fzinit-annex-unscope","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zdharma-continuum%2Fzinit-annex-unscope/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zdharma-continuum%2Fzinit-annex-unscope/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zdharma-continuum%2Fzinit-annex-unscope/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zdharma-continuum","download_url":"https://codeload.github.com/zdharma-continuum/zinit-annex-unscope/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zdharma-continuum%2Fzinit-annex-unscope/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264902824,"owners_count":23681123,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["zinit","zinit-annex","zsh"],"created_at":"2024-11-14T00:25:50.330Z","updated_at":"2025-07-11T21:34:31.418Z","avatar_url":"https://github.com/zdharma-continuum.png","language":"Shell","funding_links":[],"categories":["Plugins"],"sub_categories":["ZSH on Windows"],"readme":"# zinit-annex-unscope\n\n\u003e NOTE: Due to security concerns, we advise using fully-qualified plugin names. See\n\u003e [this issue](https://github.com/zdharma-continuum/zinit-annex-unscope/issues/4#issue-1059794405) for more context.\n\nA Zinit-Zsh annex that allows users to install plugins without specifying the GitHub user name. It works as follows:\n\n1. On the installation of a plugin without any slashes (/) in its name the annex will query the GitHub API searching for\n   **\\*/{the-name}**, sorting on stars.\n\n1. It first requires at least 10 forks on the candidates, then 2, then 0.\n\n1. After finding the best result it sets it as the **full** remote-id of the plugin, storing the ID on disk for later\n   automatic use.\n\n1. For security, for such GH-API request to be made a newly added (by this annex) ice: `ghapi` is required to be given.\n\n1. Otherwise only the static database of mappings of short-plugin nicknames to the full scoped IDs will be searched. It\n   contains many mappings, like, e.g.: **vi-reg** → **zsh-vi-more/evil-registers**, and also the usual basic unscopings\n   of some of the popular plugins out there, like, e.g.: **zsh-syntax-highlighting** →\n   **zsh-users/zsh-syntax-highlighting** and more.\n\n## Usage Examples\n\n1. An example installation via 2 nicknames (**env** and **vi-reg**) and by one unscoped (i.e.: not using any GitHub\n   username) ID that's being dynamically resolved by a request to **GitHub API**:\n\n![zinit-for-command](https://raw.githubusercontent.com/zdharma-continuum/zinit-annex-unscope/master/images/unscope-zinit-for.png)\n\n2. An example call to the **zinit scope …** subcommand that is added by this annex. It allows to translate the unscoped\n   IDs and the short-static nicknames into the full **username/repository** plugin ID.\n\n![scope-subcommand](https://raw.githubusercontent.com/zdharma-continuum/zinit-annex-unscope/master/images/unscope-scope-cmd.png)\n\n## Static Mappings\n\nBesides the GitHub-API querying, there's also a fixed, curated list of mappings of short names to the full GitHub IDs.\nThe list currently consists of:\n\n|    Short (Nick-) Name     | GitHub ID / scoped ID                       |\n| :-----------------------: | ------------------------------------------- |\n|           null            | zdharma-continuum/null                      |\n|  zinit-annex-as-monitor   | zdharma-continuum/zinit-annex-as-monitor    |\n|        as-monitor         | zdharma-continuum/zinit-annex-as-monitor    |\n|          monitor          | zdharma-continuum/zinit-annex-as-monitor    |\n|   zinit-annex-patch-dl    | zdharma-continuum/zinit-annex-patch-dl      |\n|         patch-dl          | zdharma-continuum/zinit-annex-patch-dl      |\n|    zinit-annex-submods    | zdharma-continuum/zinit-annex-submods       |\n|          submods          | zdharma-continuum/zinit-annex-submods       |\n|     zinit-annex-rust      | zdharma-continuum/zinit-annex-rust          |\n|           rust            | zdharma-continuum/zinit-annex-rust          |\n| zinit-annex-bin-gem-node  | zdharma-continuum/zinit-annex-bin-gem-node  |\n|       bin-gem-node        | zdharma-continuum/zinit-annex-bin-gem-node  |\n|            bgn            | zdharma-continuum/zinit-annex-bin-gem-node  |\n|       zinit-console       | zdharma-continuum/zinit-console             |\n|          console          | zdharma-continuum/zinit-console             |\n|        consolette         | zdharma-continuum/zinit-console             |\n|          archive          | PZTM::archive                               |\n|           arch            | PZTM::archive                               |\n|         directory         | PZTM::directory                             |\n|            dir            | PZTM::directory                             |\n|        environment        | PZTM::environment                           |\n|            env            | PZTM::environment                           |\n|          utility          | PZTM::utility                               |\n|           util            | PZTM::utility                               |\n| fast-syntax-highlighting  | zdharma-continuum/fast-syntax-highlighting  |\n|          f-sy-h           | zdharma-continuum/fast-syntax-highlighting  |\n|            fsh            | zdharma-continuum/fast-syntax-highlighting  |\n| history-search-multi-word | zdharma-continuum/history-search-multi-word |\n|           hsmw            | zdharma-continuum/history-search-multi-word |\n|            zui            | zdharma-continuum/zui                       |\n|            ZUI            | zdharma-continuum/zui                       |\n|          zconvey          | zdharma-continuum/zconvey                   |\n|           zconv           | zdharma-continuum/zconvey                   |\n|          zbrowse          | zdharma-continuum/zbrowse                   |\n|        zzcomplete         | zdharma-continuum/zzcomplete                |\n|          zzcomp           | zdharma-continuum/zzcomplete                |\n|           zzcom           | zdharma-continuum/zzcomplete                |\n|    zsh-autosuggestions    | zsh-users/zsh-autosuggestions               |\n|      autosuggestions      | zsh-users/zsh-autosuggestions               |\n|          autosug          | zsh-users/zsh-autosuggestions               |\n|           asug            | zsh-users/zsh-autosuggestions               |\n|          z-asug           | zsh-users/zsh-autosuggestions               |\n|  zsh-syntax-highlighting  | zsh-users/zsh-syntax-highlighting           |\n|          z-sy-h           | zsh-users/zsh-syntax-highlighting           |\n|     zsh-autocomplete      | marlonrichert/zsh-autocomplete              |\n|       autocomplete        | marlonrichert/zsh-autocomplete              |\n|         autocomp          | marlonrichert/zsh-autocomplete              |\n|           aucom           | marlonrichert/zsh-autocomplete              |\n|           acom            | marlonrichert/zsh-autocomplete              |\n|          z-aucom          | marlonrichert/zsh-autocomplete              |\n|          z-acom           | marlonrichert/zsh-autocomplete              |\n|       zsh-autopair        | hlissner/zsh-autopair                       |\n|         autopair          | hlissner/zsh-autopair                       |\n|          aupair           | hlissner/zsh-autopair                       |\n|           aupa            | hlissner/zsh-autopair                       |\n|          z-aupa           | hlissner/zsh-autopair                       |\n|      evil-registers       | zsh-vi-more/evil-registers                  |\n|         evil-reg          | zsh-vi-more/evil-registers                  |\n|          vi-reg           | zsh-vi-more/evil-registers                  |\n|           vireg           | zsh-vi-more/evil-registers                  |\n|        vi-motions         | zsh-vi-more/vi-motions                      |\n|         evil-mot          | zsh-vi-more/vi-motions                      |\n|          vi-mot           | zsh-vi-more/vi-motions                      |\n|           vimot           | zsh-vi-more/vi-motions                      |\n|       vi-increment        | zsh-vi-more/vi-increment                    |\n|         evil-inc          | zsh-vi-more/vi-increment                    |\n|          vi-inc           | zsh-vi-more/vi-increment                    |\n|           viinc           | zsh-vi-more/vi-increment                    |\n|         vi-quote          | zsh-vi-more/vi-quote                        |\n|         evil-qte          | zsh-vi-more/vi-quote                        |\n|          vi-qte           | zsh-vi-more/vi-quote                        |\n|           viqte           | zsh-vi-more/vi-quote                        |\n|      directory-marks      | zsh-vi-more/directory-marks                 |\n|      evil-dir-marks       | zsh-vi-more/directory-marks                 |\n|       vi-dir-marks        | zsh-vi-more/directory-marks                 |\n|         vi-dirma          | zsh-vi-more/directory-marks                 |\n|          vidirma          | zsh-vi-more/directory-marks                 |\n|            fd             | sharkdp/fd                                  |\n|         shark-fd          | sharkdp/fd                                  |\n|            bat            | sharkdp/bat                                 |\n|         shark-bat         | sharkdp/bat                                 |\n|            exa            | ogham/exa                                   |\n|      zsh-completions      | zsh-users/zsh-completions                   |\n|        completions        | zsh-users/zsh-completions                   |\n|           comps           | zsh-users/zsh-completions                   |\n\nYou can let me know if you would like a name to be added to the list.\n\n## Installation\n\nSimply load as a regular plugin, i.e.:\n\n```zsh\nzinit light-mode for zdharma-continuum/zinit-annex-unscope\n```\n\nIt should be done possibly early in the `zshrc`, as otherwise the preceding `zinit` calls will not have the unscoped IDs\nresolved.\n\n\u003c!-- vim:set ft=markdown tw=79 autoindent fo+=a1n: --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzdharma-continuum%2Fzinit-annex-unscope","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzdharma-continuum%2Fzinit-annex-unscope","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzdharma-continuum%2Fzinit-annex-unscope/lists"}