https://github.com/darthorimar/rekot
Kotlin REPL with an IDE-like experience in your terminal
https://github.com/darthorimar/rekot
development-tools kotlin read-eval-print-loop repl terminal-based
Last synced: 29 days ago
JSON representation
Kotlin REPL with an IDE-like experience in your terminal
- Host: GitHub
- URL: https://github.com/darthorimar/rekot
- Owner: darthorimar
- License: apache-2.0
- Created: 2025-01-27T08:18:42.000Z (9 months ago)
- Default Branch: master
- Last Pushed: 2025-03-01T18:38:58.000Z (8 months ago)
- Last Synced: 2025-03-24T05:33:30.888Z (8 months ago)
- Topics: development-tools, kotlin, read-eval-print-loop, repl, terminal-based
- Language: Kotlin
- Homepage:
- Size: 1.9 MB
- Stars: 34
- Watchers: 2
- Forks: 3
- Open Issues: 3
-
Metadata Files:
- Readme: ReadMe.md
- License: LICENSE
Awesome Lists containing this project
README
ReKot
##### Kotlin REPL with an IDE-like experience in your terminal
[](https://github.com/darthorimar/rekot/releases/latest)
## ⚙️ Installation
### Homebrew (macOS)
```bash
brew install darthorimar/tap/rekot
```
### Manual Installation (macOS/Linux)
_Make sure you have the JDK installed. JDK 17 is recommended._
Paste this into the terminal:
```bash
bash <(curl -s https://raw.githubusercontent.com/darthorimar/rekot/master/install.sh)
```
Or if you prefer wget:
```bash
bash <(wget -qO- https://raw.githubusercontent.com/darthorimar/rekot/master/install.sh)
```
## ✨ Features
### Multiline Code Editing
A full-fledged multiline code editor with code highlighting

### Multiple Cells
With results that can be reused between the cells

### Code Completion

### In-editor Code Highlighting

## 🧪 Compatibility
* Tested on _macOS Sequoia 15.2_ on _iTerm2_ and _Terminal.app_
* Not tested on _Linux_ or _Windows_
## ⚠️ Known Problems
On macOS Sequoia version < 15.4.1, some text may be printed on the terminal like:
```
2025-01-28 23:39:24.855 java[2091:30776] +[IMKClient subclass]: chose IMKClient_Modern
2025-01-28 23:39:24.855 java[2091:30776] +[IMKInputSession subclass]: chose IMKInputSession_Modern
```
See https://discussions.apple.com/thread/255761734
As a workaround:
- On Mac systems, ReKot occasionally fully refreshes the screen at some interval.
- You can press `Ctrl+R` to manually refresh the screen.
Starting from macOS 15.4.1, this issue seems to be fixed.
So the hack with automatic screen refreshing is disabled by default.
Can be enabled back by setting `hackyMacFix=true` in the `config.properties` file.
## 🛠️ Building/Developing ReKot
Currently, ReKot depends on the [Kotlin Analysis API](https://kotlin.github.io/analysis-api) with a few patches on top. These patches are in my fork of the Kotlin repository, in the branch `rekot`: https://github.com/darthorimar/kotlin/tree/rekot.
To start developing/building ReKot:
1. Clone the Kotlin on the branch `rekot` repository from https://github.com/darthorimar/kotlin/tree/rekot.
2. Run `./gradlew installIdeArtifacts -Ppublish.ide.plugin.dependencies=true` in the cloned repository. This will install the Analysis API to your Maven Local.
3. Now you can start working in the ReKot repository, and it can be imported into IntelliJ IDEA.
4. Gradle tasks:
- `:app:buildProd` - This will create a release (a shadow jar) in `app/build/libs/rekot-VERSION.jar`.
- `:app:run` - Run the app in the Swing-based terminal emulator, which sometimes can look quite blurry, but it's useful for debugging.