Kodwen docs
Proiecte și medii

CLI-ul codaid

Instalezi clientul în linie de comandă și daemonul codaid pe Linux, macOS sau Windows, te autentifici, îl actualizezi și verifici ce ai descărcat.

codaid este un singur binar cu două roluri: client în linie de comandă pentru contul tău Kodwen (chat, sesiuni, programări, Resolve, chei, consum) și daemonul care transformă o mașină într-un mediu propriu.

Instalare

curl -fsSL https://codai.ro/install-codaid.sh | sh

Ambele scripturi descarcă varianta pentru sistemul tău din release-ul GitHub. Începând cu release-ul 0.5.0 verifică întâi SHA256SUMS din release cu semnătura lui SHA256SUMS.sig (ECDSA P-256, cu cheia de release fixată în script — aceeași cheie e afișată mai jos), apoi compară binarul cu acel SHA256SUMS, totul înainte de a instala ceva. Se opresc la orice dubiu: o semnătură lipsă sau greșită pe un release semnat, lipsa sumei de control, lipsa unui utilitar SHA-256 sau o sumă diferită înseamnă eroare, fără să lase nimic în urmă. Release-urile mai vechi de 0.5.0 sunt anterioare semnării și se instalează cu mesajul signature: none (release predates signing); setează CODAID_REQUIRE_SIGNATURE=1 ca să refuzi orice release nesemnat. Când GitHub CLI (gh) este instalat, verifică și proveniența build-ului; setează CODAID_REQUIRE_ATTESTATION=1 ca verificarea să devină obligatorie.

Linux / macOSWindows
Se instalează în/usr/local/bin/codaid (INSTALL_DIR)%LOCALAPPDATA%\kodwen\bin\codaid.exe, adăugat în PATH-ul utilizatorului
Fixezi o versiuneVERSION=0.5.0 sh$env:CODAID_VERSION='0.5.0' înainte de irm
Are nevoie decurl sau wget, sha256sum sau shasum, openssl (release-uri semnate)PowerShell 5.1 sau 7

Aceleași scripturi sunt atașate fiecărui release ca install.sh și install.ps1.

Manageri de pachete

Începând cu release-ul 0.5.0, codaid este publicat și în:

CanalComandă
Homebrew (macOS, Linux)brew install codai-ro/tap/codaid
Scoop (Windows)scoop bucket add kodwen https://github.com/codai-ro/scoop-bucket, apoi scoop install codai/codaid
winget (Windows)winget install Codai.Codaid (după ce cererea în winget-pkgs e acceptată)
AUR (Arch Linux)codaid-bin, de exemplu yay -S codaid-bin

Fiecare pachet fixează suma SHA-256 a aceluiași fișier din release care apare în SHA256SUMS semnat, așa că managerul de pachete refuză un fișier diferit de cel publicat.

macOS

Variantele pentru macOS (Apple silicon și Intel) sunt construite de job-urile macos-14 din workflow-ul de release. Dacă un release nu are încă un fișier darwin, scriptul se oprește cu eroare de descărcare.

Binarele nu sunt încă notarizate. curl … | sh descarcă prin curl, care nu pune atributul com.apple.quarantine, deci Gatekeeper nu blochează binarul instalat. Un binar descărcat din browser primește acel atribut și e refuzat la prima rulare; verifică-i suma de control (mai jos), apoi șterge atributul:

xattr -d com.apple.quarantine ./codaid-darwin-aarch64

Verificarea manuală a unei descărcări

Fiecare release începând cu 0.5.0 conține SHA256SUMS, SHA256SUMS.sig (ECDSA P-256 / SHA-256, DER) și SHA256SUMS.minisig (minisign). Salvează cheia publică de mai jos ca codaid-release-p256.pub.pem:

-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEkIw8+FrhXZ3E7Adus8DLbMEfqI12
yFPKFCsrQ2GB9bY4SOH8g2yMSkFvFud15ZZxxBaIs29PmPa3dFrijb/z3A==
-----END PUBLIC KEY-----

Apoi, în folderul cu fișierele descărcate:

openssl dgst -sha256 -verify codaid-release-p256.pub.pem -signature SHA256SUMS.sig SHA256SUMS
sha256sum -c --ignore-missing SHA256SUMS      # macOS: shasum -a 256 -c --ignore-missing SHA256SUMS

