BashX is a modern, user-friendly desktop application that makes managing shell configurations effortless. Whether you're working with bash, zsh, or fish, BashX provides an intuitive interface to manage aliases, environment variables, and PATH settings without manually editing configuration files.
Clean, intuitive interface with Material Design
Seamlessly switch between different shells with automatic configuration detection.
Easy shell selection with configuration file preview
Create, edit, and organize shell aliases with a visual interface.
Manage aliases with descriptions and instant testing
Configure environment variables with validation and quick-add presets.
Set environment variables with helpful presets
Visually manage PATH directories with drag-and-drop reordering.
Organize PATH with priority control and quick-add options
Preview and validate changes before applying them to your shell.
User-friendly dialogs with validation and testing
- Node.js v16 or higher
- npm or yarn
- Operating System: macOS, Linux, or Windows
# Clone the repository
git clone https://github.com/techieasif/bashx.git
cd bashx
# Install dependencies
npm install
# Start the application
npm start# Create production build
npm run build
# The executable will be in the 'dist' folder- BashX automatically detects your current shell
- Switch between shells using the dropdown menu
- View the configuration file path for reference
- Add: Click "Add Alias" to create new shortcuts
- Edit: Modify existing aliases inline
- Test: Validate commands before saving
- Delete: Remove unwanted aliases
- Quick Add: Use preset variables like EDITOR, JAVA_HOME
- Custom: Add any environment variable
- Auto-uppercase: Variable names are automatically formatted
- Add Directories: Include new paths for executables
- Reorder: Drag to change priority (higher = searched first)
- Quick Add: Common paths like
/opt/homebrew/bin - Validation: Only valid directory paths allowed
- Click "Save Configuration" to write changes
- Copy the provided command (e.g.,
source ~/.bashrc) - Run in your terminal to apply immediately
- Or restart your terminal for changes to take effect
bashx/
βββ electron/ # Electron main process
β βββ main.js # Application entry point
β βββ preload.js # Secure IPC bridge
βββ src/ # React application
β βββ App.js # Main application component
β βββ components/ # Feature components
β βββ AliasesTab.js
β βββ VariablesTab.js
β βββ PathTab.js
βββ public/ # Static assets
βββ package.json # Dependencies & scripts
- Electron: v28.3.3 with latest security patches
- Context Isolation: Enabled for secure IPC
- Local Only: No network requests or data transmission
- Sandboxed: File access limited to shell configs
Some development dependencies have known vulnerabilities:
- These only affect the development environment
- Production builds are completely secure
- Inherited from Create React App toolchain
- No impact on end users
# Run test suite
npm test
# Run with coverage
npm test -- --coverageCurrent test coverage: ~65% (15/23 tests passing)
- Core functionality fully tested
- Some Material-UI dialog tests have limitations
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
# Install dependencies
npm install
# Start in development mode
npm start
# Run tests
npm test
# Build for production
npm run build| Technology | Purpose |
|---|---|
| Electron v28 | Cross-platform desktop framework |
| React v18 | User interface library |
| Material-UI v5 | Component library & design system |
| Node.js | Runtime environment |
- Cloud sync for configurations
- Import/Export configuration profiles
- Theme customization
- Plugin system for extended shells
- Configuration templates
- Backup & restore functionality
This project is licensed under the MIT License - see the LICENSE file for details.
Need help? Have suggestions?
- π Open an issue
- Built with Electron and React
- UI components from Material-UI
- Icons from Material Design Icons
- Inspired by the Unix philosophy of simplicity
If you find this project useful, please consider giving it a β