Multi-Language REPL

One command.
25 languages.

A universal code runner and stateful REPL written in Rust. Execute Python, JavaScript, TypeScript, Go, Rust, C, C++, Java, Kotlin, Swift, and 15 more languages with a single command.

Release pipelineLatest releaseTotal downloadscrates.ioLicense
terminal
Inline Code Execution

Built for speed and simplicity

Everything you need to experiment, prototype, and execute code across multiple languages.

Lightning Fast

Built with Rust for maximum performance. Execute code snippets in milliseconds.

25 Languages

Python, JavaScript, TypeScript, Rust, Go, C, C++, Java, Kotlin, C#, Swift, Ruby, PHP, Lua, Bash, Dart, R, Perl, Haskell, Elixir, Julia, Crystal, Zig, and Nim.

Stateful REPL

Stateful REPL with language switching. State persists across commands in all supported languages.

Inline Execution

Run code snippets directly from the command line without creating files.

Auto-Detection

Automatically detects language from file extensions and code patterns.

File & Stdin Support

Execute files, pipe stdin, or run inline snippets with the same command.

All your favorite languages

Switch between 25 languages instantly with simple commands. No configuration needed.

Python
:py
JavaScript
:js
TypeScript
:ts
Rust
:rust
Go
:go
C
:c
C++
:cpp
Java
:java
Kotlin
:kt
C#
:cs
Ruby
:rb
PHP
:php
Lua
:lua
Bash
:bash
Swift
:swift
Haskell
:hs
Elixir
:ex
Julia
:jl
Dart
:dart
R
:r
Perl
:pl
Crystal
:cr
Zig
:zig
Nim
:nim
Scala
:scala
python>>> :help
Commands:
:help Show this help message
:languages List available languages
:lang <id> Switch to language <id>
:detect on|off Enable or disable auto language detection
:reset Reset the current language session
:load <path> Execute a file in the current language
:exit, :quit Leave the REPL
Aliases like :py, :go, :rust also switch languages.

Try It Live

Interactive demo - type commands and see them execute

run interactive demo
Welcome to run interactive demo!
Try commands like: run python --code "print(2+2)", :languages, :help

Try: run python --code "print(2+2)" or :languages

See it in action

Multiple ways to run code. Choose what works best for your workflow.

Inline Execution
❯ run python --code "print('Hello, World!')"
Hello, World!
❯ run js --code "console.log('Quick test!')"
Quick test!
❯ run rust --code "fn main() { println!("Rust!"); }"
Rust!

Built for Developers

From quick experiments to production scripts, run adapts to your workflow

Quick Prototyping

Test ideas instantly without setting up project environments. Switch between languages in seconds.

run python --code "import requests; print(requests.get('api.com').json())"

Learning New Languages

Experiment with syntax and features across 15+ languages without installing separate tools.

run rust
rust>>> println!("Hello from Rust!");
rust>>> :lang go
go>>> fmt.Println("Now in Go!")

Testing Code Snippets

Validate algorithms, test functions, and debug logic interactively with stateful execution.

python>>> x = [1, 2, 3]
python>>> sum(x)
6

Scripting & Automation

Execute scripts in any language from the command line. Perfect for CI/CD pipelines and automation.

run script.py
run deploy.js
run build.sh

Code Golf & Challenges

Solve coding challenges and compare solutions across different languages instantly.

run js --code "console.log([...Array(10)].map((_,i)=>i*i))"
run python --code "print([i**2 for i in range(10)])"

Live Demos & Teaching

Demonstrate code execution in real-time. Switch languages on the fly during presentations.

:lang python
python>>> # Show Python
:lang js
javascript>>> // Now JavaScript

Command Reference

Quick reference for all commands and usage patterns

REPL Commands

:help

Show all available REPL commands and their usage

:languages

List all 15+ supported programming languages

:lang <id>

Switch to a different language REPL (e.g., :lang rust, :py, :js)

:detect on|off

Toggle automatic language detection from file extensions

:reset

Reset the current language session and clear state

:load <path>

Execute a file in the current language context

:exit / :quit

Exit the REPL and return to your shell

CLI Usage

run

Start interactive REPL with auto-detection

run <language>

Start REPL for specific language (e.g., run python, run js)

run <file>

Execute a file (language auto-detected from extension)

run <lang> --code "..."

Execute inline code snippet

cat file.py | run

Execute code from stdin

Quick Aliases

:py → :lang python
:js → :lang javascript
:rs → :lang rust
:go → :lang go

Get started in seconds

Install run with a single command. Requires Rust 1.70 or newer.

Installation
cargo install --path .
01

Clone the repo

Clone from GitHub and navigate to the project directory.

02

Build with Cargo

Run the install command to build the binary with your Rust toolchain.

03

Start coding

Use run to execute code in any supported language.

Frequently Asked Questions

Everything you need to know about run

Install run using cargo: `cargo install run-repl`. Make sure you have Rust and cargo installed on your system. You can also build from source by cloning the GitHub repository.