codai docs
Aplicații

Android

Instalezi codai pe Android, acorzi permisiunile necesare, îl asociezi cu contul tău, îl lași să folosească telefonul în locul tău, conduci desktopul de pe telefon și înțelegi facturarea și confidențialitatea.

codai pentru Android îți folosește telefonul așa cum ai face-o tu: vede ecranul ca o listă de butoane și texte (printr-un serviciu de Accesibilitate), apasă, tastează, derulează și glisează — și se oprește la un card de aprobare înaintea oricărei acțiuni riscante. Android 11 sau mai nou. Apache-2.0, sursa la github.com/codai-ro/codai-phone.

Instalare

Listarea Play (ro.codai.phone) este în testare închisă — încă nu este deschisă publicului. Dacă ai fost adăugat ca tester, o instalezi din linkul de invitație ca pe orice altă aplicație.

Build-ul Play este o „aplicație reader”: îți arată planul și soldul, dar nu are achiziții în aplicație (politica de plăți Google Play). Omite și permisiunile SMS, jurnal de apeluri, toate fișierele și instalare de pachete, deci uneltele SMS și de fișiere nu sunt disponibile acolo. Restul este identic.

Îl asociezi cu contul tău

Primul ecran după consimțământul legal întreabă cum ar trebui să gândească codai:

  • Autentificare cu contul codai — e-mail + parolă, sau Sign in with Google, nativ în aplicație (fără browser). Emite o cheie codai_ pentru acest telefon, etichetată Android · <model> în hub; deconectarea o revocă.
  • Folosești propria cheie AI — sari peste autentificare, apoi Settings → Providers: OpenAI, Anthropic, Google Gemini, OpenRouter, GitHub Copilot sau orice endpoint compatibil OpenAI. Cheile rămân în preferințele criptate ale Android și merg doar la acel furnizor.

Telefonul apare în hub.codai.ro → Security → Devices; îl revoci de acolo dacă îl pierzi.

Permisiuni

Asistentul de configurare le parcurge pe rând. Doar Accesibilitatea este necesară pentru controlul telefonului; restul sunt opționale și pot fi activate ulterior din Settings → Permissions.

PermisiuneDe ce o cere codaiNecesară?
Serviciu de accesibilitateSingurul mecanism Android care lasă o aplicație să citească și să apese ecranele altor aplicații. Folosit doar cât rulează o sarcină.Pentru controlul telefonului — da
NotificăriSă îți spună când o sarcină are nevoie de un răspuns sau s-a terminat.Opțională
MicrofonVorbești în loc să tastezi; rulează ca serviciu în prim-plan cât ascultă.Opțională
Afișare peste alte aplicațiiBula flotantă și mini-chat-ul pe care le poți atinge de oriunde.Opțională
Acces la notificăriCitește și răspunde la notificări („ce a trimis Ana acum?”).Opțională
Baterie: nerestricționatăÎmpiedică Android să omoare o sarcină lungă. Samsung/Pixel: Setări → Aplicații → codai → Baterie → Nerestricționat.Recomandată
Contacte, Calendar, SMS, Jurnal apeluri, TelefonDoar când o sarcină are nevoie prima dată de una dintre ele — cauți contacte, citești calendarul, citești SMS-uri recente, pornești un apel.La cerere
Acces la toate fișiereleUneltele de fișiere (file_list, file_read, …) pe stocarea ta. Doar build-ul APK.Opțională
Locație, stare Wi-FiRăspunsuri despre dispozitiv („pe ce Wi-Fi sunt?”).Opțională
Terminal companion (codai.term)O a doua aplicație mică ce îi dă lui codai un shell compatibil Termux. Doar pentru dezvoltatori.Opțională
ShizukuDeblochează câteva unelte la nivel de shell dacă folosești deja Shizuku.Opțională

Android afișează un avertisment că serviciul de accesibilitate poate „vedea și controla ecranul”. Este exact. Câmpurile de parolă sunt mascate de Android, dar alt text de pe ecran — un sold bancar, un cod 2FA — este vizibil cât rulează o sarcină; de aceea aplicațiile de banking, portofel, plăți, autentificator, manager de parole și Setările de sistem sunt tratate ca sensibile și cer aprobare în nivelul implicit de autonomie.

Reinstalarea aplicației poate opri serviciul în tăcere (mai ales pe Samsung). Dacă codai spune că nu vede ecranul: Setări → Accesibilitate → Aplicații instalate → codai → off → on.

