A command line tool that lets an AI do work for you.
Project description
ai-shell-loop
Use openAi's gpt to generate and execute bash commands quickly.
Currently works only on linux based systems. You need API-Access to openAi, which you have if you have at least a plus account.
Features
- Generate and execute shell commands based on natural language input.
- when the first approach fails, it tries another command
- Iteratively refine commands to achieve desired results.
Installation
Prerequisites
Before installing ai-shell-loop, ensure that you have Python and pip installed on your system.
Install Python and pip
-
On Ubuntu/Debian:
sudo apt update sudo apt install python3 python3-pip
-
On macOS (using Homebrew):
brew install python3
Install pipx
If you don't have pipx installed, you can install it using pip:
python3 -m pip install --user pipx
python3 -m pipx ensurepath
Once pipx is installed, you may need to restart your terminal or reload your shell configuration to make sure pipx is available on your PATH.
Install ai-shell-loop
pipx install ai-shell-loop
Open AI Key
Set your api key with export OPENAI_API_KEY='your-api-key'
See the official-docs for more information.
Usage
ai-do "<plain english explanation of the goal>"
Example
ai-do "create a python program that lists primes below 100"
Logging
Each execution of ai-shell-loop generates a log file containing detailed information about the execution process.
Log File Location
- Default Locations:
-
- Linux:
~/.local/share/ai-shell-loop/logs/
- Linux:
-
- macOS:
~/Library/Application Support/ai-shell-loop/logs/
- macOS:
Custom Log Directory:
Set the environment variable AI_SHELL_LOOP_LOG_DIR to specify a custom directory for log files.
Log File Naming
Log files are named with the current date and time, e.g., ai-shell-loop_2024-04-27_15-30-00.log.
Logging Levels
By default, the logging level is set to INFO. To change the logging level, set the environment variable AI_SHELL_LOOP_LOG_LEVEL to one of the following:
DEBUGINFOWARNINGERRORCRITICAL
Example:
export AI_SHELL_LOOP_LOG_LEVEL=DEBUG
Development Setup
Create environment
sudo apt install python3 python3-pip python3-venv pipx
python3 -m venv venv
source venv/bin/activate # Activate the virtual environment
pip install -r requirements.txt # Install dependencies
pip install -r build-requirements.txt # Install dependencies for doing a build.
Run
With the virtual python environment activated, inside the project root, run python -m ai_shell "echo the current time"
Build
Run
python -m build
Install locally
pipx install dist/ai_shell_loop-x.y.z-py3-none-any.whl
pipx ensurepath
After this, the ai-do command should be available anywhere.
Deploy to PyPi
twine upload dist/ai_shell_loop-x.y.z-py3-none-any.whl -u __token__ -p your_pypi_token
Check that commit is tagged
The package can only be deployed, if there are no pending changes in git and the exact commit you are on is tagged.
git status should show nothing.
git describe --tags should return something like v0.1.0.
Versioning
Versioning is done through git-tags.
git tag -a v0.1.2 -m "Version 0.1.2"
git push origin v0.1.2
The latest tag will automatically be used by git in setup.py
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
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 ai_shell_loop-0.1.5-py3-none-any.whl.
File metadata
- Download URL: ai_shell_loop-0.1.5-py3-none-any.whl
- Upload date:
- Size: 15.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
48b95d36168c578b1d2338181d8a62828eff8f62f88c483f8888af1d964ca018
|
|
| MD5 |
48543a693800bfd19c16a4911513c434
|
|
| BLAKE2b-256 |
63d8bcbf86c33c483796a3601cbe67910bcdbc3dc7b6d730397aaf3af0917751
|