Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/knowsuchagency/llmo
Your friendly terminal-based AI pair programmer
https://github.com/knowsuchagency/llmo
ai cli llm
Last synced: about 2 months ago
JSON representation
Your friendly terminal-based AI pair programmer
- Host: GitHub
- URL: https://github.com/knowsuchagency/llmo
- Owner: knowsuchagency
- License: apache-2.0
- Created: 2023-05-21T19:31:33.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-06-05T21:44:01.000Z (over 1 year ago)
- Last Synced: 2024-07-27T22:42:57.498Z (about 2 months ago)
- Topics: ai, cli, llm
- Language: Python
- Homepage:
- Size: 1.24 MB
- Stars: 42
- Watchers: 3
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# LLMO (Elmo)
*Meaning:*
- Protector
- Worthy to be Loved
- Helm from God
- (**Most Importantly**) A helpful AI programming CLI tool
LLMO is the AI pair programming tool that meets you where you are (your terminal) 😉
With the **"staging area"**, you can keep files in the context window without the hassle of copying and pasting every time you make changes to your code.
## Features
- Interactive Chat: Enjoy real-time, interactive programming assistance in your terminal.
- Staging Area: Easily add files to the AI's context to update it about your ongoing coding tasks. No need to copy and paste updates.
- Model Customization: Choose the OpenAI model that fits your needs.
- Personality: By default, Elmo loves to make bodybuilding references. This can be turned off through a CLI flag or environment variable.## Installation
The recommended way to install `llmo` is through [pipx][pipx]:
```bash
pipx install llmo
```## Demo
https://github.com/knowsuchagency/llmo/assets/11974795/72419d64-585b-4cd5-a546-2a07de3e6f03
## Usage
```bash
llmo --help
# you can also use the shorthand
lm# You can pass the -s flag if you don't need the full GUI mode
lm -s "Could you show me an example of valid json?"# Adding files to context
# main.py
# from utils import add_numbers
# result = add_numbers(5, 3)# utils.py
# def add_numbers(a, b):
# return a + blm "How can I make add_numbers return a string?" -f main.py -f utils.py
```## Notes
### Authentication
This application uses the [OpenAI][openai] API.
You will need to authenticate with your own API Key.
### Copying Text
[Textual][textual] runs the terminal in application mode. The means that you can't simply copy content as you normally would.
In [iterm2][iterm2], you can hold down the `option` key to select text. See the documentation for your terminal emulator for more information.## License
[Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0)
## Disclaimer
This tool is not officially associated with OpenAI. Always follow OpenAI's use case policy when interacting with their API.
[pipx]: https://github.com/pypa/pipx
[textual]: https://textual.textualize.io/
[iterm2]: https://iterm2.com/
[openai]: https://openai.com/