A macOS desktop application for managing shell configuration files (Bash, Zsh, Fish) with the ability to view, edit, and manage environment variables, aliases, functions, and more.
- Shell Detection: Auto-detect installed shells (Bash, Zsh, Fish)
- Config File Discovery: Find all standard config files for each shell
- Create Config Files: Create new configuration files for any shell
- Delete Config Files: Remove unwanted configuration files
- Environment Variables: Parse and display
export VAR=valuestatements - Aliases: Parse and display
alias name='command'statements - Functions: Parse and display shell function definitions
- Source Statements: Parse and display
source/.statements - Export Statements: Parse standalone
export VARstatements
- Add Items: Add new environment variables, aliases, or source statements
- Edit Items: Modify existing configuration items inline
- Delete Items: Remove configuration items with confirmation
- Visual Card Layout: Clean card-based display for each configuration item
- Type Filtering: Filter items by type (variables, aliases, functions, source)
- Search: Search items by name, value, or comment
- Copy to Clipboard: Copy variable name or value with one click
- Path Highlighting: Highlight path-like values with color coding
- External Editors: Open files in TextEdit or Terminal
- macOS 12.0 (Monterey) or later
- Xcode 15.0 or later
- XcodeGen (for project generation)
brew install xcodegen# Generate project and build
./build.sh build
# Build and run the application
./build.sh run
# Clean build files
./build.sh cleanShellConfigManager/
├── App/
│ └── ShellConfigManagerApp.swift
├── Models/
│ ├── ConfigFile.swift
│ ├── EnvVariable.swift
│ └── Shell.swift
├── ViewModels/
│ ├── EnvVariableViewModel.swift
│ └── ShellListViewModel.swift
├── Views/
│ ├── ContentView.swift
│ ├── EmptyStateView.swift
│ ├── EnvVariableListView.swift
│ ├── EnvVariableRowView.swift
│ ├── SidebarView.swift
│ ├── AddConfigItemSheet.swift
│ ├── EditConfigItemSheet.swift
│ └── AddConfigFileSheet.swift
├── Services/
│ ├── ConfigFileParser.swift
│ ├── ConfigFileEditor.swift
│ └── ShellConfigManager.swift
└── Resources/
└── Assets.xcassets/
~/.bashrc~/.bash_profile~/.bash_login/etc/profile/etc/bashrc
~/.zshrc~/.zprofile~/.zshenv/etc/zshrc/etc/zprofile
~/.config/fish/config.fish~/.config/fish/fish_variables
- Select a configuration file from the sidebar
- Click the "Add" button in the header
- Choose the type (Environment Variable, Alias, or Source)
- Enter the name and value
- Click "Add" to save
- Hover over the item you want to edit
- Click the "Edit" button (blue pencil icon)
- Modify the values in the form
- Click "Save Changes"
- Hover over the item you want to delete
- Click the "Delete" button (red trash icon)
- Confirm the deletion in the dialog
- Click the "+" button next to a shell type in the sidebar
- Enter the file name
- Click "Create"
- Hover over the config file in the sidebar
- Click the trash icon
- Confirm the deletion
- Language: Swift 5.9
- UI Framework: SwiftUI
- Architecture: MVVM
- Project Generation: XcodeGen
- Minimum Deployment: macOS 12.0
MIT License