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
    
  2. Create and activate a virtual environment:

    python -m venv venv
    source venv/bin/activate  # On Windows use `venv\Scripts\activate`
    
  3. Install dependencies (including build/test tools):

    pip install -r requirements.txt
    pip install build twine cibuildwheel pytest pytest-asyncio pytest-mock
    
  4. 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
    
  5. 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
    
  2. 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
    
  • Smart Command Completion: Press Tab to get context-aware completion suggestions for commands, paths, flags, and environment variables.
  • Pipe Completion: Intelligent completion works after pipe characters (|) to suggest commands.
  • 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.
  • Intelligent Command Completion: Smart completion for commands, paths, flags, and environment variables with special handling for pipe commands.

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. Command Completion (completions.py): Provides smart completion for commands, paths, flags, and environment variables with special handling for pipe context.
  6. LLM Integration (llm.py): Manages communication with the Google Generative AI API (Gemini) for natural language command generation and error explanation.
  7. Supporting Modules: 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.

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 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.8.tar.gz (30.4 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.8-pp311-pypy311_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (27.4 kB view details)

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

shell_llm-0.1.8-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (27.7 kB view details)

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

shell_llm-0.1.8-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (27.4 kB view details)

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

shell_llm-0.1.8-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (27.7 kB view details)

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

shell_llm-0.1.8-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (27.4 kB view details)

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

shell_llm-0.1.8-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (27.7 kB view details)

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

shell_llm-0.1.8-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (27.4 kB view details)

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

shell_llm-0.1.8-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (27.7 kB view details)

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

shell_llm-0.1.8-cp313-cp313-musllinux_1_2_x86_64.whl (43.0 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

shell_llm-0.1.8-cp313-cp313-musllinux_1_2_i686.whl (41.6 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ i686

shell_llm-0.1.8-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (44.7 kB view details)

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

shell_llm-0.1.8-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (43.2 kB view details)

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

shell_llm-0.1.8-cp312-cp312-musllinux_1_2_x86_64.whl (43.0 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

shell_llm-0.1.8-cp312-cp312-musllinux_1_2_i686.whl (41.6 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ i686

shell_llm-0.1.8-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (44.7 kB view details)

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

shell_llm-0.1.8-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (43.1 kB view details)

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

shell_llm-0.1.8-cp311-cp311-musllinux_1_2_x86_64.whl (42.8 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

shell_llm-0.1.8-cp311-cp311-musllinux_1_2_i686.whl (41.5 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ i686

shell_llm-0.1.8-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (44.5 kB view details)

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

shell_llm-0.1.8-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (43.1 kB view details)

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

shell_llm-0.1.8-cp310-cp310-musllinux_1_2_x86_64.whl (42.6 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

shell_llm-0.1.8-cp310-cp310-musllinux_1_2_i686.whl (41.3 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ i686

shell_llm-0.1.8-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (44.4 kB view details)

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

shell_llm-0.1.8-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (42.9 kB view details)

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

shell_llm-0.1.8-cp39-cp39-musllinux_1_2_x86_64.whl (42.4 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

shell_llm-0.1.8-cp39-cp39-musllinux_1_2_i686.whl (41.1 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ i686

shell_llm-0.1.8-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (44.2 kB view details)

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

shell_llm-0.1.8-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (42.7 kB view details)

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

shell_llm-0.1.8-cp38-cp38-musllinux_1_2_x86_64.whl (42.3 kB view details)

Uploaded CPython 3.8musllinux: musl 1.2+ x86-64

shell_llm-0.1.8-cp38-cp38-musllinux_1_2_i686.whl (41.0 kB view details)

Uploaded CPython 3.8musllinux: musl 1.2+ i686

shell_llm-0.1.8-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (44.4 kB view details)

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

shell_llm-0.1.8-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (42.9 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.8.tar.gz.

File metadata

  • Download URL: shell_llm-0.1.8.tar.gz
  • Upload date:
  • Size: 30.4 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.8.tar.gz
Algorithm Hash digest
SHA256 db25361b7e5e05958719b8bfd545099ca4ee88bcf47385cb3115023c5362a8fc
MD5 10ff2630928b03fa5462db1a64f844b8
BLAKE2b-256 e6bfd0a673708c29de5f774040bd2e738b98d002ac17111e1e4daab6b2e35d52

See more details on using hashes here.

File details

Details for the file shell_llm-0.1.8-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.8-pp311-pypy311_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e39bea87e08b37c3a49e60bebaf0eca477cfb2c140e58305b2a682819c86658d
MD5 813229d61bf8ba53fafd4202451a1c91
BLAKE2b-256 10212f1eb03eeb7c77b537cfab75070ad79d4bdd908b7efc17ae885afc0459d3

See more details on using hashes here.

File details

Details for the file shell_llm-0.1.8-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.8-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 2dc6a407c03ed0448d75df02e30d1144d8616cea85821dd16f63bfc24e22f9f7
MD5 6879615451d6e4e2e318588f928795e5
BLAKE2b-256 abd7f18f19d08de602aaca18bd01cf44498367fb706449087aa43175fa285a2f

See more details on using hashes here.

File details

Details for the file shell_llm-0.1.8-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.8-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 316898b4ff218d5de479e9e297ec5a2be799436facbd3af0a74fb546d96388bf
MD5 11632efd76a06210fe1ed6382e3b13bb
BLAKE2b-256 d0be091d70af8b9926b9ce24871c21b87ae1de94073593ca4644c71f8c290416

See more details on using hashes here.

File details

Details for the file shell_llm-0.1.8-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.8-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 828cc4a783fd3a12347d5dbcb4f765a8463539a84e3bde425f47d25c107cddd9
MD5 ffe918045e558f14ab83f7a2b17b1ca5
BLAKE2b-256 d61e1fc2f4afe4d0c061d0629ed643e66762c2bb3a8f48e63ac493c82e70fa11

See more details on using hashes here.

File details

Details for the file shell_llm-0.1.8-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.8-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d5f0d18e292c8c24ffc93ce3073ce8fc4bb2ea207831d9c1612333c6beccf9dc
MD5 8f1b778f997d8e0ae6e0a6e9e8e0c70a
BLAKE2b-256 af0c4a18d6811be5f11be93b6258313bd80e09c97e739b503484d2e10b9d2128

See more details on using hashes here.

File details

Details for the file shell_llm-0.1.8-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.8-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 127ef58b652ea045c61f0d4cec6e3b3bf75ba6e48a569f7822a3d48e1b693866
MD5 a20e5e5013197e7e3eebb99cb3a55bde
BLAKE2b-256 fc748846d94c7d78fbaef6d8c129c90b4814e8c172dd1b92f9cc505952da181d

See more details on using hashes here.

File details

Details for the file shell_llm-0.1.8-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.8-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 19b098237537b51b6b5f762515fd23175df66ea5c479cfc83211f4035a95d154
MD5 b51c5d4d6eb22a3bb3a2bf74993db95e
BLAKE2b-256 8c7578023b09d0c658886fced67af97734792dca81f171a526c4db0795433d9a

See more details on using hashes here.

File details

Details for the file shell_llm-0.1.8-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.8-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 412fc8c027743f2eeba06b782234da59e1d1110d335d6bed0105e5c877b8b20a
MD5 676d630d0f0b865bc9cb0e6e6fad48f9
BLAKE2b-256 af96b119a727872602aa1e5c7dc7fa097cd23931dab6bedbefa18b824fb5db4f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for shell_llm-0.1.8-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 09e7e90bf3954ab7766cebdea782bfc1142b8022447e2d8191a60ffbef7f3d9b
MD5 a494aa40bf8f91288ea1b16fbc65cff2
BLAKE2b-256 c64fc2849f3b21b9fcb0a5e263c792a94b1ed9587924ec3d13658094f591f8eb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for shell_llm-0.1.8-cp313-cp313-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 119cad8f1628617a22ef2e48425954a125e475f83a3acfefd43b0dad568deac8
MD5 582815860c8076350fb4d65c4ad4abdd
BLAKE2b-256 975332f22405a5bf4853263dbdf1770032e8485986dbf97757629108ff12b764

See more details on using hashes here.

File details

Details for the file shell_llm-0.1.8-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.8-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d61d647963e3360505a658d8950e35491a4df318483f87e50bbcdb932671dfa7
MD5 e14e8311bda676ff928f5641dd630586
BLAKE2b-256 52f7c6dba338daab34adfb1cc1bb85cca668c797649d56658bcc35f656fb9001

See more details on using hashes here.

File details

Details for the file shell_llm-0.1.8-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.8-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 bbfc403ad2fdfa6ccc76bdb0c782e717dd5bcf8831163ba5c2c836c3a9bd549c
MD5 93b943e743b2812ec3f294107d7f2508
BLAKE2b-256 e143baf0e87a8b6e07a820c27a54715042ec2fce0c8b08bff46b7accecd03f93

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for shell_llm-0.1.8-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e2cc1e96a68ebfa530034296b61aa0b8c35fa1a27fc66329de7758212c3aa80c
MD5 5739d6315b204a0a9e3b093c634bf8a8
BLAKE2b-256 51712d7dd777ede3d3b111be9638678624cfb73d3dcb137e35d22e2a34833bbe

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for shell_llm-0.1.8-cp312-cp312-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 2a32e224788fb2fd45441331d338eba55737772f4cbd23f4afa3f723ee1dd3a8
MD5 6aa1fbe9dec9109052f4bacada181ffa
BLAKE2b-256 072ca931b571b514b9fc4af7c09eb4b54cecd51fe11085ad4643e0083ef6d5be

See more details on using hashes here.

File details

Details for the file shell_llm-0.1.8-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.8-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 75ccc8697a5c87e9cc60df6266eb1377d575a781cbfe484af27e370508509d08
MD5 f38e1aa100edf942b9b692d5fe9ac294
BLAKE2b-256 0b5de385e1320a6ab60d950051d8f0d25df77f29da0cf26597f7198e05f33a1a

See more details on using hashes here.

File details

Details for the file shell_llm-0.1.8-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.8-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 1f5c8ac9a688f968859c74ffa4a2eebcaa7490cd4e046680240d4bcbe2fb9555
MD5 34989d297dde42fdaa5a449fc2d78ed1
BLAKE2b-256 432a1493c73ccd76e9ce1461d8b0e2c126785ed3f2183dec3b9b97164a543197

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for shell_llm-0.1.8-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9dd376f1427686cf9e7acb817d52922bd86e8d9b2ed0dbb28f79a82d3688d507
MD5 560f92343966928143b1c0968f7e015d
BLAKE2b-256 deabdf5dbcec76249872d94d0805beaf715c8fbd0258047efc5ac4a48e94ed33

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for shell_llm-0.1.8-cp311-cp311-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 58081df9da673c822ef952f1f2d135e5335501a51e4519001f8ec82e790ccd0b
MD5 a5004f49d4fb5b9d15794985824763c9
BLAKE2b-256 66ea5e22cb04f2a1ec6a10141c36a914cd74e93471638e82194bf15f70723a02

See more details on using hashes here.

File details

Details for the file shell_llm-0.1.8-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.8-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bd2b1590d39e3c7ac5ecf9113c40183c0d293503f438673f1e02fca86bbf21ce
MD5 d3f4f2380d589e80367fffb82e8f6883
BLAKE2b-256 2d29432df8d7ec3253f1acf7b74f24855e67b9bb0bcbb6840892fa85c6513547

See more details on using hashes here.

File details

Details for the file shell_llm-0.1.8-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.8-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 8360b46a5a969c6b5e12504ebb4771d8ee111f92bfe9fcbd96aee5a401e03978
MD5 0e23904fd29f9e1972fa61520cf06019
BLAKE2b-256 5fbe647b675d6b54b5eefcac5f9deb7b64b8690d056952d2a9750436eb99dd17

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for shell_llm-0.1.8-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 804bc23bae1b313916ad8bcefa5a18738ada90756e862d0d683b40ce9602661e
MD5 a4e7f12f41cd75629b88671c5fbb0cc5
BLAKE2b-256 e52c1383bedd97d73904643bf4dcdbd5302a2e0c165b26b4c7a02c4d5d1eee38

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for shell_llm-0.1.8-cp310-cp310-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 8b4a80d14c610b40d5865a42b84e26695f322f94c4fe4086966d375971d38921
MD5 62fe94c1a90169a659ef40932dc054cc
BLAKE2b-256 66f83cf418301d892c89805ee2d14f87716b3bddafaf573a4549ce36513e5f91

See more details on using hashes here.

File details

Details for the file shell_llm-0.1.8-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.8-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 230e19b8242188fe0f81289b4377207b251d6667df30eee4a4397d6e9e7fd4d5
MD5 e49dd5b09e18bff264c754cff535e361
BLAKE2b-256 585b24ba84e60a820b4a71f28df29e1feab7b3eb2612764758facfc410ced674

See more details on using hashes here.

File details

Details for the file shell_llm-0.1.8-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.8-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 222d72d476178375bc635ad06eef29cc0bacc947ec649e7cf3685b2054816de8
MD5 c5d36fcaa11075f6756a2dbc878c79c0
BLAKE2b-256 3ad2b8c398c08c721e986a7c3f3018bfa9646e6728ae6bcb78fe3b781010ac39

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for shell_llm-0.1.8-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3ae11688801d7564ddaaf0b76032442dfb25f63d354d2ed727aa4fd9c57b4fea
MD5 95bd64d5d5283f5ce7d53d72ba55c4f8
BLAKE2b-256 9a1ab56bad349ab96c318ae30e563aa3c1b851aefa39498475f6462348515e7c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for shell_llm-0.1.8-cp39-cp39-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 bd03a512c7453daafe0e588bbf4889253a03718fa4a82d39b5d392fa31e9efca
MD5 32f933a777b5c7022c491cca4143ad26
BLAKE2b-256 a6951445afd31708458980cf3b9b5ebd19ad1bc894c9a9bfbe52cd5d98b38b8d

See more details on using hashes here.

File details

Details for the file shell_llm-0.1.8-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.8-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d42e0e6702687d14a37ea904abedcc49c0a43dc2d850c6505f416cf38a9b1519
MD5 19420de578955314176281c1f8be699d
BLAKE2b-256 23f5ab1ae646db7038e39f88be80de3f4c4f3c5f1b740caf98cab334280620bc

See more details on using hashes here.

File details

Details for the file shell_llm-0.1.8-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.8-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 46077862ab6774f1f34da5d322036da126e04e23c8e968ffa3d868659f9f8112
MD5 44fafe268617789c83531a6ee6abe45e
BLAKE2b-256 c3d12a03ef312ac2d992f4e44ba2e8720a12720d37aeaeb10e56057a4b5fb6f1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for shell_llm-0.1.8-cp38-cp38-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 96374cf24b07ae7090781473614a696e398f4fbf3f5f156baf02316003054081
MD5 679616e9dc5cb5f2ace7a622acb3a2c0
BLAKE2b-256 fac30b59498b665232f53f9af76dcea44fdb1038e643a456b1e3473442a91815

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for shell_llm-0.1.8-cp38-cp38-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 656a89ef9cf5123c96f3f0e6ffd7274d2e79f26e3af4ca6e26bc8f6654c7e2af
MD5 671c49855bdd5979b98c16376d170c89
BLAKE2b-256 39d545f95acfbe409d65ac01be31ec060ceeeb3a8f01c3b61a92b86bd73858b7

See more details on using hashes here.

File details

Details for the file shell_llm-0.1.8-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.8-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4f1de318a53bf1444ac5a687f6a4f9231fe586542fd5f02f250b14c95603604f
MD5 a1c36cb82cc84eb9f5ac7a891c945873
BLAKE2b-256 6f052aac236d2b3ea5a9eb3be08a8d04c20c404360db81cb5e538052d5137e41

See more details on using hashes here.

File details

Details for the file shell_llm-0.1.8-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.8-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 2797ff56e5e8f5fb954b2690393fbf120076216b403a15fb09bac6952d798673
MD5 c65865f85d9cfb9db36ecfc0718d652a
BLAKE2b-256 443dcda74fe362aabb67fbb3a7f8ec78ecbcc0114af88641b0e45d2b73a2536e

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