Skip to content

M97Chahboun/nexsh

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

support-palestine-banner

NexSh 🤖

Crates.io Downloads Size License: MIT Rust Documentation

Next-generation AI-powered shell using Google Gemini

InstallationFeaturesUsageConfigurationContributing

NexSh Demo

Features

  • 🧠 AI-powered command interpretation - Understands natural language commands
  • 🔄 Smart conversion - Translates your words into precise shell commands
  • 🎨 Interactive experience - Colorful output with intuitive formatting
  • 📝 Enhanced history - Search and recall past commands easily
  • 🛡️ Safety first - Warns before executing potentially dangerous commands
  • 🚀 Multiple modes - Interactive shell or single-command execution
  • 💻 Cross-platform - Works on Linux, macOS, and Windows
  • Command failure explanations - Offers explanations and potential solutions when a command fails

Installation

From GitHub Releases

You can download pre-built binaries for your platform from our GitHub Releases page.

  1. Visit the Releases page
  2. Download the appropriate file for your platform:
    • Windows: nexsh-windows.zip
    • macOS: nexsh-macos.tar.gz
    • Linux: nexsh-linux.tar.gz
  3. Verify the download using SHA256 checksum:
    # Download both the binary and its checksum
    curl -LO https://github.com/M97Chahboun/nexsh/releases/latest/download/nexsh-linux.tar.gz
    curl -LO https://github.com/M97Chahboun/nexsh/releases/latest/download/nexsh-linux.sha256
    
    # Verify the checksum (Linux/macOS)
    echo "$(cat nexsh-linux.sha256)  nexsh-linux.tar.gz" | shasum -a 256 --check
  4. Extract the archive:
    # For Linux/macOS
    tar xzf nexsh-linux.tar.gz
    
    # For Windows
    unzip nexsh-windows.zip
  5. Move the binary to a directory in your PATH:
    # Linux/macOS
    sudo mv nexsh /usr/local/bin/
    
    # Windows: Move nexsh.exe to a directory in your PATH

Using Cargo (Recommended)

cargo install nexsh

From Source

# Clone the repository
git clone https://github.com/M97Chahboun/nexsh.git
cd nexsh

# Build and install
cargo build --release
sudo cp target/release/nexsh /usr/local/bin/

🛠️ Setup

First-time configuration:

You'll need to:

  1. Enter your Gemini API key when prompted
  2. Get your API key from Google AI Studio
  3. The key will be securely stored in your system's config directory

Configuration

Configuration Options

nexsh init

Follow the prompts to configure the tool:

Enter your Gemini API Key: your_gemini_api_key
Set history size (default is 1000):
Set max context messages (default is 10):
Set model (default is gemini-2.0-flash):

Your configuration is now stored in the default location and used by nexsh.


| Setting                | Description                            | Default          |
| ---------------------- | -------------------------------------- | ---------------- |
| `api_key`              | Your Gemini API key                    | Required         |
| `history_size`         | Number of commands to keep in history  | 1000             |
| `max_context_messages` | Maximum messages to keep in AI context | 10               |
| `model`                | The Gemini model                       | gemini-2.0-flash |

Usage

Interactive Shell Mode

nexsh

Example session:

$ nexsh
🤖 Welcome to NexSh! Type 'exit' to quit or 'help' for assistance.

nexsh> show me system memory usage
→ free -h
              total        used        free      shared  buff/cache   available
Mem:           15Gi       4.3Gi       6.2Gi       386Mi       4.9Gi        10Gi
Swap:         8.0Gi          0B       8.0Gi

nexsh> find files modified in the last 24 hours
→ find . -type f -mtime -1
./src/main.rs
./Cargo.toml
./README.md

Single Command Mode

nexsh -e "show all running docker containers"

Key Commands

Command Action
exit/quit Exit the shell
help Show available commands
Ctrl+C Cancel current operation
Ctrl+D Exit the shell
Up/Down Navigate command history

Contributing

We welcome contributions! Here's how to get started:

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

Please read our Contribution Guidelines for more details.

📝 License

MIT License - See LICENSE for full details.

🙏 Acknowledgments

  • Google Gemini for powering the AI capabilities
  • The Rust community for amazing crates and tools
  • All contributors who helped shape this project

📱 Connect

Made with ❤️ by M97Chahboun

About

Next-generation AI-powered shell using Google Gemini - Translates your words into precise shell commands ⚙️

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages