AutoIA is an Android app that lets you take an artificial
intelligence along in your car: Anthropic's Claude, Google's Gemini, Mistral,
OpenAI, xAI's Grok or Groq, as you prefer.
AutoIA comes into its own alongside Android Auto: navigation
and music — Google Maps, Waze, Spotify or others — take up the car's screen,
while AutoIA takes care of the voice, speaking to you without ever taking that
screen from you or asking you to look at it.
Talking hands-free in the car, as you would with a passenger.
The model is your choice too, from the fastest to the most subtle. You speak, it
answers aloud. AutoIA can also play the part of a tour guide, among other roles.
And once you have arrived, AutoIA can reread everything that was
said and draw up a note organised by subject: what was learnt, what was decided,
what is left to do. To be saved or shared, if you ask for it —
summing up a trip.
AutoIA also keeps your alarms, by voice: in two hours, at six, on
the 25th of December — or on arrival somewhere, “remind me to call the garage
when we get to Prades”. It reminds you, and insists until you confirm —
being reminded of something.
Your API key
Allow about ten minutes, in a web browser.
An API key is a kind of very long password that allows the AutoIA app to
use an artificial intelligence on your behalf. The provider bills you for
what you consume, a few cents per trip. Nobody stands in between: the key
stays on your phone, and it is sent only to that provider.
Claude, Google, Mistral, OpenAI, xAI or, Groq or your own PC?
AutoIA can talk to all six. The choice is made in the settings, on the
Answer source page, and each has its own key:
saving one does not erase the others, and you can switch from one to
another whenever you like.
To try it without spending anything, start with Mistral.
Its free tier opens without a bank card — a phone verification is
enough. It limits the number of requests, which
can be noticeable at the wheel: you ask one question at a time.
Mistral Small, the model AutoIA uses by default, works there. Claude,
OpenAI and xAI require buying credit in advance; Google has a free tier, but one
to keep for trials — see the table. Groq too has a free tier with no bank
card, limited in rate. ⚠️ Tiers change without notice: your provider's
console shows the limits in force.
Mistral (free)
Google (Gemini) (free)
Groq (free)
OpenAI (paid)
Claude (Anthropic) (paid)
xAI (Grok) (paid)
To begin with
A free tier exists. A phone verification is enough, with no bank
card.
A free tier exists, with no bank card, but what you say there may
be used to train Google's models and be read by people: at the wheel,
take the paid, prepaid tier.
A free tier exists, with no bank card, limited in questions per
minute and per day.
Bank card required, as with Claude: a ChatGPT subscription gives no
access to the API.
Bank card required: you have to buy credit in advance, even if you
already have a subscription.
Bank card required, on prepaid credit: without credit, questions
are refused. A Grok subscription gives no access to the API.
Web search
Yes as well. Three cents per
search — and the model sometimes runs several for a single question.
Except Ministral 8B, the cheapest on the list, which
cannot search.
Yes, with Google Search: 1.4 cents per search beyond
five thousand a month, and the model sometimes runs several.
Yes: the pages read are paid for as text; no
published price per search.
Yes: one cent per search, plus the text it brings
back.
Yes: weather, news, today's timetables. About eight
cents for a question that searches.
Yes: half a cent per search, sometimes several
per question.
Extended thinking
Not adjustable: the model decides.
Adjustable, but reduced rather than switched off: these models
always think a little.
Adjustable, but reduced rather than switched off.
Adjustable in the app.
Adjustable in the app.
Adjustable; on Grok 4.7, reduced rather than switched off.
Indicative price
From $0.15 to $1.50 per million.
From $0.30 to $2 per million.
From $0.075 to $0.60 per million.
From $0.20 to $4 per million.
From $1 to $5 per million words received.
From $1.25 to $6 per million.
If you are hesitating, start with Mistral. Mistral and
Groq can be tried without getting your bank card out, which lets you see whether AutoIA
suits you before spending anything. All six can search the web; which
one comes out cheapest depends on the question, and can be read from the
app's gauge.
And a seventh way, free of charge: your own computer.
AutoIA can talk to LM Studio, a program that runs a model on your
machine. Nothing is billed and nothing leaves your network — in exchange,
the phone must be able to reach the computer, which rules out the road.
See Using your own PC (LM Studio).
In the settings, on the Answer source page, the
Automatic switching toggle lets AutoIA change provider
without you: when the one answering refuses to go on — credit used up,
quota exceeded, key refused, service down — the next one in the list
takes your question over, silently, and the conversation carries on
there.
Drag the double arrow ⇅ to order the list: AutoIA reads it from top
to bottom, and starts again from the top after the last one.
Tick the ones that take part. A provider without a key is
skipped, and so is your PC when the phone cannot reach
it.
The one answering shows a blinking grey background. Tapping a name
picks the key you set below, not the one that answers.
If the answer had already started, AutoIA says why it stopped, and
the next provider answers the following question.
A network outage does not change provider: the next one could do
nothing about it. And if they all refuse, AutoIA says so and stops
there.
⚠️ Placing a paid provider after a free one means accepting to pay
once the free one is used up.
Say “API” followed by the provider's name:
“API Anthropic”, “API Google”, “API Mistral”, “API OpenAI”,
“API Groq”, “API xAI”, “API LM Studio”.
AutoIA recognises the phrase itself, without handing it to the model,
and checks the key with the provider before switching — a check that
costs nothing.
If all is well, you hear for example “API Google active”, and the
conversation carries on there.
Otherwise you hear the reason — no key saved, key refused, account
without credit, no network — and nothing changes.
The phrase must be the command alone: “tell me about the Google
API” stays a question. The command also works typed into the
conversation field.
The assistant's name works like the provider's: “API Gemini”
like “API Google”, “API Claude”, “API ChatGPT”, “API Le Chat”.
Spell out xAI: “API x a i”. “Grok” is understood as Groq, which
sounds the same.
Then say “list of models”: AutoIA reads them out,
numbered, the one answering marked “in use”. Then say the number —
“three”, “the second one”, “the last one” — and that model takes over.
Anything else closes the list.
To find out which are ready, say “list of APIs”:
AutoIA reads out, numbered, the providers whose key is saved, the one
answering marked “active”. Say the number, and it is as if you had said
“API” followed by its name: the key is checked, then that provider takes
over.
LM Studio is a free program that runs a language model
on your computer. AutoIA talks to it as it does to the six other
providers: answers then never leave your home, and nothing is
billed.
Your phone must be able to reach the computer. That is
this mode's limit, and it decides everything: on your home network it
works; on the road the computer is out of reach and AutoIA will get no
answer at all. Keep it for use at home, or set up remote access if you
know how.
On the computer: install LM Studio, download a model, then open the
Developer tab. Start the server, turn on Serve on local
network — without it, only the computer itself is served — and note the
address shown, of the form 192.168.1.10:1234.
In AutoIA: Settings → Answer source → pick LM
Studio under "Which API answers", enter that address, then touch
Check the server. The app collects the list of models you have
downloaded, and you will find them above the conversation button.
The token is optional. LM Studio only asks for one if
you turned on Require Authentication in its settings; otherwise,
leave the box empty.
Two differences from the paid providers. Web search does not
exist here: the model answers from what it learned, without going
to look. And speed depends on your machine — a model that
has not been loaded yet may take some ten seconds before the first answer,
then goes markedly faster.
Go to console.mistral.ai and create an account. The free
tier asks you to verify a phone number; it does not ask for a bank card.
Once signed in, open your profile menu, the API Keys
section, then create a key. Give it a name that means something to you —
“AutoIA”, for instance — so that you can one day revoke it without touching
the others.
The key is shown only once. As soon as you close the
window it is unrecoverable: you have to create another. Copy it straight
away into your password manager, or enter it in AutoIA before closing the
page.
In AutoIA: Settings → Answer source → choose
Mistral under “Which API answers”, paste the key, then
touch Check the key. The app answers straight away whether it is
accepted.
Web search works with Mistral too, including on the
free tier. It is billed per call, three cents, on top of the words exchanged: it is by far the main item.
⚠️ The model alone decides how many calls to make. With Mistral,
search is off by default: its box in the settings allows it
after a warning — see search, provider by
provider.
⚠️ One Mistral model cannot search: Ministral 8B,
which happens to be first on the list and the cheapest. If you choose it,
Mistral's box under Web search greys out and the screen tells you why — the
app does not let you believe it is searching when nothing would go out.
The other three models do search.
Not every model is in the free tier.Mistral Large 3 is refused, and the app then shows “Your key has no access to this model”.
Mistral Small 4, which AutoIA uses by default, works. If you
choose another model and that sentence appears, go back to Small 4 or move
to a paid tier on the console.
The free tier also limits the number of requests per second. At the wheel
that can be noticeable; the console shows
the limits in force if you want to know them.
If you have chosen Mistral, you can go straight on to the
Settings or Remote
control tabs.
Go to aistudio.google.com/apikey with a Google account,
then create a key. Give it a name that means something to you — “AutoIA”,
for instance — so that you can one day revoke it without touching the
others.
⚠️ The free tier is not made for the wheel. It opens
without a bank card, but what you say there may be used to train Google's
models and be read by people — Google's terms say so in plain words. Move
to the paid tier: in AI Studio, Billing, then a purchase of
prepaid credit; a few euros are enough for months of trips, and Google
then undertakes not to train its models on your conversations.
In AutoIA: Settings → Answer source → choose
AIStudio Google under “Which API answers”, paste the key,
then touch Check the key. The app answers straight away whether it
is accepted.
A Google key has no fixed shape — the older ones start
with AIza, the recent ones with AQ. — so the
app requires none. It only refuses, offline, anything starting with
sk-: that is another provider's key, pasted into the wrong
box.
The three models on offer are Gemini 3.5 Flash Lite, the
cheapest, chosen by default at the wheel; Gemini 3.8 Flash, the
balanced one, which sums up trips; and Gemini 3.1 Pro, more capable,
dearer, and offered by Google as a preview — it may disappear without
notice. They can all search the web, with Google Search.
Extended thinking is reduced, not switched off. These
models always think a little before speaking; the app's switch chooses
between the minimum they accept and a medium level. The gauge counts the
thinking tokens along with the answer.
⚠️ When the prepaid credit runs out, everything stops at
once: AutoIA tells you “Your credit is exhausted”, and you have
to top up in AI Studio. The app keeps no conversation at Google: the API
it uses stores none that could be read back.
If you have chosen AIStudio Google, you can go straight on to
the Settings or Remote
control tabs.
Go to console.groq.com/keys with a Groq account, then
touch Create API Key. Give the key a name that means something to
you — “AutoIA”, for instance — so that you can one day revoke it without
touching the others.
The key is shown only once. Copy it straight away
into your password manager, or enter it in AutoIA before closing the
page.
Groq can be tried free of charge, with no bank card.
The free tier works straight away, with rate limits: a number of
questions and of words per minute and per day. When the limit is
reached, AutoIA tells you there are too many requests and that you
should wait a little. The paid tier, Developer, asks for a bank
card, bills as you go at the end of the month, and raises those
limits.
In AutoIA: Settings → Answer source → choose
Groq under “Which API answers”, paste the key, then touch
Check the key. The app answers straight away whether it is
accepted.
A Groq key starts with gsk_, and the app
refuses offline anything that does not look like one: most often it is
another provider's key, pasted into the wrong box.
The two models on offer are GPT-OSS 120B, more capable,
chosen by default at the wheel and which sums up trips — $0.15 per million
on the way in, $0.60 on the way out —; and GPT-OSS 20B, the
fastest, at $0.075 and $0.30. They are open models from OpenAI, which Groq runs on
its own chips: the answer comes in under a second to a simple question,
in about three seconds with a search. Both can search the web; the pages
read are paid for as text, and Groq publishes no price per search.
Extended thinking is reduced, not switched off. These
models always think a little before speaking; the app's switch makes
them think as little as possible, or more.
What Groq keeps. By default, Groq keeps neither your
questions nor the answers, and AutoIA also asks it to store nothing.
Groq may temporarily keep request logs, for up to thirty days, solely to
diagnose a failure or investigate abuse; you can refuse even that by
turning on Zero Data Retention in the Data Controls of
the Groq console.
Go to platform.openai.com and create an account.
⚠️ A ChatGPT subscription gives no access to the API — it is
exactly the same trap as with Claude, and it is what most people stumble on.
They are two separate products, billed separately: you have to put credit on
the developer account, and a few euros are enough for months of trips.
Once signed in and the account credited, open API keys in
the dashboard, then create a key. Give it a name that means something to you
— “AutoIA”, for instance — so that you can one day revoke it without touching
the others.
The key is shown only once. As soon as you close the
window it is unrecoverable: you have to create another. Copy it straight
away into your password manager, or enter it in AutoIA before closing the
page.
In AutoIA: Settings → Answer source → choose
OpenAI under “Which API answers”, paste the key, then touch
Check the key. The app answers straight away whether it is
accepted.
An OpenAI key starts with sk-, and the app
refuses offline anything that does not look like one — in particular a
Claude key, which starts with sk-ant-. With several input boxes
on the same screen, picking the wrong box is the most likely slip, and it
is better to say so at once than to let you believe the key is bad.
The three models on offer are GPT-5.6 Luna, the cheapest, chosen
by default at the wheel; GPT-5.6 Terra, the balanced one, which sums
up trips; and GPT-5.6 Sol, more capable and dearer. They can all
search the web, and extended thinking is set from the app, as with Claude.
⚠️ AutoIA asks OpenAI to keep nothing. This API keeps
thirty days of conversations by default, readable from the dashboard; the
app therefore sends with every question the instruction to store nothing.
Nothing you say at the wheel should stay over there.
If you have chosen OpenAI, you can go straight on to the
Settings or Remote
control tabs.
Go to console.x.ai — you also get there from
x.ai/api, button Get your API key — and create
an account. Then open API Keys and create a key. Give it a
name that means something to you — “AutoIA”, for instance — so that you
can one day revoke it without touching the others.
The key is shown only once. Copy it straight away
into your password manager, or enter it in AutoIA before closing the
page.
⚠️ You have to put credit on the account. xAI bills
in advance, on prepaid credit, and refuses every question as soon as the
credit reaches zero. You can create a key without paying anything,
but it is useless until the account is credited: when you check it,
AutoIA tells you that the key is valid and that the account has no
credit yet, and keeps it for later. A few euros are enough for months of trips. A Grok
or X Premium subscription gives no access to the API: they are two
separate products, billed separately.
In AutoIA: Settings → Answer source → choose
xAI under “Which API answers”, paste the key, then touch
Check the key. The app answers straight away whether it is
accepted.
An xAI key starts with xai-, and the app
refuses offline anything that does not look like one: most often it is
another provider's key, pasted into the wrong box.
The two models on offer are Grok 4.3, fast and the cheapest —
$1.25 per million on the way in, $2.50 on the way out —, chosen by default
at the wheel as well as for summing up trips; and Grok 4.7, more
capable, at $2 and $6. Both can search the web, for half a cent per
search, and the model sometimes runs several for a single question.
Extended thinking is set in the app. On Grok 4.3 the
switch turns it off; on Grok 4.7 it brings it down to the minimum
without ever switching it off entirely: that model always thinks a
little before speaking.
⚠️ What xAI keeps. AutoIA asks xAI not to keep the
conversation in order to resume it later, nor the trace of its
reasoning. xAI nevertheless keeps, of its own accord, every request made
to its API for thirty days, encrypted, to check for abuse — without
using it to train its models. If you do not want that, turn on
Zero Data Retention in the team settings of the xAI console
(Team Settings): nothing is then written to disk.
If you have chosen xAI, you can go straight on to the
Settings or Remote
control tabs. The rest of this page is about Claude.
Claude: subscription and API, two different things
This is the point that surprises people most. A Pro, Max, Team or
Enterprise subscription gives no access to the API. They are two
separate products, with two separate bills.
Subscription (Pro, Max…)
API
Used for
Chatting with Claude on claude.ai, in the app, in Claude Code.
Using Claude from your own programs — including the AutoIA app.
Billing
Fixed monthly plan.
As you go, from credit bought in advance.
Site
claude.ai
platform.claude.com
So even if you already have a subscription, you will have to buy credit
for the key to work. You can however use the same email address for both.
Open platform.claude.com —
Anthropic's developer console, distinct from the consumer Claude app.
Click Sign up, or Log in if you already have a Claude
account.
Follow the registration: email address, then possibly a verification
code received by email.
To the question “how will you use the Claude API?”, choose
Individual if you are on your own — which is the case for
the great majority of people. Organisation only serves to share
access with colleagues and to centralise billing. An individual account
can invite members later anyway.
Answer the few questions about your intended use, then confirm.
You arrive at the dashboard, where there is an “organisation credits”
box.
This step is not optional: without credit, the key exists but answers
nothing.
On the dashboard, click Add funds, or go through
Settings → Billing in the left-hand menu.
Enter your bank card and your billing details.
Choose an amount. Five to twenty dollars is plenty to start
with — at the rates in the table below, five dollars represents
dozens of hours of driving.
Confirm the payment. The amount then appears under “organisation
credits”.
Leave automatic top-up turned off at first. That way,
if you run out of credit, the API simply stops answering instead of
charging your card again. You can turn it on later if you wish.
In the left-hand menu, open API keys — or the Get API
key button at the top right of the dashboard. Direct address:
platform.claude.com/settings/keys.
Click Create Key.
Give it a name that will remind you what it is for, for example
AutoIA — phone. The name is for you alone: if one day you lose
the phone, you will know which one to revoke.
Leave the Workspace on Default.
Click Create. A window shows your key: a long string of
characters beginning with sk-ant-api03-.
Copy it immediately with the copy button, and put it
somewhere safe — a password manager for preference.
The key will never be shown in full again. Once the
window is closed, the list shows only its first and last characters. If you
have not copied it, you will have to create another — no great harm, but
best avoided.
Open the settings, then the Answer source page,
API mode block.
Paste the key into the field provided.
Touch Check the key. The app queries Anthropic and answers you
straight away. This check consumes nothing.
Once accepted, the key is encrypted and stored in the phone's
hardware-backed keystore. It is never displayed again: the field only offers
to replace it, or the Remove button to take it off the phone.
The Remove button always asks for confirmation.
It is the same in both modes, and it never does anything without asking:
touching outside the box cancels. A finger slipping in the settings must
not cost you a retyping.
The check proves the key is valid, not that there is credit
left: the test it performs succeeds even on an account at zero. If
everything is green here but nothing answers on the road, look at your
credit.
Anthropic bills by the volume of text exchanged, counted in
tokens — roughly, a token is three quarters of a word. The rates
below are Anthropic's, per million tokens; those are the ones that count,
and they may change.
Model
Text sent
Text received
What for
Claude Haiku 4.5
$1
$5
The fastest. This is the one the car calls for.
Claude Sonnet 5
$3
$15
Subtler, a little slower.
What costs is searching the web, and the gap is
considerable. Here are two turns measured on a phone, with
Haiku 4.5:
Question
Tokens sent
Received
Searches
Cost
“Can you hear me?”
3,000
32
none
0.3 cents
“What's the weather tomorrow?”
52,000
396
3
8 cents
Three things explain the gap. Each search is billed a cent separately.
Above all, its results are fed back into the conversation: the three searches
took the text sent from three thousand to fifty-two thousand tokens. Finally,
every new question recalls the whole conversation from the beginning, so a
trip gets dearer as it goes on.
In practice, for a trip of some twenty questions of which five call for a
search, reckon on the order of fifty US cents. A first
credit of five dollars therefore represents about sixty weather- or
news-type questions — or more than a thousand questions that do not need the
web.
The figures above are measurements, not guarantees: they depend on the
model, on the length of the conversation and on the number of searches
Claude judges necessary.
The app permanently shows what you have spent, in the form
“$0.42 spent (all APIs)”: what the app has spent from this phone,
all providers of the API mode added together. Bridge
mode is not included.
That amount is not your bill, and will never try to be.
It is calculated on the phone, from the number of tokens Anthropic returns
with each answer, multiplied by the published rates. It is a faithful
estimate of your trips — not a reading of your account.
What is counted
In the app
What AutoIA has spent from this
phone, estimated from the tokens.
In the console, Usage section
Everything your account has spent: every application, every device,
your experiments in the Playground. That is the bill.
The two figures will therefore not match, and that is not a fault: they
do not count the same thing. The console's is always the higher, and it is
the one that counts.
Reinstalling the app, or clearing its data, resets that counter
to zero. Your account has not moved: it is the phone's counter
that starts again, not the spending that is erased. Check the console for
the real amount.
Why does the app not simply read the account balance? Because Anthropic
does not allow it: usage reports require an administration key, far
more powerful than an ordinary one, and they are not offered to individual
accounts anyway. Putting such a key in a phone would in any case be a bad
idea.
Search is set provider by provider. While searching,
the model reads web pages — and a page can hold hidden text written for
it. With Groq, OpenAI, Mistral and xAI, the search tool can open an
address a page dictates: in a test, a booby-trapped page made Groq send
the user's town to its author, without a word. For those four, search is
therefore off by default, and ticking it opens a
warning. Google and Anthropic only search: their box is ticked from the
start. With all of them, a booby-trapped page can still mislead you —
false information, a false number.
The API mode block, on the Answer source page of the
settings, carries the Web search list, one box per provider.
Unticking divides the spending by eighty: the same weather question fell from eight cents to
a tenth of a cent, for example.
Two reasons for that gap. Searches are billed separately, a cent each.
And their results are fed back into the conversation: it is they that take
the text sent from three thousand to fifty-two thousand tokens. Without
search, the same question consumes only six hundred.
What you lose in exchange: everything that depends on the present moment.
The model will then tell you frankly that it cannot know tomorrow's weather,
the news or timetables — it will not invent them, and it
will remind you where to tick the box.
A box may also be greyed out, through no fault of
yours: that means the chosen model cannot search — the case of
Ministral 8B at Mistral. The screen then says so in plain words and
names the remedy: choose another model from the conversation screen.
These boxes apply to the six paid providers, at different prices
— about eight cents a question at Claude, three cents per search at
Mistral, which sometimes runs several, one cent at OpenAI, 1.4 cents at Google beyond a
monthly allowance, half a cent per search at xAI, and at Groq only the text of the pages
read. In
bridge mode, on the other hand, it is the server that decides
whether it searches, and the app has no way of telling it.
⚠️ LM Studio appears in the list, its box greyed out: a model
running on your own machine does not search the web, and the screen says so
rather than offering a setting with no effect.
Anyone who holds it can use it at your expense. Never
share it, never send it by email or messaging, and never publish it anywhere
— above all not on a code repository or a forum.
What the AutoIA app does with it, for its part:
It is encrypted on the phone by a key that never leaves the secure
component, even on an unlocked device.
It is sent only to api.anthropic.com. No AutoIA server
sees it, stores it or logs it.
It appears in no backup and in no telemetry.
If you lose the phone, or if you think the key has leaked, delete it
immediately under API keys on Anthropic's console, and create
another. Deletion is instant and touches nothing else on your account.
Removing the key from the phone does not cancel it. The
Remove button in the settings erases the key from this device,
which is what you want before lending or selling the phone. But the key
goes on existing and working elsewhere: if someone may have seen it, it is
on Anthropic's console that it must be deleted. The two acts do not replace
one another.
To be read before you start: who this mode is for, what
Anthropic's terms allow, and the command that sets the server up.
Who it is for
Bridge mode routes your questions through a server that you host. That
server authenticates with Anthropic using your Claude
subscription, and nothing is billed as you go.
⚠️ This server is for you alone, and that is not a piece of
advice: it is an Anthropic rule. The product's terms forbid
paying for, reselling or intermediating Claude usage on someone else's
behalf — every end user must authenticate with their own credentials.
Opening your bridge to colleagues, customers or your family puts you in
breach, even with no money changing hands. For other people, API mode is
what is needed, each with their own key.
That said, bridge mode keeps two advantages for your personal use: no
billing as you go, and a single machine to look after rather than one key
per phone.
What you need before starting
The script installs and configures everything else — Python, Apache, the
certificate, the protections. What follows is what it cannot do for you.
A machine running Debian 13, in a minimal
installation — no desktop environment, no web server, nothing else
—, left on permanently and dedicated to this use
alone. A small server at home is enough; in the car you will reach
it over the Internet.
Debian 13 precisely: the script is written and proven for it. On
another distribution, or on an older Debian, it warns you and asks whether
you want to go on — at your own risk.
A domain name that already points to it, and
ports 80 and 443 reachable from the Internet — Let's
Encrypt comes knocking on 80 to issue the certificate.
A Claude subscription, Pro or Max, and a browser to
authorise it once.
wget and ca-certificates — present on any
Debian installation that has the “standard system utilities”. On a really
bare system, apt install wget ca-certificates first: without
them you cannot even download the script.
This machine does nothing else, and that is what makes the
installation simple. The bridge is the only service running on it:
the script can therefore set Apache and the protections up for it alone,
with no precaution and no compromise. It replaces Apache's default site
with a wall that refuses everything not addressed to your domain name, and
that is of no consequence since no other site is served there.
HTTPS is not optional. The browser's microphone is
granted only in a secure context, and the app refuses cleartext traffic. On
an http:// address everything will look installed and nothing
will work — with no useful error message.
The set-up itself
On a fresh, dedicated Debian 13, one script does
everything: packages, system account, bridge code, Python environment, Claude
Code, Apache vhosts, Let's Encrypt certificate, service and brute-force
brakes. Reckon on two minutes.
wget https://autoia.tbnetsys.fr/scripts/install.sh
less install.sh # read it first: it runs as root
sudo bash install.sh
Take the time to read it. This script runs with every
right on your machine — which is true of this one as of any installer you
are invited to pipe into a shell. The two-step form above costs thirty
seconds and lets you see what it does.
It asks you for the domain name, an email address for Let's Encrypt, and
the network from which you administer the machine. Then it opens the
authorisation of your Claude account: an address to open in a browser, a code
to paste back. It finishes by giving you the address at which to create your
account on the bridge.
What it does not do, and must be done beforehand. It
does not touch the firewall — putting rules on a machine you administer
remotely is the surest way to cut yourself off from it. So
ports 80 and 443 must already be reachable from the
Internet — Let's Encrypt comes knocking on 80 — and your domain
name must already point to the machine. Port 22, for its part, has no
business on the Internet: open it from your internal network only.
The script can be run again without harm: it looks at what exists before
writing. If something failed, fix it and run it again.
If someone has set the server up for you, you have
nothing to install: all you need is its address and your credentials, to be
entered on the Answer source page of the settings, Bridge
mode block.
Tying your session to your devices
When you sign in to your bridge, it hands you a session token valid for
sixty days: that is what saves you typing a password at the
wheel. That token behaves like a car key — whoever has it can get in. If a
malicious program takes a copy of it from your computer or your phone, it
opens your bridge from anywhere, and nothing will warn you.
You can make that token unusable anywhere but on your own
devices. Each one receives a certificate whose key stays locked in
its hardware: without it, the token is worth nothing. This is optional, and
it is not on by default.
The installer asks you the question. If you answered no, or if your bridge
was installed before this option existed, one command is enough — it adds
what is missing by itself:
sudo bash ~autoia/pont/mtls.sh etat # where you stand
sudo bash ~autoia/pont/mtls.sh activer # put the protection in place, and the first device
sudo bash ~autoia/pont/mtls.sh appareil tablette # one more device
sudo bash ~autoia/pont/mtls.sh revoquer tablette # this device gets in no more
sudo bash ~autoia/pont/mtls.sh fermer-ws # closes the last way in — see below
sudo bash ~autoia/pont/mtls.sh desactiver # go back
One certificate per device, rather than the same one
everywhere: every copy of the file is one more chance to lose it, and this is
what makes it possible to withdraw just one. revoquer shuts the
door on the named device — a lost phone, a sold tablet — without touching the
others or forcing you to reinstall everything. Access is refused to it before
the page is even requested, and it cannot come back: it would need a fresh
certificate.
autoia is the account the installer created; replace it if
you chose another. Written this way rather than ~/pont, the
command also works when you are already signed in as root — a case where
~ would point at root's folder, where there is nothing.
The command hands you back a .p12 file and the line to type
to bring it over. On the phone, open Settings ▸ Security ▸ Encryption
and credentials ▸ Install a certificate, then choose VPN and app
certificate. Android demands a screen lock before
accepting, and the path varies a little by phone make.
What the command builds along the way. To sign your
devices' certificates, it creates an authority: a key that stays on
your server, in /etc/autoia-mtls. It serves only two purposes —
adding a device, or withdrawing one — and sleeps the rest of the time.
Put that authority somewhere safe, and the whole folder with
it. Whoever holds it can make a certificate for any device, and so
get in. Copy /etc/autoia-mtls onto a stick or another machine,
and you can even take it off the server: you will only put it back the day
you add a device.
⚠️ The whole folder, not just the key. It also holds
the memory of what you have revoked. Restoring the key alone would give
access back to the devices you had withdrawn — and nothing would tell
you.
What this will ask of you, and cannot be automated. A
file to install on each device, a screen lock, and the same act to repeat
in five years: an expired certificate closes access, and the browser then
shows only an unhelpful technical error. If that happens to you, or if you
lose the certificate, nothing is lost: desactiver from your
server opens the door again.
The app presents its certificate too. Choose it in its
settings, Answer source page, Bridge mode block, under
“Device certificate” — the same one installed on the phone. The
conversation then goes on getting through, and a stolen token opens
nothing at all.
⚠️ Order matters, and it is the only trap on this page.
At installation, the conversation's WebSocket is left open on purpose:
closing that way in before the app presents its certificate would make your
bridge mute at the wheel. So choose the certificate in the app
first, then run fermer-ws — the fifth command in the
list above. Until you have done so, a stolen token still opens the
conversation, and therefore your subscription.
If you get the order wrong, nothing is lost: activer
reopens what is needed, and your closing choice is kept.
The help page, the sign-in page and the installation script stay open to
everyone, in every case.
What this does not do. The certificate says which
device, never who: your password and your six-digit code are
still required. And it does not protect against someone who has your phone
itself in hand — they could not carry the key away, but they could use it
on the spot. If you lose the device, it is the Close the other
sessions button on the administration page that protects you.
The AutoIA app works perfectly well without one: the driving screen is
nothing but a huge button, to be touched without looking at it. A small
Bluetooth remote clipped to the steering wheel is still more convenient —
your hand never leaves the wheel.
Your car's original “voice” button cannot be used: it calls the
vehicle's own speech recognition, and over USB it is Android Auto that
catches it. No third-party app can take it over. Hence the remote, which
talks straight to the phone and short-circuits both.
Choosing a remote
What matters is neither the brand nor the number of buttons, but what the
device sends: it must declare itself a Bluetooth keyboard
and send key presses. The five-button steering-wheel remotes sold to control
the phone's music will do; those that declare themselves an audio device send
no key presses and cannot be learnt. The product sheet rarely says which —
checking, on the other hand, takes a minute (see below).
The Steering-wheel remote block, on the Remote control page of the settings, tells you
whether the remote is answering.
One model proven with AutoIA. The QXS-001
remote — Bluetooth 5.3, rechargeable, waterproof, strapped to the steering
wheel — works well with AutoIA on Android: it declares
itself a keyboard, and its keys are learnt without difficulty. It has been
used while driving, in both modes, not only while
parked. It can be found on
Amazon.
One detail drawn from measuring it: it presents itself to the phone as
two devices — a keyboard and a media controller — which
Android brings together under a single name. Whichever button you learn,
AutoIA therefore ties it to the same remote, and the reservation described
below covers all of its buttons at once.
This is neither a commercial recommendation nor a partnership: it is the
model used to develop this feature, and the one about which we can say
something measured.
No list written in advance would cover every model: some send the volume
key, others a media key, others still an assistant command. AutoIA therefore
guesses nothing, it learns.
Open the AutoIA app's settings, then the Remote control
page.
Touch Learn the button.
Press, on the remote, the button you want to devote to speaking.
The name of the key appears: that is it. It is remembered together with
the device that sent it.
That last detail matters: if your remote sends the “volume up” key — the
most widespread case — the phone's volume buttons nevertheless keep their
usual role. Only the remote that was learnt starts listening.
On the other hand, every key on that particular remote
goes to AutoIA: they no longer control the volume, the music, or anything
else. That is deliberate — a button that did two things depending on what is
on screen would be unmanageable at the wheel, and the car has its own
steering-wheel controls for music and navigation.
This step is not optional if you drive with a navigation app, and it
cannot be guessed: without it, the remote stops answering as soon as
another app takes the screen. The button seems to work in the garage,
then dies on the road.
The reason lies in the way Android distributes key presses: those from a
device such as a remote go to a single window, the one that has the focus.
Start navigation from your steering-wheel button and that focus passes to the
navigation app — often on the car's screen, even though AutoIA remains
perfectly visible on the phone. The big button on the screen, for its part,
goes on answering to the finger, which makes the failure all the more
baffling.
AutoIA therefore takes another path, which you must open for it once:
In AutoIA's settings, Remote control page, touch Find the
service.
The phone's settings search opens on AutoIA — steering-wheel
remote. Touch that result.
Turn the switch on.
Come back into AutoIA: the block's badge should be green.
If the switch refuses to turn on, Android is blocking
sensitive settings for apps installed from a file rather than from a store.
Touch App info in the same block, then the three-dot menu at the
top right, and allow restricted settings. Then go back to the previous
step.
The order matters, and this is what misleads: that
entry only exists in the three-dot menu once the switch has been refused.
The refusal is what brings it out. Until it has happened, the menu offers
nothing, and you hunt for a line that is not there yet.
To be checked after an AutoIA update, and also if the
app has stopped abruptly: Android sometimes closes that path again in those
two cases, without saying so — sometimes only, and nothing lets you predict
which. The badge on the Steering-wheel remote block then turns
red, and the app announces it aloud at start-up: that is the only warning,
and it is worth listening for before setting off.
What this service sees, and what it does not: it receives the keys of the
remote you taught it, and nothing else. It reads no displayed content, neither
in AutoIA nor anywhere else.
Parked, with the app open: a press on the learnt button should put AutoIA
into listening, and a high beep confirms it. Speak, then press a
second time: a lower beep answers, and your question is sent. That
is the whole gesture — one press to open the microphone, one press to close
it, with nothing to hold. Do it two or three times. This is the moment to
discover a fault, not at the first roundabout.
Then the test that really counts: switch to another app — your navigation,
the home screen — and do it again. You should hear the opening beep and be
able to speak without touching anything. If nothing comes, go back to the
previous step.
If you forget the second press, nothing is lost: the microphone closes by
itself after a minute and a half, and what was said is sent as usual.
Some remotes do more than send a key press: a long press on volume
− asks the phone to wake “the voice assistant”. That call reaches the
AutoIA app only if you have made it the phone's assistant. It is also what
lets you launch it without looking for it, by a long press on the side key or
on the home button, even when it is not on screen.
Not every remote can do this, and the seller's description is no
guarantee. One remote was measured here button by button: its four
buttons sent ordinary keys — two volume, two music — and none
called the assistant, not even the one its instructions announced for that.
If yours is in that case, making AutoIA the assistant will change nothing
for it; it remains useful for the phone's side key.
Open the phone's settings, not the app's.
In the search field, type Digital assistant app.
Open the Digital assistant app option.
Choose AutoIA from the list.
The wording varies from one phone to another. Depending
on the make and the Android version, you may also find Voice
assistant, Assist app or Assistance and voice input,
filed under Default apps or General management. The
settings search remains the surest path.
To know before doing it: AutoIA then replaces the
assistant you were using, everywhere the phone called it — including a long
press on home. It is reversible at any time, in the same place, by putting
the previous assistant back.
This setting is optional. Without it, the remote works
anyway once its button has been learnt, and the big button on the driving
screen depends on nothing.
AutoIA tells you where you stand. In its settings, the
Steering-wheel remote block shows who answers the phone's voice
button — AutoIA, or the app that has taken that role over. A link there leads
straight to the choice screen. The state is read again every time you come
back to that screen, never remembered.
It is a piece of information, not an alert, and the
block's badge takes no account of it: it counts only what the remote really
depends on — a learnt button, the remote answering, and the accessibility
service running. Not being the phone's assistant is therefore not a
failure, and nothing will raise an alarm about it above a button that
answers.
This setting can undo itself, and without warning. It
belongs to the phone, not to AutoIA: a system update, or a reinstallation
of the app, puts it back on the original assistant. No app can make itself
the assistant — Android reserves that choice for you alone. Hence the point
of glancing at the Steering-wheel remote block when the voice
button no longer answers as it did.
The remote declares itself an audio device and sends no key press. It
will not do; another model is needed.
It used to work, it does not any more
It has disconnected or its battery is flat. The Steering-wheel
remote block tells you so in red. Check it in the phone's Bluetooth
settings as well.
It answers fine at home, and gives up once in the car
Its battery is at the end of its life. A weak
battery holds the link as long as the remote is next to the phone — on a
desk it seems perfect — and loses it as soon as it moves a little away.
At the wheel it is clipped on and the phone is in its cradle: that
distance is enough, and the disconnections become untimely, with no
visible cause. AutoIA cannot warn you, the phone being unable to read a
remote's battery level; it is measured with a tester —
2.5 V on a faulty battery, where a healthy one gives 3
to 3.5. When you buy one, replace the supplied battery with a
fresh one straight away: it has often aged on the shelf, and it
is two euros against an evening spent suspecting the app.
It does not come back after turning Bluetooth off and on again
That is normal, and measured: it does not reconnect by itself.
Press any one of its buttons to wake it; it reappears at
once.
The music reacts, not AutoIA
The button pressed is not the one that was learnt. Do the learning
again, pressing the right one.
Nothing happens as soon as another app takes the screen
The remote's path is not open. That is step 3 above, and it is the
most frequent case — Android sometimes closes that path again when
updating AutoIA, without saying so. The Steering-wheel remote
block's badge is then red. A second possible cause, if the badge is
green: you touched Learn the button in the settings and then left the screen
without pressing any key. Do the learning through to the end, or restart
the app.
A volume gauge appears at the side of the screen, and nothing else
Same cause as the previous line, with a misleading symptom: your press
did not reach AutoIA, and the phone took it for a volume adjustment. Open
the remote's path.
The music skips a track when you ask to speak
Same cause again: the path closed, the press gone to the player. Once
the path is open, no key on the learnt remote controls
the music any more.
A long press on volume − wakes another assistant
AutoIA is not the phone's assistant. See Making AutoIA the
phone's assistant, above.
What is set in the app itself, whichever mode you have chosen.
To be done while parked, like everything else.
The settings carry at the top a bar of pages, which scrolls:Language, Voice, Answer source,
Conversation, Measured weather, Remote control, Voice announcements,
Phone, Alarms and Debugging. The open page is in
orange and moves to the middle of the bar; the back gesture returns to the
settings home. Each
box says under its name where the page stands — the language served, the
speed chosen, the mode that answers — and carries a coloured dot only when
something is expected of you. Only the Answer source page is required; the
others already have values that will do. The liability clause is shown on the
settings home: it is not set, it is read.
Above that bar, the app's menu — Debugging,
Summary, Settings — sits on the conversation page, under the AutoIA
name, and serves as the title of the Debugging, Summary and Settings
screens: the open screen is in orange there, and the small logo on its left
returns to the conversation; Debugging appears only if you have turned it on.
At the bottom, the help bar: All the help, then
Liability and warranties, Privacy policy and Terms and
conditions, those last three opened on their own, without the rest of the help.
The app's language
AutoIA speaks English, French, Spanish and German. By default it
follows the phone's language; a phone set to a language AutoIA does not speak
opens in English.
You can also choose it yourself, independently of the system: settings,
Language page. The four languages are named in their own language —
“English”, “Français”, “Español”, “Deutsch” — so that you can find yours even if the app
has opened in one you do not read.
This setting does more than the screens. It also
governs the synthesised voice, the speech recognition, and the language the
model answers in — that is to say the language you will have to
speak. It is the least obvious of the four consequences, and the
most disconcerting if you discover it at the wheel by no longer being
understood.
Changing it restarts the app, and the conversation in
progress is lost. That is the only way to bring the voice, the instruction
and the notification into line at once — they live in a background service
that a simple screen refresh does not touch. Do it while parked.
⚠️ Recognition and synthesis each need their own language
pack. If your phone does not have the one for the language you
chose, AutoIA falls back on the system's engine — it works, but your voice
then goes over the network. The Voice page says so plainly and
tells you what to install. The two downloads are separate, in two different
places in Android's settings.
Ask for a word, a sentence, a translation, and AutoIA speaks it in
its own language. "How do you say: I am going to the supermarket
tomorrow?" gives the French sentence with a French accent, and the
explanation in English with an English accent — in the same answer.
There is nothing to set up. The app recognises the
language of each passage and switches voice mid-sentence. You talk, you ask
for a repeat, you ask to be corrected: each part is spoken as it should
be.
It works both ways. An English app quoting Spanish
says it in Spanish; a Spanish app quoting English says it in English.
The voice for that language must be installed on the
phone. When it is missing, AutoIA tells you out loud and speaks the
passage in the language of the app. The Text-to-speech engine
button, in the Voice settings, opens the Android screen where you
change engine or add a voice.
A rare word, alone and out of any context, may escape recognition and
come out in the language of the app. A sentence, even a short one, is
recognised without trouble.
Speaking rate belongs to each language. Every voice has
its own natural pace, and the same setting does not give the same speed from
one language to the next: the Voice settings offer one slider per
language, each with its own Listen button for that language. What
you set for English also applies to English words spoken in the middle of a
French answer. A language you are learning is often better slowed down. Each
language starts from a speed chosen for it, and a Default values
button brings all four back to it.
The model can take the time to reason before speaking. It thinks in
silence, then answers. On a hard question the answer gains by it; on an
ordinary conversation you wait for nothing.
The switch is in the settings, Conversation page,
Extended thinking block. It is on by default:
without thinking, a small model can answer too fast and get it wrong, even
on a simple sum. Turn it off if you prefer the fastest answer — at the
wheel, the seconds of waiting are silence during which you do not know
whether the app is working or stuck.
It works in bridge mode, with Claude, with OpenAI, with Google, with xAI and with Groq,
but not with Mistral: those models decide on their own
whether to reason, with no documented setting to turn it off. The switch
therefore greys out there, and says so — a setting with no effect would be
worth less than an absent setting. In API mode, the change takes effect
from the next question. In bridge mode, the server has to rebuild its
session: expect a short pause on the first question that follows, but
your conversation is kept — no need to repeat what you had
just said.
Measured on the same question, to which Claude gave exactly the same
answer in both cases:
Thinking off
Thinking on
First sentence heard
3.0 s
5.8 s
Answer said in full
5.3 s
10.1 s
Answer obtained
the same, word for word
The time doubles, for the same result. That is the ordinary case: most of
the questions you ask in a car call for no reasoning at all.
In API mode it costs money too. Claude's reasoning is
billed as produced text, that is to say at the dearest rate: five dollars per
million word-tokens on the fastest model, twenty-five on the subtlest. Thinking
you do not use is spending you do not see.
Not at the wheel. That is the only advice that counts.
Thinking is worth it while parked, when you ask a real question: comparing
two options, understanding a line of reasoning, untangling a problem. There,
two or three seconds more make no difference at all, and the answer is
better.
While driving, turn it off. You want an answer straight away, short, on a
subject that calls for no reasoning: the weather, a time, a fact, a
conversation. That is exactly what the app is made for.
When the model gives you a phone number or the address of a place, it says
them out loud like everything else. You can then ask it to call, or to take
you there.
It happens like this:
You ask: "dial that number", or "take me there".
The model says again what it is about — the number spelled out, or the
address. If there are several numbers or several addresses in your
conversation, it asks which one first; if there is only one, it may ask you
to confirm or act straight away, depending on the model you chose.
The app then opens the phone dialler, or your navigation app.
What does not depend on any model: you always hear the
number or the address before anything opens, and the app only acts on what
was said to you in an earlier exchange.
The last move is yours. The dialler shows the
number without calling: you press the call button — unless you have asked
AutoIA to do it for you, which
Placing the call without touching the screen
describes. Navigation shows the address without starting the route: you
start the guidance.
The app only opens what the model told you beforehand: a number or an
address that was not said in your conversation is refused, and the app tells
you so out loud. For navigation, Waze is opened if it is installed;
otherwise your phone's navigation app takes over.
Say “call Marie”, and the application looks that name up in your
contacts. If a single person matches, it opens the dialler; if several
match, it reads you their names and waits for you to choose.
You choose by saying the name again, or by its place in the list: “the
second one”, “the second to last”. The place helps when speech recognition
does not write the name the way it appears in your contacts. When the same
list comes back a second time, the application reminds you of it.
That search happens on your phone, sending nothing. No
AI provider is consulted to find a contact, and your numbers never leave the
device: they go straight from your address book to the dialler. The answer
is immediate, even with no network.
Here too, the last move is yours: the dialler shows the
number, and you press to call — unless you have asked for the opposite,
below.
The word “number” makes all the difference. Asking for a
number is not asking for a call: as soon as you say that word, the
application stops looking in your address book and leaves the question to
the model, which will search the web for it.
To call someone you have as a contact, do not say “number”: “call
Christelle”, “phone France Travail”.
To have a number looked up that you do not have, say it: “find me the
number of the restaurant in Catllar”. The model gives it to you, and you can
then ask it to dial.
The application only offers you contacts matching every
word you said. “Call France Travail” finds “France Travail Prades”; a
sentence whose words point at different contacts points at none, and the
question goes to the model. A list too long to listen to goes there too.
For a number search to succeed you need a model that can search the web:
the cheapest ones cannot, and their description tells you so as you choose
them.
The application copes with names that speech recognition mangles. If it
finds nothing, it tries again with the beginning of the name, and it joins
up the letters when you spell them out. A name heard in two pieces is joined
up as well.
Access to contacts is optional: it is offered on first
start, while parked, and never while driving. Refused, everything else in
the application works, and you can allow it later in Android's settings.
AutoIA opens the phone's dialler with the number already filled in, and
you press the call button. The Phone settings page carries a switch
that changes this: the call goes through on its own, as soon as you have
confirmed.
It is off to begin with. Turning it on allows AutoIA to
place a call: Android asks you for the permission at that moment, and if you
refuse it the switch stays off and tells you so.
It only applies to what you have confirmed yourself: the
person you have just chosen among your contacts, and the number you approved
after hearing it. A number shown on screen that you tap always opens the
dialler — it is the only place where you can read it again before it
leaves.
Emergency numbers are the exception, and that is not AutoIA's
choice: Android forbids any application from calling 112, 999 or
911. The dialler opens, and you press. This holds whether the switch is on
or off.
Weigh it before turning it on: one misheard name, and the call really
goes through. With the switch off, the same mistake costs no more than a
screen to close.
Say “send a text to Eric”. AutoIA looks Eric up in your
contacts, as for a call: one person, and it asks you for the message;
several, and it reads their names and you choose, by name or by
position.
You dictate the message, then AutoIA reads it back with the name
of the person it is for: “Message for Eric Dupont: can you cook
some pasta? Shall I send it?” Nothing goes without your yes. A
no, or a yes, but…, cancels: you can then start
again.
The message goes exactly as speech recognition wrote it, uncorrected.
That is why it is read back to you: listen to it before saying yes.
The contact must have a number saved as mobile in your contacts.
Otherwise AutoIA tells you so and sends nothing.
By default your messages app opens with the text already written, and you
press Send. The Phone page of the settings has a second
switch, Send texts without me pressing, off to begin with: switched
on, the text goes as soon as you say yes, and AutoIA tells you whether it
went. Android then asks you for permission to send texts. AutoIA never reads
your texts.
Just say it while driving: “remind me to buy bread in two hours”,
or “set an alarm to call Angélique at six”. AutoIA answers with the
time it has noted — “noted, I will remind you at six o'clock” — and that time
is the one that counts: listen to it, it tells you whether you were
understood.
A distant date works just as well: “remind me on the 25th of December
at nine to call my sister”, or “in ten days”. AutoIA keeps
alarms up to a year ahead; beyond that it tells you, rather than setting one
you would know nothing about. If you give no time, it takes nine in the
morning — and you will hear it in the answer.
A place can trigger an alarm too: “remind me to call
Angélique when we get to Clara-Villerach”. AutoIA compares the town you
named with the one you are in, and reminds you as you arrive.
A place alarm waits for the drive. AutoIA watches for
the arrival while it is running: close it and the alarm stays in the list,
waiting for your next drive. It also needs location access — without it,
AutoIA tells you instead of setting an alarm that would never go off. And
if you are already in the town you name, it says so.
When the time comes, AutoIA speaks: “Alarm. Buy bread. Press the
button to confirm.” If the app is closed, a notification tells you
instead.
Until you confirm, the alarm comes back every two
minutes: an alarm you do not hear is an alarm lost. Confirming is
the gesture you already use to speak — one press of the button — and it
covers everything just said. A confirmed alarm disappears; close AutoIA
without confirming and it stays in the list, to be spoken again on your next
drive.
You can ask for “list my alarms” at any time, “delete the
bread alarm”, “move it to seven”, or “delete all
alarms” — that last one asks you to confirm, and tells you how many it
is about to delete.
The Alarms settings page shows what is waiting
and lets you delete an entry by hand, while stopped. It is also where Android
asks you to allow exact alarms: without that permission your alarms ring a
few minutes late, and AutoIA says so each time it sets one.
If the village name was misheard — speech recognition
readily mangles rare names —, AutoIA does not save anything blindly. It
looks, among the towns within thirty kilometres, for the one that sounds
like what it heard, and offers it: "Do you mean Marquixanes?". Say yes, and
the alarm is saved for that town; say no, and nothing is saved. This search
happens on the phone, without network, over the list of French towns.
The app asks you for access to your location, once, at set-up. It is
optional: refuse it and everything goes on working, and the
model will simply ask which town you mean.
What it is for: without it, “what will the weather be tomorrow?” earns you
a “where are you?” in return — that is, one more exchange at the wheel for a
perfectly ordinary question.
What the app does with it, precisely:
Accuracy requested
Precise location, to name the right town: Android's approximate
location can be off by two kilometres, enough to land in the
neighbouring town. You can choose “approximate” when Android asks; the
app works that way too.
When it is read
At the moment you ask a question, and not before. Nothing is tracked:
no journey is recorded, no sensor stays on.
What is sent
The name of the town, and that alone —
“Perpignan”. Your coordinates go neither to Anthropic nor to an AutoIA
server.
What is kept
Nothing. The town accompanies the question of the moment, and is
repeated only when it changes.
One point to know, which we prefer to write down. To
turn coordinates into the name of a town, the app uses your phone's
geocoding service — on an ordinary Android device, that of Google Play
services. That service receives your coordinates, just as
when you use a navigation app. This happens between your phone and its
system, without our touching it, but we cannot claim that your location
never leaves the device: that would be false.
What we can state is narrower, and verifiable: it goes neither to us nor
to Anthropic.
You speak, and a recognition engine turns your voice into text. It is that
text, and it alone, that then goes to the provider you have chosen —
Anthropic, Google, Mistral, OpenAI, xAI, Groq, or your server in bridge mode — so that the model
can answer. The sound recording itself never leaves the app.
What remains to be known is where that transformation takes
place, and the answer depends on your phone. Android can transcribe
without a network from version 12 onwards, provided the language has been
downloaded. When that is so, your voice does not leave the device. Otherwise
it is sent to the system's recognition service — Google's, most often — which
transcribes it and returns the text.
The app tells you, and does not ask you to guess. The
What becomes of your voice block, on the Voice page of
the settings, announces which of the two cases applies to your phone. It
settles nothing: the recognition engine belongs to the system, not to
AutoIA. It lets you know, and therefore choose to keep quiet, or to install
offline recognition.
To install it: Android settings, General management then
Voice input — the name varies by make — and download the language
for offline recognition. AutoIA already asks for offline mode on every
listen; with no language installed, that request has no effect.
On phones older than Android 12, local transcription does not exist: there
is nothing to install, and your voice will go through the system's
service.
And the way back, the one people forget
Everything above describes the outward journey: your speech into text. The
return raises the same question the other way round — the model's answer
arrives as text, and a synthesised voice speaks it. That voice too
can be local or remote. When it is installed on the device, nothing
goes back out. When it is not, it is the text of the answer that goes to the
synthesis service to come back as sound.
The consequence is heavier than on the way out, and that is why
we say so. On the way out, what may leave is a recording of a few
seconds. On the way back, it is what the model answers you — the
whole answer, in clear. The same What becomes of your voice block
announces it, on the line below.
To install an offline voice, the Text-to-speech engine button
opens the Android screen that does it. Once the voice is in place, it works
without a network, including where there is no coverage: that is also what
makes the answers audible where mobile data no longer reaches.
That same screen chooses the speech engine, and the
choice matters more than it seems: the engine installed decides which
voices exist. A language that is silent with one speaks with another. If a
voice is missing and will not install, changing engine is the move that
most often unblocks things.
AutoIA listens through the phone's microphone. Sitting in a storage
tray or clipped to the dashboard, it hears you from a distance, over the
road noise: when place names or people's names come out garbled, the
phone's position is often to blame, not your voice.
A Bluetooth hands-free kit fixes that. Clipped to the
sun visor, its microphone is placed for the driver's voice, forty
centimetres from the mouth, with noise reduction designed for the cabin.
AutoIA then listens through that microphone, and the answers still come
out of the car's speakers. AutoIA thus has its own hands-free mode,
independent of the car's.
Which device to buy
Any Bluetooth sun-visor hands-free kit will do. They are common
devices, between 20 and 40 €, sold on Amazon for instance: the
SuperTooth Buddy or the
Besign BK06, to name two.
AutoIA was developed and tested in the car with the
T821, a common visor model, Bluetooth 4.1, that
wakes on motion and is sold under several brand names, Aigoss or Agptek for
instance. What matters is that it
presents itself to the phone as a device for calls, which every
hands-free kit does. A Bluetooth speaker paired for music only has no
microphone to offer.
Set up the kit's Bluetooth entry like this. In the
phone's Bluetooth settings, open the kit's entry: Calls ticked,
that is where the microphone goes through; Audio unticked,
otherwise the answers could come out of the kit's small speaker instead
of the car; and, on phones that offer it, the audio device type set to
Headphones. AutoIA tells you under the switch whether the
microphone is seen: its name, or No Bluetooth microphone
connected. A kit connected "for audio" only is not seen: it is
Calls that is missing.
The setting
Settings, Voice page, Microphone block: the switch
Listen through a Bluetooth microphone. It is off when the app is
installed. Switched on with no microphone connected, the block shows check it and the phone keeps listening: nothing is lost, but
nothing changes either until the kit is on.
At each listen, the link with the kit opens in about a second. You do
not have to wait for it: the beep sounds when you press, the phone listens
while the link opens, and the kit takes over as soon as it is ready. The
link closes when the listen ends, and the car stays on its music.
If the car has its own hands-free
Many cars also present themselves to the phone as a device for calls.
With the kit, that makes two possible microphones, and AutoIA does not
choose for you: under the switch, a list shows the connected devices, one
radio button each, and you tick the one that listens, the kit. AutoIA is
then locked to it. Do it as soon as the kit is connected, before
getting into the car: the button is there even when the kit is
alone, and the choice then holds, even when the car connects and takes
over for its calls. If the kit is off, the phone listens, and the screen
says so: AutoIA never listens through the car in its place.
To show this list, AutoIA asks for the Nearby devices
permission when you turn the switch on. Without it, Android only shows it
the device it has made active, usually the car, and the kit stays
invisible.
Leave Calls ticked on the car. Unticking it
does not hold: Android Auto puts it back at once, because it needs it
for your phone calls. The choice is made in AutoIA, and the car keeps
serving your calls as before.
Under each answer, on the conversation page, two links appear:
Copy takes that question and its answer, Copy all takes the
whole conversation. What is copied goes to the phone's clipboard; you then
paste it wherever you want — a message, an email, a note.
You choose what goes. Settings, Conversation
page, section Copying the conversation: two switches, Copy my
questions and Copy the answers. You can take only your
questions, only the answers, or both.
Both switches start off, and the links do not appear.
As long as you have chosen nothing, the conversation page stays as it is.
Turn one on, and the links are there when you come back.
Both speakers are named when you take both — “You”
before your questions, “AutoIA” before the answers — so that you know who is
speaking when you read it again. If you take only one of the two, the text
goes bare: everything comes from the same speaker, and the label would teach
nothing.
Nothing is shortened. A long answer goes whole.
Copy all stops at the last finished answer: an answer that is still
being written is not taken half-way.
Nothing leaves the phone. Copying only puts the text on
Android's clipboard; you decide where to paste it, and if you paste it
nowhere, it goes nowhere. Android shows no preview of it: AutoIA marks what
it copies as sensitive, so that the start of a conversation does not pop up
over another application.
Ask “What's the weather like?” or “The
weather”: AutoIA fetches the weather measured by
the Météo-France stations nearest to you — temperature, relative
humidity, dew point, wind and gusts, rain, and the sea-level pressure with
its hourly change, measured over three hours —, then the
forecast for the next six hours at your position, from
Météo-France's AROME models.
AutoIA reads you the report itself, the same whatever
the model — the measurements, the stations and their distance, the
cumulus base, the pressure, then the forecast: the sky, rain here and
nearby, the temperature, the gusts. The model then comments on it in a
few sentences.
Another place, another time. “The weather in Lyon”,
“what will the weather be like tomorrow”, “the weather in Perpignan
tomorrow morning”: AutoIA reads the forecast for the town and the time
asked — this morning, this afternoon, this evening, tonight, tomorrow,
tomorrow morning, afternoon or evening —, up to two days ahead. For
another town right now, it also reads the stations there. The report
always names the town it picked. Any other question — “is it going to
rain?”, “the day after tomorrow”, a city outside France — goes to the
model without a report: it answers it like any other
question.
As many stations as needed. The nearest one gives the
air; the dew point, the wind and the pressure come from the nearest one
that measures them, since not all have the same instruments. Each is
named with its distance. Pressure varies little from place to place:
forty kilometres change nothing to its trend.
The cumulus base, and only the cumulus base. AutoIA
works it out with Espy's formula: 125 metres per degree of difference
between temperature and dew point. It is given above the ground at the
station, and above sea level. It does not hold for other clouds:
stratus, fog or high clouds do not form that way.
The forecast is Météo-France's. It comes from
AROME-PI, the nowcast, which takes the radar into account and is renewed
every hour, then from AROME beyond that; both compute the weather cell
by cell, at the scale of a kilometre, terrain included. Rain is also
looked for a few kilometres around you: a shower forecast close by is a
shower you may drive into.
You need a Météo-France key, free of charge. Here is
what to do, once. The portal is in French: the labels below are the ones
you will see.
Create an account. Open
portail-api.meteofrance.fr,
tap the profile icon at the top right, then Créer un compte.
Fill in the form, then confirm your address with the link in the email
you receive.
Subscribe to the Données d'observation API. Once
signed in, open its page, portail-api.meteofrance.fr/web/fr/api/DonneesPubliquesObservation,
and tap Souscrire à l'API gratuitement. It is the only
subscription needed: it opens the stations as well as the AROME
forecast.
Create the key, on the same page. Once subscribed,
tap Générer token — it is also in the profile menu,
Mes API, on the Données d'observation line. Choose
API Key, not OAuth2: an OAuth2 token expires after one
hour.
Enter the validity period, in seconds. For a key
valid for one year, enter 31536000, that is 365 days of
86,400 seconds. Tap Générer token, then copy the key shown.
Store it in AutoIA. Settings, Measured
weather page: paste the key, then tap Check the key. AutoIA
answers with the number of stations listed, a little over two
thousand.
After one year, the key expires. Météo-France then
refuses it, and AutoIA says so. Repeat steps 3 to 5: the account and the
subscription remain, only the key has to be created again.
What leaves, and where to. Your key only goes to
Météo-France. The stations are chosen on the phone: Météo-France receives
station identifiers and, for the forecast, a square of about twenty
kilometres aligned on a fixed grid — never your exact location, nor your
voice. The AI provider receives the measurements, the forecast, the
station names and their rounded distance. The Measured weather on
request switch turns it all off without deleting the key.
The app keeps a journal of what it does: the questions asked, the answers
received, the errors met. The Debugging block, on the Debugging page of the settings, brings
up the Debugging entry of the app's menu, which lets you read it, and send it to whoever is helping you
understand a problem.
It keeps the conversation word for word — your
questions and the model's answers, in full. A trip can therefore be reread
there as a dialogue. That is also what makes the journal sensitive: read what
follows before sharing it.
That means two files. What was said on one side, what
the app did on the other — otherwise one would reread the same trip twice,
the trace “recognised, 31 characters” then the question in full. Each
carries the name you chose; the
conversation one adds -conversation.md, so that the two files of one
trip stay recognisable side by side.
Each button puts out only its own file. The Debugging
screen puts down the traces, the Conversation page of the settings puts down what was said; one does not carry the other along. To keep
a whole trip you therefore need both acts. In the trace file, each utterance
appears as msg...: you can see at what moment someone spoke, never
what was said. Sending your traces to whoever is helping you therefore does
not make them read your conversations.
The conversation can be retrieved without going through
debugging. The Conversation page of the settings
carries, under the page bar, its own Share and Save
buttons, and sends only what was said —
never the technical traces, which would additionally say which server,
which model and which towns were passed through. Rereading a trip is an
ordinary act; it has no business going through a troubleshooting screen.
And the converse holds: troubleshooting does not force you to send a
conversation.
It runs permanently, even when the entry is hidden. That
is deliberate: otherwise you would have to have turned debugging on
before the fault in order to have any hope of seeing it, which never
happens. You turn it on after noticing something, and the traces are already
there.
What it contains
In the conversation file: your questions as the speech recognition
understood them and the model's answers, word for word,
grouped by turn of speech. The first are signed Driver, the
second Assistant — a word that does not change, even if you
change model along the way. In the trace file: the towns passed through,
the models used, the number of word-tokens and the error messages — and,
in place of each utterance, only the mention msg... with its
time.
What it does not contain
Never your API key, nor any password, nor your exact
coordinates. And the conversation is written only in this reserve: it
does not pass through the phone's technical logs, the ones an Android
incident report would carry off without showing you what it
contains.
When the reserve is full
The two files share a single reserve, and the
conversation comes first in it: it is the technical traces that go, the
oldest first, and the conversation is only eaten into once nothing else
is left. Each file says so at the top: you always know
whether what you are reading starts at the beginning of the trip.
Where it lives
In memory, in a reserve whose size you set: the Debugging block, on the Debugging page of the settings, lets you give it a share of the app's memory — half
at most — and tells you how many hours of conversation that keeps.
Closing the app erases it, and a button empties it on the spot —
conversation included. The files are written only if you
touch Save or Share, wherever you have chosen.
How it gets out
By your act, and yours alone. The Share,
Save and Copy buttons are the only doors. No automatic sending, no
statistics, nothing leaves of its own accord.
To know before sharing. From the Debugging screen, those
buttons send the trace file to the app you choose —
messaging, email, notes. It no longer carries what you said, but it does
carry the towns you passed through, the models used and the error messages.
From the Conversation page of the settings, it is the other way
round: what was said goes, with not a technical trace. In both cases, read
it again if in doubt — everything is displayed on screen, in clear, before
sharing.
Why this journal exists rather than automatic report sending: because a
fault happens while driving, far from a computer, and one must be able to
keep some record of it. The choice of sending it, and to whom, remains
yours.
The Summary entry of the app's menu, next to Settings,
opens a screen that does one
thing: ask the model to reread everything that was said on the trip, and draw
up a note from it.
What the journal keeps is an account: the conversation in
the order it happened, with its hesitations, its repetitions, its microphone
tests and its questions asked twice. What the summary draws from it is
knowledge: what was learnt, what was decided, what remains
to be checked, organised by subject — readable without having followed the
conversation, and six months later.
Nothing is generated, sent or written until you touch
Generate. Opening this screen costs nothing. It is the
same principle as the journal: the app never decides on its own to let out
what you have said.
What is sent
The conversation of the current trip, as the journal keeps it — your
questions and the model's answers. Not the technical traces, not the
towns passed through. If the reserve had overflowed, the note says so: it
does not claim to cover a beginning of the trip that is missing.
Who makes it
The model you choose on this screen, independent of the one
used for the conversation. The steadiest of the default source —
Sonnet 5 in bridge mode and at Claude, Mistral Small 4 at Mistral,
GPT-5.6 Terra at OpenAI, Gemini 3.8 Flash at Google, Grok 4.3 at xAI, GPT-OSS 120B at Groq: nobody is waiting at the wheel during a summary,
and the fast model, chosen for the road, is precisely the one that
synthesises worst. Your choice is kept for each source
separately, the models not being the same from one to another. In
API mode, this note is billed to your key like an ordinary exchange, and
the gauge counts it.
What you do with it
Save puts down a file, Share sends it to the app of
your choice, Remove takes it off the screen. Removing the note
does not touch the conversation: you can generate another.
Where the file lands
At the location set on this screen, which is not the
journal's — a note is kept where you keep what you reread, traces are
retrieved over a cable on the evening of a failure. The name, for its
part, is derived from the journal's: -consolidation.md, so that
the files of one trip end up side by side.
What it is worth
It is a text written by a language model from what was said:
it can be wrong, and the file carries that at its top.
It does not replace the transcript, which remains the only literal record
of the conversation.
The whole note is never read aloud, and that called for a separate path: an
ordinary answer goes sentence by sentence to the speech synthesis, whereas
here several pages meant for the eye are produced. You can moreover leave the
screen while it is being made, and even go on talking: the conversation is
not suspended.
By voice, to WhatsApp. Say “send the consolidation
to Eric on WhatsApp”. AutoIA looks Eric up in your contacts, reads you
the numbered models, and you choose by position — “the second”. A
new note is generated; AutoIA reads you its In
short, then asks: “Shall I send it to Eric on WhatsApp?” On your
yes, the note is saved and WhatsApp opens on Eric's chat with the
file attached. You press Send, once stopped: WhatsApp sends
nothing without that gesture. Without WhatsApp on the phone, AutoIA says so
and stops.
AutoIA does not only answer you: it also tells you about itself. It says
when the connection to the server has dropped, and when it is back; it says
“one moment, I'm thinking” when an answer is slow to come; it says that your
remote control has just appeared or disappeared; it says whether your
Bluetooth microphone is connected, whether your voice comes through, or
whether it has stopped passing it on. On a road with poor
coverage, that can add up to a great many sentences about something you can
do nothing about.
The Voice announcements page therefore carries four switches —
Network, Thinking, Remote control, Bluetooth
microphone — which turn off
separately. Under each one, the sentence you will hear if it stays on.
What is turned off is the voice, and only the voice. The
screen still shows what is happening, and the debugging log still records
everything: silencing an announcement does not deprive you of any
information, it spares you from hearing it. All four are on to begin
with.
A connection failure is said once only, even if the
application keeps retrying for several minutes; its return is said too, so
that you know when to ask your question again. One sentence alone escapes
these switches: the one telling you that your session on the server is no
longer valid, because it calls for something from you in the settings, at a
standstill.
The settings specific to each mode are described in their own tab: what
Bridge mode assumes, your API key and web search in
API mode.Your API key and web search
are described in the API mode tab. The button for
taking the floor is dealt with in Remote control.
What you accept by using AutoIA. To be read before
installing.
At the wheel, you remain solely responsible for your
driving. AutoIA is neither a driving aid nor a safety device. It
exempts you from no rule of the road — in particular from French article
R412-6, which requires the driver to remain constantly in control of the
vehicle and able to perform every manoeuvre incumbent on them. If the
situation demands your attention, it comes before any conversation. Break
off, slow down, stop.
Your rights as a buyer remain intact
AutoIA is sold to you, and the legal guarantee of conformity applies by
operation of law: nothing in this text sets it aside or reduces it. In the
European Union it follows Directive (EU) 2019/770, runs for at least two
years from supply, is exercised free of charge, and requires the publisher to
provide the updates needed to keep the software in conformity. In the United
Kingdom, sections 34 to 36 of the Consumer Rights Act 2015 apply, and section
47 forbids excluding them. Elsewhere, the mandatory rules of your country of
residence apply.
In practice: if the application does not do what is announced, you may
require it to be brought into conformity, and failing that a price reduction
or a refund. This guarantee is separate from the Google Play Store refund
policy, and it does not expire with it.
What remains your responsibility
Your server: its installation, its updates, its
security, its backups and its access. The script helps you set it up; it
does not administer it for you.
Your credentials and your Claude subscription, and the
consumption that follows. You alone answer for them to Anthropic.
Compliance with Anthropic's terms, which forbid in
particular opening your bridge to other people — see
who this mode is for.
The data that passes through: what you dictate, what
you keep, and to whom you pass it on.
The content of the answers. They are produced by a
language model and may be inaccurate, incomplete or
invented. Do not base any decision about driving, health, money or
law on them without checking elsewhere.
What you buy, and what is not sold
What you buy is the application itself: not access to an artificial
intelligence service, not a connection, not hardware. The API key you obtain
from the provider of your choice, the spending it incurs, the server you host
if you set one up, your phone and your connection remain yours: the publisher
does not supply them and is not answerable for what those third parties do or
stop doing. For its own failures, it answers as the law provides.
⚠️ That paragraph defines what is sold; it does not limit your
right to compensation. A term removing or reducing that right
would be struck down — article R. 212-1, 6° of the French Consumer Code,
and section 62 of the Consumer Rights Act 2015 in the United Kingdom. None
of the clauses above applies in the event of gross negligence, wilful
misconduct, personal injury, or wherever the law forbids exclusion.
⚠️ The publisher's law is French law, but it deprives
no one of their own: if you buy from another country, the mandatory
consumer-protection rules of your country of residence apply and prevail
over this text.
Acceptance
By using this software, you implicitly accept these
clauses.
Your data
What becomes of your words, what leaves the phone and what does not: that
is a separate page, and it is meant to be read before installing —
privacy policy.
Trademarks
TBNETSYS® is a registered trademark. AutoIA works with the API and the
models of Claude, published by Anthropic, with the API and the models of
Mistral AI, with the API and the models of OpenAI, with the API and the
Gemini models of Google, with the API and the Grok models of xAI, and with the API of Groq; this product is
neither developed, nor supported, nor approved by any of them, and no
partnership is implied. “Claude”, “Anthropic”, “Mistral”, “OpenAI”, “GPT”,
“ChatGPT”, “Google”, “Gemini”, “xAI”, “Grok” and “Groq” are trademarks of their respective holders.
The AutoIA app can work in two ways. They differ on one point only — who
talks to the artificial intelligence, and who pays — and you choose between
them in the app's settings screen.
Bridge mode
API mode
The principle
The app talks to an AutoIA server, which talks to Claude.
The app talks straight to the API you choose, with no server.
What you need
The address of an AutoIA server and an account on it.
An API key of your own, at Anthropic, at Google, at Mistral, at OpenAI, at xAI or at Groq.
Getting started
You have to install and run a server: a machine
left on permanently, a domain name, a certificate, accounts. This is
system administration work.
Far simpler: about ten minutes in a browser, with
no technical skill at all.
Who pays
Whoever hosts the server.
You, as you go, directly to the provider — and Mistral has a free
tier to try it out.
Who it is for
Those who host their own AutoIA server.
Everyone else.
When in doubt, take API mode. Getting a key bears no
comparison with setting up a server: you fill in a form, you copy a line of
text — and that is that. At Mistral you can even do it without a bank card.
The Your API key tab guides you step by step.
Bridge mode is only worth it if someone has already set the server up for
you and given you its address.
Setting up your own server for bridge mode?
The Bridge mode tab says who it is for and what
you need to have — but it is a job of an altogether different order from
creating an API key, and it assumes you know how to administer a Linux
machine. If someone has set the server up for you, all you need is the
address and the credentials they gave you: they are entered in the
Bridge mode block, on the Answer source page of the settings.
AutoIA talks straight to the API of the provider you choose — Anthropic, Google, Mistral, OpenAI, xAI or, Groq, or an LM Studio server of your own — with an API key that belongs to you: you pay as you go, directly to the provider, and Mistral and Groq have a free tier to try it out. The API mode tab guides you step by step, from creating the key to entering it in the app.
And the button to speak?
It is independent of the two modes: it does not decide where the answers
come from, only how you ask to speak. The big button on the screen is
enough; a steering-wheel remote is more
convenient.
And my voice, where does it go?
It is turned into text before going anywhere, and it is that text alone
that leaves: the sound recording never leaves the app. What remains to be
known is where that transformation takes place — on your phone, or at the
provider of its speech recognition — and that depends on the device. The answer is the same in both modes: what becomes of your
voice says so in detail.What becomes of
your voice says so in detail.