Runno Code Sandbox

by taybenlor

415 downloads Not rated yet

About

The @runno/mcp server provides a run_code tool that AI assistants can use to execute code snippets in various programming languages. It leverages the @runno/sandbox package, which uses WebAssembly to create isolated environments for code execution. The result of the code executio

Explore

- Runs code in the browser using WebAssembly and WASI.
- Provides a sandboxed, in-memory file system.
- Supports multiple runtimes: Python, Ruby, QuickJS, SQLite, Clang, Clang++, PHP-CGI.
- Offers both web components (@runno/runtime) and a headless WASI runtime (@runno/wasi).
- Code executes in a Web Worker with terminal emulation via XTerm.js.
- No server-side execution required—all processing happens on the client.

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Runno Code Sandbox
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Start by adding @runno/runtime to your package:

npm install @runno/runtime

Import @runno/runtime in whatever place you'll be using the runno elements.
The simplest is in your entrypoint file (e.g. main.ts or index.ts).

import "@runno/runtime";

Once you've imported them you can use runno elements on the page.

<runno-run runtime="python" editor controls> print('Hello, World!') </runno-run>

For the code to run though, you'll need to set some HTTP headers:

Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Embedder-Policy: require-corp

These create a cross-origin isolated context which allows the use of SharedArrayBuffer used to implement STDIN.

The runtime also provides a component for running WASI binaries directly.

<runno-wasi src="/ffmpeg.wasm" autorun></runno-wasi>

If you're lucky everything should work after doing:

npm install
npm run bootstrap
npm run build  # make sure the dependent libraries are built
npm run dev

If you edit host, terminal, wasi or runtime you will need to re-build them with npm run build.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "runno code sandbox": {
            "runno": {
                "command": "/usr/local/bin/npx",
                "args": [
                    "@runno/mcp"
                ]
            }
        }
    }
}

McpServers

{
    "runno": {
        "command": "/usr/local/bin/npx",
        "args": [
            "@runno/mcp"
        ]
    }
}

Runno helps you make runnable code examples that can be embedded in web pages.

This project is powered by WASI the Web Assembly System
Interface. It provides a standard way for programs to interact with an
operating system. By emulating this interface, we can provide a fake file system
and operating system, all running within the browser. Then we can run
programming languages in the browser, without modification.

This is very handy for programming education it means:

- No need for newbies to install complex programming tools to run code
- Programming examples can be made runnable in the browser with no server
- Simple programs can be tested for correctness inside a sandbox on the user's machine

Runno also ships its own WASI runtime (@runno/wasi) which is used to power
Runno under the hood. It can be used independently to run WASI binaries in the
browser.

Two parts to Runno

There are two main parts to runno:

1. @runno/runtime - web components and headless tools for running code examples in the browser.
2. @runno/wasi - a sandboxed implementation of WASI made for the browser that works on the server.

The @runno/runtime is built on top of the primitives provided by @runno/wasi.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.