<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Esubalew Chekol </title>
    <description>The latest articles on Forem by Esubalew Chekol  (@esubaalew).</description>
    <link>https://forem.com/esubaalew</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F992672%2F83563980-2e20-46a5-a736-80dffa3154f8.jpeg</url>
      <title>Forem: Esubalew Chekol </title>
      <link>https://forem.com/esubaalew</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/esubaalew"/>
    <language>en</language>
    <item>
      <title>Universal multi-language runner and smart REPL written in Rust.</title>
      <dc:creator>Esubalew Chekol </dc:creator>
      <pubDate>Sun, 12 Oct 2025 11:34:22 +0000</pubDate>
      <link>https://forem.com/esubaalew/universal-multi-language-runner-and-smart-repl-written-in-rust-2ij6</link>
      <guid>https://forem.com/esubaalew/universal-multi-language-runner-and-smart-repl-written-in-rust-2ij6</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Built in Rust for developers who live in multiple runtimes. &lt;code&gt;run&lt;/code&gt; gives you a consistent CLI, persistent REPLs, and batteries-included examples for your favorite languages.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;&lt;strong&gt;Table of contents&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Website and Docs&lt;/li&gt;
&lt;li&gt;
Overview

&lt;ul&gt;
&lt;li&gt;What is run?&lt;/li&gt;
&lt;li&gt;Who is this for?&lt;/li&gt;
&lt;li&gt;Why was run created?&lt;/li&gt;
&lt;li&gt;Why Rust?&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Highlights&lt;/li&gt;
&lt;li&gt;Quickstart&lt;/li&gt;
&lt;li&gt;Installation&lt;/li&gt;
&lt;li&gt;How it works&lt;/li&gt;
&lt;li&gt;
Supported languages

&lt;ul&gt;
&lt;li&gt;Complete Language Aliases Reference&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Command Variations - Flexible Syntax&lt;/li&gt;
&lt;li&gt;Command-Line Flags Reference&lt;/li&gt;
&lt;li&gt;⚠️ When to Use --lang (Important!)&lt;/li&gt;
&lt;li&gt;Main Function Flexibility&lt;/li&gt;
&lt;li&gt;Examples&lt;/li&gt;
&lt;li&gt;
REPL

&lt;ul&gt;
&lt;li&gt;Interactive REPL - Line by Line or Paste All&lt;/li&gt;
&lt;li&gt;Variable Persistence &amp;amp; Language Switching&lt;/li&gt;
&lt;li&gt;REPL Commands&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Stdin Piping Examples&lt;/li&gt;
&lt;li&gt;Language-Specific Notes&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Website and Docs
&lt;/h2&gt;

&lt;p&gt;The official website and full documentation are available here:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Website: &lt;a href="https://run.esubalew.et/" rel="noopener noreferrer"&gt;https://run.esubalew.et/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Docs Overview: &lt;a href="https://run.esubalew.et/docs/overview" rel="noopener noreferrer"&gt;https://run.esubalew.et/docs/overview&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Use these links to explore features, language guides, and detailed examples.&lt;/p&gt;




&lt;h2&gt;
  
  
  Overview - Universal Multi-Language Runner
&lt;/h2&gt;

&lt;p&gt;A powerful command-line tool for executing code in 25 programming languages&lt;/p&gt;

&lt;h2&gt;
  
  
  What is run?
&lt;/h2&gt;

&lt;p&gt;run is a universal multi-language runner and smart REPL (Read-Eval-Print Loop) written in Rust. It provides a unified interface for executing code across 25 programming languages without the hassle of managing multiple compilers, interpreters, or build tools.&lt;/p&gt;

&lt;p&gt;Whether you're a beginner learning your first programming language or an experienced polyglot developer, run streamlines your workflow by providing consistent commands and behavior across all supported languages.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who is this for?
&lt;/h2&gt;

&lt;p&gt;• Beginners: Learn programming without worrying about complex setup procedures. Just install run and start coding in any language.&lt;/p&gt;

&lt;p&gt;• Students: Quickly test code snippets and experiment with different programming paradigms across multiple languages.&lt;/p&gt;

&lt;p&gt;• Developers: Prototype ideas rapidly, test algorithms, and switch between languages seamlessly without context switching.&lt;/p&gt;

&lt;p&gt;• DevOps Engineers: Write and test automation scripts in various languages from a single tool.&lt;/p&gt;

&lt;p&gt;• Educators: Teach programming concepts across multiple languages with a consistent interface.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why was run created?
&lt;/h2&gt;

&lt;p&gt;Traditional development workflows require installing and configuring separate tools for each programming language. This creates several problems:&lt;/p&gt;

&lt;p&gt;• Time-consuming setup: Installing compilers, interpreters, package managers, and configuring environments for each language.&lt;/p&gt;

&lt;p&gt;• Inconsistent interfaces: Each language has different commands and flags for compilation and execution.&lt;/p&gt;

&lt;p&gt;• Cognitive overhead: Remembering different commands and workflows for each language.&lt;/p&gt;

&lt;p&gt;• Barrier to entry: Beginners struggle with setup before writing their first line of code.&lt;/p&gt;

&lt;p&gt;run solves these problems by providing a single, unified interface that handles all the complexity behind the scenes. You focus on writing code, and run takes care of the rest.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Rust?
&lt;/h2&gt;

