Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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

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

mascot

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 + b

lm "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/