zxel

0.0.6 • Public • Published

zxel

zxel is an interactive terminal shell for JavaScript runtimes with syntax highlight and zx utilities.

Screenshot

Usage

Prerequisites: Node (version 18 or above)

npx zxel

Alternatively, with Bun.

bunx zxel

Features

  • Read-eval-print-loop of JavaScript expression
  • Syntax highlight using emphasize
  • Keyboard shortcuts similar to readline
  • Top-level await
  • Globals from zx
  • Runs with Bun if installed

Environment

Assign variables on this to make it available for subsequent lines of code.

this.a = 123

Using let or const doesn't work because every line is evaluated in its own function scope.

Global utilities like fs and glob are also defined on this.

Object.keys(this).sort()

Globals

Utilities from zx are defined as global variables.

  • $ - Run shell command with return value
    const text = await $`cat readme.md`
    const files = (await $`ls -1`).split('\n')
  • $see - Run shell command with console output
    await $see`ls -1`
  • cd - Change directory
  • fetch - Fetch
  • fs - File system utilities from fs-extra
  • glob - Pattern match files using globby
    for (const file of await glob('*.txt')) {
      console.log(file)
    }
  • globDir - Pattern match directories
  • os - OS info from os
  • path - Path utilities from path

Also globals from Node, or Bun with Database.

Keyboard shortcuts

Shortcut Comment
Enter Run code
Escape Cancel
Forward one character
Ctrl+ Forward one word
Backward one character
Ctrl+ Backward one word
Home, Ctrl+A Beginning of line
End, Ctrl+E End of line
Next line in history
Previous line in history
Ctrl+C Exit shell
Backspace Delete previous character
Delete Delete next character
Ctrl+L Clear screen

TODO

  • Multiline mode

References

Readme

Keywords

Package Sidebar

Install

npm i zxel

Weekly Downloads

58

Version

0.0.6

License

MIT

Unpacked Size

28.9 kB

Total Files

8

Last publish

Collaborators

  • eliot