Skip to content

techieasif/bashx

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

7 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🐚 BashX - Modern Shell Configuration Manager

BashX Logo

A beautiful GUI application for managing shell configurations

License: MIT Electron React Material-UI


✨ Overview

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.

BashX Main Interface Clean, intuitive interface with Material Design

🎯 Key Features

πŸ”„ Multi-Shell Support

Seamlessly switch between different shells with automatic configuration detection.

Shell Selection Easy shell selection with configuration file preview

πŸ“ Alias Management

Create, edit, and organize shell aliases with a visual interface.

Alias Management Manage aliases with descriptions and instant testing

🌍 Environment Variables

Configure environment variables with validation and quick-add presets.

Environment Variables Set environment variables with helpful presets

πŸ“ PATH Management

Visually manage PATH directories with drag-and-drop reordering.

PATH Management Organize PATH with priority control and quick-add options

βœ… Safe Configuration

Preview and validate changes before applying them to your shell.

Add Dialog User-friendly dialogs with validation and testing

πŸš€ Quick Start

Prerequisites

  • Node.js v16 or higher
  • npm or yarn
  • Operating System: macOS, Linux, or Windows

Installation

# Clone the repository
git clone https://github.com/techieasif/bashx.git
cd bashx

# Install dependencies
npm install

# Start the application
npm start

Building for Production

# Create production build
npm run build

# The executable will be in the 'dist' folder

πŸ“– Usage Guide

1️⃣ Launch & Select Shell

  • BashX automatically detects your current shell
  • Switch between shells using the dropdown menu
  • View the configuration file path for reference

2️⃣ Managing Aliases

  • Add: Click "Add Alias" to create new shortcuts
  • Edit: Modify existing aliases inline
  • Test: Validate commands before saving
  • Delete: Remove unwanted aliases

3️⃣ Environment Variables

  • Quick Add: Use preset variables like EDITOR, JAVA_HOME
  • Custom: Add any environment variable
  • Auto-uppercase: Variable names are automatically formatted

4️⃣ PATH Configuration

  • 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

5️⃣ Apply Changes

  1. Click "Save Configuration" to write changes
  2. Copy the provided command (e.g., source ~/.bashrc)
  3. Run in your terminal to apply immediately
  4. Or restart your terminal for changes to take effect

πŸ—οΈ Architecture

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

πŸ›‘οΈ Security

βœ… Production Security

  • 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

⚠️ Development Notes

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

πŸ§ͺ Testing

# Run test suite
npm test

# Run with coverage
npm test -- --coverage

Current test coverage: ~65% (15/23 tests passing)

  • Core functionality fully tested
  • Some Material-UI dialog tests have limitations

🀝 Contributing

We welcome contributions! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Development Setup

# Install dependencies
npm install

# Start in development mode
npm start

# Run tests
npm test

# Build for production
npm run build

πŸ“š Technology Stack

Technology Purpose
Electron v28 Cross-platform desktop framework
React v18 User interface library
Material-UI v5 Component library & design system
Node.js Runtime environment

πŸ—ΊοΈ Roadmap

  • Cloud sync for configurations
  • Import/Export configuration profiles
  • Theme customization
  • Plugin system for extended shells
  • Configuration templates
  • Backup & restore functionality

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ’¬ Support

Need help? Have suggestions?

πŸ™ Acknowledgments


Made with ❀️ for the developer community
If you find this project useful, please consider giving it a ⭐

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages