Transform Your Ollama Docker Terminal: A Parrot OS Makeover


The default Ollama Docker container provides a powerful AI environment, but its command-line interface is plain and basic. By customizing the Bash prompt, you can make your terminal more informative, visually appealing, and efficient.
This guide will walk you through replacing the default prompt with a modern, two-line prompt inspired by Parrot Security OS. This new prompt includes features like exit-code indicators and Git integration. Best of all, this entire process requires no text editors like vim
or nano
, making it perfect for the minimal Ollama container environment.
What the New Prompt Offers
Your new prompt will provide immediate, at-a-glance information:
Two-Line Layout: Separates your command input from the directory information for a cleaner workspace.
Success/Failure Indicator: A red
✗
will instantly appear if your last command failed.Root User Highlighting: The
root
user is displayed in bright red to remind you of your elevated privileges.Git Integration: Automatically displays the current Git branch and an asterisk (
*
) for uncommitted changes when you're inside a repository.
Here’s what it will look like:
Default View (as root, after a successful command):
╭─root@ollama─(/)─╮
╰─▶ # _
Failure View (after a command fails):
╭─✗─root@ollama─(/)─╮
╰─▶ # _
The Complete .bashrc
Code
This is the full configuration file you will add to your container. It includes all the logic for colors, layout, and Git detection.
# ~/.bashrc: Executed by bash(1) for non-login shells.
# This file is optimized for a minimal container environment like Ollama.
# If not running interactively, don't do anything
[ -z "$PS1" ] && return
# Don't put duplicate lines or lines starting with space in the history.
HISTCONTROL=ignoreboth
# Append to the history file, don't overwrite it
shopt -s histappend
# For setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000
# Check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize
# Set a fancy prompt (non-color, unless we know we "want" color)
force_color_prompt=yes
if [ -n "$force_color_prompt" ]; then
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
# We have color support; assume it's compliant with Ecma-48
color_prompt=yes
else
color_prompt=
fi
fi
# Custom prompt function
PROMPT_COMMAND="_prompt_command"
_prompt_command() {
local EXIT_CODE=$?
# Define colors
local C_RESET='\[\e[0m\]'
local C_USER='\[\e[0;96m\]' # Cyan
local C_ROOT='\[\e[1;91m\]' # Bright Red
local C_AT='\[\e[0;90m\]' # Grey
local C_HOST='\[\e[0;36m\]' # Dark Cyan
local C_PATH='\[\e[1;32m\]' # Bright Green
local C_GIT='\[\e[0;33m\]' # Yellow
local C_GIT_DIRTY='\[\e[1;31m\]' # Red
local C_PROMPT='\[\e[0;93m\]'# Bright Yellow
local C_FAIL='\[\e[0;91m\]' # Bright Red
local C_BOX='\[\e[0;90m\]' # Grey
# Top line of the prompt
local P_TOP=""
# Start with box character
P_TOP+="${C_BOX}╭─"
# Add exit code indicator if last command failed
if [ $EXIT_CODE -ne 0 ]; then
P_TOP+="${C_FAIL}✗─"
fi
# User and host info
if [ "$EUID" -eq 0 ]; then
P_TOP+="${C_ROOT}\u${C_AT}@${C_HOST}\h"
else
P_TOP+="${C_USER}\u${C_AT}@${C_HOST}\h"
fi
# Path info
P_TOP+="${C_BOX}─(${C_PATH}\w${C_BOX})"
# Git info (only if in a git repo and git is installed)
if command -v git &>/dev/null && [ -n "$(git rev-parse --is-inside-work-tree 2>/dev/null)" ]; then
local GIT_BRANCH=$(git symbolic-ref --short HEAD 2>/dev/null)
local GIT_STATUS=$(git status --porcelain 2>/dev/null)
if [ -n "$GIT_STATUS" ]; then
P_TOP+="${C_BOX}─(${C_GIT_DIRTY}${GIT_BRANCH}*${C_BOX})"
else
P_TOP+="${C_BOX}─(${C_GIT}${GIT_BRANCH}${C_BOX})"
fi
fi
P_TOP+="${C_BOX}─╮${C_RESET}"
# Bottom line of the prompt
local P_BOTTOM="${C_BOX}╰─${C_PROMPT}\\$ ${C_RESET}"
# Combine into final PS1
PS1="\n${P_TOP}\n${P_BOTTOM}"
}
# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
;;
*)
;;
esac
# Enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
alias ls='ls --color=auto'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
fi
# Some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
# Add some other useful aliases
alias ..='cd ..'
alias ...='cd ../..'
# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
Implementation Steps
Follow these steps carefully to install your new prompt.
Step 1: Get a Shell in the Ollama Container
First, open a terminal on your host machine and use the docker exec
command to access the bash shell inside your running Ollama container.
docker exec -it ollama bash
(Note: If your container is named something other than ollama
, replace it in the command.)
Step 2: (Optional) Back Up Your Current .bashrc
It's always a good idea to keep a backup of the original configuration file. You can do this with a simple copy command.
cp ~/.bashrc ~/.bashrc.bak
Step 3: Write the New .bashrc
without an Editor
Now, we'll use the cat
command to write our new configuration. This command turns your terminal into a temporary file writer.
First, run this command. Your cursor will move to a blank line, waiting for input.
cat > ~/.bashrc
Next, copy the entire code block from the section above and paste it into your terminal.
Finally, press Enter once (to ensure you're on a new line) and then press CTRL+D. This signals that you're done and saves the file. Your normal prompt will reappear.
Step 3.1: Alternative to Previous Option (Alternative)
Also we can use this command:
cat > ~/.bashrc <<'EOF'
Next, paste the code block and then after the last line write EOF
in the terminal and hit enter
.
Step 4: Activate Your New Prompt
The changes are saved, but they won't apply to your current session until you source the file. Run the following command:
source ~/.bashrc
Your terminal prompt will instantly transform into the new Parrot OS style! Any new shell you open with docker exec
will automatically have this prompt from now on. Enjoy your upgraded Ollama experience! ✨
Subscribe to my newsletter
Read articles from J.A. Shezan directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

J.A. Shezan
J.A. Shezan
Shezan loves technology who is currently studying Computer Science and Engineering. He codes frontend & backend of a website. He also does penetration testing on web apps.