Skip to main content

Interactive shell with LLM-powered features

Project description

LLM Shell Assistant

An intelligent shell that combines traditional shell capabilities with natural language processing. Features include command generation from natural language, automatic error explanations, and command completion.

Prerequisites

  • Python 3.8 or higher
  • A Google API key for Gemini AI (the specific model used can be configured, check llm.py)
  • GCC compiler (for the C core extension)

Setup

Method 1: Install from PyPI (Recommended)

Install directly using pip:

pip install shell-llm

Set up your Google API key (see "Post-Installation Setup" below).

Method 2: Install from Source (for Development)

  1. Clone the repository:
    git clone https://github.com/jrdfm/shell-llm.git # Update URL if needed
cd shell-llm
  1. Create and activate a virtual environment:
python -m venv venv
    source venv/bin/activate  # On Windows use `venv\Scripts\activate`
  1. Install dependencies (including build/test tools):
    pip install -r requirements.txt
    pip install build twine cibuildwheel pytest pytest-asyncio pytest-mock
  1. Build the C extension:
    # Build the C extension module and place it in the source tree
    python -m build --wheel --outdir . --no-isolation
    # Or build and install into the venv (needed to run `shell-llm` command directly)
    # pip install . --force-reinstall
  1. Set up your Google API key (see "Post-Installation Setup" below).

Running the Shell

  1. Activate Virtual Environment (if installed from source):
    source venv/bin/activate
  1. Run:
shell-llm

