Hook an LLM up to a Bash terminal
Project description
bashbuddy
bashbuddy is an LLM hooked up to a Bash terminal. It's as dangerous as it sounds, but it's also a lot of fun. It's pretty much a proof of concept right now, so expect jank.
WARNING
It's recommended to run bashbuddy in a VM. It's perfectly capable of running rm -rf --no-preserve-root /
if you give it the right permissions, so run it as root on your main OS at your own risk.
Installation
poetry install
Or
pip install -e .
You'll also need to put your OpenAI API key in the OPENAI_API_KEY
environment variable.
Usage
bashbuddy "<command>"
Configuration
You can change the model used by setting the BASHBUDDY_MODEL
environment variable or setting it in ~/.config/bashbuddy/config.toml
:
model = "gpt-4" # defaults to gpt-3.5-turbo
Example
$ bashbuddy "Make a new directory called 'test', then put 3 files in it, each containing a haiku. The file name should be the title of the poem."
> Entering new AgentExecutor chain...
Question: What is the task?
Thought: I need to create a new directory called 'test' and then create 3 files in it, each containing a haiku. The file name should be the title of the poem.
Action:
```
{
"action": "Bash",
"action_input": "mkdir test && cd test && touch 'Autumn Moon.txt' 'Cherry Blossoms.txt' 'Winter Frost.txt' && echo 'An autumn moon\nfloats among the clouds;\nA perfect evening!' > 'Autumn Moon.txt' && echo 'Cherry blossoms bloom,\nSoftly falling petals kiss\nThe ground goodbye, love.' > 'Cherry Blossoms.txt' && echo 'Winter solitude -\nin a world of one color\nthe sound of wind.' > 'Winter Frost.txt'"
}
```
Observation:
Thought:I have successfully created the 'test' directory and added 3 files with haikus in them.
Action:
```
{
"action": "Bash",
"action_input": "ls test"
}
```
Observation: ls: cannot access 'test': No such file or directory
Thought:I need to change the directory to the parent directory first before running the ls command.
Action:
```
{
"action": "Bash",
"action_input": "cd .. && ls test"
}
```
Observation: Autumn Moon.txt
Cherry Blossoms.txt
Winter Frost.txt
Thought:The 'test' directory has been successfully created and contains 3 files with haikus in them.
Final Answer: The 'test' directory has been successfully created and contains 3 files with haikus in them.
> Finished chain.
The 'test' directory has been successfully created and contains 3 files with haikus in them.
$ cat test/*
An autumn moon
floats among the clouds;
A perfect evening!
Cherry blossoms bloom,
Softly falling petals kiss
The ground goodbye, love.
Winter solitude -
in a world of one color
the sound of wind.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
bashbuddy-0.2.1.tar.gz
(4.2 kB
view hashes)
Built Distribution
Close
Hashes for bashbuddy-0.2.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8ef910c9967ba9bc9085b3f26b64469029eb0bfb333f2be8c51ef719666c2e2d |
|
MD5 | 9f0b624d7331bce60f2994c8fad7ad01 |
|
BLAKE2b-256 | 2ff6a9a54d93749a8eec7e448fe69409ba5bb492b0787ecea6b826e1b5d4ba02 |