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 bash
, fish
, and zsh
.
It detects usage of --help
commands, parses their output, and generates
auto-completions for your shell.
You can either download or build the cod
binary
for your OS and put it into your $PATH
.
After that, you will need to edit your init script (e.g. ~/.config/fish/config.fish
, ~/.zshrc
, ~/.bashrc
) and add a few lines for
the daemon to work correctly.
Add the following to your ~/.bashrc
source <(cod init $$ bash)
Make sure completion system is initialized.
Add the following to your ~/.zshrc
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:
compinit
function in your .zshrc
before initializing cod
itself, orcompinstall
command from your shell, it will modify .zshrc
file for you.Also check zsh documentation.
Add the following to ~/.config/fish/config.fish
cod init $fish_pid fish | source
As an alternative, you can also install cod
with Fig in bash
, zsh
, or fish
with just one click.
zsh
cod
is known to work with latest version of zsh
(tested: v5.5.1
and
5.7.1
) on macOS and Linux.
bash
cod
also works with with latest version of bash
(tested: 4.4.20
and
v5.0.11
) on Linux.
Note that default bash
that is bundled with macOS is too old and cod
doesn't support it.
fish
cod
works with latest version of fish
(tested: 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
or
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 --help
output.
Cod performs following checks to decide if command is help invocation:
--help
flag is usedIf 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 $XDG_CONFIG_HOME/cod/config.toml
.
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 ($XDG_CONFIG_HOME/cod/config.toml
)
cod
uses $XDG_DATA_HOME/cod
(default: ~/.local/share/cod
) to store all
generated data files.