Shannon logo Shannon

Configuration

Shannon uses standard config locations — no custom config directory. Your existing nushell and bash config works automatically.

Config Locations

ConfigLocationPurpose
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

  1. ~/.bash_profile~/.bashrc — bash login init (env vars injected into nushell)
  2. ~/.config/nushell/env.nu — nushell environment
  3. ~/.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)