/kotlin-interactive-shell

Kotlin Language Interactive Shell

Primary LanguageJavaApache License 2.0Apache-2.0

Kotlin Language Interactive Shell

Kotlin Stable JetBrains team project Maven Central

The shell is an extensible implementation of Kotlin REPL with a rich set of features including:

  • Syntax highlight
  • Type inference command
  • Downloading dependencies in runtime using Maven coordinates
  • List declared symbols

History

The project is the former Sparklin shell migrated to the new Kotlin scripting and REPL infrastructure and converted to a generic Kotlin Language Interactive Shell.

The Apache Spark adaptation of it is located in a separate repository.

The previous version of the Sparklin is accessible in the sparklin branch.

Installation and Usage

Manual

You can download archive from Maven Central:

  1. Go to Releases page
  2. Download desired version there
  3. Unpack it to desired place
  4. Launch bin/ki.sh for Linux/Mac or bin\ki.bat for Windows

SDKMAN!

Install with SDKMAN! with the following command:

sdk install ki

After installation you can launch ki with either ki or ki.sh comman.

Arch Linux

On Arch Linux, there's an AUR package available. After installation, you can run the shell through ki.

Homebrew

Install with Homebrew with the following command:

brew install ki

MacPorts

Install with MacPorts with the following command:

sudo port install ki-shell

Build From Source

To build from source use:

git clone https://github.com/Kotlin/kotlin-interactive-shell
cd kotlin-interactive-shell
mvn -DskipTests package

It may be useful to build the project with a specific version of Kotlin. To do so use:

mvn -Dkotlin.version=1.4.10 -DskipTests package

To start the shell, run bin/ki.sh on Linux and macOS. On Windows, use bin\ki.bat instead.

To exit the shell, type :q or :quit.

Adding maven repositories that require auth

The following options are supported:

:repository https://myrepo.org username=user password=pwd
:repository https://myrepo.org username:user password:pwd

:repository https:myrepo.org ./path/to/file
# properties file should contain
# username=john
# password=johnpwd