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 directory -
fetch
- Fetch -
fs
- File system utilities fromfs-extra
-
glob
- Pattern match files usingglobby
for (const file of await glob('*.txt')) { console.log(file) }
-
globDir
- Pattern match directories -
os
- 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