Overview

Clink combines the native Windows shell cmd.exe with the powerful command line editing features of the GNU Readline library, which provides rich completion, history, and line-editing capabilities. Readline is best known for its use in the Unix shell Bash, the standard shell for many Linux distributions.

For details, refer to the Clink documentation.

Starting Clink injects it into a cmd.exe process, where it intercepts a handful of Windows API functions so that it can replace the prompt and input line editing with its own Readline-powered enhancements.

Download

Downloads are available from the releases page.

See the issues page for known issues or to file new issues.

Feature Highlights

Installation

You can install Clink by running the setup EXE file from the releases page.

Or by using winget and running winget install clink.

Or by using scoop and running scoop install clink.

Or by downloading the ZIP file from releases page, and extracting the files to a directory of your choosing.

Usage

Once installed, there are several ways to start Clink.

  1. If Clink is configured for autorun, just start cmd.exe and Clink is automatically injected and ready to use.

    The setup EXE has an option “Autorun when cmd.exe starts”. If you didn’t use the setup EXE, or if you want to enable or disable autorun later, you can run clink autorun install or clink autorun uninstall to change the autorun configuration. Run clink autorun --help for more info.

  2. To manually start, run the Clink shortcut from the Start menu (or the clink.bat located in the install directory).
  3. To establish Clink to an existing cmd.exe process, use clink inject.

    If the Clink install directory isn’t in the PATH, then use install_dir\clink in place of clink to run Clink commands. Once Clink is injected into a cmd.exe process, then it automatically sets an alias so that you can simply use clink.

You can use Clink right away without configuring anything:

  • Searchable command history will be saved between sessions.
  • Tab and Ctrl+Space will do match completion two different ways.
  • Press Alt+H to see a list of the current key bindings.
  • Press Alt+Shift+/ followed by another key to see what command is bound to the key.

See Getting Started for information on how to get started with using Clink.

The new Clink tries to be as backward compatible with Clink v0.4.9 as possible. However, in some cases upgrading may require a little bit of configuration work. More details can be found in the Clink documentation.

Clink can be extended through its Lua API which allows easy creation of context sensitive match generators, prompt filtering, and more. More details can be found in the Clink documentation.