Nodebook - Multi-Lang Web REPL + CLI Code runner
Alternatives To Nodebook
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Python Fire24,3135848492 months ago9January 22, 2021137otherPython
Python Fire is a library for automatically generating command line interfaces (CLIs) from absolutely any Python object.
Ts Node11,801143,62180,76110 days ago126July 14, 2022169mitTypeScript
TypeScript execution and REPL for node.js
Psysh9,52482,42357719 days ago86July 28, 202242mitPHP
a day ago96August 25, 202243otherGo
jq for binary formats - tool, language and decoders for working with binary and text formats
Alive Progress4,43710910 days ago26April 01, 202215mitPython
A new kind of Progress Bar, with real-time throughput, ETA, and very cool animations!
Evans3,71754 days ago48August 26, 202224mitGo
Evans: more expressive universal gRPC client
Go Pry2,94844 months agoMay 24, 20216mitGo
An interactive REPL for Go that allows you to drop into your code at any point.
4 years ago55mitJavaScript
>_ Electron based NodeJS REPL :see_no_evil:
Discord Musicbot2,506
3 days ago21otherJavaScript
An advanced discord music bot, supports Spotify, Soundcloud, YouTube with Shuffling, Volume Control and Web Dashboard with Slash Commands support!
2 years ago37bsd-3-clauseRuby
An interactive shell for git
Alternatives To Nodebook
Select To Compare

Alternative Project Comparisons


Nodebook - Multi-Language REPL with Web UI + CLI code runner

Useful to practice algorithms and datastructures for coding interviews.

What is it?

Nodebook is an in-browser REPL supporting many programming languages. Code's on the left, Console's on the right. Click "Run" or press Ctrl+Enter or Cmd+Enter to run your code. Code is automatically persisted on the file system.

You can also use Nodebook directly on the command line, running your notebooks upon change.


A notebook is a folder containing an {index|main}.{js,py,c,cpp,...} file. The homepage lists all of the available notebooks.


Supported environments

  • C11 (.c)
  • C++14 (.cpp)
  • C# (.cs)
  • Clojure (.clj)
  • Elixir (.ex)
  • Fsharp (.fs)
  • Go (.go)
  • Haskell (.hs)
  • Java (.java)
  • NodeJS (.js)
  • Lua (.lua)
  • OCaml (.ml)
  • PHP (.php)
  • Python 3 (.py)
  • R (.r, .R)
  • Ruby (.rb)
  • Rust (.rs) — Uses cargo run if Cargo.toml is present, and rustc otherwise
  • Swift (.swift)
  • TypeScript (.ts)

If --docker is set on the command line, each of these environments will run inside a specific docker container.

Otherwise, the local toolchains will be used.

Install from release

Head to Releases and download the binary built for your system (mac, linux).

Rename it to nodebook and place it in your path.

Install from source

Building requires go.

$ make deps
$ make install
# nodebook should be available under $GOPATH/bin/nodebook or $GOBIN/nodebook

Run with Web UI

# With dockerized toolchains
$ nodebook --docker path/to/notebooks

# With local toolchains
$ nodebook path/to/notebooks

Run on CLI (watch and run mode)

$ nodebook cli --docker path/to/notebooks
# Or
$ nodebook cli path/to/notebooks


Create a Notebook (Web UI)

Click on the + Notebook button on the Home page, then select the language of the notebook to be created.

Once on the notebook edition page, you can rename the notebook by clicking on it's name.

Notebooks are created in the directory specified by the parameter --notebooks.

Create a Notebook manually (WebUI, CLI)

In the directory where you want your notebooks to be stored, simply create a folder containing a file named {index|main}.{js,py,c,cpp,...}.

The notebook's name will be the name of the folder. The notebook language is determined automatically.

Command line options

  • --docker: Execute code in disposable docker containers instead of local system; defaults to false

Web UI only:

  • --bindaddress: IP address the http server should bind to; defaults to
  • --port: Port used by the application; defaults to 8000

Notebook environment

If your notebook dir contains a .env file, the corresponding environment will be set up during notebook execution.

Exemple .env:


More information about the expected file format here: motdotla/dotenv

⚠️ A bit of warning ⚠️

Do not run the Web UI on a port open to public traffic! Doing so would allow remote code execution on your machine.

By default, the server binds to, which allows connection from the localhost only. You can override the bind address using --bindaddress, but do it only if you know what you're doing.

Popular Command Line Projects
Popular Repl Projects
Popular Command Line Interface Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
C Sharp
F Sharp