README.md

March 29, 2026 · View on GitHub

 ________  ________  ________  ________           ________  ________  _____ ______   ________  ___       _______  _________  ___  ________  ________
|\_____  \|\   ____\|\   __  \|\   ____\         |\   ____\|\   __  \|\   _ \  _   \|\   __  \|\  \     |\  ___ \|\___   ___\\  \|\   __  \|\   ___  \
 \|___/  /\ \  \___|\ \  \|\  \ \  \___|_  ______\ \  \___|\ \  \|\  \ \  \\\__\ \  \ \  \|\  \ \  \    \ \   __/\|___ \  \_\ \  \ \  \|\  \ \  \\ \  \
     /  / /\ \_____  \ \   _  _\ \_____  \|\______\ \  \    \ \  \\\  \ \  \\|__| \  \ \   ____\ \  \    \ \  \_|/__  \ \  \ \ \  \ \  \\\  \ \  \\ \  \
    /  /_/__\|____|\  \ \  \\  \\|____|\  \|________|\ \  \___\ \  \\\  \ \  \    \ \  \ \  \___|\ \  \____\ \  \_|\ \  \ \  \ \ \  \ \  \\\  \ \  \\ \  \
   |\________\____\_\  \ \__\\ _\ ____\_\  \          \ \_______\ \_______\ \__\    \ \__\ \__\    \ \_______\ \_______\  \ \__\ \ \__\ \_______\ \__\\ \__\
    \|_______|\_________\|__|\|__|\_________\          \|_______|\|_______|\|__|     \|__|\|__|     \|_______|\|_______|   \|__|  \|__|\|_______|\|__| \|__|
             \|_________|        \|_________|

neural-link preview

[ SYSTEM ONLINE ] [ CPAN NEURAL-LINK ACTIVE ] [ ZSH MAINFRAME CONNECTED ]

CI


"The street finds its own uses for things." — William Gibson

// WHAT IS THIS

A zsh completion engine that jacks directly into the CPAN network. While the corpos at OMZ gave you basic cpanm completion, this plugin rips open a live connection to the Perl module registry and pulls completions straight from the source.

Type cpan install <module><TAB> or cpanm install <module><TAB> and watch the autocomplete flood in — real packages, real tarballs, no static lists.

>> FEATURES

  • Live remote CPAN package completion via perl -MCPAN -e 'CPAN::Shell->m("...")'
  • Full cpan and cpanm flag/option completion
  • Intelligent caching system — hit the net once, pull from local memory after
  • Overload protection: prefix must be >= ZPWR_CPAN_MIN_PREFIX chars (default: 2) to prevent your shell from flatlining
  • Tarball file completion (.tar.gz, .tgz, .tar.bz2, .zip)

// JACK IN

# >> ~/.zshrc
source "$HOME/.zinit/bin/zinit.zsh"
zinit ice lucid nocompile
zinit load MenkeTechnologies/zsh-cpan-completion

Oh My Zsh — legacy firmware

cd "$HOME/.oh-my-zsh/custom/plugins" && git clone https://github.com/MenkeTechnologies/zsh-cpan-completion.git

Then slot zsh-cpan-completion into the plugins array in ~/.zshrc.

Manual Install — bare metal

git clone https://github.com/MenkeTechnologies/zsh-cpan-completion.git

Source zsh-cpan-completion.plugin.zsh in your ~/.zshrc or any startup script.


// CONFIG

VariableDefaultDescription
ZPWR_CPAN_MIN_PREFIX2Minimum prefix length before querying remote CPAN. Lower = more data, higher crash risk. Tune at your own peril.

// ARCHITECTURE

┌──────────────────────────────────────────────────┐
│                   ZSH MAINFRAME                  │
│                                                  │
│  ┌──────────┐    ┌──────────┐    ┌────────────┐ │
│  │  _cpan   │    │  _cpanm  │    │  plugin.zsh│ │
│  │ compdef  │───▶│ compdef  │───▶│  core logic │ │
│  └──────────┘    └──────────┘    └─────┬──────┘ │
│                                        │        │
│                                        ▼        │
│                               ┌────────────────┐│
│                               │  CPAN::Shell   ││
│                               │  remote query  ││
│                               └───────┬────────┘│
│                                       │         │
│                                       ▼         │
│                               ┌────────────────┐│
│                               │  zsh _describe ││
│                               │  completion UI ││
│                               └────────────────┘│
└──────────────────────────────────────────────────┘

// LICENSE

MIT License — Copyright (c) 2017-2020 MenkeTechnologies

Free as in freedom. Fork it. Mod it. Distribute it. The source is open.


[ END TRANSMISSION ]