Skip to main content

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

Create a new api 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/
    • macOS: ~/Library/Application Support/ai-shell-loop/logs/

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:

  • DEBUG
  • INFO
  • WARNING
  • ERROR
  • CRITICAL

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-0.1.0-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-0.1.0-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

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

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

ai_shell_loop-0.1.4-py3-none-any.whl (15.2 kB view details)

Uploaded Python 3

File details

Details for the file ai_shell_loop-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: ai_shell_loop-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 15.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 colorama/0.4.4 importlib-metadata/8.6.1 keyring/25.6.0 pkginfo/1.12.1.2 readme-renderer/34.0 requests-toolbelt/1.0.0 requests/2.31.0 rfc3986/1.5.0 tqdm/4.66.4 urllib3/2.2.1 CPython/3.10.12

File hashes

Hashes for ai_shell_loop-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 7091ffb2661db778e61ae7e3dc3fd80ddf4fa6c438d745fe25a72f89cf305be1
MD5 d82c10a320fec268de95344edafbcc54
BLAKE2b-256 40cb8fe22790ee44c3f0bda4816a147f7a2ce14db9534a40e81c891ac0d30a87

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