Skip to content

Cross-Platform Shell Support

Kangentic spawns Claude Code processes in platform-native shells. This page documents how shells are detected, adapted, and configured across platforms.

Kangentic auto-detects the user’s shell in the following order:

PlatformDetection Order
WindowsPowerShell 7 (pwsh) → PowerShell 5 (powershell) → Git Bash (bash) → cmd.exe
macOSzshbashfishnushellsh (default: $SHELL or zsh)
Linuxbashzshfishdashnushellkshsh (default: $SHELL or bash)

Override the detected shell in Settings under the Terminal tab, or set terminal.shell in the config file.

Kangentic adapts command execution for each shell:

ShellAdaptation
PowerShellCommands are prefixed with & for proper invocation
WSL BashWindows paths are converted to /mnt/c/... format
fishNo --login flag (fish doesn’t support it)
nushellNo --login flag
dashStandard POSIX invocation
bash/zshStandard --login invocation

Cross-platform path handling uses two key utilities:

Converts Windows backslashes to forward slashes for consistent path handling across platforms. Used when passing paths to shells and CLI tools.

Properly escapes and quotes arguments for the target shell. Handles spaces, special characters, and platform-specific quoting rules.

When running under Git Bash on Windows, paths like /c/Users/... are used instead of C:\Users\.... Kangentic detects Git Bash and adjusts path formatting accordingly.

For WSL shells, Windows paths are converted using the /mnt/ prefix:

  • C:\Users\project/mnt/c/Users/project

Kangentic detects WSL shells and applies special handling:

  • Detection: Checks for WSL-specific environment variables and /mnt/ path patterns
  • Docker filtering: WSL Docker Desktop distributions are filtered out of the shell list
  • Path conversion: Automatic bidirectional path conversion between Windows and WSL formats

When spawning Claude Code processes, Kangentic strips the CLAUDECODE environment variable from the child process environment. This prevents nested Claude Code detection issues.

On Windows, Kangentic sets the Application User Model ID (AUMID) for proper taskbar grouping and notification association:

ContextAUMID
Developmentcom.kangentic.dev
Productioncom.kangentic.app

This ensures development and production instances have separate taskbar entries and notification channels.

On macOS, the custom title bar positions the traffic light buttons (close, minimize, maximize) with specific offsets to align with the app’s header layout. The position is defined in the main process window configuration.