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.

★
Run `zyraxon` with no arguments and you get a chat box
Type a message, press enter, and the reply streams in. The conversation is kept, so follow-ups work. /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.
⚠
Install Termux from F-Droid
The Play Store build is abandoned and its package repositories are stale, so 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.

bash
# 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.

text
$ 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
bye

Every command

These are the same commands /help prints inside the client, so the list is available offline and on the device.

text
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.
✓
Any model, not a fixed list
The client reads the model list live from the provider, so /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_MODEL and ZYRAXON_KEY (mode 600).
  • ▸`~/.local/bin/zyraxon`, the client, with ~/.local/bin added to PATH in ~/.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.

bash
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.

bash
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'
echo

The 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.

⚠
It asks before it acts
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. /new clears 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-lock before a long agent turn.