track
OpenCode este construit pentru a duce o sarcină la bun sfârșit. Este un agent open-source care conectează un model AI la depozitul tău, terminal și instrumentele de dezvoltare. Cere-i să repare un bug și poate găsi fișierele relevante, schița un plan, edita codul, rula teste și răspunde la erori. Autocomplete, de unul singur, nu poate face asta.
Acest rol mai larg a atras atenția. La momentul scrierii, depozitul activ OpenCode avea în jur de 189.000 de stele pe GitHub. N-aș trata stelele ca dovadă a calității codului, dar arată cât interes a strâns proiectul.
Realitatea e mai puțin ordonată. OpenCode îți oferă o alegere de modele, apoi te roagă să gestionezi acea alegere. O schimbare de politică a unui furnizor în ianuarie 2026 a arătat cât de repede se pot schimba opțiunile. Voi acoperi asta alături de modul în care funcționează OpenCode și unde se potrivește.
O scurtă notă despre denumire înainte să continuăm: dacă cauți OpenCode, e posibil să găsești depozitul arhivat, bazat pe Go, opencode-ai/opencode. Acel proiect a încetat să mai fie întreținut în septembrie 2025. Ne vom concentra pe proiectul activ de la github.com/anomalyco/opencode, construit de echipa din spatele framework-ului Serverless Stack (SST).
Ce este OpenCode?
OpenCode este un agent AI de programare open-source, lansat sub licența MIT. Este agnostic față de model, ceea ce înseamnă că nu e limitat la un singur furnizor de modele. Utilizatorii pot citi sursa și o pot modifica. De asemenea, pot auto-găzdui instrumentul. Software-ul este gratuit. Facturarea pentru model este separată, așa cum voi detalia la funcții.

OpenCode nu este un model lingvistic de mari dimensiuni (LLM). Modelul ales citește prompturile și produce răspunsuri. OpenCode oferă instrumentele pentru fișiere, acces shell, istoricul sesiunii, regulile de permisiuni și interfața din jurul acelui model. Consider această distincție utilă deoarece schimbarea modelului nu necesită schimbarea restului instrumentului.
Este construit de Anomaly, fostul SST, și rulează în principal pe TypeScript și Bun.

Comparație între depozitele OpenCode arhivat și curent. Imagine de autor.
OpenCode nu este legat de o singură familie de modele. Prin registrul Models.dev, se conectează la peste 75 de furnizori, inclusiv Anthropic, OpenAI, Google, DeepSeek, Groq și modele locale prin Ollama. Unele conturi de abonament existente pot fi conectate, așa cum voi acoperi la secțiunea despre funcții.

