VS Code
Extensia codai pentru VS Code îți oglindește sesiunile GitHub Copilot Chat pe ceas, telefon și desktop, ca să aprobi unelte și să răspunzi la întrebări de oriunde. Plus @codai în chat.
Extensia codai (dragoscv.codai-vscode) partajează cu contul tău codai sesiunile GitHub Copilot Chat în care lucrezi. Ele apar pe ceasul Wear OS, în aplicația Android și în aplicația desktop ca orice altă sesiune partajată. Când agentul Copilot te așteaptă — „Permiți run_in_terminal?” sau o întrebare cu variante — cererea ajunge pe toate dispozitivele, iar răspunsul tău se aplică în VS Code.
Funcționează pe VS Code 1.95+ (stable și Insiders), pe Windows, macOS și Linux. Cursor, Windsurf, VSCodium și Trae rulează o parte din ea — vezi Compatibilitate. Extensia urmează limba de afișare a VS Code (engleză sau română).
Instalare
- Marketplace: caută codai (id extensie
dragoscv.codai-vscode) în panoul Extensions sau ruleazăcode --install-extension dragoscv.codai-vscode(code-insiderspentru Insiders). - VSIX: descarcă cel mai nou pachet de la linkul de descărcare din Marketplace și folosește Extensions → … → Install from VSIX.
- Open VSX: nepublicat încă. Fluxul de lansare e pregătit și publică același pachet, cu același id, imediat ce spațiul de nume Open VSX e configurat. Până atunci, folosește VSIX-ul în editoarele care citesc din Open VSX.
Alte editoare (Cursor, Windsurf, VSCodium, Trae)
Aceste editoare instalează extensii din Open VSX, așa că deocamdată codai nu apare în căutarea lor. Instalează-l manual:
- Descarcă fișierul
.vsixde la linkul din Marketplace de mai sus. Salvează-l cu extensia.vsix. - În editor, deschide Command Palette și rulează Extensions: Install from VSIX…, apoi alege fișierul. Din terminal:
cursor --install-extension codai-vscode.vsix,windsurf --install-extension codai-vscode.vsixsaucodium --install-extension codai-vscode.vsix. - Rulează codai: Sign in.
Ce e diferit în afara VS Code:
- Editorul trebuie să fie bazat pe VS Code 1.95 sau mai nou; versiunile mai vechi refuză pachetul.
- Extensia oglindește sesiunile GitHub Copilot Chat. Editoarele fără Copilot Chat nu au ce oglindi de acolo. În Cursor, extensia îți poate arăta pe dispozitive chiar conversațiile din Cursor, doar pentru citire: le poți urmări, dar nu le poți răspunde de pe alt dispozitiv.
- Continue with GitHub are nevoie de autentificarea GitHub integrată a editorului. Dacă nu merge, folosește Sign in in the browser sau o cheie API.
- Actualizările nu vin singure: instalează noul
.vsixîn același fel.
Conectare
Rulează codai: Sign in din Command Palette și alege Continue with GitHub, Sign in in the browser sau Use an API key…. Cu varianta din browser se deschide auth.codai.ro/device cu codul deja completat (e copiat și în clipboard); aprobă-l. VS Code nu vede niciodată parola — primește propria cheie codai_, păstrată în secret storage-ul VS Code și listată ca dispozitiv în hub.codai.ro → Securitate → Dispozitive.
Continue with GitHub (și codai: Sign in with GitHub) folosește contul GitHub cu care VS Code e deja conectat: fără browser, și ajungi în același cont codai ca atunci când te conectezi cu GitHub pe web. Un cont complet nou trece totuși o dată prin browser, ca să accepte Termenii.
Use an API key… acceptă o cheie creată de tine. Probleme la conectare: vezi depanarea.
Modele codai în Copilot Chat
codai: Add codai models to Copilot Chat (în interfața în română: codai: Adaugă modelele codai în Copilot Chat) pune codai în selectorul de modele din Copilot Chat. Comanda descarcă intrarea furnizorului codai de la https://ai.codai.ro/vscode/chatLanguageModels.json și o adaugă în fișierul tău de utilizator chatLanguageModels.json (sau o actualizează dacă există deja), fără să atingă ceilalți furnizori. Înainte de prima modificare, fișierul existent e copiat în chatLanguageModels.json.bak-codai.
Cheia ta nu e scrisă niciodată în acel fișier: prima dată când alegi un model codai, VS Code îți cere o singură dată cheia codai și o păstrează în keychain-ul sistemului de operare. După conectarea în VS Code sau Insiders, extensia îți oferă comanda o singură dată; o poți rula oricând din Command Palette.
Ce văd dispozitivele tale
| În Copilot Chat | Pe ceas / telefon / desktop |
|---|---|
| Titlul chat-ului (sau primul tău prompt) | Titlul sesiunii |
| Fiecare prompt trimis | O linie de utilizator |
| Fiecare apel de tool terminat | O linie de tool (numele și descrierea pe un rând) |
| Un tool care așteaptă confirmare | O cerere: Allow / Deny |
| Un set de întrebări (question carousel) | O cerere cu variantele oferite sau un răspuns liber |
| Răspunsul final al unei cereri | Linia asistentului |
| O cerere eșuată sau anulată | O linie de eroare |
Bara de stare arată codai N (sesiuni partajate) și un clopoțel cu numărul cererilor care te așteaptă. Click pe ea pentru listă, Sync now, jurnal și Sign out.
Răspunsul de pe alt dispozitiv
- Allow / Deny pe o cerere de tool confirmă sau sare peste tool în chat-ul respectiv. VS Code aplică o confirmare doar unui chat deschis într-o fereastră, așa că, cu
codai.remote.revealSessions(activ implicit), extensia deschide întâi chat-ul. - Răspunde la o întrebare cu una dintre variante, cu numărul ei sau cu text liber (dictat pe ceas). Fiecare întrebare dintr-un set e partajată și primește propriul răspuns;
(skip)lasă o întrebare pe care Copilot o tratează ca sărită. - Trimite un prompt nou în sesiune și el e trimis în acel chat.
- Stop anulează cererea în curs.
Răspunsurile ajung în VS Code în câteva secunde (codai.sessions.pollSeconds).
Cererile noi pot ajunge pe ceas în unul-două minute. VS Code scrie sesiunile de chat pe disc după propriul program, iar extensia le citește de acolo. În sens invers, răspunsurile sunt rapide.
Prompturi în așteptare
Vederea Pending prompts din bara de activități listează prompturile salvate pentru mai târziu de pe oricare dintre dispozitivele tale și se actualizează imediat când unul se schimbă în altă parte.
- Open in chat, Copy, Snooze, Mark done, Dismiss, Delete, plus Save selection as pending prompt pentru unele noi.
- Detectare automată. Lipește un prompt în așteptare în Copilot Chat, în orice fereastră VS Code, și e marcat sent, apoi answered când răspunsul se termină. Nu trebuie să apeși nimic.
- Verify prompt / Verify all prompts îl întreabă pe codai dacă chatul chiar a făcut treaba, pe baza chatului și a diff-ului din repository de când a fost trimis promptul. Primești un raport scurt (ce s-a schimbat, ce lipsește încă); o treabă completă e marcată verified.
@codai în chat
Scrie @codai în Copilot Chat ca să vorbești direct cu modelul codai (în streaming, facturat pe contul tău codai).
@codai /sessions— sesiunile tale partajate de pe toate dispozitivele și ce te așteaptă.@codai /asks— doar întrebările și aprobările deschise.
Căutare web și cercetare aprofundată în agent mode
Începând cu versiunea 0.7.0, extensia adaugă trei unelte în Copilot agent mode, disponibile pentru orice model (inclusiv endpoint-uri custom și modele BYOK care nu au căutare web proprie):
codai_web_search(#codaiWebSearch) — căutare web verificată: fiecare rezultat a fost descărcat de codai, iar fragmentul a fost găsit în pagină, citat ca[S1]..[Sn]. Agentul poate restrânge site-urile (include_domains/exclude_domains), poate cere pagini recente (freshnessday/week/month/year,published_after/published_before), poate merge îndeeppentru întrebări grele sau poate primi un extras verificat mai lung per rezultat (content_chars). Limba și piața se deduc din interogare, dacă agentul nu seteazălang/country.codai_web_fetch(#codaiWebFetch) — citește un URL public ca markdown curat (până la 40.000 de caractere, implicit 8.000);focusîntoarce doar paragrafele relevante. Textul paginii este marcat drept conținut nesigur.codai_deep_research(#codaiDeepResearch) — planifică mai multe căutări, citește cele mai bune pagini și întoarce un raport în care fiecare afirmație își citează sursa. Dacă raportul nu e gata în fereastra de așteptare, unealta întoarce un id de job, iar agentul o apelează din nou cujob_id.
Sunt aceleași unelte, cu aceleași scheme și același rezultat, ca pe desktop, telefon, CLI-ul headless și MCP-ul găzduit (un singur contract). Folosesc cheia ta codai (autentifică-te întâi) și endpoint-urile API POST /v1/tools/search, POST /v1/tools/fetch și POST /v1/research. Un refuz al uneia dintre regulile tale, un argument greșit sau o limită de rată îi sunt arătate modelului ca o linie ERROR și nu sunt niciodată reîncercate pe tăcute. Căutările și fetch-urile sunt contorizate (prețuri): primele 1.000 de apeluri pe lună sunt gratuite, iar apelurile sunt gratuite când codai este modelul de chat. Le activezi sau dezactivezi din selectorul Tools al chat-ului, sau le referi într-un prompt cu #.
Sesiuni de pe alte dispozitive (experimental, Insiders)
Cu codai.experimental.chatSessionsProvider activ, VS Code Insiders listează în propria vedere Sessions sesiunile care rulează pe celelalte dispozitive codai. Deschiderea uneia îi arată istoricul; un prompt scris acolo e trimis dispozitivului care o rulează. Folosește un API propus al VS Code, deci pornește Insiders cu --enable-proposed-api dragoscv.codai-vscode (sau adaugă "enable-proposed-api": ["dragoscv.codai-vscode"] în argv.json prin Preferences: Configure Runtime Arguments). Fără asta, setarea nu face nimic.
Compatibilitate
Extensia are nevoie de VS Code 1.95 sau mai nou. Unele funcții folosesc API-uri pe care le are doar VS Code; în alte editoare (și în versiunile VS Code fără acele API-uri) extensia arată o singură dată un mesaj cu ce nu e disponibil, iar restul funcționează în continuare.
| Editor | Instalezi din | Funcționează | Nu funcționează |
|---|---|---|---|
| VS Code / VS Code Insiders | Visual Studio Marketplace | Tot | — |
| Cursor | Open VSX (dragoscv.codai-vscode) după ce va fi publicată acolo; până atunci VSIX-ul din release-ul GitHub | Prompturi în așteptare, transcrieri, conectare, bara de stare | Oglindirea sesiunilor Copilot, @codai în chat, uneltele pentru agent |
| Windsurf | La fel ca la Cursor | Prompturi în așteptare, transcrieri, conectare, bara de stare | Oglindirea sesiunilor Copilot, @codai în chat, uneltele pentru agent |
| VSCodium | La fel ca la Cursor | Prompturi în așteptare, transcrieri, conectare, bara de stare | Oglindirea sesiunilor Copilot, @codai în chat, uneltele pentru agent |
| Trae | La fel ca la Cursor | Prompturi în așteptare, transcrieri, conectare, bara de stare | Oglindirea sesiunilor Copilot, @codai în chat, uneltele pentru agent |
De ce:
- Oglindirea sesiunilor Copilot citește fișierele de chat pe care GitHub Copilot Chat le păstrează în VS Code, deci merge doar în VS Code Stable și Insiders.
@codaiîn chat are nevoie de API-ul de chat participant (vscode.chat.createChatParticipant).- Uneltele pentru agent (
#codaiWebSearch, uneltele Studio, …) au nevoie devscode.lm.registerTool.
Un editor derivat care oferă totuși API-ul de chat sau de unelte primește acele funcții; mesajul listează doar ce lipsește cu adevărat. codai: Add codai models to Copilot Chat e oferită doar în VS Code și Insiders.
Setări
| Setare | Implicit | Ce face |
|---|---|---|
codai.sessions.mirror | true | Partajează sesiunile Copilot Chat ale acestei ferestre. Setează-l per workspace ca să păstrezi un proiect privat. |
codai.sessions.activeMinutes | 120 | Doar sesiunile modificate în ultimele N minute sunt partajate. |
codai.sessions.mirrorAllWorkspaces | true | O singură fereastră VS Code pe calculator partajează și chaturile tuturor celorlalte workspace-uri. |
codai.sessions.terminalAgents | true | Partajează, doar pentru citire, și sesiunile Copilot CLI, Claude Code și Codex CLI pornite într-un terminal, plus chaturile Cursor. Are nevoie de codai.sessions.mirrorAllWorkspaces. |
codai.sessions.maxSessions | 40 | Numărul maxim de sesiuni partajate per sursă la fiecare verificare. |
codai.sessions.stubLimit | 200 | Chaturile mai vechi apar pe telefon și în hub doar cu titlul, până la acest număr; când deschizi unul, se încarcă integral. 0 = doar chaturile active. |
codai.sessions.askTimeoutMinutes | 0 | O întrebare încă deschisă după N minute primește varianta recomandată. 0 = te așteaptă pe tine. |
codai.sessions.backfillRequests | 3 | Câte cereri anterioare apar când o sesiune e partajată prima dată. |
codai.sessions.pollSeconds | 5 | Cât de des verifică extensia modificările și răspunsurile de la distanță. |
codai.remote.revealSessions | true | Deschide chat-ul când sosește o aprobare de pe alt dispozitiv. |
codai.experimental.chatSessionsProvider | false | Sesiuni de pe alte dispozitive în vederea Sessions (Insiders + API propus). |
codai.prompts.autoCapture | true | Salvează prompturile de predare (un bloc text într-un răspuns care pomenește un chat nou) în Pending prompts. |
codai.prompts.autoDetect | true | Marchează un prompt sent / answered când îl folosești în Copilot Chat. |
codai.prompts.scanAllWorkspaces | true | Caută în chaturile tuturor ferestrelor VS Code de pe acest calculator, nu doar în aceasta. |
codai.gatewayUrl / codai.authUrl | https://ai.codai.ro / https://auth.codai.ro | Le schimbi doar pentru un codai găzduit de tine. |
codai.telemetry | false | Trimite rapoarte de eroare (opțional; doar cât timp și telemetria VS Code e pornită). |
codai.osGate.enabled | true | Verifică protecțiile minime de securitate ale calculatorului și te avertizează în bara de stare când sunt oprite. Rulează local; nu se trimite nimic. |
Confidențialitate
Extensia doar citește fișierele de sesiune pe care VS Code le păstrează deja (workspaceStorage/<id>/chatSessions/, iar pentru chaturile Copilot CLI din versiunile Insiders mai noi globalStorage/agent-host.db plus ~/.copilot/session-state/<id>/events.jsonl, citite dintr-o copie privată); nu le modifică niciodată. Trimite către ai.codai.ro: titlul sesiunii, prompturile tale fără contextul atașat, numele uneltelor și descrierea lor pe un rând, textul răspunsului final și cererile. Nu trimite conținutul fișierelor, atașamente, rezultatele uneltelor sau editările. Fiecare sesiune VS Code corespunde unei sesiuni codai cu cheia vscode:<mașină>:<id sesiune>; o ștergi din hub sau din orice aplicație ca pe oricare altă sesiune. Vezi politica de confidențialitate.
Titlurile și textul asistentului care vin de pe celelalte dispozitive sunt escapate înainte ca VS Code să le afișeze, ca să nu poată injecta linkuri sau comenzi, iar imaginile externe din răspunsurile oglindite sunt eliminate. Rapoartele de eroare sunt opționale (codai.telemetry); vezi rapoartele de eroare.
Probleme frecvente
| Simptom | Soluție |
|---|---|
| Bara de stare arată codai cu un cerc tăiat | Nu ești conectat — dă click pe ea. |
| O sesiune nu apare pe ceas | Trebuie să fi fost modificată în ultimele codai.sessions.activeMinutes, iar VS Code trebuie s-o fi salvat (mai trimite un mesaj sau așteaptă un minut). codai: Sync sessions now forțează o citire. |
| O aprobare de pe ceas nu a făcut nimic | Chat-ul era închis și codai.remote.revealSessions e oprit — deschide chat-ul sau activează setarea. |
| Alt dispozitiv rulează aceeași sesiune | O sesiune e executată de un singur dispozitiv (lease-ul). Extensia reîncearcă în fiecare minut; vezi jurnalul (codai: Shared sessions… → Show log). |
Ultima actualizare:
Controlează un iPhone de la distanță
Vezi ecranul unui iPhone în timp real și controlează-l din hub, din aplicația Android sau din orice agent codai, prin bridge-ul codai pentru iPhone — fără jailbreak, doar în același cont.
CLI-ul codaid
Instalezi clientul în linie de comandă codaid pe Linux sau Windows, te autentifici, îl ții la zi și afli unde găsești detaliile despre medii.