Customizing Your Shell
Making lash Yours
Section titled “Making lash Yours”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 Powerline Prompt
Section titled “The Powerline Prompt”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.
Required Font
Section titled “Required Font”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:
| Font | Notes |
|---|---|
| MesloLGS Nerd Font | Recommended. Battle-tested, great legibility. |
| FiraCode Nerd Font | Adds programming ligatures on top of Nerd glyphs. |
| JetBrainsMono Nerd Font | Clean and modern, designed for code editors. |
| Hack Nerd Font | Solid 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.
The Configuration File
Section titled “The Configuration File”lash stores its settings in a file at:
~/.lash/configRemember, ~ 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.
Built-in Plugins
Section titled “Built-in Plugins”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:
History
Section titled “History”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.
Completions
Section titled “Completions”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).
Autosuggestions
Section titled “Autosuggestions”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.
Syntax Highlighting
Section titled “Syntax Highlighting”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.
Typo Correction
Section titled “Typo Correction”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.
AI Assistant
Section titled “AI Assistant”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.
Session Banner
Section titled “Session Banner”When you start a new lash session, a banner can appear with useful information like system stats or a message of the day.
Directory Frequency
Section titled “Directory Frequency”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.
Git Shortcuts
Section titled “Git Shortcuts”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.
Your own plugins
Section titled “Your own plugins”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.
Keyboard Shortcuts
Section titled “Keyboard Shortcuts”Here are some shortcuts that work right away:
| Shortcut | What it does |
|---|---|
| Tab | Complete the current word |
| Up / Down | Scroll through command history |
| Ctrl + R | Search command history |
| Ctrl + C | Cancel the current command |
| Ctrl + A | Move cursor to the start of the line |
| Ctrl + E | Move cursor to the end of the line |
| Right arrow | Accept an autosuggestion |
What Comes Next
Section titled “What Comes Next”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.