Skip to content

Customizing Your Shell

One of the best things about lash is that it looks good and works smart right out of the box. But if you want to tweak things, you absolutely can. This page covers what you can customize and where to find the settings.

The colorful bar that appears before every command is called the powerline prompt. Each colored section is called a segment, and each one shows you something useful:

  • Current directory — The folder you are in right now. Long paths get shortened so the prompt does not take up the whole line.
  • Git branch — If you are inside a code project that uses Git (a version tracking tool), you will see the branch name here.
  • Command timer — Shows how long your last command took to run. Handy for knowing if something is slow.
  • Exit code — When a command fails, this segment lights up with the error number so you can see at a glance that something went wrong.
  • User and host — Shows your username and hostname, especially useful in SSH sessions.
  • Active profile — Displays the security profile name when not using the default.
  • Turbo mode — A bolt icon appears when turbo optimization is enabled.
  • Environment indicators — Detects and shows context like Python virtualenv, Node.js projects, Docker Compose, Kubernetes, and AWS.

All of this happens automatically. You do not need to configure anything to get it.

After a command finishes, the prompt briefly shows a minimal transient prompt (a single arrow) before redrawing the full powerline. This keeps your scrollback clean.

The powerline prompt uses special Unicode characters for the arrow separators and icons (such as the git branch symbol and the turbo bolt). These glyphs are not present in standard fonts — you need a Nerd Font installed and set as your terminal’s font, otherwise those characters will appear as empty boxes.

The recommended font is MesloLGS Nerd Font, which is widely tested and works well with lash’s default prompt layout. Other compatible options:

FontNotes
MesloLGS Nerd FontRecommended. Battle-tested, great legibility.
FiraCode Nerd FontAdds programming ligatures on top of Nerd glyphs.
JetBrainsMono Nerd FontClean and modern, designed for code editors.
Hack Nerd FontSolid classic monospace, widely available.

Download any of these from nerdfonts.com, install it on your system, then select it in your terminal emulator’s font settings.

lash stores its settings in a file at:

~/.lash/config

Remember, ~ means your home directory, so the full path is something like /home/yourname/.lash/config. If the file does not exist yet, lash uses sensible defaults.

You can open this file in any text editor to change settings. After saving your changes, they will take effect the next time you open lash.

lash comes with several plugins — small add-ons that extend what the shell can do. These are built in, so you do not need to install anything extra. Here is what each one does:

Every command you type is saved so you can find it later. Press the up arrow key to scroll through your previous commands. Want to search for a specific old command? Press Ctrl + R and start typing — lash will search through your history and show matching commands.

When you press Tab, lash suggests ways to finish what you are typing. This works for commands, file paths, and even options (those flags that start with a dash, like ls -l).

As you type, lash shows a faded suggestion to the right of your cursor, based on commands you have used before. If the suggestion is what you want, press the right arrow key to accept it. This is inspired by the fish shell and saves a lot of typing.

Commands are colored as you type them:

  • Valid commands appear in a bright color so you know they exist before you press Enter.
  • Invalid commands appear in a different color, warning you of a typo.
  • Strings and arguments get their own colors so you can visually parse what you have typed.

If you accidentally type gti instead of git, lash will notice and offer to run the correct command. Just confirm the suggestion and move on.

lash includes an AI-powered helper. If you are not sure which command to use for a task, you can describe what you want in plain language and the assistant will suggest the right command. Think of it as a built-in tutor.

When you start a new lash session, a banner can appear with useful information like system stats or a message of the day.

This is the engine behind the z command. It quietly tracks which folders you visit and how often, so z can make smart guesses about where you want to go.

lash ships with a bundled git plugin that gives you oh-my-zsh style aliases out of the box: gst (status), gco (checkout), gpsup (push with upstream), gcm (commit -m), gd (diff), gl (log), and about a dozen more. Typed arguments mean gco <Tab> completes to live branch names and invalid branches produce a clear error instead of running git with garbage.

You can write your own shortcuts too. Drop a .lash file into ~/.lash/plugins/ and every fn and type declared at the top level is loaded into the session automatically — no compile, no restart of anything other than the session.

/// Open a project folder in VS Code.
fn code(dir: string) {
/usr/local/bin/code $dir
}

See the Writing your first .lash plugin tutorial for the full picture, including typed arguments that drive auto-completion.

Here are some shortcuts that work right away:

ShortcutWhat it does
TabComplete the current word
Up / DownScroll through command history
Ctrl + RSearch command history
Ctrl + CCancel the current command
Ctrl + AMove cursor to the start of the line
Ctrl + EMove cursor to the end of the line
Right arrowAccept an autosuggestion

You now know the basics: what lash is, how to install it, how to run commands, how to navigate your files, and how to customize your experience. From here, you can explore more advanced topics like functional chains, scripting, and turbo mode as you get more comfortable.

The best way to learn is to use lash every day. The more you type, the more natural it becomes. And remember — if you get stuck, the AI assistant is right there in your shell waiting to help.

Happy hacking.