Shell completion using LLM
Use LLM to generate and execute commands in your shell.
https://github.com/user-attachments/assets/c10d7a0f-48c3-4904-bb1b-4a1ce9f9ff8d
Installation
Install this plugin in the same environment as LLM.
llm install llm-complete-command
Then install the shell integration for your preferred shell.
- Fish: place
share/llm-complete-command.fishin~/.config/fish/conf.d/. - Zsh: source
share/llm-complete-command.zshin your~/.zshrc. - Bash: source
share/llm-complete-command.bashin your~/.bashrc.
Usage
- Start typing a command.
- Activate the key binding (Alt-Backslash by default).
- Wait for the LLM to complete the command.
- Press enter if you are happy. Otherwise give feedback on the command and repeat from step 3.
- The LLM's command replaces the previous command you were writing.
Neat ways you can use this feature:
- Type a command in English, convert it to bash.
find all files larger than 100MB
🪄find . -type f -size +100M - Give extra instructions as comments.
sed -i '' 's/search/replace/g' file.go # Now do it for all go files in the project
🪄find . -name '*.go' -exec sed -i '' 's/search/replace/g' {} +
Development
To set up this plugin locally, first checkout the code. Then create a new virtual environment:
cd llm-cmd
python3 -m venv venv
source venv/bin/activate
Now install the dependencies and test dependencies:
pip install llm
llm install -e .
Metadata
Release files for llm-complete-command 2.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| llm_complete_command-2.2.0.tar.gz | 12.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| llm_complete_command-2.2.0-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details |
Total release size: 26.6 kB
Release files / llm_complete_command-2.2.0.tar.gz
| Download URL | llm_complete_command-2.2.0.tar.gz |
|---|---|
| Size | 12.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
dbd47601abf81bbea2562f7fd37346c9c819170e794b5770665613a382fa534d
|
|
BLAKE2b-256 checksum How to use checksums |
434cf49547cf1a3cc15885655c35798f9d5e843b9851622cc1a6b4d94561c74a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.27 {"installer":{"name":"uv","version":"0.9.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"25.10","id":"questing","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / llm_complete_command-2.2.0-py2.py3-none-any.whl
| Download URL | llm_complete_command-2.2.0-py2.py3-none-any.whl |
|---|---|
| Size | 14.0 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
22e8d59a6f812f72161de9121dc8e5e4d6f9a4f31e7363978475247199bc7efe
|
|
BLAKE2b-256 checksum How to use checksums |
76e78a53f8271acad879ef0299f3808445c7734db03a9302e4a9e1f0c86e8125
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.27 {"installer":{"name":"uv","version":"0.9.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"25.10","id":"questing","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|