Sesiune de terminal OpenCode care arată modificări de fișiere. Imagine de autor.
Deși OpenCode a început în terminal, acum este livrat ca interfață de terminal (TUI), o aplicație desktop beta pentru macOS, Windows și Linux și extensii pentru editori precum VS Code. Ultima versiune stabilă la momentul scrierii este v1.18.8.
De ce a fost creat OpenCode
După cum am menționat, OpenCode acceptă modele de la mulți furnizori. A fost construit astfel pentru că calitatea și prețurile modelelor se schimbă, iar un instrument legat de un singur furnizor oferă utilizatorilor mai puține opțiuni.
Documentația afirmă că OpenCode nu este cuplat la niciun furnizor. Registrul Models.dev menționat mai sus furnizează detaliile și prețurile modelelor pe care le folosește OpenCode.
Această alegere afectează mai mult decât facturarea. Modelele diferă ca limite de context, formate pentru apeluri de tool-uri și tipuri de input. OpenCode folosește o singură interfață pentru aceste diferențe. Un dezvoltator poate schimba modelul selectat în același proiect fără a muta sesiunea într-un alt instrument de programare.
Echipa preferă, de asemenea, instrumente orientate pe terminal pe care utilizatorii le pot inspecta. Instrucțiunile proiectului trăiesc într-un fișier simplu numit AGENTS.md. Voi explica mai târziu cum creează și folosește OpenCode acest fișier.
Proiectul oficial notează trei alegeri de design. Prima este suportul pentru furnizori, acoperit mai sus. A doua păstrează controalele principale în terminal. A treia separă clientul de server. Acea separare urmează.
În ianuarie 2026, Anthropic a blocat instrumentele terțe să folosească abonamentele Claude pentru consumatori prin canale neoficiale. OpenCode a adăugat apoi alte opțiuni de abonament și a folosit propriul gateway. Utilizatorii se puteau conecta în continuare prin alți furnizori.
Acest episod explică de ce alegerea furnizorului primește atâta atenție în OpenCode. Ca să vedem ce fac utilizatorii cu această alegere, următorul pas este să privim o sesiune.
Cum funcționează OpenCode
OpenCode rulează ca un client și un server local. TUI-ul, aplicația desktop, extensiile pentru IDE și SDK-ul comunică toate cu acel server prin HTTP. Același server acceptă atașarea de la distanță cu opencode attach <url> și utilizarea headless cu opencode serve.
Într-o sesiune, agentul citește fișiere relevante, poate schița un plan, editează cod și rulează comenzi când e nevoie. Integrarea sa cu Language Server Protocol (LSP) trimite apoi diagnosticările de la compilator și linter înapoi la model, ca acesta să poată răspunde la erori de tip și de sintaxă.
De exemplu, o sarcină poate începe cu glob sau grep pentru a localiza fișiere. Agentul poate folosi read ca să le inspecteze și edit pentru a schimba linii selectate. Apoi poate folosi bash pentru a rula o comandă de test sau build. Outputul devine parte din următoarea cerere către model.
Cel mai ușor înțeleg separarea Build și Plan ca pe un comutator de permisiuni. Build este implicit și poate citi, scrie și rula comenzi. Plan cere acordul înainte să editeze fișiere sau să ruleze comenzi bash. Apăsarea tastei Tab comută între ele.
Verificările de permisiuni se aplică atunci când este apelat un tool. Un proiect poate permite un tool, îl poate bloca sau poate cere acordul utilizatorului de fiecare dată. Regulile pot varia și după tiparul comenzii. O echipă ar putea permite testele de rutină, dar să ceară confirmare înaintea altor comenzi shell.
Sesiunile sunt stocate local pe disc, în directorul de date OpenCode. OpenCode compactează automat conversațiile lungi. Comenzile /undo și /redo navighează prin snapshot-uri de fișiere bazate pe Git.
Funcții cheie ale OpenCode
OpenCode își grupează funcțiile principale în acces la modele, context de proiect, execuție de sarcini și utilizare locală. Secțiunile de mai jos explică ce schimbă fiecare grup într-o sesiune de programare.
Suport multi-model
După cum am menționat, OpenCode își primește lista de furnizori prin Models.dev. În practică, utilizatorii pot conecta un serviciu găzduit, o platformă cloud sau un endpoint compatibil cu OpenAI. GitHub Copilot și logările ChatGPT Plus/Pro oferă alternative la gestionarea unei chei API separate.
Alegerea furnizorului nu înseamnă că fiecare model se comportă la fel. Utilizarea uneltelor, limitele de context, timpul de răspuns și prețul depind în continuare de modelul și furnizorul selectat. Apelurile către modele găzduite trimit, de asemenea, contextul de cod necesar către acel furnizor, sub propriile reguli de date.
OpenCode oferă și două moduri opționale de a accesa modele. OpenCode Zen este un gateway pay-as-you-go cu o listă selectată de modele. OpenCode Go este un abonament care costă 5 USD în prima lună, apoi 10 USD pe lună, pentru modele cu greutăți deschise selectate. Utilizatorii pot în continuare să furnizeze propriile chei API. Prețurile pot varia.
Asta e partea enervantă: un instrument gratuit poate totuși să genereze o factură de la furnizor.
Lucrul cu contextul depozitului
Rulează /init și OpenCode generează un AGENTS.md care rezumă structura și convențiile proiectului. Echipele pot comite acel fișier pentru ca sesiunile să înceapă cu instrucțiuni comune.
Fișierul poate include comenzi de test, nume de directoare, reguli de denumire și note despre proiect. Un AGENTS.md global poate conține instrucțiuni folosite în mai multe proiecte. Fișierul proiectului reține regulile pentru un singur depozit.
Verificările LSP descrise mai devreme rulează după editări. Contextul depozitului include și referințe la fișiere: simbolul @ aduce un fișier selectat într-un prompt.
Rularea sarcinilor de programare
Dincolo de agenții Build și Plan descriși mai devreme, OpenCode include subagenți pentru căutări în mai mulți pași, scanare a codului și documentație externă. Agenții personalizați pot avea propriul model, propriul prompt și propriile permisiuni pentru tool-uri.
Fiecare subagent lucrează într-o sesiune copil, astfel încât mesajele sale nu umplu sesiunea principală în același mod. Un agent personalizat poate fi limitat la citirea fișierelor, alocat unui model mai ieftin sau instruit pentru un singur tip de sarcină.
Serverele Model Context Protocol (MCP) adaugă servicii externe. Ele sunt definite în opencode.json, iar verificările de permisiuni acoperite mai devreme se aplică și uneltelor pe care le adaugă.
Dezvoltare local-first (și limitele ei)
Termenul „local-first” are nevoie de o precizare. Nu l-aș citi ca pe o promisiune că nimic nu părăsește vreodată mașina. După cum s-a menționat la secțiunea despre furnizori, OpenCode se poate conecta la Ollama. Acea configurație păstrează codul și prompturile pe infrastructura locală. Modelele găzduite, /share și OpenCode Zen trimit date în afara mașinii locale.
Utilizarea locală depinde totuși de model. Modelele mici pot returna apeluri de tool invalide sau pot rata legături între fișiere. Un server local are, de asemenea, nevoie de suficientă memorie pentru modelul selectat și de destul spațiu de context pentru fișierele trimise cu fiecare cerere.
Sistemul de permisiuni este o siguranță de flux de lucru, nu un sandbox de securitate. Modul server în rețea ar trebui să folosească OPENCODE_SERVER_PASSWORD și să fie legat de localhost. O problemă anterioară de expunere neautentificată a fost corectată, dar modul server tot nu ar trebui expus public fără autentificare.
Arhitectura OpenCode
După cum am menționat, OpenCode își separă clienții de serverul local. Acea separare afectează configurarea și starea stocată. API-ul adaugă un alt mod de a folosi serverul.
Dacă plănuiești să folosești doar TUI-ul, poți să sari peste detaliile API-ului. Paragraful despre configurare de la final este partea pe care o vei folosi.
Serverul TypeScript și Bun vorbește cu furnizorii de modele și rulează unelte. El gestionează și starea. Specificația sa OpenAPI 3.1 generează pachetul oficial @opencode-ai/sdk. Scripturile și clienții personalizați pot folosi acest API documentat.
API-ul include sesiuni, mesaje, fișiere, furnizori, unelte, agenți și configurare. Acesta este același server folosit de clienții proprii ai OpenCode. Un script poate crea o sesiune sau trimite un mesaj fără să încerce să controleze TUI-ul.

