Skip to content

Repository files navigation

nodl

A fast, lightweight desktop scratchpad for writing and running JavaScript/TypeScript code with instant inline output.

Website  ·  Download  ·  Features  ·  Installation  ·  Development  ·  Contributors

nodl preview


Features

  • Monaco Editor with full TypeScript/JavaScript language support, IntelliSense, and syntax highlighting
  • Inline output aligned to the source line that produced it, or a sequential console mode
  • Expression evaluation — standalone expressions show their result inline without needing console.log
  • TypeScript out of the box — write TS directly, types are stripped at execution time via esbuild
  • ESM import supportimport statements are auto-converted to require() at instrumentation time
  • npm package management — install, remove, and search npm packages from within the app
  • Async code supportsetTimeout, setInterval, Promises, and async/await all work naturally
  • Multi-tab workspace — multiple files with auto-persistence across sessions
  • Auto-run mode — re-executes code on every keystroke with configurable debounce delay
  • Dark and light themes — warm neutral dark theme by default, with light and system options
  • Scroll-synced panels — editor and output panels scroll together in aligned mode
  • Keyboard-firstCmd+Enter to run, Cmd+N for new tab, Cmd+W to close tab
  • Cross-platform — macOS, Windows, and Linux

Installation

Grab the latest release for your platform from GitHub Releases.

Platform Files
macOS (Apple Silicon) .dmg, .zip
macOS (Intel) .dmg, .zip
Windows .exe (installer), .exe (portable)
Linux .AppImage, .deb

macOS

Warning

nodl is not code-signed or notarized by Apple. macOS will block the app on first launch with a message like "nodl is damaged and can't be opened" or "nodl can't be opened because Apple cannot check it for malicious software". You must remove the quarantine attribute manually — this is expected and only required once.

  1. Download the .dmg for your architecture:
    • Apple Silicon (M1/M2/M3/M4) → nodl-<version>-arm64.dmg
    • Intel → nodl-<version>-x64.dmg
  2. Open the DMG and drag nodl into your Applications folder.
  3. Remove the Gatekeeper quarantine flag:
    xattr -cr /Applications/nodl.app
  4. Launch nodl from Applications (or Spotlight).

Windows

  1. Download nodl-<version>-setup.exe (installer) or the portable .exe.
  2. Run the installer, or double-click the portable build to launch directly.
  3. SmartScreen may show "Windows protected your PC" — click More infoRun anyway.

Linux

  1. Download the .AppImage or .deb asset.
  2. AppImage:
    chmod +x nodl-*.AppImage
    ./nodl-*.AppImage
  3. Debian / Ubuntu:
    sudo dpkg -i nodl-*.deb

Why the security warnings?

nodl is free and open-source. Apple code-signing certificates cost $99/year and Windows EV certs are $300+/year, so releases are distributed unsigned. The quarantine/SmartScreen bypass is a one-time step — after the first launch, the OS remembers your choice.

Usage

  1. Write code in the editor (left panel)
  2. Run with Cmd+Enter (macOS) or Ctrl+Enter (Windows/Linux)
  3. See output in the right panel, aligned to the lines that produced it

Output modes

  • Line-aligned (default) — output appears next to the source line that generated it
  • Console — output appears sequentially, like a terminal

Toggle between modes with the button in the output panel toolbar.

Expression evaluation

Standalone expressions are automatically evaluated and shown inline:

1 + 2              // => 3
"hello".toUpperCase()  // => "HELLO"
[1, 2, 3].map(x => x * 2)  // => [2, 4, 6]

No console.log needed for quick checks.

npm packages

Click Packages in the sidebar to install npm packages. Installed packages can be imported with standard import syntax:

import axios from "axios"
import { z } from "zod"

Imports are automatically converted to require() calls at execution time.

Development

See docs/DEVELOPMENT.md for setup, architecture, project structure, testing, and the tech stack.

Updates

nodl checks GitHub Releases on launch. When a new version is available, a badge appears in the header. Click it for download instructions. Updates are manual — download the new version and replace the old one.

Contributors

nodl contributors

Star History

Star History Chart

License

MIT © Hung Doan

About

A scratchpad for TypeScript.

Topics

Resources

Stars

17 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages