Skip to main content

This is a handler running on top of the Bash shell that implements real-time command history completion from a drop-down list.

Project description

рџ§  Intelli Shell рџђљ

This is a handler running on top of the Bash shell that implements real-time command history completion from a drop-down list using the Prompt Toolkit library.

Why do need this when there are many other great solutions, such as hstr and mcfly? It's simple, I find it inconvenient to call a separate interface for navigating through history, I am used to using PowerShell Core in Windows or Linux (activated by pressing F2), which has become standard for me.

Install

For quick installation on your system, use the PyPi package manager:

pip install --break-system-packages intellishell

To run use the command:

insh

Completions

  • History filtering (takes into account the order of execution with the exception of duplicates) and running the selected command by pressing the Enter key from the drop-down list or selecting it using the right.
  • Regular expression support when filtering based on the position of the entered phrases in the command using the ^ symbol at the beginning or end of the line (by default, the search is performed regardless of the position of the entered phrases separated by spaces, like fzf).
  • Quickly navigate through directories without leaving the current input line, as well as select files for reading or copying.
  • Displays the execution time of the last executed command and the full path to the current directory.
  • Supports completion of all available variables of the current session via the $ symbol, as well as executable commands via the ! symbol.
  • Search based on the output of the last executed command when the @ symbol is used at the beginning of the input line.
  • Integration with cheat.sh to output cheat sheets of the last entered command in a line via the ! symbol.

To read the output of the last command, a second thread is used. To compare performance on my 1 core system I used cat to read the output of a 160k lines file which takes on average 4 seconds, when using two threads the reading time increases on 350 milliseconds.

Hotkeys

  • right – select a command without executing it, which is convenient for continuing recording or moving to the next directory to quickly display its contents.
  • backspace - in addition to deleting, updates the history to reflect the changes.
  • ctrl+c - clears the current input line (buffer) without moving to a new line and does not terminate the executed command (has no effect on stopping a running program, which can also be interrupted).
  • ctrl+l - completely clears the output console without affecting the input console and without changing the last execution command.
  • ctrl+q - hides the drop-down list until the next input.

Issues

Because execution of each individual command occurs in external and independent processes, some actions may not perform as you expect.

Known issues and limitations:

  • Multiline input is not supported.
  • Interrupting some commands may not return the final result (for example, ping will not return statistics).
  • Most interactive commands (which require input from user) may not work reliably.

Backlog

  • Passing variables and functions between command calls is supported.
  • Added support for some interactive programs (e.g. nano, vi/vim, top/htop, mc/mcedit).
  • Autocomplete parameters (flags/keys) for all commands (using source bash-completion and declare functions).

To fully utilize autocompletion for commands, it is recommended to use inshellisense or fzf-obc.

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

intellishell-0.5.0.tar.gz (14.9 kB view details)

Uploaded Source

Built Distribution

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

intellishell-0.5.0-py3-none-any.whl (12.8 kB view details)

Uploaded Python 3

File details

Details for the file intellishell-0.5.0.tar.gz.

File metadata

  • Download URL: intellishell-0.5.0.tar.gz
  • Upload date:
  • Size: 14.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for intellishell-0.5.0.tar.gz
Algorithm Hash digest
SHA256 8f4e311bf76b4691effb6ad628a17333d9c32f71d0355e71b6d3b343ef05f160
MD5 2f7749dcdeaaaf27e72a48a2e1852f38
BLAKE2b-256 54b4a82ff3c404262e00e9ccf9b52c9881211e92abe7b8bef9c0c0a96addb203

See more details on using hashes here.

File details

Details for the file intellishell-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: intellishell-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 12.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for intellishell-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b7e33419cc9ecf7db95873687f3a251f477adc591fabfbd51f22800b3975b623
MD5 b871f621f3b2913e0ccc7ea29075ead7
BLAKE2b-256 188c15f1bc24b322e1506a59208db9b1f12f136220d724566f7682078c0331a8

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