Clienții OpenCode conectați la un singur server. Imagine de autor.
Interfețele enumerate mai devreme acționează ca clienți: TUI, aplicația desktop, extensia IDE și opencode web. Fiecare vorbește cu același proces de server. Un dispozitiv separat se poate atașa la o sesiune existentă prin acel proces.
Rularea opencode serve pornește serverul fără TUI-ul normal. Rularea opencode web adaugă un client în browser. Ambele comenzi au nevoie de autentificare dacă serverul poate fi accesat de pe alt dispozitiv.
Configurația trăiește în opencode.json sau opencode.jsonc la nivelul proiectului, cu un fallback global la ~/.config/opencode/opencode.json. Controlează modelele, permisiunile, serverele MCP și agenții personalizați. După cum s-a acoperit în secțiunea de flux de lucru, istoricul sesiunilor și jurnalele uneltelor rămân în fișiere locale, cu excepția cazului în care utilizatorul le partajează.
Fluxuri de lucru comune în OpenCode
Aceleași părți ale OpenCode pot fi folosite pentru câteva sarcini software obișnuite. Exemplele de mai jos arată unde contează în continuare revizia umană în fiecare caz.
Construirea de funcționalități noi
Folosind procesul Plan-to-Build descris mai devreme, un dezvoltator poate cere o funcționalitate și poate revizui pașii propuși înainte de orice editare. Apăsarea tastei Tab mută apoi sarcina în modul Build pentru modificări de cod și teste.
Planul poate fi revizuit înainte de orice schimbare în fișiere. Aș folosi acea revizie pentru a corecta scopul, a numi fișiere care nu trebuie schimbate sau a adăuga cerințe de testare.
Refactorizarea codului existent
Același proces Plan-to-Build funcționează pentru refactorizare. Modul Plan poate identifica dependențe și locuri de apel înainte ca modul Build să aplice editările. Dacă rezultatul este greșit, /undo restabilește snapshot-ul anterior. Utilizatorul tot trebuie să revizuiască diff-ul, pentru că teste trecute nu confirmă că fiecare interfață publică a rămas neschimbată.
Depanarea aplicațiilor
Pentru depanare, OpenCode poate combina un stack trace cu informații de tip din language server. Poate propune o schimbare, repeta pașii care au cauzat eroarea și verifica rezultatul. Fără pași clari de reproducere, e posibil să confirme doar că proiectul se build-uiește sau că testele existente trec.
Scrierea testelor
După cum s-a menționat, modul Build poate edita fișiere și rula comenzi. Pentru scrierea testelor, asta înseamnă că poate crea un test, citi rezultatul și face o altă schimbare. O suită completă de teste îi oferă mai mult feedback, dar durează mai mult.
Calitatea testelor are totuși nevoie de revizie umană. Un test generat poate repeta implementarea în loc să verifice comportamentul de care depind utilizatorii.
Înțelegerea codurilor mari
Secțiunea despre depozit a explicat cum /init creează notele proiectului. După acel pas, o întrebare precum „Cum funcționează autentificarea aici?” poate ghida căutarea. Subagentul @general poate căuta în mai multe părți ale depozitului.
Întrebările specifice produc de obicei rezultate mai clare decât cererile de a explica întregul depozit. Referințele la fișiere cu @ pot restrânge și mai mult căutarea.
OpenCode vs. alți agenți AI de programare
Aceste instrumente diferă prin licență, suport de modele, interfață și facturare. Le compar pe aceste puncte, în loc să tratez unul ca alegere implicită.
OpenCode vs. Claude Code
Avem un articol separat OpenCode versus Claude Code cu mai multe detalii. Claude Code este proprietar și folosește modelul și sistemul de conturi al Anthropic. OpenCode folosește licența MIT și cere utilizatorului să selecteze un furnizor. De asemenea, oferă acces la codul sursă și la configurare. După cum s-a menționat la istoric, abonamentele Claude pentru consumatori nu mai funcționează prin OpenCode, deci folosirea Claude necesită o cheie API Anthropic cu tarifare la consum.
Ambele instrumente pot citi fișiere, face schimbări, rula comenzi și folosi servere MCP. Accesul la model este principala diferență: Claude Code rămâne în ecosistemul Anthropic descris mai sus, în timp ce OpenCode poate conecta alți furnizori sau un endpoint local.
OpenCode vs. Cursor
Cursor este un IDE bazat pe VS Code care oferă și agenți CLI și cloud. Fluxul său principal păstrează sugestiile, modificările de fișiere și acțiunile agentului în interiorul editorului. OpenCode folosește interfețele de terminal, desktop și editor enumerate mai devreme. Cursor folosește planuri de abonament plătite. Software-ul OpenCode este gratuit, dar utilizatorii pot plăti unui furnizor de modele pentru tokeni. Principalele diferențe sunt interfața de lucru, alegerea modelului și metoda de facturare.
Cursor include și completare inline în timp ce tastezi. OpenCode se concentrează pe sarcini date unui agent și nu înlocuiește acel tip de completare. Unii dezvoltatori pot folosi ambele tipuri de instrumente pentru munci diferite.
OpenCode vs. Cline
Cline are ca proiect de bază un agent open-source, BYOK, cu interfețe pentru VS Code și CLI. Are și un client JetBrains, deși acel client nu este open-source la momentul scrierii. Atât Cline, cât și OpenCode acceptă MCP și permit setarea regulilor de aprobare. Cline plasează controalele editorului într-o bară laterală. OpenCode folosește sesiuni de terminal care pot rula separat de un editor. Alegerea depinde în principal de locul în care un dezvoltator vrea să revizuiască și să aprobe schimbările.
Cline folosește licența Apache 2.0. OpenCode folosește licența MIT menționată mai devreme. Ambele permit revizia sursei și modificări, dar interfețele și fișierele de proiect diferă.
Aider și Codex CLI sunt, de asemenea, agenți de programare pe bază de terminal. OpenCode acoperă utilizarea în terminal, desktop și IDE în același proiect și acceptă modele de la mai mulți furnizori.
Instalare și primele pași cu OpenCode
Scriptul oficial de instalare funcționează pe majoritatea sistemelor de tip Unix. Oferă un mod de a instala instrumentul în linie de comandă:
Comanda descarcă binarul OpenCode și îl adaugă în mediul utilizatorului. Un manager de pachete poate fi mai potrivit când actualizările sunt gestionate împreună cu restul sistemului.
curl -fsSL https://opencode.ai/install | bash
Opțiunile de manager de pachete includ npm i -g opencode-ai@latest, brew install anomalyco/tap/opencode pe macOS și Linux, și scoop install opencode sau choco install opencode pe Windows. Este disponibilă o aplicație desktop pentru macOS, Windows și Linux. Pe Windows, documentația OpenCode recomandă WSL deoarece unele funcții ale sistemului de fișiere și shell funcționează mai bine acolo.
Instalarea nu include acces la model. Prima sesiune are totuși nevoie de unul dintre modurile de acces acoperite în secțiunea multi-model.
După instalare, fluxul de primă rulare este scurt. Acoperă conectarea furnizorului și configurarea inițială a proiectului:
- Rulează
opencodeîn interiorul directorului proiectului pentru a porni TUI-ul. - Rulează
/connectpentru a adăuga un furnizor de model, fie că este o cheie API directă, un login Copilot sau ChatGPT, sau o conexiune OpenCode Zen ori Go. - Rulează
/initpentru a crea fișierulAGENTS.mddescris mai devreme, apoi comite-l dacă echipa ar trebui să împărtășească acele instrucțiuni. - Folosește
Tabpentru a comuta între modurile Plan și Build descrise mai sus.
Acești pași acoperă configurarea inițială. Documentația OpenCode conține toate opțiunile de furnizor și configurare.
Cine ar trebui să folosească OpenCode?
Dacă OpenCode ți se potrivește depinde de interfața preferată, configurarea modelului și nivelul de control. Pe baza funcțiilor acoperite mai sus, s-ar potrivi următorilor utilizatori și echipe:
Se potrivește:
- Dezvoltatorilor care nu vor să fie blocați într-un singur furnizor de modele și vor să comute în funcție de cost sau capabilități
- Echipelor din medii reglementate sau sensibile la confidențialitate care au nevoie ca codul să rămână pe infrastructură locală
- Dezvoltatorilor orientați pe terminal, confortabili cu fluxuri CLI și fișiere de configurare
- Contribuitorilor open-source care vor să inspecteze, să facă fork sau să extindă chiar instrumentul
- Dezvoltatorilor care preferă facturarea pe tokeni în locul unui abonament fix pentru software
Nu se potrivește:
- Persoanelor care vor un produs gestionat, cu setare minimă sau inexistentă
- Dezvoltatorilor care își doresc în principal autocomplete inline, nu un agent autonom
- Persoanelor care plănuiesc să folosească doar Claude și preferă abonamentele în locul facturării la consum prin API
- Persoanelor care nu vor deloc să atingă terminalul, deși aplicația desktop mai reduce puțin acest decalaj
Acestea sunt diferențe de flux de lucru, nu măsuri ale calității codului. Mai mult control asupra modelelor și permisiunilor înseamnă și mai multă configurare.
Viitorul OpenCode
Aproape că am tăiat această secțiune pentru că foile de parcurs îmbătrânesc repede. Schimbările livrate arată totuși încotro a mers munca echipei.
OpenCode a lansat peste 800 de versiuni în primul său an. Versiunile recente au adăugat tab-uri pe desktop și agenți de fundal experimentali. Acest număr de versiuni arată activitate, dar nu l-aș trata ca pe o promisiune de stabilitate sau de funcționalități viitoare.
Opțiunile Zen și Go discutate mai devreme au adăugat metode de plată alături de BYOK. Suportul MCP și subagenții rămân, de asemenea, părți active ale proiectului. Aceleași zone se schimbă și în alte instrumente de programare.
Nu există o foaie de parcurs publică ce confirmă următoarea funcție sau data lansării ei. Afirmațiile despre lansări viitoare rămân incerte.
Concluzie
Separarea agent—model din introducere este ideea pe care aș păstra-o. Listele de furnizori se schimbă, prețurile se mișcă, regulile de acces se modifică și abonamentele dispar; OpenCode poate rămâne pe loc în timp ce modelul selectat se schimbă. Acea separare vine cu muncă, deoarece cineva tot trebuie să gestioneze configurarea, permisiunile și facturarea.
Părerea mea e simplă: alege în funcție de cât control vrei să gestionezi. Nicio opțiune nu se potrivește tuturor dezvoltatorilor sau echipelor.
Resursele noastre conexe includ tutorialul Claude Code și cursul AI-Assisted Coding for Developers.
Întrebări frecvente
OpenCode este chiar gratuit de folosit?
După cum s-a menționat, software-ul sub licență MIT este gratuit. Costurile vin din calea de acces la model aleasă: tokeni ai furnizorului, Zen sau Go, ori hardware-ul folosit pentru un model local.
Pot folosi modele Claude în OpenCode?
Da, printr-o cheie API Anthropic standard. După cum s-a menționat, abonamentele personale Claude Pro și Max nu pot fi rutate prin OpenCode, așa că Anthropic facturează acea utilizare la tarifele API.
Funcționează OpenCode fără conexiune la internet?
Da. Secțiunea despre modele locale a explicat cum OpenCode se poate conecta prin Ollama sau un alt endpoint compatibil cu OpenAI. Modelele locale mai mici pot face mai multe erori de apel de tool decât modelele găzduite mai mari.
Depozitul opencode-ai/opencode arhivat este același proiect?
Nu. După cum s-a menționat în introducere, acel proiect bazat pe Go a fost arhivat în septembrie 2025. O verificare în plus este formatul de configurare: ghidurile care folosesc comenzile vechi sau un fișier .yml nu se aplică proiectului curent.
Cum gestionează OpenCode confidențialitatea codului meu sursă?
După cum s-a acoperit în secțiunea despre utilizare locală, cererile trimise către un model găzduit părăsesc mașina. OpenCode în sine nu reține codul. Comanda /share este o altă excepție, pentru că încarcă sesiunea la un link public până când utilizatorul oprește partajarea.