Skip to content

Termux setup

import { Steps } from ‘@astrojs/starlight/components’;

Termux gives Calypso a real local toolchain: node, npm, python, git, and ttyd for the embedded terminal. It is optional, and only needed when you want native packages, npm install, Git CLI commands, framework projects, or a real shell.

Setup is mostly one-tap. You type one command by hand in Termux, then Calypso finishes the rest from its setup screen and streams the install into the Output panel.

Open the setup screen any time from Run menu -> Termux Setup Guide.

Part 1 - Once, inside Termux

These two steps are the only manual part.

  1. Install Termux from F-Droid

    Use the F-Droid build, not the Play Store one. The Play Store version has RUN_COMMAND disabled, so it cannot accept commands from Calypso.

    Get it from f-droid.org.

  2. Enable external apps

    Open Termux and paste this single command. It cannot be automated because it is the security gate that lets Calypso talk to Termux:

    Terminal window
    mkdir -p ~/.termux && echo "allow-external-apps=true" >> ~/.termux/termux.properties && termux-reload-settings

Part 2 - Let Calypso finish

Everything below is a button on Calypso’s Termux setup screen.

  1. Grant All-files access

    Calypso needs this for project access and log handling. Tap Grant All-files access and enable Calypso in the system settings screen that opens.

  2. Grant the RUN_COMMAND permission

    Termux’s “Run commands” permission is a runtime permission. Having it in the manifest is not enough. Tap Grant RUN_COMMAND permission, then Allow.

  3. Grant Termux storage

    Tap Grant Termux storage. Termux opens and asks for storage permission; tap Allow.

  4. Install the toolchain

    Tap Install toolchain & verify. Calypso runs the setup through Termux: package upgrade, nodejs, python, git, ttyd, and npm compatibility settings. When it finishes, the Toolchain status row turns green.

  5. Install language servers

    This is optional, but recommended if you want IntelliSense. Tap Install language servers to install TS/JS, Python, Bash, HTML/CSS/JSON, and YAML servers. See IntelliSense.

Where your projects live

Calypso’s Termux-backed projects live in Termux’s project workspace:

Terminal window
~/CalypsoProjects

That is the same as:

Terminal window
/data/data/com.termux/files/home/CalypsoProjects

This keeps Node, npm, Git, and framework tooling inside Termux’s own Linux-like filesystem, which is more reliable than Android shared storage for real development work.

Create projects in the right place in either of these ways:

  • From Calypso, recommended. Use New Project from the project switcher to scaffold React, Vue, Svelte, or Angular projects, or use Clone to clone an existing Git repository. Calypso creates the folder under ~/CalypsoProjects, runs the Termux command, and opens it in the editor.

  • From the Termux app. cd into the Calypso workspace first:

    Terminal window
    cd ~/CalypsoProjects
    mkdir myapp && cd myapp
    # now work here

Use the ... menu in the project switcher to rename or delete projects created under ~/CalypsoProjects.

Running code in Termux

Open or create a project from the project switcher. Termux-backed projects are kept under ~/CalypsoProjects; each subfolder is its own project. Then use the Run menu:

  • Run Active File in Termux runs the open file and streams output into Calypso’s Output panel.
  • Run Command in Termux lets you type a shell command and stream it. Great for installs and one-offs.
  • Terminal opens a full interactive shell. See Terminal & web preview.

Creating framework projects

The easiest path is New Project from Calypso’s project switcher. Calypso uses Termux to scaffold the project, install dependencies, apply the small Android-friendly script tweaks needed for Termux, and open the folder.

Supported project families include:

  • React
  • Vue
  • Svelte
  • Angular

Vite-based templates can be created as JavaScript or TypeScript projects, and supported templates can optionally include Tailwind CSS.

A quick test

Put this in app.js inside your active Termux-backed project:

console.log("hi");
console.log(require("os").platform());

Run Active File in Termux should stream hi then android into the panel and finish with exit code 0.

For a real package test, use Run Command in Termux:

Terminal window
npm init -y && npm install cowsay
app.js
const cowsay = require("cowsay");
console.log(cowsay.say({ text: "Calypso + Termux!" }));

Known limitations

  • Stop on a streamed run cancels Calypso’s live output tailing, but it may not kill the Termux process. For a session you fully control, use the Terminal, where Ctrl-C works.
  • Streamed output is poll-based, around 400 ms. It is near-live, not instant, and is fine for build and run logs.