What works where
Calypso runs your code in two tiers. Tier 1 is the default and needs no setup. Tier 2 (Termux) is opt-in and unlocks a real local toolchain.
Why two tiers?
Android sandboxes every app, and since Android 10 (API 29) apps cannot execute downloaded binaries (the “W^X” rule). That’s an OS-level limitation, not a Calypso one — it’s the reason a real toolchain needs Termux (a separate app with its own permitted execution environment).
The comparison
| Capability | Tier 1 — On-device sandbox | Tier 2 — Termux |
|---|---|---|
| Setup required | None | One-time (see setup) |
| Run Python | ✅ Pyodide (WASM) | ✅ Real CPython |
| Run JavaScript | ✅ Sandboxed WebView | ✅ Real Node.js |
| Import pure-Python packages | ✅ via micropip | ✅ via pip |
| Import JS packages | ✅ via esm.sh (ES modules) | ✅ via npm |
npm install (real node_modules) | ❌ | ✅ |
| Native / compiled packages | ❌ | ✅ |
Node require, fs, process | ❌ | ✅ |
| Run any shell command | ❌ | ✅ Run Command in Termux |
| Interactive terminal (REPLs, prompts) | ❌ | ✅ Embedded Terminal |
| Preview a local dev server | ✅ Web Preview | ✅ Web Preview |
| Create React / Vue / Svelte / Angular projects | ❌ | ✅ New Project |
| IntelliSense (autocomplete, hover, diagnostics, go-to-def) | ⚠️ Basic (keywords + snippets) | ✅ Full (language servers) |
git CLI | ❌ (use Calypso’s built-in Git) | ✅ |
Tier 1 — on-device sandbox (default)
This is the path for casual use and quick iteration:
- Python via Pyodide; JavaScript in a sandboxed WebView.
- Package imports without install: JS bare imports are rewritten to
https://esm.sh/<pkg>and run as ES modules; Python usesmicropipto fetch pure-Python wheels on first import. - No filesystem, no shell, no native code.
When you hit a ceiling (a native package, Node’s require/fs/process, or an
esm.sh failure), Calypso shows a hint pointing you toward Termux.
Tier 2 — Termux (opt-in)
For real projects — npm install, native modules, a full shell. After a
one-time setup, the Run menu gives you several ways to use it:
- New Project — scaffold React, Vue, Svelte, or Angular projects through Termux, install dependencies, and open the project in Calypso.
- Run Active File in Termux — runs the open file with the real toolchain and streams output back into Calypso’s Output panel.
- Run Command in Termux — type any shell command (e.g.
npm install axios) and stream its output, without leaving the editor. No more wrapping commands in aninstall.sh. - Terminal — a full interactive terminal embedded in Calypso (real
stdin,
Ctrl-C, colours). Docked beside the editor on tablets, full-screen on phones. See Terminal & web preview. - Web Preview — open a dev server you started in the Terminal (e.g.
localhost:3000) right inside Calypso. See Terminal & web preview.
Termux also powers IntelliSense — installing the language servers (one tap on the setup screen) gives real autocomplete, hover, diagnostics and go-to-definition, all running on-device.
Termux-backed projects live in Termux’s workspace (~/CalypsoProjects), and
Calypso opens them through the Termux integration.
Calypso-created web projects are portable. They are ordinary framework projects, so you can push them to GitHub, clone them on a desktop, edit them in VS Code, and pull the changes back into Calypso.