Modular framework for setting up and managing development environments on Termux (Android)
curl -fsSL https://raw.githubusercontent.com/DevCoreXOfficial/core-termux/main/install.sh | bashThen run:
core setup| Command | Description |
|---|---|
core setup |
Interactive installation wizard |
core install |
Install specific modules |
core update |
Update modules or framework |
core uninstall |
Remove installed modules |
core list |
List available tools in modules |
core pg |
PostgreSQL database manager |
core init |
Configure existing projects |
Interactive wizard with keyboard navigation.
core setup # Interactive menu
core setup full # Automatic full installation
core setup base # Base packages onlyInteractive menu options:
- Full installation β Install all modules
- Custom installation β Select specific modules with ββ
- Base installation β Termux base packages only
List available tools in a module and their installation status.
core list # Show help
core list <module> # List tools in specific moduleAvailable targets:
| Target | Description |
|---|---|
language |
Language packages (Node.js, Python, Perl, PHP, Rust, C/C++) |
db |
Databases (PostgreSQL, MariaDB, SQLite, MongoDB) |
ai |
AI tools (Qwen Code, Gemini CLI, Mistral Vibe, OpenClaude, Claude Code, OpenClaw, Ollama) |
editor |
Code editor components (Neovim, NvChad) |
tools |
Development tools (gh, wget, curl, fzf, lsd, bat, etc.) |
node |
Node.js global npm packages |
shell |
ZSH plugins |
ui |
Termux UI components |
automation |
Automation tools (n8n) |
Install individual modules or specific tools within modules.
core install # Show help
core install <module> # Install entire module
core install <module> --tool1 --tool2 # Install specific tools
core install full # Install everythingAvailable modules:
| Module | Description |
|---|---|
language |
Node.js, Python, Perl, PHP, Rust, C/C++ |
db |
PostgreSQL, MariaDB, SQLite, MongoDB |
ai |
Qwen Code, Gemini CLI, Mistral Vibe, OpenClaude, Claude Code, OpenClaw, Ollama |
editor |
Neovim + NvChad configuration |
tools |
GitHub CLI, wget, curl, fzf, lsd, bat, etc. |
node |
Node.js global npm packages |
shell |
ZSH + Oh My Zsh + 10 plugins |
ui |
Termux UI (font, cursor, extra-keys) |
automation |
Automation Tools (n8n) |
Install entire module:
core install ai # Install all AI tools
core install db # Install all databases
core install tools # Install all development toolsInstall specific tools:
core install ai --qwen-code --ollama # Install only Qwen Code and Ollama
core install db --postgresql --sqlite # Install only PostgreSQL and SQLite
core install tools --gh --fzf --jq # Install only gh, fzf, and jq
core install node --typescript --prettier # Install only TypeScript and PrettierTip: Run
core list <module>to see all available tools and their flags.
Update modules or the complete framework.
core update # Show help
core update <target> # Update specific target
core update <target> --tool1 --tool2 # Update specific tools
core update all # Update everything
core update core # Update framework onlyUpdate targets:
| Target | Description |
|---|---|
all |
Framework + all installed packages |
core |
Core-Termux framework only |
language |
Language packages (pkg upgrade) |
db |
Databases |
ai |
AI tools (npm/pip) |
editor |
Code editor configuration |
tools |
Development tools |
node |
Node.js global modules |
shell |
ZSH plugins |
ui |
Termux UI |
automation |
Automation Tools |
Update entire module:
core update ai # Update all AI tools
core update db # Update all databasesUpdate specific tools:
core update ai --qwen-code --ollama # Update only Qwen Code and Ollama
core update db --postgresql --sqlite # Update only PostgreSQL and SQLite
core update tools --gh --fzf --jq # Update only gh, fzf, and jqRemove installed modules or specific tools.
core uninstall # Show help
core uninstall <target> # Uninstall specific target
core uninstall <target> --tool1 --tool2 # Uninstall specific tools
core uninstall all # Remove everything (restore default)Uninstall targets:
| Target | Description |
|---|---|
all |
Remove everything and restore Termux to default |
language |
Language packages |
db |
Databases |
ai |
AI tools |
editor |
Code editor |
tools |
Development tools |
node |
Node.js modules |
shell |
ZSH + Oh My Zsh |
ui |
Restore Termux UI to default |
automation |
Automation tools |
Uninstall entire module:
core uninstall ai # Uninstall all AI tools
core uninstall db # Uninstall all databasesUninstall specific tools:
core uninstall ai --qwen-code --ollama # Uninstall only Qwen Code and Ollama
core uninstall db --postgresql --sqlite # Uninstall only PostgreSQL and SQLite
core uninstall tools --gh --fzf # Uninstall only gh and fzfPostgreSQL database manager.
core pg # Show help
core pg start # Start server
core pg stop # Stop server
core pg restart # Restart server
core pg status # Check status
core pg init # Initialize database
core pg create <name> # Create database
core pg drop <name> # Drop database
core pg list # List databases
core pg shell # Open psql consoleFeatures:
- Automatic data directory detection
- Support for existing installations
- Logs in
~/.cache/core-termux/postgresql.log
Configure existing projects with predefined dependencies and structure.
core init # Show help
core init <template> # Configure with specific templateAvailable templates:
| Template | Description |
|---|---|
next |
Next.js with preconfigured dependencies |
react |
React + Vite with modern structure |
nest |
NestJS with additional configuration |
express |
Express API with TypeScript + TypeORM |
Usage:
cd my-next-app && core init next
cd my-react-app && core init react
cd api && core init express
cd backend && core init nestInstalled dependencies:
{
"dependencies": {
"axios": "latest",
"lucide-reac
8000
t": "latest",
"framer-motion": "latest",
"sonner": "latest",
"zod": "latest",
"react-hook-form": "latest",
"@hookform/resolvers": "latest",
"@tanstack/react-query": "latest",
"zustand": "latest",
"tailwindcss": "latest"
},
"devDependencies": {
"prettier": "latest",
"prettier-plugin-tailwindcss": "latest"
}
}Configuration:
.prettierrcwith Tailwind CSS plugin- Scripts with
--webpackflag - DevCoreX landing page included
- Structure:
components/,lib/,hooks/,types/,config/,store/
Same dependencies as Next.js (except Next.js-specific configs)
Configuration:
.prettierrcwith Tailwind CSS plugin- Custom Button component
- DevCoreX landing page in
src/App.tsx - Structure:
components/,lib/,hooks/,types/,config/,store/,pages/
Dependencies:
express, pg, typeorm, reflect-metadata
jsonwebtoken, cookie-parser, morgan, cors
bcryptjs, helmet, cloudinary, multer
express-rate-limit, tsconfig-paths, zod
devDependencies:
typescript, ts-node-dev, tsconfig-paths, tsc-alias
@types/node, @types/multer, @types/morgan
@types/jsonwebtoken, @types/helmet
@types/express, @types/cors
@types/cookie-parser, @types/bcryptjs
Scripts added:
{
"dev": "ts-node-dev --require tsconfig-paths/register --env-file=.env --respawn src/index.ts",
"build": "tsc && tsc-alias -p tsconfig.json",
"start": "node dist/index.js",
"typeorm": "ts-node-dev --require tsconfig-paths/register --env-file=.env ./node_modules/typeorm/cli.js",
"mg:gen": "npm run typeorm -- migration:generate -d src/database/data-source.ts",
"mg:create": "npm run typeorm -- migration:create",
"mg:run": "npm run typeorm -- migration:run -d src/database/data-source.ts",
"mg:revert": "npm run typeorm -- migration:revert -d src/database/data-source.ts",
"mg:show": "npm run typeorm -- migration:show -d src/database/data-source.ts"
}Structure created:
src/
βββ app.ts # Express configuration
βββ index.ts # Entry point
βββ config/
β βββ env.ts # Environment variables
βββ database/
β βββ data-source.ts # TypeORM DataSource
β βββ migrations/
β βββ seeds/
βββ entities/
βββ controllers/
βββ repositories/
βββ services/
βββ routes/
βββ schemas/ # Zod schemas
βββ middlewares/
βββ types/
βββ utils/
Configured files:
tsconfig.jsonwith paths (@/*).env.examplesrc/config/env.tssrc/database/data-source.ts(TypeORM)src/app.ts(Express with CORS, helmet, rate-limit)src/index.ts
Dependencies:
@nestjs/typeorm, typeorm, pg
@nestjs/jwt, @nestjs/passport
class-validator, class-transformer
bcryptjs, helmet, cloudinary
The language module installs the following programming languages and runtimes via pkg:
core install language| Language/Runtime | Package | Description |
|---|---|---|
| Node.js LTS | nodejs-lts |
Long-term support release of Node.js |
| Python | python |
Python 3 interpreter |
| Perl | perl |
Perl scripting language |
| PHP | php |
PHP interpreter |
| Rust | rust |
Rust compiler and Cargo |
| C/C++ | clang |
LLVM C/C++ compiler |
The tools module installs the following development utilities via pkg:
core install tools| Tool | Package | Description |
|---|---|---|
| GitHub CLI | gh |
Official GitHub command-line tool |
| Wget | wget |
File downloader |
| Curl | curl |
HTTP client and transfer tool |
| LSD | lsd |
Modern ls replacement with icons and colors |
| Bat | bat |
Modern cat replacement with syntax highlighting |
| Proot | proot |
Chroot alternative for user-space |
| Ncurses Utils | ncurses-utils |
Terminal UI manipulation tools |
| Tmate | tmate |
Instant terminal sharing |
| Cloudflared | cloudflared |
Cloudflare Tunnel client |
| Translate Shell | translate-shell |
Command-line translator |
| html2text | html2text |
HTML to plain text converter |
| jq | jq |
Lightweight JSON processor |
| bc | bc |
Arbitrary precision calculator |
| Tree | tree |
Recursive directory listing |
| Fzf | fzf |
Command-line fuzzy finder |
| ImageMagick | imagemagick |
Image manipulation suite |
| Shfmt | shfmt |
Shell script formatter |
| Make | make |
Build automation tool |
The node module installs the following global npm packages:
core install node| Package | Command | Description |
|---|---|---|
| TypeScript | tsc |
TypeScript compiler |
| NestJS CLI | nest |
NestJS framework CLI |
| Prettier | prettier |
Code formatter |
| Live Server | live-server |
Development server with live reload |
| Localtunnel | lt |
Expose localhost to the internet |
| Vercel CLI | vercel |
Vercel deployment CLI |
| Markserv | markserv |
Markdown live-preview server |
| PSQL Format | psqlformat |
PostgreSQL query formatter |
| NPM Check Updates | ncu |
Find outdated dependencies |
| Ngrok | ngrok |
Secure tunnel to localhost |
Note: The
nodemodule automatically applies a fix for localtunnel on Android to replaceopenurlwithtermux-open-url.
The editor module installs Neovim with a custom configuration based on NvChad.
Installation:
core install editorFeatures:
- Neovim - Fast, extensible code editor
- NvChad - Modern Neovim configuration
- GitHub Copilot - AI-powered code completion
- CodeCompanion - AI chat assistant for code
- Preconfigured plugins - LSP, autocomplete, syntax highlighting, file explorer, etc.
Included languages:
- TypeScript/JavaScript
- Python
- PHP
- Perl
- Rust
- Lua
- And more...
For detailed information about the editor configuration, plugins, and usage: β Visit: https://github.com/DevCoreXOfficial/nvchad-termux
The framework includes a professional logging system with colors, icons, and animations.
log_info "Info message"
log_success "Success message"
log_warn "Warning message"
log_error "Error message"
log_debug "Debug message (requires CORE_DEBUG=1)"Hides shell output while running commands:
LOG_FILE="$CORE_CACHE/install.log"
loading "Installing packages" _install_function
_install_function() {
pkg install packages -y &>"$LOG_FILE"
}separator # Single line
separator_double # Double line
separator_section "Title" # Centered title with linebox "Title"
box_large "Large title"
box_with_subtitle "Title" "Subtitle"# Text input
read_input "Name" VAR_NAME
# Confirmation (y/n)
read_confirm "Continue?" VAR_NAME
# Selection with arrow keys ββ
read_select "Environment" VAR_NAME "Dev" "Staging" "Production"table_start "Col1" "Col2" "Col3"
table_row "value1" "value2" "value3"
table_endcore-termux/
βββ assets/
β βββ fonts/
β βββ font.ttf # Meslo Nerd Font (downloaded)
βββ core/
β βββ bin/
β β βββ core # Entry point
β βββ cli/
β β βββ core.sh # CLI logic
β β βββ commands/
β β βββ install.sh # Install command
β β βββ setup.sh # Setup command
β β βββ update.sh # Update command
β β βββ uninstall.sh # Uninstall command
β β βββ list.sh # List command
β β βββ pg.sh # PostgreSQL command
β β βββ init.sh # Init command
β βββ modules/
β β βββ ai.sh # AI tools
β β βββ db.sh # Databases
β β βββ editor.sh # Code editor
β β βββ language.sh # Language packages
β β βββ node-modules.sh # Node.js npm packages
β β βββ shell.sh # ZSH + plugins
β β βββ tools.sh # Tools
β β βββ ui.sh # Termux UI
β β βββ automation.sh # Automation Tools
β βββ tools/
β β βββ ai/
β β β βββ all.sh # Individual AI tool installers
β β βββ db/
β β β βββ all.sh # Individual DB installers
β β βββ tools/
β β β βββ all.sh # Individual tool installers
β β βββ node/
β β β βββ all.sh # Individual node module installers
β β βββ language/
β β β βββ all.sh # Individual language installers
β β βββ shell/
β β β βββ all.sh # Individual shell plugin installers
β β βββ editor/
β β β βββ all.sh # Individual editor installers
β β βββ ui/
β β β βββ all.sh # Individual UI component installers
β β βββ automation/
β β βββ all.sh # Individual automation installers
β βββ fix/
β β βββ localtunnel.sh # Android fix
β βββ utils/
β βββ bootstrap.sh # Framework bootstrap
β βββ colors.sh # ANSI colors
β βββ env.sh # Environment variables
β βββ log.sh # Log functions
βββ install.sh # Auto-installer
βββ README.md # This file
export CORE_DEBUG=1 # Enable debug logs| Directory | Description |
|---|---|
~/.cache/core-termux |
Logs and cache |
~/.config/core-termux |
User configuration |
All processes save logs to:
~/.cache/core-termux/
βββ install_language.log
βββ install_db.log
βββ install_ai.log
βββ install_editor.log
βββ install_tools.log
βββ install_node_modules.log
βββ install_shell.log
βββ install_ui.log
βββ install_automation.log
βββ fix_localtunnel.log
βββ postgresql.log
βββ last_version_check # Last update check timestamp
βββ new_version # New version available (if exists)
The framework checks for updates automatically:
- Frequency: Once every 24 hours
- Impact: None (runs in background)
- Notification: Shown when running
coreif new version exists
$ core
ββ Update Available βββββββββββββββββββββββββββββββββ
β New version available: 3.5.3 (current: 3.5.2)
β Run: core update core to updateTo update:
core update coreWhen installing the shell module:
| Plugin | Description |
|---|---|
| powerlevel10k | Modern and fast theme |
| zsh-defer | Deferred plugin loading |
| zsh-autosuggestions | Smart autocompletion |
| zsh-syntax-highlighting | Syntax highlighting |
| zsh-history-substring-search | History search |
| zsh-completions | Additional completions |
| fzf-tab | Fuzzy navigation in completions |
| zsh-you-should-use | Command suggestions |
| zsh-autopair | Auto-close parentheses |
| zsh-better-npm-completion | Better npm completion |
The shell saves the current directory and restores it when opening a new session:
# Session 1
$ cd projects/my-app
$ exit
# Session 2
$ pwd
/data/data/com.termux/files/home/projects/my-app β Same directoryConfiguration:
- Saves path to
~/.cache/core-termux/last_dir - Automatically restored on startup
- Falls back to
$HOMEif directory doesn't exist
The fix corrects the openurl error on Android by using termux-open-url.
Automatic application:
- Applied when installing the
nodemodule - No user intervention required
Fix location:
$PREFIX/lib/node_modules/localtunnel/node_modules/openurl/openurl.js
core setup fullcore install db
core install shell
core install nodecore list ai # See available AI tools
core install ai --qwen-code --ollama # Install only Qwen Code and Ollama
core install tools --gh --fzf --jq # Install only gh, fzf, and jq
core install node --typescript --prettier # Install only TypeScript and Prettiernpx create-next-app@latest my-app
cd my-app
core init nextcore pg init # First time
core pg start # Start
core pg create mydb # Create database
core pg shell # Open psql
core pg stop # Stopcore update all # Update everything
core update core # Framework only
core update shell # ZSH plugins only
core update ai --qwen # Specific AI tool onlycore uninstall node # Remove Node.js modules
core uninstall ai --ollama # Remove only Ollama
core uninstall all # Restore everything to defaultcore list ai # List all AI tools and their status
core list tools # List all development tools
core list db # List all databases- Restart Termux: After installing
shellorui, restart Termux to apply changes - Permissions: Ensure you have write permissions in the installation directory
- Connection: Some installations require internet connection
- Logs: Check
~/.cache/core-termux/if something fails
MIT License