An open API service indexing awesome lists of open source software.

https://github.com/agus-dot1/envirocli

A powerful Windows command-line environment manager that helps you organize and launch multiple applications efficiently
https://github.com/agus-dot1/envirocli

automation cli-app development-environment productivity-tool qol

Last synced: 2 months ago
JSON representation

A powerful Windows command-line environment manager that helps you organize and launch multiple applications efficiently

Awesome Lists containing this project

README

          

# EnviroCLI

๐Ÿš€ **Launch Your Entire Workflow with a Single Command**

Tired of manually opening multiple applications every time you start working? **EnviroCLI** is a command-line tool that lets you define and launch entire environments effortlesslyโ€”perfect for developers, designers, and multitaskers.


Enviro demo

---

## ๐Ÿ“ฅ Installation

### โœ… Via Scoop (Recommended)
```powershell
scoop bucket add enviroCLI https://github.com/Agus-dot1/scoop-enviroCLI
scoop install enviroCLI
```

### ๐Ÿ“ฆ Manual Installation
1. Download the latest release from [GitHub Releases](https://github.com/Agus-dot1/EnviroCLI/releases)
2. Extract it to your desired location
3. Run `EnviroCLI.exe`

### ๐Ÿ›  Requirements
- Currently only on windows
- Performance Note: EnviroCLI has no app limit, but launching many resource-heavy programs at once may slow down low-end systems. This depends on your hardware, not EnviroCLI itself.

---

## ๐Ÿš€ Getting Started

1. Open your terminal and run:
```powershell
EnviroCLI
```
The application will:
- Create a `config` directory in your installation folder
- Initialize an empty `config.json` file
- Show the main menu ready for setup

2. **Create your first environment**:
- Navigate to **"Show Environments"**
- Select **"Add Environment"**
- Name your environment (e.g., "Development", "Gaming")
- Add applications by specifying their executable paths

3. **Launch your environment**:
- Use **"Init Last Environment"** for quick access
- Or select **"Show Environments"** to view and manage all environments

---

## ๐ŸŒŸ Features

โœ… **Quick Environment Switching** โ€“ Define workspaces and launch them instantly.
โœ… **Persistent Settings** โ€“ Your configurations are saved between sessions.
โœ… **Interactive CLI** โ€“ Uses Spectre.Console for an intuitive user experience.
โœ… **Custom Launch Order** โ€“ Control the startup sequence of apps.
โœ… **Lightweight & Fast** โ€“ No background services, just run and go.

---

## ๐Ÿ”ง Configuration

- All settings are stored in `config/config.json`
- The file is automatically created on first run
- Environments and preferences are preserved between sessions
- The `config` directory is excluded from version control for privacy

---

## ๐Ÿ“‚ Example Setups

### **Development Environment**
- ๐Ÿ’ป Visual Studio Code
- ๐Ÿ–ฅ๏ธ Windows Terminal
- ๐ŸŒ Browser
- ๐Ÿ—„๏ธ Database tools (MySQL, MongoDB)
- ๐Ÿณ Docker
- ๐Ÿ”— API Client (Postman)

### **Gaming Environment**
- ๐ŸŽฎ Steam, Epic Games, Battle.net
- ๐ŸŽต Spotify
- ๐ŸŽ™ Discord

### **Work Environment**
- ๐Ÿ“ง Email Client (Outlook, Thunderbird)
- ๐ŸŒ Browser
- ๐Ÿ“Š Spreadsheet Software (Excel, LibreOffice Calc)
- ๐Ÿ“… Task Manager (Notion, Todoist, Trello)
- ๐Ÿ’ฌ Communication Apps (Slack, Zoom, Teams)

---

## ๐Ÿ” Technical Details

### **Configuration**
- JSON-based using `System.Text.Json`
- Error handling with user feedback
- Persistent settings storage

### **Process Management**
- Uses `System.Diagnostics.Process` for launching applications
- Executable path validation
- Optimized process creation

### **User Interface**
- Fully interactive CLI built with `Spectre.Console`
- Organized tables and visual feedback
- Clean console management

---

## ๐Ÿค Contributing

We welcome contributions to EnviroCLI! Here's how you can help:

### ๐Ÿ“Œ Development Setup
1. **Fork the repository**
2. **Clone your fork**
3. **Create a new branch** for your feature
4. **Make your changes**
5. **Submit a pull request**

### ๐Ÿ“œ Code Guidelines
- Follow **C# coding conventions**
- Add **comments for complex logic**
- Update **documentation** for new features
- Include **tests** when possible
- Use **clear, descriptive names**
- Familiarize yourself with **Spectre.Console documentation**

### ๐Ÿš€ Areas for Contribution
- ๐Ÿ†• New features
- ๐Ÿž Bug fixes
- ๐Ÿ“– Documentation improvements
- โšก Performance optimizations

---

## ๐Ÿ“œ License

[MIT](LICENSE)