Termux on Android
A chat box in your phone terminal: install once, run `zyraxon`, and talk to the agent. Any model, tool calling, and a full command list.
Termux is a real Linux userland on Android with a real package manager, so the provider works from a phone exactly as it does from a laptop. The setup script installs curl and jq, writes your settings to ~/.zyraxon/env, and installs a zyraxon command.
/models lists every model, /model switches to any of them, and /agent on lets the model read, write and run things on the device — asking first each time.pkg install fails against it. Use F-Droid or the GitHub release.Setup
The script is served as a plain file, so you can read it before you run it. That is deliberate: a piped installer you have not read is a stranger's code running on your phone.
# One command. Installs deps, writes ~/.zyraxon/env, installs the client. curl -fsSL https://zyraxonai.lovable.app/integrations/termux-setup.sh | bash # Then, from any directory: zyraxon # open the chat box zyraxon "summarise the changes in this repo" zyraxon -a "create a hello world python file and run it" echo "what is 2+2?" | zyraxon
Download and read it first if you prefer: curl -fsSL https://zyraxonai.lovable.app/integrations/termux-setup.sh.
The chat box
This is the whole point: one command, then a prompt. Everything below is typed into that prompt.
$ zyraxon
ZYRAXON · chat
model zyraxon-codex · tools off
/help for commands, /exit to leave
you> explain what this repo does in three bullets
zyraxon> 1. It is a marketing and tooling site for the ZYRAXON desktop agent.
2. Provider routes live under src/routes/api/public/zyraxon/v1.
3. The docs are data files under src/lib/docs.
you> /agent on
tools on
you> make hello.py that prints hi, then run it
-> write_file
write hello.py (24 bytes)? [y/N] y
-> run_shell
run: python3 hello.py ? [y/N] y
Done — it printed: hi
you> /model 2
model is now zyraxon-apex
you> /exit
byeEvery command
These are the same commands /help prints inside the client, so the list is available offline and on the device.
Commands inside the chat box /help show this list /models list every model the provider serves /model <n|id> switch model — by number from /models, or by id /agent [on|off] toggle tool calling (read, write, run) for the session /new forget the conversation and start fresh /history how many messages are in the conversation /save <file> write the conversation to a file as JSON /exit leave (also /quit) Anything else you type is sent to the model. One-shot, from the shell zyraxon "explain this repo" stream one answer and exit zyraxon -a "make hello.py and run it" one agent turn with tools, then exit zyraxon -m zyraxon-apex "..." pick a model for one turn echo "what is 2+2?" | zyraxon read the prompt from stdin zyraxon --models list the models Any model works. The model list is read live, so every id the provider serves today is selectable with /model — there is no fixed list in the client.
/model can select every model the provider serves today — and any model added later — with no client update. Pick by number from /models, or by id.What the script installs
- ▸`curl` and `jq` through
pkg, so the calls and the JSON parsing have real tools behind them. - ▸`~/.zyraxon/env` holding
ZYRAXON_BASE,ZYRAXON_MODELandZYRAXON_KEY(mode 600). - ▸`~/.local/bin/zyraxon`, the client, with
~/.local/binadded toPATHin~/.bashrc.
One-shot use, for scripts and pipes
The same client works without the chat box, so it composes with a pipe or a cron job.
- ▸
zyraxon "explain this repo in three bullets"— stream one answer and exit. - ▸
zyraxon -a "create hello.py and run it"— one agent turn with tools, then exit. - ▸
echo "what is 2+2?" | zyraxon— read the prompt from stdin. - ▸
zyraxon -m zyraxon-apex "..."— pick a model for one turn. - ▸
zyraxon --models— print the live model list.
Manual setup, without the script
If you would rather do it by hand, this is everything needed to make a call work — including fetching the client on its own.
pkg update && pkg upgrade -y
pkg install -y curl jq python
export ZYRAXON_BASE="https://zyraxonai.lovable.app/api/public/zyraxon/v1"
export ZYRAXON_MODEL="zyraxon-codex"
export ZYRAXON_KEY="zyraxon"
# The client on its own, without the installer:
curl -fsSL https://zyraxonai.lovable.app/integrations/zyraxon-chat.sh -o ~/.local/bin/zyraxon
chmod +x ~/.local/bin/zyraxon
curl -s "${ZYRAXON_BASE}/models" | jq -r '.data[].id'A streaming one-liner
This is the whole streaming path in four commands: post, unwrap the SSE frames, drop the terminator, print the deltas.
curl -sN "${ZYRAXON_BASE}/chat/completions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${ZYRAXON_KEY}" \
-d "{\"model\":\"${ZYRAXON_MODEL}\",\"stream\":true,
\"messages\":[{\"role\":\"user\",\"content\":\"$1\"}]}" \
| sed -n 's/^data: //p' \
| grep -v '^\[DONE\]$' \
| jq -rj '.choices[0].delta.content // empty'
echoThe agent mode, and its limits
With /agent on (or -a), the client defines three tools — read_file, write_file and run_shell — and runs the OpenAI tool-calling loop: send the tools, receive a call, run it, send the result back, repeat until the model stops calling. It caps at eight turns so a confused model cannot spin forever.
write_file and run_shell print the pending action and wait for a y. Nothing writes or executes unattended. The client is at ~/.local/bin/zyraxon if you want to read or change that policy.Phone-specific notes
- ▸The chat box keeps the conversation, so follow-up questions work.
/newclears it. - ▸Every model is selectable: the client reads the model list live, so there is no hardcoded list to go stale.
- ▸Termux has no GPU and no browser, so keep media on the phone small. Images under 2 MB inline work; video should be compressed before sending.
- ▸In agent mode the client runs three tools — read, write, run — and asks before it writes or executes anything. It is deliberately not a general shell escape hatch.
- ▸Android may kill Termux in the background. Run
termux-wake-lockbefore a long agent turn.