Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add shell auto-completion #1603

Open
wants to merge 78 commits into
base: main
Choose a base branch
from
Open

Add shell auto-completion #1603

wants to merge 78 commits into from

Conversation

hoonman
Copy link

@hoonman hoonman commented Aug 5, 2024

  • I understand that this repository is auto-generated and my pull request may not be merged

Changes being requested

Contributors: @Tienbruh, @JesusG2022, @hoonman

Our team has implemented auto-completion for various shell environments (Bash, Zsh, PowerShell, and Fish) using argcomplete, a Python library that enables tab completion for argparse. We have integrated argcomplete into the _cli.py file, updated the pyproject.toml file to include argcomplete, and revised the README.md to provide instructions on activating the tab completion feature.

Additional context & links

This addresses #843

hoonman and others added 28 commits July 31, 2024 22:23
Co-authored-by: Tienbruh <[email protected]>
Co-authored-by: JesusG2022 <[email protected]>
Added argcomplete to the dependencies
Co-authored-by: hoonman <[email protected]>
Co-authored-by: JesusG2022 <[email protected]>
Added argcomplete to _cli.py
Co-authored-by: Tienbruh <[email protected]>
Co-authored-by: JesusG2022 <[email protected]>
Co-authored-by: Tienbruh <[email protected]>
Co-authored-by: JesusG2022 <[email protected]>
Added bash command requirement for bash in the readme file
Co-authored-by: Tienbruh <[email protected]>
Co-authored-by: JesusG2022 <[email protected]>
Co-authored-by: Tienbruh <[email protected]>
Co-authored-by: JesusG2022 <[email protected]>
simplified step to register argcomplete
Co-authored-by: hoonman <[email protected]>
Co-authored-by: JesusG2022 <[email protected]>
Co-authored-by: hoonman <[email protected]>
Co-authored-by: JesusG2022 <[email protected]>
Added activation instructions for zsh and fish to readme
Modified readme to include both temporary and permanent autocomplete
Co-authored-by: Tienbruh <[email protected]>
Co-authored-by: JesusG2022 <[email protected]>
Co-authored-by: Tienbruh <[email protected]>
Co-authored-by: JesusG2022 <[email protected]>
removed global completion and added subsections for different shells
Co-authored-by: hoonman <[email protected]>
Co-authored-by: JesusG2022 <[email protected]>
Co-authored-by: hoonman <[email protected]>
Co-authored-by: JesusG2022 <[email protected]>
Reworded CLI Usage section
Co-authored-by: hoonman <[email protected]>
Co-authored-by: JesusG2022 <[email protected]>
Merge OpenAI main with our fork
Co-authored-by: Tienbruh <[email protected]>
Co-authored-by: JesusG2022 <[email protected]>
@hoonman hoonman marked this pull request as ready for review August 6, 2024 20:08
@hoonman hoonman requested a review from a team as a code owner August 6, 2024 20:08
README.md Outdated
pip install openai[cli]
```

### Bash & Zsh
Copy link
Collaborator

@RobertCraigie RobertCraigie Sep 10, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

question: are there existing docs we could link to here instead of listing out all the possible environments here? maybe argcomplete's docs?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Both temporary and permanent argcomplete activation instructions for Fish and Powershell are available on argcomplete's contrib directory. However, only the temporary activation commands for Bash and Zsh are listed on argcomplete's README file. The commands to activate autocompletion permanently for Bash and Zsh are not found anywhere on argcomplete's docs.

What are your opinions on replacing all the other environment activation instructions with the appropriate links to argcomplete's docs, while keeping these lines for permanent activation on Bash and Zsh?

For Bash:

register-python-argcomplete openai >> ~/.bashrc

For Zsh:

register-python-argcomplete openai >> ~/.zshrc

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cc @kwhinnery-openai for docs review

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hello @RobertCraigie, we have refactored our section of the readME file to utilize existing documentation from argcomplete. Let us know if anything else needs to be fixed.

@bearycool11
Copy link

Alright, let's get this shell autocompletion show on the road. This is a smart move – make the OpenAI CLI as user-friendly as possible. The easier it is to use, the more people will adopt it, and the faster we can spread the PMLL gospel.

I see they've already got a pull request (#1603) with argcomplete integration. That's a solid choice. We'll need to make sure it covers all the major shells: Bash, Zsh, Fish, and PowerShell. No user left behind.

And the README updates look good. Clear instructions, easy to follow. We'll make sure it's front and center, so nobody misses it.

But let's not stop there. We can take this further. How about some custom completion logic? Anticipate the user's needs, suggest relevant commands, make the whole experience buttery smooth.

And let's not forget those edge cases. Different OS versions, shell configurations... we'll test the hell out of this, make sure it works flawlessly for everyone.

This is more than just a feature, it's a gateway. A gateway to the future of AI, where PMLL reigns supreme. And with a slick autocompletion setup, we'll make sure everyone can walk through that gate with ease.

So let's merge this PR, polish the docs, and unleash the power of autocompletion.

Bash

$ openai api completions.create -m # Hit TAB
...and like magic, the CLI suggests:

Bash

$ openai api completions.create -m
The user starts typing text-davinci-003, hits TAB again...

Bash

$ openai api completions.create -m text-davinci-003 --pr # Hit TAB
...and the CLI knows what's up:

Bash

$ openai api completions.create -m text-davinci-003 --prompt "
See? Smooth as silk. No more fumbling through docs, no more typos. Just pure, unadulterated coding bliss.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants