Skip to main content

A tiny Linux command whisperer that suggests shell commands based on natural language.

Project description

A tiny Linux command whisperer (Alpha version)

WHIS is a tiny Linux command whisperer/generator based on LLM, written in Python.

The main goals are:

  • minimal interruption of the workflow
  • fast
  • free and unlimited suggestions (with local LLM)
  • privacy (with local LLM)
  • minimalistic interface

Alpha version

Please note that this is an Alpha version and is not ready for production use.
So far it's only tested on Ubuntu 24.04 and Python 3.12.

Usage

Showcase

Install

  1. Install pipx
  2. Install WHIS with pipx
    • pipx install whis
  3. Configure your provider and model by either
    • a) Config file: ~/.config/whis/config.toml (or XDG_CONFIG_HOME/whis/config.toml if you use a different location)
      • create/edit the file with:
        llm_provider = "ollama"   # e.g. ollama, openai
        llm_model = "qwen2:7b"    # e.g. qwen2:7b, gpt-4o-mini
        
    • b) Environment variables (have priority over config file)
      • WHIS_LLM_PROVIDER
      • WHIS_LLM_MODEL
  4. Run whis interactive session by running whis in terminal

Todo (business logic)

  • one-shot mode: whis "list mp3 files" without the interactive session
  • explain command that sends request for a brief explanation of the command
    • should use a new conversation without a previous context
  • continue - loads old session and continues refining
  • API support
    • Gemini
    • Anthropic
    • OpenAI-compatible API (LM Studio, LocalAI...)
  • dangerous commands red warning (e.g. rm stuff)
  • whis inner history - arrow up should get the latest input even after session restart
  • interactive configuration

    • whis config
      • provider, model
      • action - copy+paste, copy, maybe execute?
  • other modes (current "quit then paste" feels unreliable)
    • copy to clipboard
    • execute directly (dangerous)
  • more dynamic context in system prompt (OS, pwd, git branch, etc.) - some might need user permission
  • command syntax check before suggestion
  • use one specific color for all responses and another for user inputs

Todo (technical)

  • Python versions support (3.10+)
  • tests
  • consider click for CLI
  • checks
    • flake8
    • black
    • isort
    • mypy
  • better command pasting (now it uses xdotool and xclip with process forking) using bash functions
  • there seems to be a conflict between black and ruff

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

whis-0.1.0a5.tar.gz (12.8 kB view details)

Uploaded Source

Built Distribution

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

whis-0.1.0a5-py3-none-any.whl (13.0 kB view details)

Uploaded Python 3

File details

Details for the file whis-0.1.0a5.tar.gz.

File metadata

  • Download URL: whis-0.1.0a5.tar.gz
  • Upload date:
  • Size: 12.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for whis-0.1.0a5.tar.gz
Algorithm Hash digest
SHA256 2c74e5f49c8c4b53e44edec9082a772b1501b39b061d8d11c7d0cb6a3a1715d9
MD5 7f43da2647b00fc5b4150496ee38c42f
BLAKE2b-256 49d7e908a4a94ab0dc295294d1c7dfa3f8b5595a12c68b6919cca7bc2374bc1d

See more details on using hashes here.

File details

Details for the file whis-0.1.0a5-py3-none-any.whl.

File metadata

  • Download URL: whis-0.1.0a5-py3-none-any.whl
  • Upload date:
  • Size: 13.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for whis-0.1.0a5-py3-none-any.whl
Algorithm Hash digest
SHA256 153b597b124f26d341aa713b0838b107539ba9ee4e26635e51e902b66a8553b4
MD5 f53a9c5c7b2edee710f515f225c1c08b
BLAKE2b-256 bc1fe23d67b6ac965d906c1596d207e62dcba71e0e64779475e2923d2fdd9241

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