Home

Awesome

Natural Language Shell (nlsh)

A Zsh plugin that allows you to interact with your shell using natural language.

Natural Language Shell Demo

Features

Requirements

Installation

Option 1: Using antidote

Add to your .zsh_plugins.txt:

PsychArch/nlsh

Or add directly to your .zshrc:

# Initialize antidote
source ${ZDOTDIR:-~}/.antidote/antidote.zsh
source <(antidote init)

# Add nlsh plugin
antidote bundle PsychArch/nlsh

Option 2: Manual Installation

# 1. Clone the repository
git clone https://github.com/PsychArch/nlsh ~/.nlsh

# 2. Add to your .zshrc
echo 'source ~/.nlsh/nlsh.plugin.zsh' >> ~/.zshrc

# 3. Reload your shell
source ~/.zshrc

Usage

  1. Type your natural language command in the terminal
  2. Press the keyboard shortcut for your platform:
    • Linux/Windows: Alt+Enter or Ctrl+⬇️
    • macOS: Option+Return
  3. Review the generated shell command
  4. Press Enter to execute or modify as needed

Configuration

Configure the plugin using these environment variables in your .zshrc:

# Required
export OPENAI_API_KEY="your-api-key"

# Optional configurations
export OPENAI_MODEL="gpt-4"                              # Default: gpt-3.5-turbo
export OPENAI_URL_BASE="https://your-api-endpoint.com"   # Default: https://api.openai.com
export OPENAI_PROXY="http://proxy.example.com:8080"      # Optional: HTTP proxy

How It Works

  1. The plugin captures your natural language input when triggered
  2. Collects relevant system information:
    • Operating system
    • Distribution details
    • User privileges
  3. Sends a request to the configured OpenAI-compatible API
  4. Converts the response into an executable shell command

Security Notes

License

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