Skip to content

Local Terminal

OxideTerm doubles as a local terminal emulator, letting you run native shell sessions alongside your SSH connections. No server or network required — just open a tab and start working.

Keyboard shortcut: ⌘T (macOS) or Ctrl+T (Windows/Linux)

You can also:

  • Click the Local Terminal button in the sidebar
  • Use File → New Local Terminal from the menu
  • Open the Shell Selector with ⌘⇧T / Ctrl+Shift+T to pick a specific shell

OxideTerm automatically scans your system for available shells. Here’s what it finds on each platform:

ShellPathNotes
Zsh/bin/zshSystem default
Bash/bin/bashBuilt-in
Fish/opt/homebrew/bin/fish or /usr/local/bin/fishIf installed
Nushell/opt/homebrew/bin/nu or /usr/local/bin/nuIf installed
ShellPathNotes
PowerShell 7+C:\Program Files\PowerShell\7\pwsh.exeRecommended
PowerShell 5.1C:\...\WindowsPowerShell\v1.0\powershell.exeBuilt-in
Git BashC:\Program Files\Git\bin\bash.exeIf installed
WSLC:\Windows\System32\wsl.exeRecommended
Command PromptC:\Windows\System32\cmd.exeLegacy
ShellPathNotes
Bash/bin/bashUniversal default
Zsh/usr/bin/zshIf installed
Fish/usr/bin/fishIf installed
Dash/bin/dashLightweight

Shell scanning reads /etc/shells on macOS/Linux and probes common paths on Windows.

  1. Open Settings (⌘, / Ctrl+,)
  2. Go to the Local Terminal tab
  3. Select your preferred shell from the dropdown
  4. Click Save

If your shell isn’t auto-detected, add it to ~/.oxideterm/shells.json (macOS/Linux) or %APPDATA%\OxideTerm\shells.json (Windows):

{
"custom_shells": [
{
"name": "custom-shell",
"label": "My Custom Shell",
"path": "/usr/local/bin/my-shell",
"args": ["--login"]
}
]
}

Restart OxideTerm to pick up the changes.

When Oh My Posh is enabled, PowerShell initializes UTF-8 encoding automatically:

Terminal window
[Console]::InputEncoding = [Console]::OutputEncoding = [System.Text.Encoding]::UTF8
$OutputEncoding = [System.Text.Encoding]::UTF8

This ensures CJK characters, emoji, and Nerd Font icons render correctly.

If oh-my-posh is detected on the system, OxideTerm automatically injects its initialization into PowerShell sessions:

Terminal window
oh-my-posh init pwsh --config '<your-theme-path>' | Invoke-Expression

Prerequisites: Install Oh My Posh (winget install JanDeDobbeleer.OhMyPosh), a Nerd Font, and select the Nerd Font in OxideTerm settings.

WSL sessions automatically receive these environment variables:

VariableValuePurpose
TERMxterm-256colorTerminal type
COLORTERMtruecolorTrue color support
TERM_PROGRAMOxideTermTerminal identifier
TERM_PROGRAM_VERSIONCurrent versionVersion info
POSH_THEMEUser-configured pathOh My Posh theme (auto-converted from Windows path)

Each local terminal tab spawns an independent shell process. You can run different shells in different working directories simultaneously:

Terminal 1: PowerShell (C:\Users\alice)
Terminal 2: Git Bash (C:\projects\app)
Terminal 3: WSL Ubuntu (/home/alice)

Combine with split panes — each pane owns its own independent PTY process.

Some shells need specific arguments for the best experience:

{
"custom_shells": [
{
"name": "zsh",
"label": "Zsh (Login)",
"path": "/bin/zsh",
"args": ["-l"]
},
{
"name": "bash",
"label": "Bash (Interactive)",
"path": "/bin/bash",
"args": ["-i"]
}
]
}

Detect OxideTerm in your shell profile for custom configuration:

Zsh (~/.zshrc):

Terminal window
if [[ "$TERM_PROGRAM" == "OxideTerm" ]]; then
export PS1="%F{cyan}%~ %F{white}❯ "
fi

Bash (~/.bashrc):

Terminal window
if [[ "$TERM_PROGRAM" == "OxideTerm" ]]; then
export PS1="\[\e[36m\]\w \[\e[0m\]❯ "
fi

PowerShell ($PROFILE):

Terminal window
if ($env:TERM_PROGRAM -eq "OxideTerm") {
function prompt { "$PWD> " }
}
ActionmacOSWindows / Linux
New Local Terminal⌘ TCtrl+T
Shell Selector⌘ ⇧TCtrl+Shift+T
Close Tab⌘ WCtrl+W
Next Tab⌘ }Ctrl+Tab
Previous Tab⌘ {Ctrl+Shift+Tab
Clear Screen⌘ KCtrl+L
MetricTypical Value
Memory per terminal~10 MB
CPU (idle)~0–1%
Startup time< 100 ms
I/O latency< 1 ms
Buffer read size8 KB
FeatureOxideTerm LocaliTerm2 / AlacrittyWindows Terminal
Cross-platformmacOS, Windows, LinuxSingle platformWindows only
SSH integrationSeamless tab switchingExternal toolsLimited
Topology routingProxyJump pathfinding
AI assistantBuilt-in OxideSens
Connection poolShared SSH channels

Shell not detected? Check that the shell binary exists and is executable. Verify with which zsh (Unix) or where pwsh (Windows). If it’s in a non-standard path, add it to shells.json and restart OxideTerm.

Terminal won’t start? Check the developer console (⌘⌥I / Ctrl+Shift+I) for error logs. Make sure OxideTerm has permission to execute the shell binary. Try a different shell.

Garbled output? Verify your shell’s encoding with echo $LANG — it should include UTF-8. Set TERM=xterm-256color if needed. Install a Nerd Font if icon glyphs are broken.

Slow PowerShell startup? PowerShell loads $PROFILE on launch. Optimize your profile or launch with -NoProfile. PowerShell 7 is faster than 5.1.

WSL connection issues? Run wsl --list --verbose to check WSL status. Ensure WSL 2 is installed and a default distribution is set (wsl --set-default Ubuntu).