POWERLINE(1)

NAME
powerline - native Rust statusline / prompt client (zero-Python powerline-status drop-in)

SYNOPSIS
powerline [--socket PATH] EXT [ARGS...]

DESCRIPTION
powerline is the native Rust client for the powerline statusline / prompt rendering system. It is a 1:1 port of upstream's vendor/powerline/client/powerline.c and is invoked by tmux, zsh, bash, vim, and ipython through the $POWERLINE_COMMAND environment variable.

On invocation, powerline builds a wire request from argv, the current working directory, and the inherited environment, sends it over a Unix socket to a running powerline-daemon(1), and copies the rendered statusline / prompt response to standard output. If the daemon socket is not reachable it execs powerline-render(1) as a fallback, mirroring the upstream C client behavior.

This native binary replaces the Python powerline shell command. There is no Python interpreter import cost, no GIL, and no GC pause; render is sub-millisecond on a warm daemon.

OPTIONS

--socket PATH
    Override the default Unix-socket path used to reach powerline-daemon(1). Must appear as the first argument (before EXT), per the C-client convention. When absent, the platform-specific default is used (see FILES below).

All other ARGS after EXT are forwarded verbatim to the daemon. See powerline-render(1) for the canonical list of extension-targeted arguments.

EXTENSIONS
EXT selects which powerline extension to render. Stock extensions:

tmux
    Tmux statusline segments.

shell
    Shell prompt (zsh, bash continuation, fish, etc.); subtypes pass through the next arg (left, right, continuation).

vim Vim statusline / tabline; only used via the Python ipython binding.

ipython
    IPython prompt / continuation.

wm  i3 / awesome / qtile widget binding.

ENVIRONMENT

POWERLINE_COMMAND
    The command that shell integrations invoke to render their prompt. Set to powerline (this binary) once installed; existing setups that hardcode the upstream Python shim continue to work transparently because the wire format is identical.

POWERLINE_CONFIG_PATHS
    Colon-separated list of directories searched for config.json and themes / colors / segments JSON. Mirrors upstream search order.

POWERLINE_CONFIG_OVERRIDES
    Theme-override key=value pairs applied per-extension.

FILES

/tmp/powerline-ipc-<uid>
    Filesystem Unix socket the daemon listens on (macOS, BSD).

\0powerline-ipc-<uid>
    Abstract Unix socket (Linux). Not visible via ls(1) or fuser(1) because it has no filesystem path.

~/.config/powerline/config.json
    User config root. Merged over the system / package defaults.

~/.config/powerline/themes/
    Per-extension theme directories ( tmux/, shell/, vim/, ipython/).

EXIT STATUS

0   Successful render (output written to stdout).

non-zero
    Daemon unreachable AND fallback exec of powerline-render(1) failed.

EXAMPLES

Render the tmux statusline:

    $ powerline tmux statusline

Render the zsh left-prompt with the daemon running on a custom socket:

    $ powerline --socket /tmp/my-powerline shell left

Typical tmux integration ( ~/.tmux.conf):

    set -g status-interval 2
    set -g status-left "#(powerline tmux left)"
    set -g status-right "#(powerline tmux right)"

Typical zsh integration ( ~/.zshrc):

    function powerline_precmd() {
        PS1="$(powerline shell left --last-exit-code=$? --jobnum=$(jobs -p | wc -l))"
    }
    precmd_functions+=(powerline_precmd)

SEE ALSO
powerline-daemon(1), powerline-render(1), powerline-config(1), powerline-lint(1), tmux(1), zsh(1)

Upstream Python powerline-status: https://powerline.readthedocs.io.

AUTHORS
MenkeTechnologies. 1:1 Rust port of the upstream Python powerline-status project by Kim Silkebækken et al.

BUGS
Report at https://github.com/MenkeTechnologies/powerliners/issues.