winfish-shell 1.0.0
A Fish shell-like implementation for Windows
Requires Python: >=3.7

# WinFish Shell

A Fish shell-like implementation for Windows that provides modern shell features including syntax highlighting, autocompletion, and command suggestions. Compatible with Windows Terminal, ConEmu, Cmder, and other terminal emulators.

## Features

- Syntax highlighting for commands
- Command history with search (Ctrl+R)
- Auto-suggestions based on history
- Tab completion for commands and paths
- Modern command prompt with Git integration
- Color support for Windows
- Built-in command handling
- Alias support with persistent storage
- Directory stack navigation (pushd/popd)

## Requirements

- Python 3.7 or higher
- Windows 10/11
- A modern terminal emulator (recommended):
  - Windows Terminal (recommended)
  - ConEmu
  - Cmder
  - Alacritty
  - Or any other terminal emulator with ANSI support

## Installation

### Via pip (recommended)

```bash
pip install winfish-shell
```

### Via Chocolatey

```powershell
choco install winfish-shell
```

### Manual Installation

1. Clone or download this repository
2. Install the required dependencies:

```bash
pip install -r requirements.txt
```

## Usage

You can start WinFish Shell in any terminal emulator:

```bash
winfish
```

### Terminal Integration

#### Windows Terminal (recommended)

Add this to your Windows Terminal settings.json:

```json
{
  "profiles": {
    "list": [
      {
        "name": "WinFish",
        "commandline": "winfish",
        "icon": "🐟",
        "startingDirectory": "%USERPROFILE%"
      }
    ]
  }
}
```

#### ConEmu

Create a new task with the command:

```
cmd /k winfish
```

#### Cmder

Add a new task with:

```
*winfish
```

### Available Commands

- All standard Windows commands are supported
- Built-in commands:
  - `cd [dir]` - Change directory (use `cd -` to go to previous directory)
  - `ls` - List directory contents
  - `pwd` - Print working directory
  - `help` - Show help message
  - `exit` - Exit the shell
  - `alias` - Show or set command aliases
  - `unalias` - Remove an alias
  - `history` - Show command history
  - `clear` - Clear screen
  - `pushd/popd/dirs` - Directory stack manipulation

### Keyboard Shortcuts

- Up/Down arrows: Navigate through command history
- Tab: Command and path completion
- Ctrl+R: Reverse history search
- Ctrl+C: Cancel current command
- Ctrl+D: Exit shell
- Ctrl+L: Clear screen
- Ctrl+W: Delete word before cursor

### Configuration

The shell stores its configuration in the following locations:

- `~/.winfish/` - Configuration directory
- `~/.winfish/aliases.json` - Stored command aliases
- `~/.winfish_history` - Command history

## Features compared to Fish shell

- Command syntax highlighting ✓
- Command history ✓
- Directory navigation ✓
- Auto-suggestions ✓
- Tab completion ✓
- Modern prompt design ✓
- Git integration ✓
- Alias support ✓
- Directory stack ✓

Note: This is a simplified implementation focused on providing a modern command-line experience on Windows while maintaining compatibility with Windows commands.