Android replica of the desktop Inference.py client.
Endpoint is
preconfigured:
https://152-44-32-243.nip.io:8081/v1
Since 3.16: live voice-to-voice conversation — tap 🎤 once and the
phone keeps the conversation going like a phone call: you speak, the
model's reply is spoken back, and the phone listens for your next
sentence automatically (no re-tapping). While it's listening the button
shows 🎙, while the AI is speaking or thinking it shows ⏹ (tap to
interrupt it / stop the answer), and while waiting it shows ⏸ — tap at
any time to end the conversation. Silence is just a pause; a dead mic
ends the session with a message. 3.15: live talk — tap 🎤 (next to the send button) and
speak; the transcript sends exactly like a typed message (an attached
photo is included). The model's final reply is then spoken back on your
device (code blocks and other markdown are never read aloud); tap
🎤 while it's talking to stop it (barge-in), or ⋯ → Voice
replies to switch speaking off. The first tap asks for the microphone
permission. 3.14: fixes the “I can’t see the photo” reply — the agent's history
pipeline was stripping the attached picture before sending, so the model
only ever received the caption; the photo now stays attached for the
whole conversation (image-only messages included). 3.13: fixes photo
attach — camera pictures now load (3.12 wrongly
rejected every image); pictures are also sent in their camera orientation
(not sideways), and HEIF photos (the “high efficiency” format some
cameras save) are now readable on recent Android. 3.12: image
understanding — tap 📷 to attach a photo (or
“Share…” an image from any other app into Inference) and the hosted
vision model answers about it: colors, shapes, text, diagrams, photos.
The picture shows as a thumbnail in the chat and survives restarts;
image-only messages are allowed; if the current model can’t see images
the app says so before sending instead of failing. 3.11: fixes the 500
error on agent tool calls — the model server's
chat template requires tool arguments in a different format than the
OpenAI standard; the app now sends what the server expects (same
handling as the desktop client), so the agent's tool loop works again.
3.10: the tools key now configures itself — install or update, and the
app fetches the current tools key automatically (the bootstrap token is
preconfigured in this build, and the key re-fetches itself after every
scheduled rotation). No setup step, no pasting anything. 3.9:
⚙ Settings… lives in the ⋯ menu and the
top-bar buttons no longer overflow on portrait screens. 3.8: full
security-audit release — tool calls ask for approval by default (opt
back into full-auto with ⋯ → ⚙ Settings… → Auto-approve
tools); the Stop button now reliably stops every in-flight
request and never writes into a switched or cleared transcript; chat
history is saved atomically (a mid-write crash can no longer corrupt
it — the previous save is kept as an automatic backup); the Settings
screen no longer overwrites a custom endpoint on every open; the
⋯ → Terminal screen auto-reconnects when a session dies; the to-do list
now behaves exactly like the desktop (no more junk lists from name
typos). Same signing key — install straight over any 3.x (in-place
update, chats kept). Includes 3.7/3.6/3.5 (in-app update checker), 3.4
(live filesystem view with per-tool green/red diff accounting), 3.3
(hardened tools server, key rotation), 3.2 (loop detection, X-Tools-Key)
and 3.1 (auto-approve, ⋯ → Terminal): full 3.0 feature set — streaming
with stop · multi-conversation · per-message copy / regenerate / edit
& resend · markdown-lite with click-to-copy code · model picker ·
agent tools (20-tool suite + shell) · thinking display · tool activity ·
Markdown export · status bar.
Already on 3.7–3.15? You do not need this file — the app's built-in update checker offers 3.21 automatically at startup (or ⋯ → Check for updates). The conversation loop works from the next launch after the update; allow the microphone prompt the first time you tap 🎤.
From a 1.x/2.x install: uninstall first (old key was lost).