Opencode è un agente AI open source per assistere gli sviluppatori nella scrittura di codice. Questa guida spiega come installarlo su NixOS utilizzando i Flakes per avere sempre la versione più aggiornata.

Caratteristiche principali

  • Supporto LSP: Carica automaticamente i Language Server Protocol appropriati per l’LLM
  • Multi-sessione: Consente di avviare più agenti in parallelo sullo stesso progetto
  • Condivisione sessioni: Permette di condividere sessioni per referenze e debug
  • 75+ provider LLM: Supporta Claude, GPT, Gemini e modelli locali
  • Accesso Claude Pro: Login con Anthropic per usare account Claude Pro o Max
  • Privacy-first: Non memorizza codice o dati di contesto

Opzioni di installazione

Opzione 1: Nixpkgs ufficiale (versione stabile)

La versione nei repository ufficiali nixpkgs potrebbe non essere la più recente.

nix
environment.systemPackages = with pkgs; [
  opencode
];

Opzione 2: Flake community (consigliato)

Il flake opencode-flake si aggiorna automaticamente ogni 6 ore con l’ultima release.

Installazione con Flakes

Test rapido

Prima di configurarlo nel sistema, puoi testare Opencode con:

bash
nix run github:aodhanhayter/opencode-flake -- --version

Configurazione flake.nix

Aggiungi il flake ai tuoi input:

nix
{
  description = "NixOS configuration";

  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";

    opencode-flake = {
      url = "github:aodhanhayter/opencode-flake";
    };
  };

  outputs = { self, nixpkgs, opencode-flake, ... }@inputs:
  let
    system = "x86_64-linux";
    pkgs = nixpkgs.legacyPackages.${system};
  in {
    nixosConfigurations.hostname = nixpkgs.lib.nixosSystem {
      inherit system;
      specialArgs = { inherit inputs; };
      modules = [
        ./configuration.nix
      ];
    };
  };
}

Installazione a livello di sistema

In configuration.nix:

nix
{ inputs, pkgs, ... }:

{
  environment.systemPackages = [
    inputs.opencode-flake.packages.${pkgs.system}.default
  ];
}

Installazione con Home Manager

Se utilizzi Home Manager:

nix
{ inputs, pkgs, ... }:

{
  home.packages = [
    inputs.opencode-flake.packages.${pkgs.system}.default
  ];
}

Configurazione

Dopo l’installazione, avvia Opencode con:

bash
opencode

Al primo avvio, dovrai configurare il provider LLM. Opencode supporta oltre 75 provider, tra cui:

  • Claude (Anthropic) - consigliato
  • GPT (OpenAI)
  • Gemini (Google)
  • Modelli locali (Ollama, LM Studio, ecc.)

Accesso con Claude Pro/Max

Se hai un account Claude Pro o Max, puoi effettuare il login direttamente con Anthropic per utilizzare il tuo abbonamento.

Piattaforme supportate

  • x86_64-linux
  • aarch64-linux (ARM64)
  • x86_64-darwin (Intel Mac)
  • aarch64-darwin (Apple Silicon)