Get started
Install Ink, create an app and run it on a Light Phone III.
Use macOS Apple Silicon or Linux x64 with glibc 2.35 or newer, such as Ubuntu 22.04. Linux ARM64 supports JavaScript tooling, but cannot build Android apps.
Install
curl -fsSL https://ink.noscroll.ing/install.sh | sh
The installer includes Bun and runs ink setup. Follow its PATH instructions and any prompts for missing build tools. Setup reuses existing tools and asks before installing components.
If setup is incomplete, follow its instructions and run ink setup again. ink doctor checks prerequisites without installing anything. See setup options for custom tool locations and non-interactive installs.
Create an app
ink create my-app --name "My app" --package com.example.myapp
cd my-app
ink check
Replace com.example.myapp with your app’s Android application ID. Ink installs the dependencies and creates the home screen at app/index.tsx.
New apps include a README and a header with the app’s icon, name and four starter screenshots. Add --repository your-name/my-app to set the README’s licence badge, release badge and download link, or replace OWNER/REPO in the README later. Replace assets/a.png–d.png with your own screenshots, then run ink header.
ink check checks formatting, lint, types and bundling. Use ink format to fix formatting. See Project structure for routes, assets and configuration.
Run on a phone
Enable USB debugging, connect your Light Phone III and accept its debugging authorisation prompt.
ink devices
ink dev
Ink builds, installs and opens the app. Edit app/index.tsx to update it on your phone. Press r to reload, a to reopen the app or Ctrl+C to stop. Use ink logs to stream app logs.
With several devices connected, use ink dev --device <serial>. Ink remembers your selection. ink dev --once builds and opens the app without watching for changes.
To use an existing Light Phone III emulator, start it first:
emulator -avd Light_Phone_III -writable-system
This requires an AVD named Light_Phone_III. Ink does not create the emulator image.
Add a module
From your app directory:
ink add @ink/audio
Import the module in your app. Ink installs matching package versions and compiles the native features your imports require. See Audio for usage, or Light SDK for LightOS integration.
Use your own package manager for other JavaScript packages. Ink’s bundled Bun is private to the CLI.
Build an APK
ink build --debug
For a signed APK to distribute, see Build an APK.
Update
ink update
ink upgrade is an alias. The next ink dev, ink build or ink check updates the app’s Ink packages. Alpha releases can include breaking changes; the compiler reports any required app changes. Ignoring an update notice keeps your installed version.

