zxel
is an interactive terminal shell for JavaScript runtimes with syntax highlight and zx
utilities.
Prerequisites: Node (version 18 or above)
npx zxel
Alternatively, with Bun.
bunx zxel
- 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
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()
Utilities from zx
are defined as global variables.
$
- Run shell command with return valueconst text = await $`cat readme.md` const files = (await $`ls -1`).split('\n')
$see
- Run shell command with console outputawait $see`ls -1`
cd
- Change directoryfetch
- Fetchfs
- File system utilities fromfs-extra
glob
- Pattern match files usingglobby
for (const file of await glob('*.txt')) { console.log(file) }
globDir
- Pattern match directoriesos
- OS info fromos
path
- Path utilities frompath
Also globals from Node, or Bun with Database
.
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 |
- Multiline mode