Web (app.codai.ro)
Interfața desktop într-un tab de browser — te autentifici cu contul codai, conversezi de oriunde și rulezi agenți pe un desktop conectat cu același cont.
app.codai.ro este aceeași aplicație ca codai desktop, construită pentru browser. Același chat, aceleași sesiuni, aceleași setări — dar un browser nu are sistem de fișiere, shell sau terminal, așa că orice are nevoie de ele rulează pe un host: unul dintre desktopurile tale cu codai desktop deschis. Până când un host este online, aplicația web este doar chat.
Ce funcționează în browser
| Funcționează | Are nevoie de un host desktop | Indisponibil pe web |
|---|---|---|
Chat cu codai, selector de model, slider de efort | Unelte de fișiere (citire, editare, revizuire de diff) | Terminal integrat (PTY) |
| Sesiuni partajate: listă, transcript live, send / answer / cancel | Comenzi shell | Tab de browser încorporat |
| Setări, keybindings, skin-uri | Sarcini trimise (dispatch) către un desktop | Controlul computerului (aplicații Windows) |
| Dispozitive, card de cost, browser de memorie | Modele locale (Ollama, LM Studio) | |
| Autentificare și gestionarea cheii | Actualizator automat (site-ul este mereu curent) |
Autentificare
Before you start
Accepți Termenii și Politica de confidențialitate. Consimțământul este stocat în acest browser; ștergerea datelor site-ului readuce ecranul.
Continue in browser
Pagina redirecționează în același tab către auth.codai.ro — Google sau e-mail, cu PKCE. Când revii la app.codai.ro/callback, contul a emis o cheie codai_ pentru acest browser, etichetată OAuth · codai app în hub.
Preferi o cheie pe care o ai deja? I have an API key acceptă un codai_… din hub.codai.ro → Keys.
Unde stă cheia
În localStorage-ul acestui browser, limitat la app.codai.ro, împreună cu un id de dispozitiv stabil pentru acest profil de browser. Este trimisă doar ca header Authorization către URL-ul de gateway din Settings (implicit https://ai.codai.ro). Nimic altceva de pe pagină nu o citește.
Revocarea cheii browserului
Fiecare profil de browser care s-a autentificat apare ca un dispozitiv. Îl revoci din hub.codai.ro → Security → Devices, sau din orice client autentificat, la Devices. Settings → Sign out în aplicația web îl revocă și el. Dacă autentificarea s-a încheiat la IdP dar gateway-ul nu a răspuns, aplicația nu salvează nimic și îți spune — cheia nefolosită există totuși în hub și poate fi revocată de acolo.
Conectezi un desktop — „Run on”
Chat only in the browser — vezi acest card până când un host este online. Instalează aplicația desktop pentru a rula agenți local, sau conectează un host — browserul poate conduce un desktop autentificat cu același cont.
- Pe un computer, instalezi codai desktop și te autentifici cu același cont.
- Settings → Executor → Serve as a remote host for my phone — bara de stare arată Relay: online.
- Înapoi în browser, composer-ul primește un selector Run on care listează desktopurile tale online (hostname, OS, ultima dată văzut). Alegi unul.
De acum, uneltele de fișiere și shell din acest chat se execută pe acel desktop, în folderele lui aprobate, cu cardurile lui de aprobare. Browserul afișează fiecare pas. Dacă host-ul iese offline în mijlocul sarcinii, apelul de unealtă eșuează cu No host connected — install the desktop app or pick a host.
Un host trebuie să fi fost văzut în ultimele 45 de secunde pentru a fi listat. Host-urile sunt per cont: desktopurile altcuiva nu apar niciodată, iar ale tale nu apar nimănui altcuiva. Releul din spate este documentat pe pagina releu de host-uri.
Limitări
- Fără execuție locală. Fără host, apelurile de unealtă care ating fișiere sau un shell sunt refuzate; modelului i se spune asta și răspunde în chat.
- O cheie per profil de browser. Ferestrele incognito și alte browsere sunt dispozitive separate.
- Sesiunile urmează contul, setările urmează browserul. Skin-urile, keybinding-urile și URL-ul de gateway stau în
localStorage; sesiunile și memoria stau pe gateway. - Gateway-urile auto-găzduite trebuie să permită originea
https://app.codai.ropentru/v1/*(CORS) și să înregistrezehttps://app.codai.ro/callbackca redirect URI pe IdP.
Depanare
Contul tău a emis o cheie, dar URL-ul de gateway din Settings nu a răspuns, așa că nu s-a salvat nimic. Verifici Settings → Gateway URL (implicit https://ai.codai.ro), apoi Try again — aplicația reîncearcă cu aceeași cheie în loc să emită alta. Cheia nefolosită poate fi revocată din hub → Security → Devices.
Id-ul de dispozitiv stocat în acest profil de browser a fost înregistrat prima dată sub un alt cont codai — de obicei pentru că două conturi s-au autentificat din același profil de browser (două tab-uri împart localStorage). Gateway-ul refuză să re-lege un id de dispozitiv la un al doilea cont. Sign out nu resetează id-ul de dispozitiv. Soluție: folosești un profil de browser separat per cont, sau ștergi datele site-ului pentru app.codai.ro (asta elimină cheia stocată, setările și id-ul de dispozitiv — vechiul dispozitiv rămâne listat în hub până îl revoci).
Pe desktop verifici că Settings → Executor → Serve as a remote host este activ și că bara de stare spune Relay: online, nu connecting sau retrying. Ambele trebuie autentificate cu același cont. Un host fără heartbeat 45 s dispare; reîncarci selectorul.
Consimțământul este stocat în datele de site ale acestui browser pentru app.codai.ro. Extensiile care șterg storage-ul la închidere, sau protecția strictă anti-tracking, îl șterg la fiecare sesiune. Permiți datele de site pentru app.codai.ro.
Starea PKCE stă în sessionStorage și este consumată la prima revenire. Reîncărcarea paginii de callback o reia și eșuează. Pornești din nou de la app.codai.ro; dacă un proxy corporativ elimină cookie-urile pentru auth.codai.ro, te autentifici din altă rețea sau lipești o cheie.
Desktop
Instalezi codai desktop, te autentifici, alegi un skin și un nivel de autonomie, folosești controlul computerului, servești ca host pentru telefon și aplicația web, actualizezi și dezinstalezi.
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.