Terminal tools: Alacritty, the Starship prompt and Lazydocker

Alacritty, Starship and Lazydocker each sit at a different depth of one terminal window. Alacritty is the emulator that draws the window and keeps its scrollback, Starship prints the prompt that a shell such as Zsh or fish shows before each command, and Lazydocker runs inside the window as a terminal interface for Docker and Docker Compose.

The tables therefore read differently. The Alacritty section pairs a Windows and Linux column with a Mac column, for instance Ctrl + Shift + F to search the scrollback, and ends with keys that exist only on macOS. Starship is set up and inspected with the starship command, so its section lists installers, the init line for each shell, presets, configuration and diagnostics such as starship timings. Lazydocker uses single keys that act on the highlighted item, such as s to stop a container.

Only default bindings and built-in commands appear, not changes made in each tool's configuration file. Every section keeps its notes and source link. The fish shell, wget, rsync and Docker have separate pages, as do the kitty, WezTerm and Ghostty terminals.

3 tools, 207 rows. Edited by Jay.

Alacritty 88

Alacritty is a terminal emulator, and its table gives the default bindings in a Windows and Linux column beside a Mac column. It covers copy and paste, scrolling and regex search of the scrollback, font size, vi mode for moving, selecting and searching from the keyboard, mouse and URL hints, and the tab and window keys that exist only on macOS.

Clipboard and scrollback 7

Keyboards with dedicated Copy and Paste keys trigger the same two actions on every system.

ActionWindows / LinuxMac
Copy to clipboardIn vi mode the selection is also cleared once it has been copied.Ctrl+Shift+CCmd+C
Paste from clipboardInside vi mode it pastes only while a search pattern is being typed.Ctrl+Shift+VCmd+V
Paste selection bufferTakes the selection buffer instead of the clipboard; the manual lists that action as Linux/BSD-only.Shift+Insert—
Scroll page upMoves the view one full screen back into the history; inactive on the alternate screen.Shift+Page UpShift+Page Up
Scroll page downMoves one screen towards the newest output, except while the alternate screen is shown.Shift+Page DownShift+Page Down
Scroll to topJumps to the oldest line kept in the scrollback; no effect on the alternate screen.Shift+HomeShift+Home
Scroll to bottomReturns the view to the most recent output unless a program holds the alternate screen.Shift+EndShift+End

Window and font size 5

ActionWindows / LinuxMac
Increase font sizeThe plus key on the numeric keypad enlarges the text as well.Ctrl+=orCtrl++Cmd+=orCmd++
Decrease font sizeThe numeric keypad minus key shrinks the text too.Ctrl+-Cmd+-
Reset font sizeGoes back to the size set in the configuration file.Ctrl+0Cmd+0
Toggle fullscreenBound on Windows only; Linux and BSD have no default key for fullscreen.Alt+EnterCtrl+Cmd+F
Clear log noticesRemoves Alacritty's warning and error messages; the key still reaches the running program.Ctrl+LCtrl+L

Vi mode 13

ActionWindows / LinuxMac
Toggle vi modePressed inside vi mode it also scrolls back to the bottom; inactive during a search.Ctrl+Shift+SpaceCtrl+Shift+Space
Leave vi modeWith I the view also returns to the bottom of the scrollback.IorCtrl+CIorCtrl+C
Clear selectionDrops the current selection but keeps vi mode active.EscEsc
Scroll line upCtrl+YCtrl+Y
Scroll line downCtrl+ECtrl+E
Scroll page upCtrl+BCtrl+B
Scroll page downCtrl+FCtrl+F
Scroll half page upCtrl+UCtrl+U
Scroll half page downCtrl+DCtrl+D
Scroll to topA single press of the G key without Shift is enough; there is no gg sequence.GG
Scroll to bottomBrings the view back down to the newest output.Shift+GShift+G
Center on cursorScrolls so the line holding the vi cursor sits in the middle of the window.ZZ
Open URL at cursorTriggers the underlined hint beneath the vi cursor, the keyboard twin of clicking it.EnterReturn

Vi mode motion 19

In the vi mode lists, the manual binds the symbol keys $, ^, %, {, }, ?, * and # together with the Shift modifier.

