Skip to main content

CLI tool to get command suggestions from OpenAI and interactively select them.

Project description

shai 🤖

AI-powered shell command suggestions

Overview

shai is a command-line tool that converts natural language into shell commands using AI. Simply describe what you want to do, and shai will suggest the appropriate commands.

Installation

Using pip

pip install shai

Quick Start

First, set your model to use:

export HOST_URL='model-host'
export MODEL_NAME='model-name-to-use'
export API_KEY='your-api-key'
export DEFAUT_SUGGESTIONS=2

Then use shai:

shai run docker test

Usage

Basic Usage

shai "create a new python virtual environment" -n 2

Examples

  1. Docker operations:
$ shai "run nginx container with port 80"
1. docker run -p 80:80 nginx
2. docker run -d -p 80:80 nginx
Choose a command to execute (or 0 to cancel):
  1. File operations:
$ shai "find all pdf files in current directory"
1. find . -name "*.pdf"
2. find . -type f -name "*.pdf"
Choose a command to execute (or 0 to cancel):
  1. Git operations:
$ shai "undo last git commit"
1. git reset --soft HEAD~1
2. git reset --hard HEAD~1
Choose a command to execute (or 0 to cancel):

Features

  • 🌟 Natural language command generation
  • 🎯 Multiple command suggestions
  • ✅ Command execution confirmation
  • 🔄 Interactive command selection
  • 🛡️ Safe execution with confirmation
  • 📝 Clear and helpful suggestions

How It Works

  1. You describe what you want to do in plain English
  2. shai sends your request to LLM to generate command suggestions
  3. You choose which command to execute
  4. shai executes the selected command after confirmation

Requirements

  • Python 3.9 or higher
  • Running LLM (Local or OpenAI model)

Contributing

  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

Security

  • 🔒 Commands are never executed without explicit confirmation
  • 🔑 API keys are handled securely via environment variables
  • ⚠️ Always review suggested commands before execution

Limitations

  • Requires active internet connection
  • Depends on the LLM availability
  • May incur API usage costs
  • Suggestions may not always be perfect

License

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

Acknowledgments

  • "Attention is all you need" paper
  • The Python community for amazing tools and libraries
  • All contributors who help improve this project

Made with ❤️ by Islam Almersawi

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

onprem_shai-0.0.1.tar.gz (4.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

onprem_shai-0.0.1-py3-none-any.whl (4.7 kB view details)

Uploaded Python 3

File details

Details for the file onprem_shai-0.0.1.tar.gz.

File metadata

  • Download URL: onprem_shai-0.0.1.tar.gz
  • Upload date:
  • Size: 4.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.3

File hashes

Hashes for onprem_shai-0.0.1.tar.gz
Algorithm Hash digest
SHA256 7b4328562fd8f998cf69a1083e79f6d37ce4cd67f0ed48a07e13c20553eef236
MD5 22b5abfbb3b087fe85cd94c1c8033555
BLAKE2b-256 5149a7532becbf23ca35e70a1072304b868c8827353dbae22a39b626b759035d

See more details on using hashes here.

File details

Details for the file onprem_shai-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: onprem_shai-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 4.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.3

File hashes

Hashes for onprem_shai-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 47abb738da150f0da2f85e82d25adbb86e0970ca41feeb4f456af87f731d5581
MD5 3b1a4960edaf7dd839a31d4b3a9b7236
BLAKE2b-256 623bcd60b294349a68ca9ca32c44e3bf1a18fc7828e9c5a92cd590c12a0b82c8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page