JS Shell is a portable terminal you can carry in your pocket. It bundles a real
Unix-like shell with a QuickJS-powered JavaScript REPL, a local HTTP server, and
a persistent SQLite-backed key-value store — all running entirely on your device,
with no cloud services and no account required.
KEY FEATURES
- Shell commands — ls, cat, rm, edit, run, paste, fetch, curl, extract, kv
- fetch — download a tarball or zip and unpack it under a sandboxed directory in
one step. Cached after first run; say "update" to re-download.
- extract — handles .tar / .tar.gz / .tgz / .gz / .zip with full path safety
- curl — full HTTP request tool: -X -H -d -i -I -o -A -m -v all supported
- Local HTTP server — preview your HTML / CSS / JS instantly via http://localhost
- Embedded WebView — open pages in-app with a single tap
JAVASCRIPT REPL
- Real QuickJS engine running on device
- CommonJS modules: write `module.exports = {...}` and `require('./mod.js')`
- fetch, setTimeout, setInterval all work
- :q to exit back to shell
PERSISTENT KEY-VALUE STORE
- Real SQLite B-tree on disk — O(log n) lookups, not "scan a JSON file"
- Same-origin REST API exposed at /_kv from your local pages
- PUT / GET / DELETE / LIST — works from JS fetch() in the WebView
VOICE INPUT
- Speak commands in 40+ languages — Mandarin, Japanese, Korean, Spanish, French,
German, Russian, Arabic, Hindi, Vietnamese and more all auto-translate to
shell commands
- Continuous listening with smart silence detection
QR CODE SCRIPTS
- Scan a QR code to install a script — scripts are sandboxed by origin so a QR
from one publisher cannot overwrite files from another
- Custom jsshell:// deep-link scheme for one-tap installs
- Built-in QR scanner with camera support
PRIVACY
- 100% local. No analytics. No ads. No tracking. No account.
- Your files live in the app's private storage and never leave your device.
- Network requests only happen when you explicitly run fetch / curl / open.
UI LANGUAGE
JS Shell automatically picks the UI language from your system settings:
English, 中文, 日本語, 한국어, Español, Français, Deutsch, Português, Русский.
PERMISSIONS WE USE
- Internet — only for fetch / curl URLs you provide
- Camera — only when you open the QR scanner
- Microphone — only when you tap the voice input button
- No location, no contacts, no storage outside the app sandbox
GREAT FOR
- Developers who want a pocket terminal for quick experiments
- JavaScript learners who want a fast REPL anywhere
- Power users running self-hosted scripts via QR distribution
- Web devs prototyping without setting up a laptop
Open source spirit, built with Flutter. Works offline, respects your data.