ActionWindows / LinuxMac
Move cursor upKorUpKorUp
Move cursor downJorDownJorDown
Move cursor leftHorLeftHorLeft
Move cursor rightLorRightLorRight
Start of linePressed again at the first column, it goes on to the start of the whole wrapped line.0orHome0orHome
End of line$orEnd$orEnd
First occupied cellSkips leading blank cells of the row the cursor is on.^^
Top of screenShift+HShift+H
Middle of screenShift+MShift+M
Bottom of screenShift+LShift+L
Back one wordWord edges follow the separator characters in semantic_escape_chars.BB
Forward one wordWW
End of wordEE
Back one whitespace wordOnly spaces count as word breaks here, so punctuation stays part of the word.Shift+BShift+B
Forward one whitespace wordShift+WShift+W
End of whitespace wordShift+EShift+E
Matching bracketJumps between the two brackets of a pair.%%
Paragraph up{{
Paragraph down}}

Mac only 11

ActionWindows / LinuxMac
New windowWindows and Linux have no default key for this; it has to be bound in the config.—Cmd+N
New tabOpens another terminal window as a tab of the current one.—Cmd+T
Next tab—Cmd+Shift+]
Previous tab—Cmd+Shift+[
Go to tab by numberCounts tabs from the first one, up to the eighth.—Cmd+1-8
Go to last tabPicks the final tab however many are open.—Cmd+9
Clear historyEmpties the scrollback buffer; does nothing in vi mode or during a search.—Cmd+K
Hide Alacritty—Cmd+H
Hide other appsLeaves Alacritty visible and hides every other application.—Cmd+Option+H
Minimize window—Cmd+M
Quit Alacritty—Cmd+QorCmd+W

Clipboard and search

Ctrl + Shift + C copies the selection and Ctrl + Shift + V pastes; on macOS these are Cmd + C and Cmd + V. Ctrl + Shift + F opens a forward search of the scrollback and Ctrl + Shift + B a backward one (Cmd + F and Cmd + B on a Mac); the pattern is a regular expression. While the search is open, Enter and Shift + Enter step between matches, and after Esc the last match stays selected, so it can be copied straight away.

Window, font and scrolling

Windows and Linux have no default key for a new window: the configuration manual shows how to bind CreateNewWindow yourself, and alacritty msg create-window opens one from a shell. macOS has Cmd + N, plus Cmd + T for a tab. Ctrl + = and Ctrl + - change the font size and Ctrl + 0 resets it to the configured value. Fullscreen is Alt + Enter on Windows and Ctrl + Cmd + F on macOS; Linux has no default. Shift + Page Up, Shift + Page Down, Shift + Home and Shift + End move through the scrollback, except while a program uses the alternate screen.

Vi mode

Ctrl + Shift + Space enters vi mode, where a cursor moves through the screen and scrollback with vi keys. V starts a selection (Shift + V for lines, Ctrl + V for a block, Alt + V for semantic words) and Y copies it and clears it. G jumps to the top of the scrollback and Shift + G to the bottom; a single g is enough. / and ? search from inside vi mode, Esc clears the selection and I leaves vi mode. All bindings can be changed in alacritty.toml under [keyboard] bindings.

Why doesn't Ctrl + Shift + N open a new Alacritty window?

It is not a default binding. On Windows and Linux, Alacritty 0.17 binds no key to CreateNewWindow; its configuration manual uses Ctrl + Shift + N only as an example of a binding to add under [keyboard] in alacritty.toml. From a shell, alacritty msg create-window opens a window in the running instance, and on macOS the default is Cmd + N.

Does Alacritty have tabs?

Only on macOS. Cmd + T opens a new window as a tab, Cmd + Shift + ] and Cmd + Shift + [ move between tabs, and Cmd + 1-8 or Cmd + 9 jump to one. The manual lists the tab actions as macOS-exclusive, so Windows and Linux have none.

How do I open a link without the mouse?

Press Ctrl + Shift + O to put a label on each visible URL, then type the label of the one you want. Alacritty hands it to xdg-open on Linux and BSD, open on macOS and cmd /c start on Windows. In vi mode, move the cursor onto the link and press Enter.

How do I remove a default binding?

Bindings live in the [keyboard] bindings list of alacritty.toml. Bind the same key to the action ReceiveChar to take the default away and let the keystroke through to the program, or to None to make the key do nothing.

Where does Alacritty look for its configuration file?

Alacritty does not create one. On Linux, BSD and macOS it reads alacritty.toml from $XDG_CONFIG_HOME/alacritty/, $HOME/.config/alacritty/ and a few other places; on Windows it reads %APPDATA%\alacritty\alacritty.toml.

Source: Alacritty 0.17.0 manual — alacritty-bindings(5), default key and mouse bindings. Checked row by row on .

3 more source pages

Starship Prompt 56

Starship is a prompt for many shells, set up and inspected with the starship command and configured in starship.toml. Its table lists the installers for each system, the init line for Bash, Zsh, fish, PowerShell, Cmd and other shells, the transient prompt, presets, configuration commands, prompt rendering and diagnostics.

Installation 13

The guide names one prerequisite before installing: a Nerd Font installed and enabled in the terminal, for example FiraCode Nerd Font.

CommandWhat it does
curl -sS https://starship.rs/install.sh | shInstall with the official scriptThe guide gives this script for both Linux and macOS; it picks the newest release built for your machine.
curl -sS https://starship.rs/install.sh | sh -s -- --platform unknown-linux-muslInstall the musl buildFor older glibc systems such as CentOS 6 or 7, where the default binary stops with a GLIBC_2.18 error.
brew install starshipInstall with HomebrewListed for macOS, and through Linuxbrew for any Linux distribution.
winget install --id Starship.StarshipInstall with wingetWindows package manager install; MSI installers from the GitHub releases page are an alternative.
scoop install starshipInstall with ScoopWindows option that installs from the Main bucket of Scoop.
choco install starshipInstall with ChocolateyWindows option using the Chocolatey community package.
cargo install starship --lockedBuild from crates.ioBuilds the release from source; the guide lists it for every operating system, Windows included.
conda install -c conda-forge starshipInstall from conda-forgeWorks the same way on Linux, macOS and Windows for conda users.
apt install starshipInstall on Debian or UbuntuDistribution package for Debian 13 or later and Ubuntu 25.04 or later.
pacman -S starshipInstall on Arch or ManjaroComes from the Arch Linux Extra repository; Manjaro uses the same command.
dnf copr enable atim/starshipEnable the Copr repositoryFirst step on Fedora 40+ and CentOS 7+, before the package itself is installed with dnf.
dnf install starshipInstall on FedoraRun once the atim/starship Copr repository has been enabled.
sh -c 'rm "$(command -v 'starship')"'Remove a script installDeletes the binary only; also take the init line out of your shell config, and uninstall packaged copies with their package manager.

Shell setup 12

CommandWhat it does
eval "$(starship init bash)"Enable in BashGoes at the very end of ~/.bashrc so that Bash builds its prompt with Starship.
eval "$(starship init zsh)"Enable in ZshLast line of ~/.zshrc; it evaluates the Zsh setup code that starship prints.
starship init fish | sourceEnable in FishLast line of the Fish config file, ~/.config/fish/config.fish; the output is piped straight into source.
Invoke-Expression (&starship init powershell)Enable in PowerShellAppend it to your PowerShell profile; typing $PROFILE shows where that file lives.
load(io.popen('starship init cmd'):read("*a"))()Enable in Cmd via ClinkNeeds Clink 1.2.30 or later; save the line as %LocalAppData%\clink\starship.lua.
eval (starship init elvish)Enable in ElvishNeeds Elvish 0.18 or later; the file is ~/.config/elvish/rc.elv, or the rc.elv under %AppData%\elvish for Windows users.
eval $(starship init ion)Enable in IonAdd it as the last line of ~/.config/ion/initrc.
starship init nu | save -f ($nu.data-dir | path join "vendor/autoload/starship.nu")Enable in NushellNushell 0.96 or later; create the vendor/autoload folder with mkdir first, then this writes starship.nu into it.
eval `starship init tcsh`Enable in TcshAdd it to the end of ~/.tcshrc, the Tcsh startup file.
execx($(starship init xonsh))Enable in XonshPut it at the bottom of ~/.xonshrc for Xonsh sessions.
PS1="$(starship prompt --status=$STATUS --jobs=$NUM_JOBS)"Hook up an unsupported shellMinimal example for a shell without an init script: pass the last exit status and job count on every prompt.
starship completions zshShell completionsPrints tab completion for the starship command itself; bash, elvish, fish, nushell and powershell work too.

Transient prompt 5

CommandWhat it does
Enable-TransientPromptTurn on transient prompt (PowerShell)Earlier prompts collapse to > by default; put the command in $PROFILE to keep it on.
Disable-TransientPromptTurn off transient prompt (PowerShell)Switches transience off in the running PowerShell session without touching the profile.
enable_transienceTurn on transient prompt (Fish)Fish redraws an earlier prompt only when its command line was non-empty and syntactically valid.
disable_transienceTurn off transient prompt (Fish)Switches it off in the current Fish session only.
clink set prompt.transient alwaysTurn on transient prompt (Cmd)A Clink setting made once; same_dir limits it to the same working directory and off disables it.

Presets 4

Preset names in 1.26.0: bracketed-segments, catppuccin-powerline, gruvbox-rainbow, jetpack, nerd-font-symbols, no-empty-icons, no-nerd-font, no-runtime-versions, pastel-powerline, plain-text-symbols, pure-preset and tokyo-night.

CommandWhat it does
starship preset -lList presetsPrints the names of the bundled presets, such as tokyo-night or pure-preset.
starship preset NAMEPrint a presetSends the preset as TOML to the terminal, so you can read it or redirect it.
starship preset nerd-font-symbols -o ~/.config/starship.tomlApply a presetSaves the Nerd Font Symbols preset as your config file; any other preset name works the same way.
starship preset NAME -o OUTPUT -fOverwrite an existing fileAdd -f when the target already exists, for example a starship.toml you are replacing.

Configuration 10

The editor for starship config is taken from $VISUAL, then $EDITOR; with neither set it falls back to vi, or notepad.exe on Windows.

CommandWhat it does
mkdir -p ~/.config && touch ~/.config/starship.tomlCreate the config fileStarship reads this path by default; anything you leave out keeps its built-in value.
starship configEdit configOpens starship.toml in the editor named by $VISUAL or $EDITOR.
starship config NAME VALUESet one config valueWrites the value straight into starship.toml; a dotted NAME reaches nested tables and creates them if missing.
starship print-configPrint computed configShows the merged configuration, with built-in defaults filled in for every option you did not set.
starship print-config --defaultPrint the default configIgnores your file and lists only the values Starship uses out of the box.
starship print-config NAMEPrint selected keysLimits the output to the named keys; several can be given in one call.
starship toggle NAMEToggle a moduleFlips the disabled value of that module in starship.toml; the module and the key must already be in the file.
starship toggle NAME VALUEToggle another boolean optionVALUE names the key to flip instead of disabled, and that key must hold true or false.
export STARSHIP_CONFIG=~/example/non/default/path/starship.tomlUse a different config fileSet it in the shell startup file; PowerShell uses $ENV:STARSHIP_CONFIG and Cmd uses os.setenv in starship.lua.
export STARSHIP_CACHE=~/.starship/cacheMove the log directoryLogs normally go to ~/.cache/starship, one session file per terminal instance.

Printing the prompt 6

CommandWhat it does
starship module NAMERender one modulePrints a single module on its own, handy while adjusting the format or style of that module.
starship module --listList module namesPrints every module name Starship knows, for use with starship module or in starship.toml.
starship promptPrint the full promptOutputs the standard left prompt once; shell integrations set their prompt from this output.
starship prompt --rightPrint the right promptOutput of the right_format setting, which elvish, fish, zsh, xonsh, cmd, nushell and bash support.
starship prompt --continuationPrint the continuation promptShown in place of the normal prompt while a statement is incomplete, such as after an open quote.
starship statusline claude-codeClaude Code statuslineSet as the statusLine command in .claude/settings.json to show model, context use and session cost.

Diagnostics 6

A warning that a command timed out means it ran past the command_timeout limit: raise that key, or set STARSHIP_LOG to error to hide the warnings.

CommandWhat it does
starship explainExplain promptDescribes each module now on screen, which helps when a prompt symbol is unfamiliar.
starship timingsModule timingsLists how long each active module took, so the cause of a slow prompt stands out.
env STARSHIP_LOG=trace starship timingsTrace a slow promptAdds trace logs and keeps only modules that ran for 1 ms or more or printed something.
env STARSHIP_LOG=trace starship module rustDebug one moduleTrace logs for a single module; swap rust for whichever module misbehaves.
starship bug-reportBug reportStarts a GitHub issue pre-filled with details of your setup and configuration.
starship --versionPrint version numberUnlike -V, it also prints the commit hash, build time and Rust compiler of the binary.

Installing into a shell

Setting Starship up takes two steps: install the binary, then add one init line at the end of the shell's startup file, such as eval "$(starship init zsh)" in ~/.zshrc, eval "$(starship init bash)" in ~/.bashrc, starship init fish | source in ~/.config/fish/config.fish or Invoke-Expression (&starship init powershell) in the PowerShell profile. Cmd works only through Clink 1.2.30 or later, and Nushell needs 0.96 or later. starship completions zsh is a separate matter: it prints tab completion for the starship command itself.

Configuration

All settings live in ~/.config/starship.toml, or in the file STARSHIP_CONFIG points to. starship config opens it in your editor, and starship print-config prints the effective configuration with every default filled in, which shows a module's options and their current values. starship toggle NAME flips a module's disabled value, but only when the module table and that key are already in the file; starship config NAME VALUE writes a value and creates missing tables. Presets are whole configurations: starship preset -l lists them and starship preset nerd-font-symbols -o ~/.config/starship.toml writes one to the config path (-f replaces a file that already exists).

When the prompt is slow

starship timings lists how long each active module took, and starship explain says what each visible module shows. For more detail, env STARSHIP_LOG=trace starship timings adds trace logs and reports the modules that took 1 ms or more or produced output, and env STARSHIP_LOG=trace starship module rust does the same for one module. Starship stops external commands that run past the command_timeout limit and prints a timed-out warning; raise the limit, or set STARSHIP_LOG to error to hide those warnings. starship bug-report opens a pre-filled GitHub issue when something is still wrong.

Where does the Starship init line go?

At the end of the shell's startup file: eval "$(starship init bash)" in ~/.bashrc, eval "$(starship init zsh)" in ~/.zshrc, starship init fish | source in ~/.config/fish/config.fish and Invoke-Expression (&starship init powershell) in the file that $PROFILE names. Cmd users save load(io.popen('starship init cmd'):read("*a"))() as starship.lua in %LocalAppData%\clink.

Why does starship toggle say the module was not found?

The toggle command only flips a true/false key that is already written in starship.toml. Add the module's table with its disabled key first, or set the value directly with starship config NAME VALUE, which creates missing tables.

How do I see the default Starship settings?

starship print-config --default prints the built-in defaults. starship print-config prints what is actually in effect, your settings merged with those defaults, and starship print-config NAME narrows the output to the keys you name.

How do I uninstall Starship?

Remove the init line from your shell config, then delete the binary. For a copy installed by the script, sh -c 'rm "$(command -v 'starship')"' finds and deletes it; a copy installed by a package manager is removed with that package manager.

Do these Starship commands differ between shells?

The starship subcommands are the same in every shell and on Windows, macOS and Linux. What differs is the install method for each system, the init line for each shell, and how environment variables such as STARSHIP_CONFIG are set: export in POSIX shells, $ENV: in PowerShell and os.setenv in the starship.lua of Cmd.

Source: Starship 1.26.0 built-in help: output of "starship --help", "starship COMMAND --help" and "starship --version" from the official Linux release binary. Checked row by row on .

6 more source pages

Lazydocker 63

Lazydocker is a terminal interface for Docker and Docker Compose, with panels for projects, services, containers, images, volumes and networks. Its table lists the default keys for moving between panels and tabs, scrolling the main panel, acting on containers and Compose services, removing images, volumes and networks, running custom or bulk commands, and answering menus and prompts.

Global 6

ActionShortcut
Open keybindings menuLists the keys of the focused panel first, then the global ones; choosing an entry runs it.xor?
Run a one-off commandPrompts for any shell command and runs it in the terminal, outside the panels.X
QuitCan ask for confirmation first when the config turns that on; inside an open menu q only closes the menu.q
QuitBound to the same quit handler as q.Ctrl+C
Next screen modeCycles normal, half and fullscreen; gui.screenMode in config.yml sets the mode lazydocker starts in.+
Previous screen modeSteps back through the same three layouts, so the focused panel shrinks again._

Navigation 16

Because lazydocker takes over the mouse, terminal text is selected by holding Option while dragging; gui.ignoreMouseEvents switches mouse support off.

ActionShortcut
Previous itemWith the main panel focused, these keys scroll its content instead of moving a selection.Upork
Next itemDownorj
Previous side panelBacktab (Shift + Tab) moves back as well; in the focused main panel these keys scroll sideways.Leftorh
Next side panelRightorlorTab
Go to Projects panel1
Go to Services panel2
Go to Containers panel3
Go to Images panel4
Go to Volumes panel5
Go to Networks panel6
Focus main panelMoves into the tab shown on the right, such as Logs, so it can be scrolled; Esc comes back.Enter
Previous tabCycles the main panel tabs; for a container they are Logs, Stats, Env, Config and Top.[
Next tabProjects show Logs, Docker-Compose Config and About; images have a single Config tab.]
Filter listTyping narrows the focused list; Enter keeps the filter in place and Esc clears it./
Move through listOver the main panel the mouse wheel scrolls its content instead.Scroll
Select or focus with mouseClicking the main panel moves focus into it, as Enter does from a side panel.Click

Main panel 11

ActionShortcut
Return to side panelLeaves the main panel and gives focus back to the list it was opened from.Esc
Scroll main panel upWorks from any side panel, moving gui.scrollHeight lines (2 by default) and pausing auto-scroll.Page Up
Scroll main panel downStops at the last screen of output unless the config allows scrolling past the bottom.Page Down
Scroll main panel upWorks while a side panel has focus; lowercase k there moves the list selection instead.K
Scroll main panel downUppercase only: lowercase j in a side panel steps through the list rather than the output.J
Scroll main panel upSame handler as Page Up and K, available from any panel.Ctrl+U
Scroll main panel downSame handler as Page Down and J, available from any panel.Ctrl+D
Jump to top of outputAlso switches auto-scroll off, so new log lines no longer pull the view down.Home
Follow new outputTurns auto-scroll back on after scrolling paused it, so the view tracks the newest log lines.End
Scroll main panel leftWorks from any panel; with the main panel focused, Left and h do the same.H
Scroll main panel rightUseful for long log lines while gui.wrapMainPanel is off; Right and l do it inside the main panel.L

Containers 10

Log views start one hour back by default; logs.since in config.yml changes that window, and an empty value shows everything.

ActionShortcut
StopAsks for confirmation first; on a Compose service it stops all of that service's containers.s
RestartRuns at once, without a prompt; on a service, R offers recreate and rebuild as well.r
PausePressing it again on a paused container unpauses it.p
Remove containerOpens a menu for docker rm with or without --volumes; a running container needs a forced removal, which lazydocker offers.d
Toggle stopped containersHides exited containers from the list, or shows them again.e
AttachNeeds a running container started with a TTY (-it, or stdin_open and tty in docker-compose.yml).a
Detach from containerDocker's default detach sequence; lazydocker prints it as a reminder each time it attaches.Ctrl+PthenCtrl+Q
View logsSuspends the panels and follows the log in the plain terminal, unlike the Logs tab inside lazydocker.m
Exec shellRuns docker exec -it in the container and starts the user's login shell through /bin/sh.E
Open in browserOpens http on the first published port; an address of 0.0.0.0 becomes localhost, and nothing happens without a port.w

Compose services 6

The Services panel also takes s, r, p, a, m, E, w, c and b, with the same meaning as in Containers.

ActionShortcut
Up serviceRuns the upService template, docker compose up -d for just this service.u
Start serviceFor a service that belongs to another Compose project, only its existing container can be started.S
Remove service containersMenu with docker compose rm --stop --force for the service, with or without -v for its volumes.d
Restart optionsMenu with restart, recreate (up -d --force-recreate) and rebuild (up -d --build) for the service.R
Up projectAsks for confirmation, then runs docker compose up -d for the whole project.U
Down projectMenu offering docker compose down with or without --volumes.D

Project panel 3

ActionShortcut
Open config fileHands config.yml to the oS.openCommand program; edits take effect after lazydocker is restarted.o
Edit config fileOpens config.yml with your editor command; the README points vim users to this key rather than o.e
View project logsLeaves the panels to print the combined logs of every service in the Compose project.m

Images, volumes and networks 3

ActionShortcut
Remove imageMenu with docker image rm, optionally with --no-prune to keep untagged parents and --force.d
Remove volumed
Remove networkd

Custom and bulk commands 2

ActionShortcut
Run custom commandLists the customCommands from config.yml for this panel, filled in with the selected item.c
View bulk commandsContainers offer stop all, remove all and prune exited; Images offer prune unused; config.yml can add more.b

Menus and prompts 6

After a log view in the terminal ends, lazydocker waits for Enter before redrawing the panels; gui.returnImmediately: true skips that pause.

ActionShortcut
Run menu entrySpace runs the highlighted entry too.Enterory
Close menuShuts the menu without running anything, so q here does not quit lazydocker.Escorq
Confirm promptAnswers yes to questions such as stopping a container or bringing the project up.Enterory
Cancel promptAnswers no and closes the question without changing anything.Escorn
Apply filterReturns to the list with the filter still applied; an empty filter is cleared.Enter
Clear filterWorks in the filter prompt and also from the list after Enter has applied a filter.Esc

Moving around

[ and ] switch the tabs of the main panel (for a container: Logs, Stats, Env, Config and Top), Enter moves focus into the main panel so its content can be scrolled and Esc steps back. Page Up and Page Down scroll the main panel from any side panel — long logs live there — and End makes it follow new output again. q quits. Tab cycles between the side panels, the number keys 1 to 6 jump straight to one, and the mouse works too.

Acting on containers and services

With a container or Compose service highlighted, s stops it after a confirmation, r restarts it and p pauses it; d opens a removal menu, with or without volumes. a attaches to its process (Docker's Ctrl + P, Ctrl + Q detaches again), m follows its logs in the plain terminal, and E opens a shell inside the container, which is the fastest docker exec -it there is. In the Services panel U and D bring the whole Compose project up or down and R offers restart, recreate and rebuild. b opens bulk commands such as stopping or pruning every container, and c runs a custom command from your config against the item.

Configuration

Custom commands and extra bulk commands live in lazydocker's config.yml, which is how a team adds "tail the app log with jq" as an entry in the c menu. In the Project panel o opens that file and e edits it in your terminal editor; changes apply the next time lazydocker starts. The file sits in ~/.config/lazydocker on Linux, ~/Library/Application Support/jesseduffield/lazydocker on macOS and AppData\Roaming\lazydocker under the user profile on Windows.

Which key lists every binding of the panel I am in?

Press x or ?. The menu shows the keys of the focused panel first and the global keys below them, and choosing an entry runs it.

How do I open a shell inside a container?

Highlight it in the Containers or Services panel and press E. Lazydocker runs docker exec -it and starts the user's login shell through /bin/sh.

How do I get out of a container after attaching with a?

Press Ctrl + P, Ctrl + Q, Docker's default detach sequence; lazydocker prints that reminder every time it attaches.

Why are older log lines missing?

Lazydocker shows the last hour of logs by default. Set logs.since to an empty string in config.yml to see everything, or set logs.tail to a number of lines instead.

Source: Lazydocker keybindings (docs/keybindings/Keybindings_en.md, release v0.25.2). Checked row by row on .

5 more source pages

Questions

Which keys in Alacritty and Lazydocker follow vi conventions?

In Alacritty they work only in vi mode, which Ctrl + Shift + Space switches on and off: K / Up and J / Down move the cursor, V starts a selection and Y copies it. Lazydocker uses them without a separate mode: Up / k and Down / j move through the focused list, Left / h and Right / l / Tab switch side panels, and uppercase K and J scroll the main panel while a side panel has focus.

How do I scroll back through output in Alacritty and in Lazydocker?

In Alacritty, Shift + Page Up and Shift + Page Down move through the scrollback a screen at a time, and Shift + Home and Shift + End jump to the oldest and newest lines; none of them act while a program holds the alternate screen. Lazydocker scrolls its main panel, where the Logs tab is shown, with Page Up and Page Down from any side panel. Home jumps to the top and switches auto-scroll off, and End follows new output again.

Does Starship work with the fish shell?

Yes. Add starship init fish | source as the last line of ~/.config/fish/config.fish and fish builds its prompt with Starship. enable_transience and disable_transience switch Starship's transient prompt on and off in fish; fish redraws an earlier prompt only when that command line was non-empty and syntactically valid. The keys of the fish shell itself are on the separate fish page.

Sources and checks

Each tool on this page keeps its own source line under its table. The documented lists of these 3 tools are short enough to read together, so they share this page; each keeps its own section, and its old address redirects to that section.

Found a wrong or missing key? Tell us and it gets checked against the source. How we verify describes the process and its limits.