Ce poate face agentul pe telefon

  • Folosește alte aplicații — deschide, citește, apasă, tastează, derulează, glisează. „Deschide WhatsApp și spune-mi ultimul mesaj de la Ana.”
  • Răspunde la întrebări despre telefon — notificări, alarme, contacte, calendar, SMS-uri recente, aplicația din prim-plan, Bluetooth, baterie, stocare.
  • Mici treburi — setează alarme și cronometre, adaugă evenimente în calendar, deschide un link, partajează text, copiază în clipboard, răspunde la o notificare, pornește un apel.
  • Fișiere — listează, caută, citește, editează și mută fișiere din stocare (build-ul APK).
  • Terminal — un shell real de tip Linux prin aplicația companion sau Termux, opțional izolat într-un home de lucru (comutatorul Sandbox din foaia de mod agent).
  • Lucrează offline pentru lucruri mici — model on-device opțional (Gemma 4 E2B, ~2,6 GB, sau codai-nano ajustat fin) în Settings → Models. Moduri: off (implicit), fast-lane (apăsările mecanice de urmărire rulează local), local-first (fiecare pas pornește pe telefon și predă cloud-ului când se blochează). Cel mai bine pe flagship-uri recente; telefoanele cu 4 GB ar trebui să rămână pe off.
  • Întreabă înainte de acțiuni riscante. Trimiterea unui mesaj, o plată sau o acțiune într-o aplicație sensibilă afișează un card de aprobare. Aplicațiile de mesagerie au propriul comutator: ask (implicit), block, allow.
  • Mai multe sarcini în paralel — o sesiune per fereastră (split-screen / pop-up pe One UI); sarcinile care au nevoie de ecran așteaptă politicos la coadă.
  • Ține un plan și notițe — o listă todo live sub antetul chat-ului și un browser local de Memorie (/memories/<fișier> supraviețuiește sesiunilor; nimic nu părăsește telefonul).

Autonomie

Settings → Agent → Autonomy, și în chip-ul cu scut de lângă composer:

NivelÎntreabă înainte de
strictfiecare acțiune
assisted (implicit)orice trimite sau plătește, și orice în interiorul unei aplicații sensibile
autopilotdoar trimitere sau plată

Stop în chat sau pe bulă încheie imediat o sarcină; fiecare tură are și un buget de timp (4 minute implicit, Settings → Agent).

Conduci desktopul de pe telefon

Cu codai desktop deschis pe un computer autentificat cu același cont și Serve as a remote host for my phone activat, telefonul poate:

  • rula comenzi de terminal și citi/scrie fișiere pe acel computer (unealta terminal cu backend-ul relay, în folderele aprobate ale desktopului);
  • trimite (dispatch) o sarcină întreagă către desktop — este preluată în aproximativ 30 de secunde și executată acolo, cât telefonul afișează transcriptul live cu insigna REMOTE;
  • primi predarea inversă: Continue on phone de pe desktop trimite conversația aici și trezește aplicația prin push (build-uri cu Firebase configurat).

Activezi Session sync (Settings → Advanced) pentru a vedea aceeași conversație pe fiecare dispozitiv. Dispozitivul care face treaba este executorul; celelalte sunt viewer (privesc) sau editor (trimit, răspund, anulează). Detalii de protocol: Sesiuni partajate.

Facturare

Aplicația este gratuită. Ce costă este modelul care gândește:

  • Cont codai — utilizarea este facturată după planul tău (sarcini pe lună, apoi portofel sau depășire). În aplicație, Cost · Receipt arată chitanța serverului pentru o sesiune, iar Settings îți permite un buget per sesiune, ca o sarcină să nu scape de sub control.
  • Cheia ta de furnizor — furnizorul te facturează direct; codai nu ia nimic.
  • Pașii on-device nu costă nimic.

Unde cumperi depinde de build:

BuildEcranul de facturare
APKPlanuri și alimentări de portofel (presetări 5 €, 10 €, … din catalog). Fiecare achiziție deschide pay.codai.ro într-un Chrome Custom Tab — te autentifici prin SSO auth.codai.ro, plătești cu Stripe Checkout și revii în aplicație. Manage subscription deschide portalul Stripe pe aceeași cale.
Google PlayDoar citire: planul curent și soldul, plus un link către hub.codai.ro/billing. Fără prețuri, fără checkout în aplicație.

Planurile, prețurile și ce înseamnă o „sarcină” sunt pe pagina limite și prețuri.

Confidențialitate

Rămâne pe telefon: cheile și autentificarea (preferințe criptate), conținutul ecranului pe care îl citește codai dacă pasul nu are nevoie de modelul din cloud, tot ce gestionează modelul on-device, istoricul de chat (bază de date locală), notițele de memorie și fișierele de trace per tură dacă le-ai activat pentru depanare (Download/codai-nano/, niciodată încărcate).

Părăsește telefonul: promptul tău, rezumatul ecranului și rezultatele uneltelor — către backend-ul AI configurat (gateway-ul codai implicit, sau propriul furnizor). Cu Session sync activ, transcriptul pas cu pas este oglindit către gateway, ca celelalte dispozitive să poată urmări. Build-urile cu Firebase trimit token-ul push folosit pentru a trezi telefonul la dispatch.

Niciodată: fără SDK de analytics, fără SDK de reclame, fără crash reporter. Niciun mesaj trimis, plată făcută sau setare schimbată într-o aplicație sensibilă fără un card de aprobare pe care l-ai atins.

Antrenarea pe conversațiile tale este opt-in (implicit dezactivată) — Settings → About → Training consent, sau PATCH /v1/account.

Pe această pagină