Usage

  • Standard Shell Commands: Most standard shell commands work as expected. Pipelines (|) are supported. Note: Redirection (>, <, >>, etc.) is not currently implemented by the shell wrapper; these characters will likely be treated as literal arguments by commands.
  • Natural Language Queries: Start your query with #.
  # how do I find large files?
  • Verbosity Flags (for NL Queries): Add -v or -vv after # for more detailed explanations of the generated command.
  # -v list files sorted by size
  # -vv copy files securely between servers
  ```
-   **Exit:** Type `exit` or press `Ctrl+D`.

### Known Limitations / TODO

*   **Shell Aliases:** User-defined aliases (e.g., `alias ll='ls -l'`) are **not** recognized or expanded. The shell executes commands directly. (Common commands like `ls` and `grep` have `--color=auto` added automatically for visual consistency).
*   **Redirection:** Input/output redirection (`>`, `<`, `>>`, `2>`) is **not** currently implemented.
*   **Complex Shell Syntax:** Features like command substitution (`$(...)`), process substitution (`<()`), brace expansion (`{a,b}`), background tasks (`&`), shell functions, and advanced globbing are not supported as they rely on a full shell interpreter.
*   **Environment Variable Completion:** Tab completion for environment variables currently uses the environment `shell-llm` started with (`os.environ`), not the potentially modified environment within the `core.Shell` context.

## Features

*   **Natural Language to Command:** Generate shell commands from plain English.
*   **Command Execution:** Executes commands using a performant C core extension.
*   **Pipeline Support:** Handles command pipelines (`cmd1 | cmd2`).
*   **AI-Powered Error Explanations:** Captures stderr and exit codes, providing explanations and potential solutions using an LLM.
*   **Command History:** Persistent history across sessions (`~/.llm_shell_history`).
*   **Auto-Suggestion:** Suggests commands based on history.
*   **(Experimental) Command Completion:** Basic file/directory completion.

## Technical Implementation

### Architecture Overview

The project uses a hybrid architecture:

1.  **Core Shell Logic (`core/shell.c`)**: Written in C for executing commands and pipelines efficiently using `fork`, `execvp`, `pipe`, and `waitpid`. Manages the shell's internal state (CWD, environment variables, last exit code). Exposed to Python via CPython API bindings.
2.  **CPython Wrapper (`core/shell_python.c`)**: Provides the Python interface (`core.Shell` class) to the C functions using the CPython API. Handles type conversions (e.g., Python lists to C `argv` arrays) and memory management for interacting with the C layer.
3.  **Python Shell Interface (`shell.py`)**: The main interactive loop using `prompt_toolkit`. Handles user input, calls the `core.Shell` extension for execution, manages history and completions, and orchestrates LLM interactions.
4.  **Command Parsing (`shell.py`)**: User input strings are parsed into argument lists using Python's standard `shlex` module *before* being passed to the C extension. This ensures correct handling of quotes and escapes according to POSIX shell rules.
5.  **LLM Integration (`llm.py`)**: Manages communication with the Google Generative AI API (Gemini) for natural language command generation and error explanation.
6.  **Supporting Modules**: `completions.py`, `formatters.py`, `error_handler.py`, `ui.py`, `models.py`, `utils.py` provide specific functionalities.

For more in-depth details on the C core and Python wrapper implementation, please see [docs/TECHNICAL_DETAILS.md](docs/TECHNICAL_DETAILS.md).

### Build System

*   The project uses `setuptools` as the build backend, configured primarily via `pyproject.toml`.
*   `setup.py` exists mainly to define the C extension module (`core`).
*   Dependencies and project metadata (like version) are defined in `pyproject.toml`.
*   The standard `python -m build` command is used to create source distributions and wheels.
*   `cibuildwheel` is recommended for building cross-platform compatible Linux wheels for PyPI distribution.

### Testing

*   **Unit Tests (`test_core.py`):** Use `pytest` to test the Python interface (`core.Shell`) provided by the C extension. Ensures the C functions behave as expected when called from Python with pre-parsed arguments.
*   **Integration Tests (`test_shell_integration.py`):** Use `pytest`, `pytest-asyncio`, and `pytest-mock` to test the main `LLMShell` class in `shell.py`. These tests verify the interaction between the Python shell logic (including `shlex` parsing) and the C core, as well as error handling pathways.

## Contributing

Please refer to [`INSTRUCTIONS.md`](INSTRUCTIONS.md) for detailed development, building, testing, and contribution guidelines.

## License

[Specify Your License Here - e.g., MIT License] 

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

shell_llm-0.1.7.tar.gz (29.5 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

shell_llm-0.1.7-pp311-pypy311_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (26.6 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64manylinux: glibc 2.5+ x86-64

shell_llm-0.1.7-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (26.9 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

shell_llm-0.1.7-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (26.6 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64manylinux: glibc 2.5+ x86-64

shell_llm-0.1.7-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (26.9 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

shell_llm-0.1.7-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (26.6 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64manylinux: glibc 2.5+ x86-64

shell_llm-0.1.7-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (26.9 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

shell_llm-0.1.7-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (26.6 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64manylinux: glibc 2.5+ x86-64

shell_llm-0.1.7-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (26.9 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

shell_llm-0.1.7-cp313-cp313-musllinux_1_2_x86_64.whl (41.1 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

shell_llm-0.1.7-cp313-cp313-musllinux_1_2_i686.whl (40.1 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ i686

shell_llm-0.1.7-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (42.7 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64manylinux: glibc 2.5+ x86-64

shell_llm-0.1.7-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (41.4 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

shell_llm-0.1.7-cp312-cp312-musllinux_1_2_x86_64.whl (41.1 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

shell_llm-0.1.7-cp312-cp312-musllinux_1_2_i686.whl (40.1 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ i686

shell_llm-0.1.7-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (42.7 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64manylinux: glibc 2.5+ x86-64

shell_llm-0.1.7-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (41.4 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

shell_llm-0.1.7-cp311-cp311-musllinux_1_2_x86_64.whl (40.9 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

shell_llm-0.1.7-cp311-cp311-musllinux_1_2_i686.whl (39.9 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ i686

shell_llm-0.1.7-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (42.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64manylinux: glibc 2.5+ x86-64

shell_llm-0.1.7-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (41.3 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

shell_llm-0.1.7-cp310-cp310-musllinux_1_2_x86_64.whl (40.7 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

shell_llm-0.1.7-cp310-cp310-musllinux_1_2_i686.whl (39.7 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ i686

shell_llm-0.1.7-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (42.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64manylinux: glibc 2.5+ x86-64

shell_llm-0.1.7-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (41.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

shell_llm-0.1.7-cp39-cp39-musllinux_1_2_x86_64.whl (40.5 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

shell_llm-0.1.7-cp39-cp39-musllinux_1_2_i686.whl (39.5 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ i686

shell_llm-0.1.7-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (42.1 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64manylinux: glibc 2.5+ x86-64

shell_llm-0.1.7-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (40.9 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

shell_llm-0.1.7-cp38-cp38-musllinux_1_2_x86_64.whl (40.4 kB view details)

Uploaded CPython 3.8musllinux: musl 1.2+ x86-64

shell_llm-0.1.7-cp38-cp38-musllinux_1_2_i686.whl (39.4 kB view details)

Uploaded CPython 3.8musllinux: musl 1.2+ i686

shell_llm-0.1.7-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (42.4 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64manylinux: glibc 2.5+ x86-64

shell_llm-0.1.7-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (41.1 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

File details

Details for the file shell_llm-0.1.7.tar.gz.

File metadata

  • Download URL: shell_llm-0.1.7.tar.gz
  • Upload date:
  • Size: 29.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for shell_llm-0.1.7.tar.gz
Algorithm Hash digest
SHA256 eaeae096fed56cae83fc814e92cf4fac1f0ab091059fecf8d8715d4ae5f9e49a
MD5 02b0ddc685ff74ac9f3745c7bcdcc1f6
BLAKE2b-256 5471694883cebbaf2f3868f0953b1e21eb8cdd1b787550fef7d25dddacbc6749

See more details on using hashes here.

File details

Details for the file shell_llm-0.1.7-pp311-pypy311_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for shell_llm-0.1.7-pp311-pypy311_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3187a5c319d5ff178821dd05e9443bba008f2b3db5e079849461376e00ab8158
MD5 ad1e77cf791ddd74bba600d1bde9d643
BLAKE2b-256 efaff1f29973cfca36e280d73e4e4df94b6e667394ec4a0e25102a3b881ab4d2

See more details on using hashes here.

File details

Details for the file shell_llm-0.1.7-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for shell_llm-0.1.7-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 4d928dfe180bbd616a20446efa6db0171828cea51d6c554f24986c6cb08bd3b4
MD5 f14929878a9ac90b7d9a026da249577a
BLAKE2b-256 52beab8b6dc73f7ce6df5d75b34ce3608141e59762fffbe0daff58f6081f5a40

See more details on using hashes here.

File details

Details for the file shell_llm-0.1.7-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for shell_llm-0.1.7-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5588a3d84a55938723fa6a6734ecfc68d7ad0b5d1f8c595562a0834440646cb3
MD5 e7093c5f60822a97372a8acd0b2df308
BLAKE2b-256 7f087a6175990eece9400b6dd025a418a5673a9648f86327c8ecbfc438354a18

See more details on using hashes here.

File details

Details for the file shell_llm-0.1.7-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for shell_llm-0.1.7-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 25806fab1534c46ada425c67fdea3b6c2d218151be7de21c1f547f45ea9d2f73
MD5 397f40796846448a892c6a8c6f0dd2f1
BLAKE2b-256 e74daa618ffc23bdc3c46587f59651b04e9f30c3fff4b34a84aae9bee53fd544

See more details on using hashes here.

File details

Details for the file shell_llm-0.1.7-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for shell_llm-0.1.7-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f58f9170fdbf191414f0f3b9181e3d176094260e18f5f362b2e96a8d235f8d6e
MD5 ccbae9d3178df1806587dd60d3ddc17f
BLAKE2b-256 7362c7e3e7ca824977eafe30bd817fd14af55c6feaaa948b7d01d234105e8556

See more details on using hashes here.

File details

Details for the file shell_llm-0.1.7-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for shell_llm-0.1.7-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 ef86fe20b2f20f67c83995a1d80c81ff6761e34e210af8ff5e7544ef0259dcf3
MD5 b7ec6b7948790a0b86f29d19c6d6860b
BLAKE2b-256 f3c47607b22b9326d2309e13536caec6d50ae3a6713295acecb94ef32ec66a5c

See more details on using hashes here.

File details

Details for the file shell_llm-0.1.7-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for shell_llm-0.1.7-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e4bd45e281380526c5611f10e9ecd8021cb7c39f2c50cb5d7f49822c574e1121
MD5 efd13f6ea46e05ad3b8b8863ffb181b7
BLAKE2b-256 35bbb4381013203b20e0dc81b79fe054701486ba128d669633e18fb6428e6e80

See more details on using hashes here.

File details

Details for the file shell_llm-0.1.7-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for shell_llm-0.1.7-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 fc6cbd1b554d6af0f0e99723ac78c0c292935122ea81792e51e8505d956a2209
MD5 b056a2ec1f8597d68e297d862d89e588
BLAKE2b-256 6287c07de17869e5927ce3d2e76fa10961da99a5427b487ad9d0b60219137d49

See more details on using hashes here.

File details

Details for the file shell_llm-0.1.7-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for shell_llm-0.1.7-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 926fef0b25cc98bdbc74fcee86f9b06dbff198accaef321a0c380b0fc73f47f2
MD5 2874b2c8373bfd5ce369bfa901bcb7f1
BLAKE2b-256 5768676be64441c6dfecd555c485ab36f789b2b8b4a0565dded24faa6c4af18b

See more details on using hashes here.

File details

Details for the file shell_llm-0.1.7-cp313-cp313-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for shell_llm-0.1.7-cp313-cp313-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 c5a46d78d1452b1765e02779a3fb7a15b77c57db52533114e3e8be99d305ce7e
MD5 231e5d899109681808000519bae747b1
BLAKE2b-256 ea94c84065b5fb0ce087a2ce5891e537932de8434b35457d5cf2115be62f370f

See more details on using hashes here.

File details

Details for the file shell_llm-0.1.7-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for shell_llm-0.1.7-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 55cd75c9d621f8a26063b38cfa863edf4603d215c8dce12aecbf76e07a17603e
MD5 a73a3a8c210baf189b0770bc2e1d2fc4
BLAKE2b-256 8e82b0561d23a5ed4109628899c97e77fa18e34065c0799148619b0c02982622

See more details on using hashes here.

File details

Details for the file shell_llm-0.1.7-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for shell_llm-0.1.7-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 9965755085887a22016c633b5bf6c51186e5f8ad95dbae7ff4f1551cfa130bf1
MD5 66a3959dd966b16f197f7d704adf4c1e
BLAKE2b-256 07726a796a61dfade09b2c8d1d53281bc24f43a03f29d76c0e03d46e052060c5

See more details on using hashes here.

File details

Details for the file shell_llm-0.1.7-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for shell_llm-0.1.7-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1a98d600b94afcf130e4bf6aa375ce8e448c4d10945d769a5d33855dbe7ea687
MD5 77cb2db350920b693a35094f8fa14fe3
BLAKE2b-256 7693fcc85cfb3cb75b833af95e9492f89be3c5adee0945ca1f4ef54db4bcf715

See more details on using hashes here.

File details

Details for the file shell_llm-0.1.7-cp312-cp312-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for shell_llm-0.1.7-cp312-cp312-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 b5aa293a9955b05cdd5de42b688561d929783abc1670b988eb1c5f4afd7ea821
MD5 aebbc1f247653b8d7b808c16af95cbdd
BLAKE2b-256 777c2032f852fc507ddcc11dee4b87f30fea012b26f5be161b52c1b1e3457b85

See more details on using hashes here.

File details

Details for the file shell_llm-0.1.7-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for shell_llm-0.1.7-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 874149fa1d1e14b507870b8156630d5a8fd9291541a22fb53ebf536a9294aacb
MD5 49bd07c0673540f0a58f91926b8494d9
BLAKE2b-256 4562a110833e983e9a6a623defc8d766e80f958dfa6d762eee66b4f256993c5b

See more details on using hashes here.

File details

Details for the file shell_llm-0.1.7-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for shell_llm-0.1.7-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 0d92f385c267a2b4917430516b83b1ce519856360f353ebcfb4afafe5285cd8f
MD5 7f7a551a79fc3ac3ecfec1f2911f3a75
BLAKE2b-256 34f2093e166ec8eccf87c0874013d3fd2080a56b87dd4a801129cf4443b6d151

See more details on using hashes here.

File details

Details for the file shell_llm-0.1.7-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for shell_llm-0.1.7-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3d8adfe74944f2cfb831599275172161ff61a29768447137cb58874b7fdb683f
MD5 50af97f550d7c999ebe5dd1b483aa250
BLAKE2b-256 0270f393c95d2aa0b961ca7c562fbd6fa6529ece9a1b517628d272dba1482ff2

See more details on using hashes here.

File details

Details for the file shell_llm-0.1.7-cp311-cp311-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for shell_llm-0.1.7-cp311-cp311-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 9cf77823bb957d2f9969e6b170563193ccbd10e6e9c3123921fb89463b5ceb18
MD5 af5e993291971c3cb04bde8b31191c69
BLAKE2b-256 ed5bfd75ad88d97c5deffbee6617995e9b33aee6b9debd0b40c9c7785928f54e

See more details on using hashes here.

File details

Details for the file shell_llm-0.1.7-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for shell_llm-0.1.7-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1fb999b2b6fd0bd0ffc8f8282a98d746488de7cdfbb78977789295de5b258933
MD5 6ec6010c7e08aeae08778ca1344d4756
BLAKE2b-256 e3b65ba47da6324a700df9734f9b82e76ffac579bb0a7a094f5e52e7a739401a

See more details on using hashes here.

File details

Details for the file shell_llm-0.1.7-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for shell_llm-0.1.7-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 64b3c467ab67e3d7dd00dcce27424ca45e15c504a04297e567b7e955e7a78329
MD5 457ec99c03fc4ff52ac99548334afe53
BLAKE2b-256 4e2e5ebffd4008ae905337287e0579b78d7c096ccc517b69704ab98f7dfa2c83

See more details on using hashes here.

File details

Details for the file shell_llm-0.1.7-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for shell_llm-0.1.7-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 508e30e688d1c63ca4e7cbacd500d46beabf1c7c64a63e9d2e643c9369158cd7
MD5 5c6aef53e2d14cd097312702fd0f37d1
BLAKE2b-256 b590684add8226f9712a2c535c84c8dfc2b983823b12449683b6d19ac48b2ae4

See more details on using hashes here.

File details

Details for the file shell_llm-0.1.7-cp310-cp310-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for shell_llm-0.1.7-cp310-cp310-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 9c5387a992178b35762dc7c67d7f972a114ea40711f2f9f1e7afc9af27544ac9
MD5 3b10ea347651f65d31daef72a0454e6a
BLAKE2b-256 f71041104b5d4369ac28057fce7b5dc0e61799ee1d06f8066649dcbbdaec9928

See more details on using hashes here.

File details

Details for the file shell_llm-0.1.7-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for shell_llm-0.1.7-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 40e11ce07bb2a40d4410f42d771622f83f0cc9e4a86c16045a5684f6c0539f1a
MD5 79183c11a4428a6ef49411c5c8963fd4
BLAKE2b-256 16893ae6d98514302e15cfdb6d4fe527143fc7e7fde9d250e0ff635d077d6d46

See more details on using hashes here.

File details

Details for the file shell_llm-0.1.7-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for shell_llm-0.1.7-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 440e22a029745d70d51b7261e74493b7d17b774e74aa9b5fecbbe79a4ef33058
MD5 82a69bf19ed929d2c4afba15bc97223b
BLAKE2b-256 d5a7a991c7f37b4b959969675f8a0b276ef69154817b94ae826a1104b1ee796f

See more details on using hashes here.

File details

Details for the file shell_llm-0.1.7-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for shell_llm-0.1.7-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d42a53a3973b08a16b35f44a806d7ead414b79a196b2bbfe4d8638c83588ac6e
MD5 91a37f2e07466c5ccac11146ed2c14b2
BLAKE2b-256 7cdc1061f97dc6e21af43214c918ef45c9e6882e21848c8d1e2d8770638fdaf7

See more details on using hashes here.

File details

Details for the file shell_llm-0.1.7-cp39-cp39-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for shell_llm-0.1.7-cp39-cp39-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 8e9cb9a9d5d8c371de93540df7934944ccb6e78f10509127d431e759485f37f7
MD5 e9e8a339934149680fa787cd51c080a7
BLAKE2b-256 3fcb135b582d5dc65c69a8874618086a77dd85b75d5b290a9deb56ff9f56bbf2

See more details on using hashes here.

File details

Details for the file shell_llm-0.1.7-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for shell_llm-0.1.7-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 eab0ed044b436e60951d56a39a842aab85477146a650cf3e3db576f58fbf548f
MD5 982a913fc1e49a3535f3bfa9ed4f0e56
BLAKE2b-256 84bed1cc7dfa207aebfe3820ff12a8398e1f83d3bf041d487cdd98b186aa69b6

See more details on using hashes here.

File details

Details for the file shell_llm-0.1.7-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for shell_llm-0.1.7-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 a6f2b6bb310a7a137e982a31d8a62333039f8e87a806fb47310ade379550acb8
MD5 436bf57c1ffdfdccbe19e981e738436d
BLAKE2b-256 3f2342d96f6addc9c944cff9831c277fa62b508d167e62eb19ef8e0b49b3229d

See more details on using hashes here.

File details

Details for the file shell_llm-0.1.7-cp38-cp38-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for shell_llm-0.1.7-cp38-cp38-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 43ede56505f9a2eacd89900569b93ad16bd38fd84c2297b86c5d2cdf5caccdac
MD5 843e350173df9978cd21b54f120aca35
BLAKE2b-256 95efc6ae5ecc1d3cc3229eca32d2f910e5221cbd22aaad0b88bdd4615c9eaa5c

See more details on using hashes here.

File details

Details for the file shell_llm-0.1.7-cp38-cp38-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for shell_llm-0.1.7-cp38-cp38-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 0f55ca2fa88be9f5b7da60240910c04cfb375133aa6ad084825a165840ec653d
MD5 d281fa95512f663d9699075c42e801b9
BLAKE2b-256 c0f458990d6530c70b3e31506c463535b9a9a24dd2137051ae1b52ab358341f1

See more details on using hashes here.

File details

Details for the file shell_llm-0.1.7-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for shell_llm-0.1.7-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 05519378b6ef5056cb6d0de7222a93b1c25edd111cc6cfc7059a8945a76686dc
MD5 221e3921bd962a7093592bdf94c46d45
BLAKE2b-256 eda7b2d407087fc3287e8b5e17f945bac0804a7edad4c3648b7a83f098deb9cb

See more details on using hashes here.

File details

Details for the file shell_llm-0.1.7-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for shell_llm-0.1.7-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 8bbbeaa7a6fdebe61223f18aa533bb5a38c58b83f6c8a3fd7802a344007bc45e
MD5 ce2ef7e9f98d6b9f5c3ad476eefa6bb4
BLAKE2b-256 8b5ab027a1ed757ddf7fbce632770d26e36135289ff9355a37bcdf63e41f8753

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page