tis-opencode icon

OpenCode

Paquet d'installation silencieuse pour OpenCode

2.1.3-2
Development
Development

Les paquets PREPROD sont des paquets construits via LUTI. Ils restent généralement 5 jours en PREPROD, après quoi un deuxième scan VirusTotal est effectué pour vérifier que le status n'a pas changé.
Si le paquet réussit ce dernier contrôle, il est promu en PROD et publié sur le store.

  • package: tis-opencode
  • name: OpenCode
  • version: 2.1.3-2
  • categories: Development
  • maintainer: Tranquil IT, WAPT TEAM, Kevin Cherel
  • editor: Anomaly Innovations
  • licence: MIT
  • locale: all
  • target_os: debian(>=12),ubuntu(>=22)
  • impacted_process: ai.opencode.desktop
  • architecture: arm64
  • signature_date:
  • size: 222.47 Mo
  • homepage : https://opencode.ai/

package           : tis-opencode
version           : 2.1.3-2
architecture      : arm64
section           : base
priority          : optional
name              : OpenCode
categories        : Development
maintainer        : Tranquil IT, WAPT TEAM, Kevin Cherel
description       : OpenCode is an open source AI coding agent that helps you write code in your terminal, IDE or desktop app.
depends           : 
conflicts         : 
maturity          : PREPROD
locale            : all
target_os         : debian(>=12),ubuntu(>=22)
min_wapt_version  : 2.3
sources           : https://opencode.ai/download
installed_size    : 
impacted_process  : ai.opencode.desktop
description_fr    : OpenCode est un agent de codage IA open source qui vous aide à écrire du code dans votre terminal, votre IDE ou une application de bureau.
description_pl    : OpenCode to open source'owy agent AI do programowania, który pomaga pisać kod w terminalu, IDE lub aplikacji desktopowej.
description_de    : OpenCode ist ein quelloffener KI-Coding-Agent, der Ihnen hilft, Code in Ihrem Terminal, Ihrer IDE oder einer Desktop-Anwendung zu schreiben.
description_es    : OpenCode es un agente de programación con IA de código abierto que le ayuda a escribir código en su terminal, su IDE o una aplicación de escritorio.
description_pt    : OpenCode é um agente de programação com IA de código aberto que ajuda você a escrever código no terminal, no IDE ou em um aplicativo de desktop.
description_it    : OpenCode è un agente di programmazione IA open source che ti aiuta a scrivere codice nel terminale, nell'IDE o in un'applicazione desktop.
description_nl    : OpenCode is een open source AI-programmeeragent die u helpt code te schrijven in uw terminal, IDE of desktopapplicatie.
description_ru    : OpenCode представляет собой ИИ-агента для программирования с открытым исходным кодом, который помогает писать код в терминале, IDE или настольном приложении.
audit_schedule    : 
editor            : Anomaly Innovations
keywords          : opencode,ai,agent,coding,code,assistant,llm,terminal
licence           : MIT
homepage          : https://opencode.ai/
package_uuid      : 8e19fd1c-a693-4c21-82f8-42594b490565
valid_from        : 
valid_until       : 
forced_install_on : 
changelog         : https://opencode.ai/changelog
min_os_version    : 
max_os_version    : 
icon_sha256sum    : 2ef8d582e62e65a55adf11d09f0ef621d56592cd7e319178dff4c968aae27ba2
signer            : test
signer_fingerprint: b82fc8ef4a4475c0f69ac168176c2bfc58f572eb716c4eadd65e4785c155dd8e
signature_date    : 2026-10-22T14:03:55.000000
signed_attributes : package,version,architecture,section,priority,name,categories,maintainer,description,depends,conflicts,maturity,locale,target_os,min_wapt_version,sources,installed_size,impacted_process,description_fr,description_pl,description_de,description_es,description_pt,description_it,description_nl,description_ru,audit_schedule,editor,keywords,licence,homepage,package_uuid,valid_from,valid_until,forced_install_on,changelog,min_os_version,max_os_version,icon_sha256sum,signer,signer_fingerprint,signature_date,signed_attributes
signature         : XvN+QgZ5nWVCSAa0YL1Zg9o+vDIo3rq+nnG5Batn61lRTIRXemrVoYA6b7p89+Jb5J4ptV5+p7Aafb53/lyPgzNFf0bkTT8p/W7RQqf8p7cMWocCFumvsCgCqVqvARNJRKCIxkkiI3PZ8irylpK55FtnnXgn0XYKoTBKLwzZLcjH8Kr1BCsVIA/ltvLczXu6FOHXM9QH+RflilYTBOShBcgCZsXk7B2kqiEhOBMYCp8T+SYoQo96ie4uHVKXVCEj3S/uLYwEheRwrxOL5dvqWdg4NBKxpbTujrxP+gaDMbbZJdglBPVP9NgudVnuM3F1ZbO6a1LMIvJMRAvjSoFLyg==