&lt;p&gt;run is built with Rust for several compelling reasons:&lt;/p&gt;

&lt;p&gt;• Performance: Rust's zero-cost abstractions and efficient memory management ensure run starts instantly and executes with minimal overhead.&lt;/p&gt;

&lt;p&gt;• Reliability: Rust's strong type system and ownership model prevent common bugs like null pointer dereferences and data races, making run stable and crash-resistant.&lt;/p&gt;

&lt;p&gt;• Cross-platform: Rust compiles to native code for Windows, macOS, and Linux, providing consistent behavior across all platforms.&lt;/p&gt;

&lt;p&gt;• Memory safety: No garbage collector means predictable performance without unexpected pauses.&lt;/p&gt;

&lt;p&gt;• Modern tooling: Cargo (Rust's package manager) makes building and distributing run straightforward.&lt;/p&gt;

&lt;p&gt;• Future-proof: Rust's growing ecosystem and industry adoption ensure long-term maintainability.&lt;/p&gt;




&lt;h2&gt;
  
  
  Quickstart
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Show build metadata for the current binary&lt;/span&gt;
run &lt;span class="nt"&gt;--version&lt;/span&gt;

&lt;span class="c"&gt;# Execute a snippet explicitly&lt;/span&gt;
run &lt;span class="nt"&gt;--lang&lt;/span&gt; python &lt;span class="nt"&gt;--code&lt;/span&gt; &lt;span class="s2"&gt;"print('hello, polyglot world!')"&lt;/span&gt;

&lt;span class="c"&gt;# Let run detect language from the file extension&lt;/span&gt;
run examples/go/hello/main.go

&lt;span class="c"&gt;# Drop into the interactive REPL (type :help inside)&lt;/span&gt;
run

&lt;span class="c"&gt;# Pipe stdin (here: JSON) into Node.js&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s1"&gt;'{"name":"Ada"}'&lt;/span&gt; | run js &lt;span class="nt"&gt;--code&lt;/span&gt; &lt;span class="s2"&gt;"const data = JSON.parse(require('fs').readFileSync(0, 'utf8')); console.log(&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;hi &lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.name&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="s2"&gt;)"&lt;/span&gt;

&lt;span class="c"&gt;# Pipe stdin into Python&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Hello from stdin"&lt;/span&gt; | run python &lt;span class="nt"&gt;--code&lt;/span&gt; &lt;span class="s2"&gt;"import sys; print(sys.stdin.read().strip().upper())"&lt;/span&gt;

&lt;span class="c"&gt;# Pipe stdin into Go&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"world"&lt;/span&gt; | run go &lt;span class="nt"&gt;--code&lt;/span&gt; &lt;span class="s1"&gt;'import "fmt"; import "bufio"; import "os"; scanner := bufio.NewScanner(os.Stdin); scanner.Scan(); fmt.Printf("Hello, %s!\n", scanner.Text())'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;

&lt;p&gt;All release assets are published on the &lt;a href="https://github.com/Esubaalew/run/releases" rel="noopener noreferrer"&gt;GitHub Releases&lt;/a&gt; page, including macOS builds for both Apple Silicon (arm64) and Intel (x86_64). Pick the method that fits your platform:&lt;/p&gt;

&lt;p&gt;Installing run is straightforward. Choose the method that works best for your system:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cargo (Rust)&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;cargo &lt;span class="nb"&gt;install &lt;/span&gt;run-kit
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;&amp;gt; Installs the &lt;code&gt;run&lt;/code&gt; binary from the &lt;a href="https://crates.io/crates/run-kit" rel="noopener noreferrer"&gt;&lt;code&gt;run-kit&lt;/code&gt;&lt;/a&gt; crate. Updating? Run &lt;code&gt;cargo install run-kit --force&lt;/code&gt;.&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Or build from source&lt;/span&gt;
git clone https://github.com/Esubaalew/run.git
&lt;span class="nb"&gt;cd &lt;/span&gt;run
cargo &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--path&lt;/span&gt; &lt;span class="nb"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;&amp;gt; This builds the run binary using your active Rust toolchain. The project targets Rust 1.70 or newer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Homebrew (macOS)&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;brew &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--formula&lt;/span&gt; https://github.com/Esubaalew/run/releases/latest/download/homebrew-run.rb
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;&amp;gt; This formula is published as a standalone file on each release; it isn’t part of the default Homebrew taps. Installing by name (&lt;code&gt;brew install homebrew-run&lt;/code&gt;) will fail—always point Homebrew to the release URL above (or download the file and run &lt;code&gt;brew install ./homebrew-run.rb&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;Once the latest release artifacts are published, Homebrew automatically selects the correct macOS binary for your CPU (Intel or Apple Silicon) based on this formula.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Debian / Ubuntu&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;ARCH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;ARCH&lt;/span&gt;&lt;span class="k"&gt;:-&lt;/span&gt;&lt;span class="nv"&gt;amd64&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;
&lt;span class="nv"&gt;DEB_FILE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;curl &lt;span class="nt"&gt;-s&lt;/span&gt; https://api.github.com/repos/Esubaalew/run/releases/latest &lt;span class="se"&gt;\&lt;/span&gt;
  | &lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-oE&lt;/span&gt; &lt;span class="s2"&gt;"run_[0-9.]+_&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;ARCH&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="s2"&gt;.deb"&lt;/span&gt; | &lt;span class="nb"&gt;head&lt;/span&gt; &lt;span class="nt"&gt;-n&lt;/span&gt; 1&lt;span class="si"&gt;)&lt;/span&gt;
curl &lt;span class="nt"&gt;-LO&lt;/span&gt; &lt;span class="s2"&gt;"https://github.com/Esubaalew/run/releases/latest/download/&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;DEB_FILE&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
curl &lt;span class="nt"&gt;-LO&lt;/span&gt; &lt;span class="s2"&gt;"https://github.com/Esubaalew/run/releases/latest/download/&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;DEB_FILE&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;.sha256"&lt;/span&gt;
&lt;span class="nb"&gt;sha256sum&lt;/span&gt; &lt;span class="nt"&gt;--check&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;DEB_FILE&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;.sha256"&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="s2"&gt;"./&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;DEB_FILE&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;&amp;gt; &lt;strong&gt;Tip:&lt;/strong&gt; If you prefer to select the files manually, open the &lt;a href="https://github.com/Esubaalew/run/releases/latest" rel="noopener noreferrer"&gt;latest release page&lt;/a&gt;, note the &lt;code&gt;.deb&lt;/code&gt; and matching &lt;code&gt;.sha256&lt;/code&gt; asset names for your architecture (e.g., &lt;code&gt;amd64&lt;/code&gt;, &lt;code&gt;arm64&lt;/code&gt;), and substitute them for &lt;code&gt;${DEB_FILE}&lt;/code&gt; above.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Windows (Scoop)&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;scoop&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;install&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;https://github.com/Esubaalew/run/releases/latest/download/run-scoop.json&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Install script (macOS / Linux)&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-fsSLO&lt;/span&gt; https://raw.githubusercontent.com/Esubaalew/run/master/scripts/install.sh
&lt;span class="nb"&gt;chmod&lt;/span&gt; +x install.sh
./install.sh &lt;span class="nt"&gt;--add-path&lt;/span&gt;           &lt;span class="c"&gt;# optional: append ~/.local/bin to PATH&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;Pass &lt;code&gt;--version v0.2.0&lt;/code&gt;, &lt;code&gt;--prefix /usr/local/bin&lt;/code&gt;, or &lt;code&gt;--repo yourname/run&lt;/code&gt; to customize the install.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Download the archive directly&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Grab the &lt;code&gt;tar.gz&lt;/code&gt; (macOS/Linux) or &lt;code&gt;zip&lt;/code&gt; (Windows) from the latest release.&lt;/li&gt;
&lt;li&gt;Extract it and copy &lt;code&gt;run&lt;/code&gt; / &lt;code&gt;run.exe&lt;/code&gt; onto your &lt;code&gt;PATH&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Optionally execute the bundled &lt;code&gt;install.sh&lt;/code&gt; to handle the copy for you.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Build from source&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;cargo &lt;span class="nb"&gt;install &lt;/span&gt;run-kit
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;The project targets Rust 1.70+. Installing from crates.io gives you the same &lt;code&gt;run&lt;/code&gt; binary that CI publishes; use &lt;code&gt;--force&lt;/code&gt; when upgrading to a newer release.&lt;/p&gt;

&lt;p&gt;Verify installation:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Verify installation&lt;/span&gt;
run &lt;span class="nt"&gt;--version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;run 0.2.0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  How it works
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;run&lt;/code&gt; shells out to real toolchains under the hood. Each &lt;code&gt;LanguageEngine&lt;/code&gt; implements a small trait that knows how to:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Detect whether the toolchain is available (e.g. &lt;code&gt;python3&lt;/code&gt;, &lt;code&gt;go&lt;/code&gt;, &lt;code&gt;rustc&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Prepare a temporary workspace (compilation for compiled languages, transient scripts for interpreters).&lt;/li&gt;
&lt;li&gt;Execute snippets, files, or stdin streams and surface stdout/stderr consistently.&lt;/li&gt;
&lt;li&gt;Manage session state for the interactive REPL (persistent modules, stateful scripts, or regenerated translation units).&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This architecture keeps the core lightweight while making it easy to add new runtimes or swap implementations.&lt;/p&gt;




&lt;h2&gt;
  
  
  Supported languages
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;run&lt;/code&gt; supports 25+ languages:&lt;/p&gt;

&lt;p&gt;run supports 25 programming languages out of the box, covering a wide range of paradigms and use cases:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Scripting Languages
Python, JavaScript, Ruby, Bash, Lua, Perl, PHP

# Compiled Languages
Rust, Go, C, C++, Java, C#, Swift, Kotlin, Crystal, Zig, Nim

# Typed &amp;amp; Functional Languages
TypeScript, Haskell, Elixir, Julia

# Specialized Languages
R (Statistical computing)
Dart (Mobile development)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Category&lt;/th&gt;
&lt;th&gt;Languages &amp;amp; aliases&lt;/th&gt;
&lt;th&gt;Toolchain expectations&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Scripting &amp;amp; shells&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Bash (&lt;code&gt;bash&lt;/code&gt;), Python (&lt;code&gt;py&lt;/code&gt;, &lt;code&gt;python&lt;/code&gt;), Ruby (&lt;code&gt;rb&lt;/code&gt;, &lt;code&gt;ruby&lt;/code&gt;), PHP (&lt;code&gt;php&lt;/code&gt;), Perl (&lt;code&gt;perl&lt;/code&gt;), Groovy (&lt;code&gt;groovy&lt;/code&gt;, &lt;code&gt;grv&lt;/code&gt;), Lua (&lt;code&gt;lua&lt;/code&gt;), R (&lt;code&gt;r&lt;/code&gt;), Elixir (&lt;code&gt;ex&lt;/code&gt;, &lt;code&gt;elixir&lt;/code&gt;)&lt;/td&gt;
&lt;td&gt;Matching interpreter on &lt;code&gt;PATH&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Web &amp;amp; typed scripting&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;JavaScript (&lt;code&gt;js&lt;/code&gt;, &lt;code&gt;node&lt;/code&gt;), TypeScript (&lt;code&gt;ts&lt;/code&gt;, &lt;code&gt;deno&lt;/code&gt;), Dart (&lt;code&gt;dart&lt;/code&gt;), Kotlin (&lt;code&gt;kt&lt;/code&gt;, &lt;code&gt;kotlin&lt;/code&gt;)&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;node&lt;/code&gt;, &lt;code&gt;deno&lt;/code&gt;, &lt;code&gt;dart&lt;/code&gt;, &lt;code&gt;kotlinc&lt;/code&gt; + JRE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Systems &amp;amp; compiled&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;C (&lt;code&gt;c&lt;/code&gt;), C++ (&lt;code&gt;cpp&lt;/code&gt;, &lt;code&gt;cxx&lt;/code&gt;), Rust (&lt;code&gt;rs&lt;/code&gt;, &lt;code&gt;rust&lt;/code&gt;), Go (&lt;code&gt;go&lt;/code&gt;), Swift (&lt;code&gt;swift&lt;/code&gt;), Zig (&lt;code&gt;zig&lt;/code&gt;), Nim (&lt;code&gt;nim&lt;/code&gt;), Haskell (&lt;code&gt;hs&lt;/code&gt;, &lt;code&gt;haskell&lt;/code&gt;), Crystal (&lt;code&gt;cr&lt;/code&gt;, &lt;code&gt;crystal&lt;/code&gt;), C# (&lt;code&gt;cs&lt;/code&gt;, &lt;code&gt;csharp&lt;/code&gt;), Java (&lt;code&gt;java&lt;/code&gt;), Julia (&lt;code&gt;jl&lt;/code&gt;, &lt;code&gt;julia&lt;/code&gt;)&lt;/td&gt;
&lt;td&gt;Respective compiler / toolchain&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Categorization notes
&lt;/h3&gt;

&lt;p&gt;The categories above are usage-based to match how you’ll likely run code with &lt;code&gt;run&lt;/code&gt; rather than strict language taxonomies. Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Kotlin can target the JVM, Native, or JavaScript. If you’re using Kotlin/JS, it behaves closer to the “Web &amp;amp; typed scripting” workflow, while Kotlin/JVM fits “Systems &amp;amp; compiled” (with a JRE).&lt;/li&gt;
&lt;li&gt;Swift is listed under “Systems &amp;amp; compiled” because &lt;code&gt;swiftc&lt;/code&gt; produces native binaries; however, you can still use it interactively via &lt;code&gt;run&lt;/code&gt; for scripting-like workflows.&lt;/li&gt;
&lt;li&gt;TypeScript typically runs via Node or Deno at runtime (transpiled), which is why it appears under “Web &amp;amp; typed scripting.”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These groupings optimize for how commands are invoked and which toolchains &lt;code&gt;run&lt;/code&gt; detects and orchestrates.&lt;/p&gt;

&lt;h3&gt;
  
  
  Complete Language Aliases Reference
&lt;/h3&gt;

&lt;p&gt;Every language in &lt;code&gt;run&lt;/code&gt; has multiple aliases for convenience. Use whichever feels most natural:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Alias&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Description&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;python, py, py3, python3&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Python programming language&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;javascript, js, node, nodejs&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;JavaScript (Node.js runtime)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;typescript, ts, ts-node, deno&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;TypeScript with type checking&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rust, rs&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Rust systems programming language&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;go, golang&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Go programming language&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;c, gcc, clang&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;C programming language&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cpp, c++, g++&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;C++ programming language&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;java&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Java programming language&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;csharp, cs, dotnet&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;C# (.NET)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ruby, rb, irb&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Ruby programming language&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;bash, sh, shell, zsh&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Bash shell scripting&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;lua, luajit&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Lua scripting language&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;perl, pl&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Perl programming language&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;groovy, grv, groovysh&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Groovy on the JVM&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;php, php-cli&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;PHP scripting language&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;haskell, hs, ghci&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Haskell functional language&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;elixir, ex, exs, iex&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Elixir functional language&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;julia, jl&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Julia scientific computing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;dart, dartlang, flutter&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Dart language (Flutter)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;swift, swiftlang&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Swift programming language&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;kotlin, kt, kts&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Kotlin (JVM/Native)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;r, rscript, cran&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;R statistical computing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;crystal, cr, crystal-lang&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Crystal language&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;zig, ziglang&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Zig systems language&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nim, nimlang&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Nim programming language&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Command Variations - Flexible Syntax
&lt;/h2&gt;

&lt;p&gt;run supports multiple command formats to fit your workflow. You can be explicit with --lang or let run auto-detect the language:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Full syntax with --lang and --code
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;run &lt;span class="nt"&gt;--lang&lt;/span&gt; rust &lt;span class="nt"&gt;--code&lt;/span&gt; &lt;span class="s2"&gt;"fn main() { println!(&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;hello from rust&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;); }"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;hello from rust
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Shorthand flags (-l for --lang, -c for --code)
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;run &lt;span class="nt"&gt;-l&lt;/span&gt; rust &lt;span class="nt"&gt;-c&lt;/span&gt; &lt;span class="s2"&gt;"fn main() { println!(&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;hello from rust&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;); }"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Omit --code flag (auto-detected)
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;run &lt;span class="nt"&gt;--code&lt;/span&gt; &lt;span class="s2"&gt;"fn main() { println!(&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;hello from rust&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;); }"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;hello from rust
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Shorthand - just the code
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;run &lt;span class="s2"&gt;"fn main() { println!(&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;hello from rust&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;); }"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;hello from rust
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Language first, then code
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;run rust &lt;span class="s2"&gt;"fn main() { println!(&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;hello from rust&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;); }"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;hello from rust
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Command-Line Flags Reference
&lt;/h2&gt;

&lt;p&gt;run provides both long-form and short-form flags for convenience:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Language specification&lt;/span&gt;
&lt;span class="nt"&gt;--lang&lt;/span&gt;, &lt;span class="nt"&gt;-l&lt;/span&gt;          Specify the programming language
run &lt;span class="nt"&gt;--lang&lt;/span&gt; python &lt;span class="s2"&gt;"print('hello')"&lt;/span&gt;
run &lt;span class="nt"&gt;-l&lt;/span&gt; python &lt;span class="s2"&gt;"print('hello')"&lt;/span&gt;

&lt;span class="c"&gt;# Code input&lt;/span&gt;
&lt;span class="nt"&gt;--code&lt;/span&gt;, &lt;span class="nt"&gt;-c&lt;/span&gt;          Provide code as a string
run &lt;span class="nt"&gt;--code&lt;/span&gt; &lt;span class="s2"&gt;"print('hello')"&lt;/span&gt;
run &lt;span class="nt"&gt;-c&lt;/span&gt; &lt;span class="s2"&gt;"print('hello')"&lt;/span&gt;

&lt;span class="c"&gt;# Combined usage&lt;/span&gt;
run &lt;span class="nt"&gt;-l&lt;/span&gt; python &lt;span class="nt"&gt;-c&lt;/span&gt; &lt;span class="s2"&gt;"print('hello')"&lt;/span&gt;
run &lt;span class="nt"&gt;--lang&lt;/span&gt; python &lt;span class="nt"&gt;--code&lt;/span&gt; &lt;span class="s2"&gt;"print('hello')"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  ⚠️ When to Use --lang (Important!)
&lt;/h2&gt;

&lt;p&gt;While run can auto-detect languages, ambiguous syntax can cause confusion. For example, print('hello') looks similar in Python, Ruby, Lua, and other languages. Always use --lang for correctness when the syntax is ambiguous or when you need deterministic behavior.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# ❌ Ambiguous - may choose wrong language&lt;/span&gt;
run &lt;span class="s2"&gt;"print('hello')"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;hello  # But which language was used?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# ✅ Explicit - always correct&lt;/span&gt;
run &lt;span class="nt"&gt;--lang&lt;/span&gt; python &lt;span class="s2"&gt;"print('hello')"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;hello  # Guaranteed to use Python
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;RECOMMENDATION: Always use --lang for correctness when:&lt;/p&gt;

&lt;p&gt;• The syntax is ambiguous across multiple languages&lt;/p&gt;

&lt;p&gt;• You want to ensure the exact language is used&lt;/p&gt;

&lt;p&gt;• You're writing scripts or automation that must be deterministic&lt;/p&gt;




&lt;h2&gt;
  
  
  Main Function Flexibility
&lt;/h2&gt;

&lt;p&gt;For compiled languages (Rust, Go, C, C++, Java, etc.), run is smart about main functions:&lt;/p&gt;

&lt;p&gt;• Write complete programs with main functions&lt;/p&gt;

&lt;p&gt;• Write code without main functions (run wraps it automatically)&lt;/p&gt;

&lt;p&gt;• Both approaches work in REPL mode and inline execution&lt;/p&gt;

&lt;p&gt;Go Example - With main function&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;run go
run universal REPL. Type :help &lt;span class="k"&gt;for &lt;/span&gt;commands.

go&amp;gt;&amp;gt;&amp;gt; package main
import &lt;span class="s2"&gt;"fmt"&lt;/span&gt;
func main&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    fmt.Println&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"Hello, world!"&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
Hello, world!
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Go Example - Without main function&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;go&amp;gt;&amp;gt;&amp;gt; fmt.Println("Hello, world!")
Hello, world!
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Examples
&lt;/h2&gt;

&lt;p&gt;Real programs live under the &lt;a href="https://dev.toexamples"&gt;&lt;code&gt;examples/&lt;/code&gt;&lt;/a&gt; tree—each language has a &lt;code&gt;hello&lt;/code&gt; and a &lt;code&gt;progress&lt;/code&gt; scenario. The headers document expected output so you can diff your toolchain.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;run examples/rust/hello.rs
run examples/typescript/progress.ts
run examples/python/counter.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  REPL
&lt;/h2&gt;

&lt;p&gt;Being inside REPL we can use the ff commands&lt;/p&gt;

&lt;p&gt;The REPL supports several built-in commands for managing your session:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;:help&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List available meta commands&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;:languages&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show detected engines and status&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;:lang &amp;lt;id&amp;gt;&lt;/code&gt; or &lt;code&gt;:&amp;lt;alias&amp;gt;&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Switch the active language (&lt;code&gt;:py&lt;/code&gt;, &lt;code&gt;:go&lt;/code&gt;, …)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;:detect on/off/toggle&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Control snippet language auto-detection&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;:load path/to/file&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Execute a file inside the current session&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;:reset&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Clear the accumulated session state&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;:exit&lt;/code&gt; / &lt;code&gt;:quit&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Leave the REPL&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Alias&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;:help&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show available REPL commands&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;:quit or :q&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Exit the REPL&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;:clear or :c&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Clear the screen&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;:reset&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Reset the session (clear all variables)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;:lang &amp;lt;language&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Switch to a different language&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;:py, :js, :go, etc.&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Quick language switch shortcuts&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Interactive REPL - Line by Line or Paste All
&lt;/h3&gt;

&lt;p&gt;The REPL mode is incredibly flexible. You can:&lt;/p&gt;

&lt;p&gt;• Type code line by line interactively&lt;/p&gt;

&lt;p&gt;• Paste entire programs at once&lt;/p&gt;

&lt;p&gt;• Mix both approaches in the same session&lt;/p&gt;

&lt;p&gt;This works for ALL supported languages!&lt;/p&gt;

&lt;p&gt;Python Example - Paste entire program&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;run python
python&amp;gt;&amp;gt;&amp;gt; def fibonacci&lt;span class="o"&gt;(&lt;/span&gt;n&lt;span class="o"&gt;)&lt;/span&gt;:
    &lt;span class="k"&gt;if &lt;/span&gt;n &amp;lt;&lt;span class="o"&gt;=&lt;/span&gt; 1:
        &lt;span class="k"&gt;return &lt;/span&gt;n
    &lt;span class="k"&gt;return &lt;/span&gt;fibonacci&lt;span class="o"&gt;(&lt;/span&gt;n-1&lt;span class="o"&gt;)&lt;/span&gt; + fibonacci&lt;span class="o"&gt;(&lt;/span&gt;n-2&lt;span class="o"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;for &lt;/span&gt;i &lt;span class="k"&gt;in &lt;/span&gt;range&lt;span class="o"&gt;(&lt;/span&gt;10&lt;span class="o"&gt;)&lt;/span&gt;:
    print&lt;span class="o"&gt;(&lt;/span&gt;f&lt;span class="s2"&gt;"F({i}) = {fibonacci(i)}"&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
F&lt;span class="o"&gt;(&lt;/span&gt;0&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; 0
F&lt;span class="o"&gt;(&lt;/span&gt;1&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; 1
F&lt;span class="o"&gt;(&lt;/span&gt;2&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; 1
F&lt;span class="o"&gt;(&lt;/span&gt;3&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; 2
F&lt;span class="o"&gt;(&lt;/span&gt;4&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; 3
F&lt;span class="o"&gt;(&lt;/span&gt;5&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; 5
F&lt;span class="o"&gt;(&lt;/span&gt;6&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; 8
F&lt;span class="o"&gt;(&lt;/span&gt;7&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; 13
F&lt;span class="o"&gt;(&lt;/span&gt;8&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; 21
F&lt;span class="o"&gt;(&lt;/span&gt;9&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; 34
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Python Example - Line by line&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;python&amp;gt;&amp;gt;&amp;gt; x = 10
python&amp;gt;&amp;gt;&amp;gt; y = 20
python&amp;gt;&amp;gt;&amp;gt; print(x + y)
30
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Tip:&lt;/strong&gt; The exact file names follow the pattern &lt;code&gt;run_&amp;lt;version&amp;gt;_&amp;lt;arch&amp;gt;.deb&lt;/code&gt;. If you prefer to choose manually, visit the &lt;a href="https://github.com/Esubaalew/run/releases/latest" rel="noopener noreferrer"&gt;latest release page&lt;/a&gt;, note the &lt;code&gt;.deb&lt;/code&gt; and matching &lt;code&gt;.sha256&lt;/code&gt; asset names for your architecture (e.g. &lt;code&gt;amd64&lt;/code&gt;, &lt;code&gt;arm64&lt;/code&gt;), and substitute them for &lt;code&gt;${DEB_FILE}&lt;/code&gt; above.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In REPL mode, variables persist across commands within the same language session. You can also switch languages on the fly using :lang commands.&lt;/p&gt;

&lt;p&gt;When you switch languages, variables from the previous language do NOT carry over (each language has its own isolated session).&lt;/p&gt;

&lt;p&gt;Variable Persistence Example&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ run go
go&amp;gt;&amp;gt;&amp;gt; x := 10
go&amp;gt;&amp;gt;&amp;gt; x
10

go&amp;gt;&amp;gt;&amp;gt; :c
switched to c

c&amp;gt;&amp;gt;&amp;gt; int x = 10;
c&amp;gt;&amp;gt;&amp;gt; x
10
c&amp;gt;&amp;gt;&amp;gt; 10 + 10
20

c&amp;gt;&amp;gt;&amp;gt; :py
switched to python

python&amp;gt;&amp;gt;&amp;gt; y = 10
python&amp;gt;&amp;gt;&amp;gt; y
10
python&amp;gt;&amp;gt;&amp;gt; print(y)
10
python&amp;gt;&amp;gt;&amp;gt; z = 4
python&amp;gt;&amp;gt;&amp;gt; z is y
False
python&amp;gt;&amp;gt;&amp;gt; z == y
False
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;DEB*FILE=$(curl -s &lt;a href="https://api.github.com/repos/Esubaalew/run/releases/latest" rel="noopener noreferrer"&gt;https://api.github.com/repos/Esubaalew/run/releases/latest&lt;/a&gt; \&lt;br&gt;
 | grep -oE 'run*[0-9.]+_amd64.deb' | head -n 1)&lt;br&gt;
curl -LO "&lt;a href="https://github.com/Esubaalew/run/releases/latest/download/$%7BDEB_FILE%7D" rel="noopener noreferrer"&gt;https://github.com/Esubaalew/run/releases/latest/download/${DEB_FILE}&lt;/a&gt;"&lt;br&gt;
curl -LO "&lt;a href="https://github.com/Esubaalew/run/releases/latest/download/$%7BDEB_FILE%7D.sha256" rel="noopener noreferrer"&gt;https://github.com/Esubaalew/run/releases/latest/download/${DEB_FILE}.sha256&lt;/a&gt;"&lt;br&gt;
sha256sum --check "${DEB_FILE}.sha256"&lt;br&gt;
  sudo apt install "./${DEB_FILE}"&lt;/p&gt;
&lt;h3&gt;
  
  
  Built-in REPL Commands
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;:help              → Show help and available commands
:languages         → List all supported languages
:clear             → Clear the screen
:exit or :quit     → Exit the REPL
:lang &amp;lt;language&amp;gt;   → Switch to a different language
Ctrl+D             → Exit the REPL
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Stdin Piping Examples
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;run&lt;/code&gt; supports piping input from stdin to your code snippets across all languages. Here are more examples for different languages:&lt;/p&gt;
&lt;h3&gt;
  
  
  Node.js (JSON Processing)
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s1"&gt;'{"name":"Ada"}'&lt;/span&gt; | run js &lt;span class="nt"&gt;--code&lt;/span&gt; &lt;span class="s2"&gt;"const data = JSON.parse(require('fs').readFileSync(0, 'utf8')); console.log(&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;hi &lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.name&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="s2"&gt;)"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;hi Ada
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Python (Uppercase Conversion)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Hello from stdin"&lt;/span&gt; | run python &lt;span class="nt"&gt;--code&lt;/span&gt; &lt;span class="s2"&gt;"import sys; print(sys.stdin.read().strip().upper())"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;HELLO FROM STDIN
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Go (Greeting)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"world"&lt;/span&gt; | run go &lt;span class="nt"&gt;--code&lt;/span&gt; &lt;span class="s1"&gt;'import "fmt"; import "bufio"; import "os"; scanner := bufio.NewScanner(os.Stdin); scanner.Scan(); fmt.Printf("Hello, %s!\n", scanner.Text())'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Hello, world!
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Ruby (Line Counting)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="nt"&gt;-e&lt;/span&gt; &lt;span class="s2"&gt;"line1&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;line2&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;line3"&lt;/span&gt; | run ruby &lt;span class="nt"&gt;--code&lt;/span&gt; &lt;span class="s2"&gt;"puts gets(nil).lines.count"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Bash (Echo with Prefix)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"input text"&lt;/span&gt; | run bash &lt;span class="nt"&gt;--code&lt;/span&gt; &lt;span class="s1"&gt;'read line; echo "Processed: $line"'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Processed: input text
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Language-Specific Notes
&lt;/h2&gt;

&lt;p&gt;For detailed usage, quirks, and best practices for each language, visit the dedicated documentation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://run.esubalew.et/" rel="noopener noreferrer"&gt;Python&lt;/a&gt;: Tips for scripting, data processing, and REPL persistence.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://run.esubalew.et/" rel="noopener noreferrer"&gt;JavaScript/Node.js&lt;/a&gt;: Async code, modules, and stdin handling.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://run.esubalew.et/" rel="noopener noreferrer"&gt;Rust&lt;/a&gt;: Compilation flags, error handling, and workspace management.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://run.esubalew.et/" rel="noopener noreferrer"&gt;Go&lt;/a&gt;: Package imports, build optimizations, and concurrency examples.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://run.esubalew.et/" rel="noopener noreferrer"&gt;C/C++&lt;/a&gt;: Compiler selection, linking, and multi-file support.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;C++&lt;/strong&gt;: Remember to include the standard headers your snippet depends on—&lt;code&gt;std::cout&lt;/code&gt; and friends require &lt;code&gt;#include &amp;lt;iostream&amp;gt;&lt;/code&gt;. When in doubt, wrap the snippet in a minimal &lt;code&gt;main&lt;/code&gt; for portability:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  &lt;span class="nb"&gt;cat&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="no"&gt;EOF&lt;/span&gt;&lt;span class="sh"&gt;' | run cpp
  #include &amp;lt;iostream&amp;gt;
  int square(int x) { return x * x; }
  int main() {
      std::cout &amp;lt;&amp;lt; square(7) &amp;lt;&amp;lt; std::endl;
      return 0;
  }
&lt;/span&gt;&lt;span class="no"&gt;  EOF
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Skipping the include or &lt;code&gt;main&lt;/code&gt; will lead to compiler errors such as &lt;code&gt;use of undeclared identifier 'std'&lt;/code&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;C&lt;/strong&gt;: Avoid piping code through the shell’s &lt;code&gt;printf&lt;/code&gt;—it expands &lt;code&gt;%d&lt;/code&gt;, &lt;code&gt;\n&lt;/code&gt;, and friends before &lt;code&gt;run&lt;/code&gt; sees the source. Use quoted here-docs instead so the compiler gets the exact text you typed:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  &lt;span class="nb"&gt;cat&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="no"&gt;EOF&lt;/span&gt;&lt;span class="sh"&gt;' | run c
  #include &amp;lt;stdio.h&amp;gt;
  int main() {
      int value = 10;
      printf("%d&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="sh"&gt;", value);
      return 0;
  }
&lt;/span&gt;&lt;span class="no"&gt;  EOF
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://run.esubalew.et/" rel="noopener noreferrer"&gt;Java&lt;/a&gt;: Classpath management, JVM args, and enterprise patterns.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://run.esubalew.et/" rel="noopener noreferrer"&gt;TypeScript&lt;/a&gt;: Type checking, Deno vs Node, and transpilation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Groovy&lt;/strong&gt;: When piping code via here-docs, quote the delimiter (&lt;code&gt;&amp;lt;&amp;lt;'EOF'&lt;/code&gt;) so the shell doesn’t expand &lt;code&gt;$variables&lt;/code&gt; before Groovy sees them. Example:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  &lt;span class="nb"&gt;cat&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="no"&gt;EOF&lt;/span&gt;&lt;span class="sh"&gt;' | run groovy
  def name = "Esubalew"
  println "Hello, &lt;/span&gt;&lt;span class="nv"&gt;$name&lt;/span&gt;&lt;span class="sh"&gt;!"
&lt;/span&gt;&lt;span class="no"&gt;  EOF
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Without quoting, shells like Bash erase the interpolation and Groovy prints &lt;code&gt;Hello, !&lt;/code&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;TypeScript (Deno)&lt;/strong&gt;: &lt;code&gt;run&lt;/code&gt; uses Deno for TypeScript execution. Deno requires explicit module specifiers and does not accept bare Node builtin names like &lt;code&gt;fs&lt;/code&gt; — use the &lt;code&gt;node:&lt;/code&gt; prefix for Node builtins (for example &lt;code&gt;import fs from "node:fs"&lt;/code&gt;). Also prefer a quoted here-doc for multi-line snippets to avoid shell interpolation/globbing issues. Example:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  &lt;span class="c"&gt;# here-doc (recommended)&lt;/span&gt;
  &lt;span class="nb"&gt;cat&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="no"&gt;EOF&lt;/span&gt;&lt;span class="sh"&gt;' | run typescript
  import fs from "node:fs";
  console.log('[TypeScript] hello');
&lt;/span&gt;&lt;span class="no"&gt;  EOF
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Safe inline (zsh):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  run &lt;span class="nt"&gt;--lang&lt;/span&gt; typescript &lt;span class="nt"&gt;--code&lt;/span&gt; &lt;span class="s1"&gt;$'import fs from "node:fs";&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s1"&gt;console.log("[TypeScript] hello");&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Dart&lt;/strong&gt;: Inline &lt;code&gt;--code&lt;/code&gt; snippets are written to a temporary &lt;code&gt;.dart&lt;/code&gt; file and executed with &lt;code&gt;dart run&lt;/code&gt;. However, shell quoting still matters — single quotes or unescaped characters will cause zsh to attempt globbing or parameter expansion. Use a quoted here-doc to avoid that problem. Example:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  &lt;span class="c"&gt;# here-doc (recommended)&lt;/span&gt;
  &lt;span class="nb"&gt;cat&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="no"&gt;EOF&lt;/span&gt;&lt;span class="sh"&gt;' | run dart
  void main() {
    print('[Dart] hello');
  }
&lt;/span&gt;&lt;span class="no"&gt;  EOF
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Safe inline (zsh):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  run &lt;span class="nt"&gt;--lang&lt;/span&gt; dart &lt;span class="nt"&gt;--code&lt;/span&gt; &lt;span class="s1"&gt;$'void main() { print("[Dart] hello"); }&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  - &lt;a href="https://run.esubalew.et/docs/overview" rel="noopener noreferrer"&gt;And more...&lt;/a&gt; for all 25+ languages including Ruby, PHP, Haskell, Elixir, and specialized ones like R and Julia.
&lt;/h2&gt;

</description>
      <category>cli</category>
      <category>rust</category>
      <category>showdev</category>
      <category>tooling</category>
    </item>
  </channel>
</rss>
