@jalasem/dss
v1.1.2
Published
Dev Spaces Switcher (DSS) - Seamlessly manage isolated development environments with separate SSH keys and Git configurations. Enhanced UI with beautiful tables and improved documentation.
Downloads
27
Maintainers
Readme
🚀 Dev Spaces Switcher (DSS)
Seamlessly manage isolated development environments with separate SSH keys and Git configurations
Stop manually managing SSH keys and Git configs when switching between projects, clients, or companies.
DSS provides isolated development environments that automatically handle SSH authentication and Git configuration, letting you focus on what matters most: your code.
✨ Features
| Feature | Description | |---------|-------------| | 🏗️ Space Management | Create and manage isolated workspaces for different projects | | 🔐 SSH Key Automation | Automatically generate and switch SSH keys when changing spaces | | 📝 Git Configuration | Streamlined GitHub user configuration for each space | | 🎨 Rich CLI Interface | Beautiful command-line interface with colors and progress indicators | | 🔍 Fuzzy Search | Intelligent search functionality for quick space discovery | | 📦 Batch Operations | Perform operations on multiple spaces efficiently | | 💾 Import/Export | Backup and restore space configurations | | ⚡ Performance | Fast operations with comprehensive test coverage |
🚀 Quick Start
Installation
Install DSS globally using your preferred package manager:
npm
npm install -g @jalasem/dssyarn
yarn global add @jalasem/dsspnpm
pnpm add -g @jalasem/dssVerify Installation
dss --version📖 Usage Guide
After installation, use the dss command to manage your development spaces:
Core Commands
dss addInteractive wizard to create a new development space:
- Enter space name (auto-slugified)
- Provide email and username
- Automatically generates SSH keys
- Sets up Git configuration
dss listDisplays a beautiful table of all your spaces showing:
- Space names with active indicators
- Associated email addresses
- Usernames
- Current status (active/inactive)
dss switch [spaceName]Switch to a different development space:
- Without
spaceName: Interactive selection menu - With
spaceName: Direct switch to specified space - Updates Git config and SSH agent automatically
dss remove [spaceName]Safely remove a development space:
- Interactive confirmation required
- Cannot remove active space
- Cleans up SSH keys and configurations
dss edit [spaceName]Modify existing space settings:
- Update email and username
- Regenerate SSH keys if needed
- Interactive editing workflow
Advanced Features
dss search [query]Quickly find spaces using intelligent search:
- Search by name, email, or username
- Fuzzy matching for typos
- Fast results display
dss batchPerform operations on multiple spaces:
- Quick switching between spaces
- Bulk configuration updates
- Efficient workflow management
Export your configuration:
dss export [--output config.json]Import from backup:
dss import [--file config.json]Perfect for:
- Moving between machines
- Backup strategies
- Team configuration sharing
dss inspect [spaceName]View detailed information about a space:
- SSH key paths and fingerprints
- Git configuration details
- GitHub access status
- Configuration history
dss test [spaceName]Verify GitHub SSH connectivity:
- Tests SSH key authentication
- Validates GitHub access
- Provides troubleshooting tips
🎯 Use Cases
🏢 Freelancers & Consultants
- Separate spaces for each client
- Isolated SSH keys and Git configs
- Quick switching between projects
- Professional identity management
🏭 Enterprise Developers
- Work and personal GitHub accounts
- Different SSH keys for security
- Project-specific configurations
- Compliance with company policies
👥 Open Source Contributors
- Personal vs. professional identities
- Multiple GitHub accounts
- Easy context switching
- Organized contribution workflow
🎓 Students & Educators
- School vs. personal projects
- Different email addresses
- Learning environment isolation
- Portfolio organization
🆕 What's New in v1.1.0
| Feature | Description | Impact | |---------|-------------|---------| | 🎨 Enhanced UI | Rich colored output with progress indicators | Better user experience | | 🔍 Fuzzy Search | Intelligent search functionality | Faster space discovery | | 📦 Batch Operations | Multi-space switching and operations | Improved workflow efficiency | | 🔄 Import/Export | Backup and restore configurations | Data portability | | ⚡ Performance | Optimized operations and memory usage | Faster execution | | 🧪 Testing | Comprehensive test coverage (90%+) | Higher reliability | | 📚 Documentation | Improved help text and guides | Better onboarding |
🛠️ Development
Contributing
We welcome contributions! Here's how to get started:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes with tests
- Run the test suite:
npm test - Submit a pull request
Local Development
# Clone and setup
git clone https://github.com/jalasem/dss.git
cd dss
npm install
# Development workflow
npm run dev # Run in development mode
npm run build # Build for production
npm run lint # Check code style
npm test # Run test suite
npm run test:watch # Run tests in watch mode
npm run test:coverage # Generate coverage reportProject Structure
src/
├── index.ts # CLI entry point
├── utils/
│ ├── SpaceManager.ts # Core business logic
│ ├── ui.ts # Rich UI components
│ ├── sshKeyGen.ts # SSH key generation
│ ├── fuzzySearch.ts # Search functionality
│ └── batchOperations.ts # Bulk operations
└── __tests__/ # Test suites🙏 Acknowledgments
- Contributors: Thank you to all developers who've contributed to this project
- Open Source Community: For the amazing tools and libraries that make this possible
- Users: For feedback, bug reports, and feature requests that help improve DSS
Made with ❤️ by developers, for developers