# -*- coding: utf-8 -*-
from setuphelpers import *

package_name = "opencode"
app_update_file = "/opt/OpenCode/resources/app-update.yml"


def install():
    bin_name = glob.glob("opencode-desktop-linux-arm64.deb")[0]

    print(f"Installing: {bin_name}")
    install_deb(bin_name)

    # Disabling automatic updates of the desktop app
    remove_file(app_update_file)


def uninstall():
    print(f"Uninstalling: {package_name}")
    uninstall_apt(package_name)

# -*- coding: utf-8 -*-
from setuphelpers import *
from setupdevhelpers import *
import waptlicences


def get_manifest(manifest_url, proxies):
    manifest = wgets(manifest_url, proxies=proxies)
    if isinstance(manifest, bytes):
        manifest = manifest.decode("utf-8")
    version = None
    files = []
    for line in manifest.splitlines():
        line = line.strip()
        if line.startswith("version:"):
            version = line.split(":", 1)[1].strip()
        elif line.startswith("- url:"):
            files.append(line.split(":", 1)[1].strip())
    return version, files


def update_package():
    # Declaring local variables
    package_updated = False
    proxies = get_proxies()
    if not proxies:
        proxies = get_proxies_from_wapt_console()
    app_name = control.name

    base_url = "https://opencode.ai/update/api/latest/desktop/opencode"
    update_dict = {
        "windows-x64": ("latest.yml", "-win-x64.exe"),
        "windows-arm64": ("latest.yml", "-win-arm64.exe"),
        "darwin-x64": ("latest-mac.yml", "-mac-x64.dmg"),
        "darwin-arm": ("latest-mac.yml", "-mac-arm64.dmg"),
        "debian-x64": ("latest-linux.yml", "-linux-amd64.deb"),
        "debian-arm64": ("latest-linux-arm64.yml", "-linux-arm64.deb"),
        "redhat_based-x64": ("latest-linux.yml", "-linux-x86_64.rpm"),
        "redhat_based-arm64": ("latest-linux-arm64.yml", "-linux-aarch64.rpm"),
    }
    os_type = control.target_os.split("(")[0] + "-" + ensure_list(control.architecture)[0]
    manifest_name, bin_suffix = update_dict[os_type]

    api_url = f"{base_url}/{manifest_name}"
    print("API used is: %s" % api_url)
    version, files = get_manifest(api_url, proxies)
    print(f"Latest {app_name} version is: {version}")

    for to_download in files:
        if to_download.endswith(bin_suffix):
            download_url = to_download
            latest_bin = download_url.rsplit("/", 1)[-1]
            latest_bin_extension = latest_bin.rsplit(".", 1)[-1]
            break

    if isfile(latest_bin):
        remove_file(latest_bin)
    print(f"Downloading: {latest_bin}")
    wget(download_url, latest_bin, proxies=proxies)

    if latest_bin_extension == "exe":
        expected_issuer = "Anomaly Innovations, Inc https://anoma.ly/"
        sign_name = waptlicences.check_exe_signing_certificate(latest_bin)[0]
        if sign_name != expected_issuer:
            error(f"Bad issuer {sign_name} != {expected_issuer}")

    # Deleting outdated binaries
    for f in glob.glob(f"*.{latest_bin_extension}"):
        if f != latest_bin:
            remove_file(f)

    # Changing version of the package
    if Version(version) > Version(control.get_software_version()):
        print(f"Software version updated (from: {control.get_software_version()} to: {Version(version)})")
        package_updated = True
    else:
        print(f"Software version up-to-date ({Version(version)})")
    control.set_software_version(version)
    control.save_control_to_wapt()

    return package_updated

01ca7fe94636e5a08fcb73849d3b5df25d51e2c82f4dd1a08f01798b25899819 : WAPT/certificate.crt
bbff43370b62c183578f3d8f5c6edb2ae05346ae39cd70fb1f00d50e10228ecf : WAPT/control
2ef8d582e62e65a55adf11d09f0ef621d56592cd7e319178dff4c968aae27ba2 : WAPT/icon.png
11166517c27056558767dd1a55ef99b397f7307bcc1e62e7bea715714d67c478 : luti.json
e12d51367bf75773d4604459e1a41bea7ef6e4ea6819574f80287b36bfbecf27 : opencode-desktop-linux-arm64.deb
51aa27741633477b70d83dcda975a4904e705f6015f9fd9ec234052d663425c0 : setup.py
10bc1d8ab1e79493a0c0fe414adcb221132bec09c1f7c537047adca04e9549fd : update_package.py