Skip to content

feat: add Android/Termux support with interactive manager and guide#298

Open
mrbeandev wants to merge 16 commits intosipeed:mainfrom
mrbeandev:feat/termux-support
Open

feat: add Android/Termux support with interactive manager and guide#298
mrbeandev wants to merge 16 commits intosipeed:mainfrom
mrbeandev:feat/termux-support

Conversation

@mrbeandev
Copy link

Summary

This PR introduces official support for running PicoClaw on Android via Termux, addressing the community request in #286.

As PicoClaw is designed for ultra-low-footprint environments, Android devices are an ideal target for personal AI agents.

Key Changes

  • Interactive Manager: Added assets/scripts/picoclaw-manager.sh. This script automates the entire setup process (dependencies, architecture detection, Go version fixing, and building) for Termux users.
  • Detailed Documentation: Added docs/TERMUX_INSTALL.md. A comprehensive guide covering both the "one-line" automated install and the manual setup process.
  • README Update: Added a new "Mobile" section to the main README to make this feature easily discoverable.

Fixes

  • Automatically detects if the current Go version in Termux is slightly behind the required version in go.mod and adjusts it locally to allow successful builds on all Android devices.

Closes #286

This PR introduces comprehensive support for Coolify deployment and several
improvements to the Telegram channel:

Coolify Deployment:
- Added COOLIFY.md guide with 3 configuration methods.
- Added entrypoint-coolify.sh to generate config.json from environment variables.
- Added Dockerfile.coolify and docker-compose-coolify.yml optimized for Coolify.
- Support for full JSON configuration via PICOCLAW_CONFIG_JSON env var.

Telegram Enhancements:
- Persistent 'typing' indicator that repeats every 4s while AI is thinking.
- Automatic registration of bot commands (/model, /models) on startup.
- Consolidated /model command that supports 'provider/model' syntax for atomic switching.
- Dynamic /models command that shows actually configured providers and active model.

Configuration:
- Improved AgentLoop to support hot-switching models and providers without restart.

These changes improve cloud deployability and user experience in chat channels.
The root cause: Go's env.Parse() in LoadConfig reads PICOCLAW_*
environment variables AFTER loading config.json, silently overwriting
user-provided values. Dockerfile.coolify had hardcoded Gemini defaults
(PICOCLAW_AGENTS_DEFAULTS_PROVIDER=gemini) baked into the image layer,
so even when config.json correctly said 'vllm', the env vars won.

Fix:
- entrypoint-coolify.sh: When using PICOCLAW_CONFIG_JSON (Method 1), or
  mounted config (Method 2), unset all PICOCLAW_* env vars before
  calling picoclaw so the JSON file is the single source of truth.
- docker-compose-coolify.yml: Remove hardcoded gemini defaults from
  agent and doctor services.
- Updated docs header to recommend PICOCLAW_CONFIG_JSON as primary.
- Added assets/scripts/picoclaw-manager.sh: Interactive installer for Termux
- Added docs/TERMUX_INSTALL.md: Comprehensive setup guide for Android users
- Updated README.md: Added mobile support section

Closes sipeed#286
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Docs: Add guide for running PicoClaw on Android via Termux

1 participant