Verified OK de la openssl înseamnă că SHA256SUMS este fișierul semnat de noi; OK de la sha256sum înseamnă că descărcarea ta se potrivește cu el. Cu minisign în loc de openssl (id cheie BF3FB6DE209BA938):

minisign -Vm SHA256SUMS -P RWQ4qZsg3rY/vyrIP7UWfRJT7HAaHRNqXsXvecXksZcMlk/vL9sbAAdi

Pe Windows, compară suma cu PowerShell și rulează linia openssl din Git Bash sau WSL (install.ps1 verifică semnătura singur):

$sum = (Select-String -Path SHA256SUMS -Pattern 'codaid-0.5.0-x86_64-pc-windows-msvc.zip').Line.Split(' ')[0]
(Get-FileHash .\codaid-0.5.0-x86_64-pc-windows-msvc.zip -Algorithm SHA256).Hash.ToLower() -eq $sum

gh attestation verify <fișier> --repo codai-ro/codaid verifică în plus proveniența build-ului pe GitHub. Pentru fișierele aplicației desktop, vezi verificarea descărcărilor.

Autentificare

codaid login        # autentificare cu cod de dispozitiv în browser; salvează o cheie codai_
codaid whoami       # contul căruia îi aparține cheia salvată
codaid logout       # uită cheia salvată (revoc-o din hub ca să nu mai fie validă)

login deschide auth.codai.ro/device cu codul completat. Pe un server fără browser, deschide adresa pe orice dispozitiv și tastează codul afișat în terminal. Ca să sari peste autentificare (CI, flote de mașini), setează în schimb CODAI_API_KEY=codai_….

Actualizare

codaid update                    # cel mai nou release; întreabă înainte să înlocuiască binarul
codaid update --check            # doar spune dacă există un release mai nou
codaid update --version 0.5.0    # exact acest release (și reinstalare sau downgrade)
codaid update --yes              # fără confirmare

codaid update descarcă varianta pentru sistemul tău din release-ul GitHub și are încredere în ea doar după trei verificări, oprindu-se la prima care eșuează: SHA256SUMS din release trebuie să aibă o semnătură SHA256SUMS.sig validă, făcută cu cheia de release compilată în codaid (un release nesemnat e refuzat), binarul descărcat trebuie să se potrivească cu linia lui din SHA256SUMS, iar binarul nou trebuie să raporteze versiunea așteptată la --version. Abia apoi înlocuiește binarul care rulează, printr-o singură redenumire atomică (pe Windows cel vechi rămâne ca codaid.exe.old). Dacă folderul binarului nu poate fi scris, îți spune cum să rulezi din nou (sudo codaid update pe Linux/macOS). Pe Linux, când există un unit systemd pentru codaid, îți amintește să-l repornești (sudo systemctl restart codaid sau systemctl --user restart codaid); daemonul pornit rămâne pe versiunea veche până atunci.

--check afișează update available sau up to date și iese mereu cu 0, deci citește-i rezultatul, nu codul de ieșire.

codaid nu se actualizează niciodată singur. codaid version afișează pe stderr un rând (codaid X.Y.Z is available - run `codaid update` ) când există un release mai nou, iar codaid status îl raportează în JSON ca update ({"latest": "…", "available": true|false} sau null când nu se știe). Verificarea rulează cel mult o dată pe zi, cu limită de 3 secunde, și e memorată în ~/.codai/update-check.json; e oprită când CODAID_NO_UPDATE_CHECK=1 sau CI e setat.

Și rularea din nou a scriptului de instalare funcționează: înlocuiește binarul cu ultimul release (sau cu VERSION fixată). Pe Windows, oprește întâi un codaid run pornit: un codaid.exe deschis nu poate fi înlocuit.

Comenzi uzuale

ComandăCe face
codaid chat "…"Un mesaj de chat cu kodwen, cu răspuns în flux
codaid sessions listSesiunile tale de conversație
codaid usageConsumul contului, defalcat
codaid keys listCheile tale API (doar prefixul, niciodată secretul)
codaid resolve --helpTrimiți o problemă la Resolve și aștepți corecția verificată
codaid env --helpCreezi, listezi și te conectezi la medii
codaid statusConfigurația daemonului (cheia ascunsă) și verificări locale
codaid updateActualizează la cel mai nou release semnat (vezi Actualizare)

Fiecare comandă are --help. Ca să folosești mașina drept mediu, continuă cu instalarea pe propriul server.

Pe această pagină