OpenCode és un «arnès» (harness agent) de programació amb IA de codi obert creat per l'equip SST (Serverless Stack), dissenyat per funcionar directament a la terminal en lloc d'un IDE tradicional. Construït amb llenguatge Go i el framework Bubble Tea, ofereix una interfície d'usuari de terminal (TUI) fluida que s'integra profundament amb projectes locals, permetent llegir fitxers, editar codi i executar ordres de manera natural. La seva filosofia central és la neutralitat de proveïdor: amb suport per a més de 75 proveïdors de models (Claude, GPT, Gemini, Ollama local, etc.), els desenvolupadors mantenen el control total sobre la selecció del model, els costos i la sobirania de les dades, sense cap tipus de bloqueig comercial.
Més enllà de ser un simple assistent de completat de codi, OpenCode funciona com un agent autònom capaç d'entendre projectes sencers, planificar tasques complexes i executar modificacions de manera integral. Incorpora un mode de planificació que genera estratègies d'implementació sense fer canvis, i un mode de construcció que els executa, permetent als usuaris revisar i aprovar cada pas abans d'aplicar-lo. A més, inclou integració amb Language Server Protocol (LSP) per llegir diagnòstics en temps real, suport per a múltiples sessions paral·leles amb contextos independents, i la capacitat de definir agents i subagents especialitzats amb prompts, models i permisos d'eines personalitzats. Amb llicència MIT i més de 180.000 estrelles a GitHub, OpenCode s'ha consolidat com una alternativa potent i flexible als assistents de codi propietaris, especialment valorada per aquells que prioritzen la transparència, la personalització i el control sobre el seu entorn de desenvolupament.
La web oficial: https://opencode.ai
Si sou una mica paranoics com jo i no voleu deixar que l'agent de turno tafaneji el vostre PC, podeu optar a fer servir una VM amb un usuari amb permisos limitats per tal de tenir l'agent sota control.
Aquí teniu un arxiu Vagrant per construir la VM i compartir la carpeta per facilitar l'accés al projecte també des de la màquina host.
L'usuari vagrant té permisos per poder fer sudo. L'usuari user no en té.
Creeu una carpeta, poseu el Vagrantfile, creeu la carpeta user/ a dins i poseu en marxa la VM amb vagrant up.
Per connectar a la VM, feu
$ vagrant ssh -c "sudo -su user"
Treballeu a la carpeta /vagrantuser a la VM, també és accessible a la carpeta user/ de la màquina host.
# -*- mode: ruby -*- # vi: set ft=ruby : # VM Debian 13 amb OpenCode # Instal·lat a l'usuari "user", sense privilegis # Per connectar: vagrant ssh -c "sudo -su user" # Treballar a la carpeta /vagrantuser Vagrant.configure("2") do |config| config.vm.box = "debian/trixie64" config.vm.hostname = "opencode" # Activeu xarxa si voleu poder connexió a la VM amb IP coneguda #config.vm.network "private_network", ip: "192.168.56.12" # shared folders config.vm.synced_folder ".", "/vagrant", disabled: true config.vm.synced_folder "./user", "/vagrantuser", disabled: false, type: "nfs", nfs_udp: false # canviar per "virtualbox" si el feu servir config.vm.provider "libvirt" do |vm| vm.memory = "4096" vm.cpus = 4 end config.vm.provision "shell", inline: <<-SHELL apt-get update apt-get upgrade -y # arreglo kernel pels shared folders en Virtualbox #apt-get install -y linux-headers-arm64 #apt-get install -y gcc make perl #/sbin/rcvboxadd setup # usuari sense privilegis + install opencode apt-get install -y curl git python3-venv useradd -m -s /bin/bash user echo "alias ll='ls -la'" >> /home/vagrant/.bashrc echo "alias ll='ls -la'" >> /home/user/.bashrc sudo -u user bash -c "curl -fsSL https://opencode.ai/install | bash" #chown user:user /vagrantuser SHELL end