LinuxCommandLibrary

antibody

Manage and load shell environment bundles

TLDR

Bundle all plugins for static loading

$ antibody bundle < [~/.zsh_plugins.txt] > [~/.zsh_plugins.sh]
copy

Update all bundles
$ antibody update
copy

List all installed plugins
$ antibody list
copy

SYNOPSIS

antibody [global-options] <command> [command-options] [arguments]

Common Commands:
antibody bundle <plugin-source>...
antibody init
antibody update
antibody help [command]

PARAMETERS

bundle <plugin-source>...
    Loads one or more plugins. This command is typically placed in your .zshrc file. <plugin-source> can be a GitHub repo (e.g., 'zsh-users/zsh-autosuggestions'), a Gist ID, or a local path.

init
    Generates the Zsh initialization script based on the plugins specified by bundle commands. This script is usually evaluated in your .zshrc (e.g., 'eval "$(antibody init)"').

update
    Updates all currently installed plugins to their latest versions from their respective sources.

home
    Prints the path to the directory where Antibody stores its cloned plugins.

list
    Displays a list of all plugins currently managed and installed by Antibody.

help [command]
    Shows help information for the antibody command itself or for a specific subcommand.

-h, --help
    Displays the overall help message for Antibody (global option).

-v, --version
    Prints the version information of Antibody (global option).

-q, --quiet
    Suppresses output during command execution (global option).

DESCRIPTION

Antibody is a lightweight and performant Zsh plugin manager designed to significantly reduce shell startup times. Inspired by `antigen`, it distinguishes itself by focusing on speed through asynchronous plugin loading. Instead of sourcing each plugin sequentially, Antibody fetches and initializes them in parallel, allowing your Zsh shell to become interactive much quicker. Users define their desired plugins, themes, and completions in their `.zshrc` file using a straightforward syntax, typically referencing GitHub repositories (e.g., `robbyrussell/oh-my-zsh/themes/robbyrussell.zsh-theme`). Antibody automatically handles cloning these resources to a local cache, updating them, and generating the necessary initialization script for Zsh. It supports various plugin sources, including GitHub repositories, Gist snippets, and local paths. Its minimalistic approach and emphasis on performance make it a popular choice for Zsh users who prioritize a snappy command-line experience.

CAVEATS

Antibody is not a standard Linux system command; it must be installed separately. It is specifically designed for the Zsh shell and will not function with Bash, Fish, or other shells. It relies on the git command for cloning repositories and requires internet connectivity for fetching remote plugins. Performance benefits are most noticeable with a large number of plugins.

INSTALLATION

Antibody is typically installed by piping a script from GitHub directly into your shell or by manually downloading the binary. A common installation method involves:
'curl -sL git.io/antibody | sh -s -- -b /usr/local/bin'
This fetches the latest release and installs the antibody binary to /usr/local/bin or another specified path.

TYPICAL USAGE IN <I>.ZSHRC</I>

After installation, you configure Antibody in your ~/.zshrc file. A basic setup looks like this:

# List your plugins
antibody bundle zsh-users/zsh-autosuggestions
antibody bundle zsh-users/zsh-syntax-highlighting
antibody bundle robbyrussell/oh-my-zsh/themes/robbyrussell.zsh-theme

# Initialize antibody
eval "$(antibody init)"


This structure ensures that plugins are loaded efficiently when your Zsh shell starts.

HISTORY

Antibody emerged as a response to the perceived overhead of existing Zsh plugin managers, particularly concerning shell startup times. It was initially developed by caarlos0 (Carlos Alexandro Becker) and later moved to the getantibody organization. The primary motivation was to create a simpler, faster, and more robust solution for managing Zsh plugins by leveraging asynchronous operations. Its development focused on minimizing dependencies and streamlining the plugin loading process, leading to its adoption by Zsh users who prioritize a highly responsive shell environment.

SEE ALSO

zsh(1), git(1), curl(1), wget(1), antigen(1) (inspiration), zgen(1), zplug(1)

Copied to clipboard