Configuration
Shannon uses standard config locations — no custom config directory. Your existing nushell and bash config works automatically.
Config Locations
| Config | Location | Purpose |
|---|---|---|
| Bash | ~/.bash_profile / ~/.bashrc | PATH, env vars, nvm, homebrew, etc. |
| Nushell | ~/.config/nushell/env.nu | Nushell env setup |
| Nushell | ~/.config/nushell/config.nu | Keybindings, colors, hooks, completions |
| Nushell | ~/.config/nushell/login.nu | Login shell config |
| Nushell | ~/.config/nushell/history.sqlite3 | SQLite command history |
None of these files are required. Shannon works out of the box.
Bash Config
Shannon's bash subprocess starts as a login shell (bash --login), loading your ~/.bash_profile (which conventionally
sources ~/.bashrc). At startup, the
resulting env vars are captured and injected into nushell's Stack.
# ~/.bash_profile (or ~/.bashrc)
# Homebrew
eval "$(/opt/homebrew/bin/brew shellenv)"
# Custom paths
export PATH="$PATH:$HOME/.cargo/bin"
export PATH="$PATH:$HOME/.local/bin"
# Environment variables
export EDITOR="nvim"
Any tutorial that says "add this to your
.bashrc" — just do it. Shannon picks it
up automatically.
Nushell Config
Nushell config lives in the standard ~/.config/nushell/
directory. If you already use nushell, Shannon shares your existing config. See
the
Nushell configuration docs
for full details.
Common settings:
# ~/.config/nushell/config.nu
$env.config.show_banner = false # disable startup banner
$env.config.edit_mode = "vi" # vi or emacs keybindings
$env.config.history.file_format = "sqlite" Loading Order
-
~/.bash_profile→~/.bashrc— bash login init (env vars injected into nushell) -
~/.config/nushell/env.nu— nushell environment -
~/.config/nushell/config.nu— nushell settings
Banner
The startup banner respects nushell's
$env.config.show_banner setting:
$env.config.show_banner = false # no banner
$env.config.show_banner = "short" # just startup time
$env.config.show_banner = true # full welcome message (default)