How to Install Gemini CLI on Termux: Bypassing the Native Build Error

3 min read Original article ↗

The Solution: A Step-by-Step Guide

1. Prepare Your Environment

First, ensure your package lists are updated and you have Node.js installed.

Bash

pkg update && pkg upgrade
pkg install nodejs

2. Install Build Dependencies

Even though we will eventually skip some scripts, having the basic build tools (Python and Clang) ensures that other parts of the Node ecosystem function correctly within Termux.

Bash

pkg install python make clang

3. The “Secret Sauce” Installation

The key to success is the --ignore-scripts flag. This tells npm to skip the post-install compilation of native modules. While tree-sitter is used for advanced code parsing, it is not strictly required for the core Gemini chat functionality.

Run this command:

Bash

npm install -g @google/gemini-cli --ignore-scripts

4. Launch and Authenticate

Once installed, launch the CLI. On your first run, it will prompt you to authenticate.

Bash

gemini
  • Select “Login with Google”.
  • A URL will be provided; copy and paste it into your mobile browser.
  • Log in, copy the authorization code, and paste it back into Termux.

If you’ve been banging your head against the wall trying to get this to work, you aren’t alone. Most users go through a specific “cycle of failure” before finding the right command. Here is why the common methods fall short on Android:

1. The “Quick Start” Failure

Attempt: npx @google/gemini-cli

Result: Silent Exit. The “Why”: When you run this via npx, Node tries to execute the package immediately. However, the native modules (like Tree-sitter) fail quietly in the background during the temporary install. This crashes the process before the CLI even has a chance to show you an error message.

2. The Dependency Trap

Attempt: npm install (without Python installed)

Result: Hard Failure. The “Why”: Many Google CLI tools rely on node-gyp to compile C++ Addons. node-gyp is built on Python, so without pkg install python, the installation hits a dead end before it even starts compiling.

3. The NDK Ghost

Attempt: npm install (with Python and Clang installed)

Result: Undefined variable android_ndk_path. The "Why": This is the most frustrating error. The tree-sitter-bash module (used for code parsing) sees that it is being installed on an Android system. It then automatically looks for the Android NDK (Native Development Kit) path. Because Termux provides a specialized Linux environment and not a full Android Studio SDK, that path doesn't exist, and the build breaks.

4. The Breakthrough

Attempt: npm install -g @google/gemini-cli --ignore-scripts

Result: Success. The “Why”: By adding the --ignore-scripts flag, we tell npm to skip the compilation of those non-essential native modules. Since the core of the Gemini CLI is written in pure JavaScript and communicates via standard Web APIs, it runs perfectly fine without the local "Tree-sitter" parsing engine.