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
- 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):
- 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):
- 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
- You describe what you want to do in plain English
shaisends your request to LLM to generate command suggestions- You choose which command to execute
shaiexecutes the selected command after confirmation
Requirements
- Python 3.9 or higher
- Running LLM (Local or OpenAI model)
Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7b4328562fd8f998cf69a1083e79f6d37ce4cd67f0ed48a07e13c20553eef236
|
|
| MD5 |
22b5abfbb3b087fe85cd94c1c8033555
|
|
| BLAKE2b-256 |
5149a7532becbf23ca35e70a1072304b868c8827353dbae22a39b626b759035d
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
47abb738da150f0da2f85e82d25adbb86e0970ca41feeb4f456af87f731d5581
|
|
| MD5 |
3b1a4960edaf7dd839a31d4b3a9b7236
|
|
| BLAKE2b-256 |
623bcd60b294349a68ca9ca32c44e3bf1a18fc7828e9c5a92cd590c12a0b82c8
|