zxel
v0.0.6
Published
Interactive terminal shell for JavaScript runtimes with syntax highlight and zx utilities
Downloads
34
Readme
zxel
zxel
is an interactive terminal shell for JavaScript runtimes with syntax highlight and zx
utilities.
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 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
.
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