|Project Name||Stars||Downloads||Repos Using This||Packages Using This||Most Recent Commit||Total Releases||Latest Release||Open Issues||License||Language|
|Zsh Autosuggestions||26,292||10 days ago||1||March 03, 2021||144||mit||Shell|
|Fish-like autosuggestions for zsh|
|Kubectx||14,910||3 months ago||26||January 11, 2022||46||apache-2.0||Go|
|Faster way to switch between clusters and namespaces in kubectl|
|Zsh Completions||6,039||a day ago||1||March 03, 2021||36||other||Shell|
|Additional completion definitions for Zsh.|
|Fasd||5,027||3 years ago||1||February 27, 2018||109||mit||Shell|
|Command-line productivity booster, offers quick access to files and directories, inspired by autojump, z and v.|
|Zsh Autocomplete||3,348||5 days ago||6||mit||Shell|
|🤖 Real-time type-ahead completion for Zsh. Asynchronous find-as-you-type autocompletion.|
|Git Flow Completion||2,588||5 years ago||16||mit||Shell|
|Bash, Zsh and fish completion support for git-flow.|
|Dotfiles||2,154||4 years ago||7||mit||VimL|
|config files for zsh, bash, completions, gem, git, irb, rails|
|Fzf Tab||2,055||2 months ago||57||mit||Shell|
|Replace zsh's default completion selection menu with fzf!|
|Gibo||1,814||9 months ago||1||February 27, 2018||1||unlicense||Shell|
|Easy access to gitignore boilerplates|
|Omelette||1,260||155||101||a year ago||21||September 21, 2021||15||mit||CoffeeScript|
|Omelette is a simple, template based autocompletion tool for Node and Deno projects with super easy API. (For Bash, Zsh and Fish)|
Cod is a completion daemon for
It detects usage of
--help commands, parses their output, and generates
auto-completions for your shell.
You can either download or build the
for your OS and put it into your
After that, you will need to edit your init script (e.g.
~/.bashrc) and add a few lines for
the daemon to work correctly.
Add the following to your
source <(cod init $$ bash)
Make sure completion system is initialized.
Add the following to your
source <(cod init $$ zsh)
Or, you can use a plugin manager like zinit:
zinit wait lucid for \ dim-an/cod
cod requires initialized completion system.
In many cases it is already the case (e.g. if you are using oh-my-zsh or similar framework).
You can check whether your completion system is already initilized by using
type compdef command:
# Completion system IS initialized $ type compdef compdef is a shell function from /usr/share/zsh/functions/Completion/compinit # Completion system IS NOT initialized $ type compdef compdef not found
If you found that you need to initialize completion system you can do this by:
compinitfunction in your
compinstallcommand from your shell, it will modify
.zshrcfile for you.
Also check zsh documentation.
Add the following to
cod init $fish_pid fish | source
As an alternative, you can also install
cod with Fig in
fish with just one click.
cod is known to work with latest version of
5.7.1) on macOS and Linux.
cod also works with with latest version of
v5.0.11) on Linux.
Note that default
bash that is bundled with macOS is too old and
doesn't support it.
cod works with latest version of
v3.1.2) on Linux
(I didn't have a chance to test it on macOS).
It is recommended that you have at least Go v1.19 installed on your machine
git clone https://github.com/dim-an/cod.git cd cod go build
go get -u github.com/dim-an/cod
Cod checks each command you run in the shell. When cod detects usage of
--help flag it asks if you want it to learn this command. If you choose
to allow cod to learn this command cod will run command itself parse the
output and generate completions based on the
Cod performs following checks to decide if command is help invocation:
--helpflag is used
If cod cannot automatically detect that your command is help invocation
you can use
learn subcommand to learn this command anyway.
Cod always uses absolute paths to run programs. (So it finds the binary in
$PATH or resolves relative path if required). Arguments other than
the binary path are left unchanged.
The current shell environment and current working directory will be used.
If the program is successfully executed, cod will store:
- the absolute path to binary
- any used arguments
- the working directory
- environment variables
This info will be used to update command if required (check:
cod help update).
cod has generic parser that works with most help pages and
recognizes flags (starting with
-), while not recognizing subcommands.
It also has a special parser tuned for the python argparse library that recognizes flags and subcommands.
Cod will search for the default config file
The config file allows you to specify rules to either ignore or trust specified binaries
cod example-config prints an example configuration to stdout.
cod example-config --create writes an example config to the default directory of said config file (
~/.local/share/cod) to store all
generated data files.