bytes.cat

La wiki d'FP d'informàtica

Eines de l'usuari

Eines del lloc


Barra lateral

ASIX Administració de Sistemes Informàtics i Xarxes
Tots els mòduls del cicle
MP01 Implantació de sistemes operatius
Totes les UFs del modul
MP02 Gestió de bases de dades
Totes les UFs del modul
MP03 Programació bàsica
Totes les UFs del modul
MP04 Llenguatges de marques i sistemes de gestió d'informació
Totes les UFs del modul
MP05 Fonaments de maquinari
Totes les UFs del modul
MP06 Administració de sistemes operatius
Totes les UFs del modul
MP07 Planificació i administració de xarxes
Totes les UFs del modul
MP08 Serveis de xarxa i Internet
Totes les UFs del modul
MP09 Implantació d'aplicacions web
Totes les UFs del modul
MP10 Administració de sistemes gestors de bases de dades
Totes les UFs del modul
MP11 Seguretat i alta disponibilitat
Totes les UFs del modul
MP12 Formació i orientació laboral
Totes les UFs del modul
MP13 Empresa i iniciativa emprenedora
Totes les UFs del modul
MP14 Projecte
Totes les UFs del modul
DAM Desenvolupament d’aplicacions multiplataforma
Tots els mòduls del cicle
MP01 Sistemes informàtics
Totes les UFs del modul
MP02 Bases de dades
Totes les UFs del modul
MP03 Programació bàsica
Totes les UFs del modul
MP04 Llenguatges de marques i sistemes de gestió d'informació
Totes les UFs del modul
MP05 Entorns de desenvolupament
Totes les UFs del modul
MP06 Accés a dades
Totes les UFs del modul
MP07 Desenvolupament d’interfícies
Totes les UFs del modul
MP08 Programació multimèdia i dispositius mòbils
Totes les UFs del modul
MP09 Programació de serveis i processos
Totes les UFs del modul
MP10 Sistemes de gestió empresarial
Totes les UFs del modul
MP11 Formació i orientació laboral
Totes les UFs del modul
MP12 Empresa i iniciativa emprenedora
Totes les UFs del modul
MP13 Projecte de síntesi
Totes les UFs del modul
MPDual Mòdul Dual / Projecte
DAW Desenvolupament d’aplicacions web
Tots els mòduls del cicle
MP01 Sistemes informàtics
Totes les UFs del modul
MP02 Bases de dades
Totes les UFs del modul
MP03 Programació
Totes les UFs del modul
MP04 Llenguatge de marques i sistemes de gestió d’informació
Totes les UFs del modul
MP05 Entorns de desenvolupament
Totes les UFs del modul
MP06 Desenvolupament web en entorn client
Totes les UFs del modul
MP07 Desenvolupament web en entorn servidor
Totes les UFs del modul
MP08 Desplegament d'aplicacions web
Totes les UFs del modul
MP09 Disseny d'interfícies web
Totes les UFs del modul
MP10 Formació i Orientació Laboral
Totes les UFs del modul
MP11 Empresa i iniciativa emprenedora
Totes les UFs del modul
MP12 Projecte de síntesi
Totes les UFs del modul
SMX Sistemes Microinformàtics i Xarxes
Tots els mòduls del cicle
MP01 Muntatge i manteniment d’equips
Totes les UFs del modul
MP02 Sistemes Operatius Monolloc
Totes les UFs del modul
MP03 Aplicacions ofimàtiques
Totes les UFs del modul
MP04 Sistemes operatius en xarxa
Totes les UFs del modul
MP05 Xarxes locals
Totes les UFs del modul
MP06 Seguretat informàtica
Totes les UFs del modul
MP07 Serveis de xarxa
Totes les UFs del modul
MP08 Aplicacions Web
Totes les UFs del modul
MP09 Formació i Orientació Laboral
Totes les UFs del modul
MP10 Empresa i iniciativa emprenedora
Totes les UFs del modul
MP11 Anglès
Totes les UFs del modul
MP12 Síntesi
Totes les UFs del modul
CETI Ciberseguretat en Entorns de les Tecnologies de la Informació
Tots els mòduls del cicle
CiberOT Ciberseguretat en Entorns d'Operació
Tots els mòduls del cicle
opencode

Aquesta és una revisió antiga del document


OpenCode

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


VM per tenir OpenCode "engabiat"

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.

Si feu servir l'usuari vagrant té permisos per poder fer sudo. L'usuari user no en té.

Vagrantfile
# -*- 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"
# Requisits: instal·lar virtiofsd al host
 
# versió mac té problemes de shared folders i vbox-guestadditions
# passes:
# 1- deshabilitar els shared folders i fer "vagrant up" (executa init script)
# 2- crear carpeta user/
# 3- habiluitar shared folders i "vagrant reload" (remonta les carpetes)
 
Vagrant.configure("2") do |config|
  config.vm.box = "debian/trixie64"
  config.vm.hostname = "opencode"
  config.vm.network "private_network", ip: "192.168.56.12"
 
  # shared folders
  disabled = false
  config.vm.synced_folder ".", "/vagrant", disabled: disabled
  config.vm.synced_folder "./user", "/vagrantuser", disabled: disabled,
      type: "nfs", nfs_udp: false
      #owner: 1001, group: 1001 # user sense privilegis
 
  # 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
opencode.1789566070.txt.gz · Darrera modificació: 2026/09/16 13:41 per enric_mieza_sanchez