← înapoi la pagina principală

Ghid: cum merg toate

Pentru când uiți. Apasă pe o întrebare ca să se deschidă. Pe pagina asta nu e nicio parolă — doar unde sunt și la ce folosesc.

Unde e fiecare lucru?Putemis Lab: cum adaugi și verifici un API AIControl LiteLLM: de la cheile furnizorilor la o singură cheie virtualăCe parolă e pentru ce?Copiile de siguranță: ce, unde, când?Pun materiale pe storage, direct din browserDigi Storage: al treilea storage, cu FTPExtensia mea: DNG → PNGAplicațiile mele: ce am instalatHarta: ce mașini am și la ce folosescProxy-urile: unde le ții și cum știi care mergDiscuțiile cu Claude: unde se duc?Taskuri cu AI: ce lucrăm și ce e gataCele două conturi Google DriveCum continui o discuție în alt AI?Cum păstrez firul discuției dacă schimb contul?Pas cu pas: cum fac un filmPas cu pas: atelierul video (uneltele ffmpeg)Pas cu pas: cum folosesc Agenții AIPas cu pas: cum fac o ofertă pentru un clientPas cu pas: cum recuperez ceva dintr-o copiePas cu pas: cum fac o automatizarePas cu pas: raportul serveruluiConexiuni: unde-mi țin parolele și cum intruOpenCode: un al doilea Claude, pe server, cu modele gratuiteLibreChat și AnythingLLM: două ferestre de chat, ale taleComposio: aplicațiile tale legate la un locAntiGravity: modelele Gemini gratuite și testul zilnicBotul de OLX din Telegram: cum îl folosesc10k Website: manualul site-ului scumpMarketing digital: ghidul public de promovare onlineAI video: cum se produce corect un film cu AICelelalte două servere ale tale: baspool.eu și la-rousse.euComposio: aplicațiile tale, comandate din programeToate serverele dintr-o privireCum pun alt AI să continue treaba„Apropo” (/btw): o întrebare pe lângă, fără să întrerupi treabaMeniul de conturi CLI: cum vezi și schimbi toate conturile (terminal și chat)Chat (pagina /chat): ce este și cum îl foloseștiChat: Media, fișierele discuției, conversii și previzualizareGenerator de voce (pagina /voce/ și din chat)Google Flow: imagini și video (pagina /flow, chat și terminal)Mermaid Studio: diagrame din discuții (pagina /chat/mermaid-studio/)Chat: cota CLI-urilor (barele de consum)Chat: alegi cu cine vorbești (Claude, agy sau Codex)Chat: proiecte, subproiecte și reguli în cascadăChat: biblioteca de skills și alegerea automatăSkill Studio: tag-uri, colecții, căutare online și pagina fiecărui skillChat: subdiscuții și ramuri cu rezumatSurse: fișiere și date pentru proiecte, subproiecte și discuțiiChat: versiuni, restaurare și „Reguli primite”Chat: cum este construit acum pe serverChat: Mută discuția de la un CLI la altulChat: adaugi un cont nou (Claude, agy, Codex)Chat: Istoric, căutare și SetăriChat: ceva nu mergeCeva nu merge. Ce fac?Ce a rămas de făcutPas cu pas: Postiz (postări programate pe rețele)Pas cu pas: Gemini Pro pe server, prin agy (Antigravity CLI)Activepieces: unde rulează, cum intri, ce se întâmplă cu elScrapling: extragi date de pe site-uri, cu butoane
Unde e fiecare lucru?
Schiță: prima pagină duce la toate celelalteai.ambru.usprima pagină/agenticonturi AI/montajfilme/stocarecopii/serverraport/ghidaici/controlchei API

Totul pornește de la ai.ambru.us — prima pagină, cu câte un buton pentru fiecare unealtă. Dacă uiți ceva, de acolo începi.

paginala ce e bună
/ghidpagina asta — explicații, când uiți
/ghid/putemis-labghidul vizual, pas cu pas, pentru adăugarea și verificarea API-urilor în Putemis Lab
/ghid/control-litellmghidul vizual pentru chei de furnizori, deployment-uri, rutare și chei virtuale LiteLLM
/agentivorbești cu Manus, Apify, Vercel, Gemini; compari răspunsuri; chei pentru n8n
/montajfaci un film din clipuri, poze și voce
unelte.ambru.usatelierul ffmpeg: tai o bucată, convertești, comprimi la câte MB vrei (și în bulk), scoți sunetul, schimbi viteza, faci GIF-uri, pui sigla sau subtitrările (și la /unelte-video)
scrapling.gotonextlevel.euextragi date de pe site-uri, cu butoane (pe serverul Amsterdam); tutorial la „Scrapling" mai jos
postiz.ambru.usprogramezi postări pe rețelele sociale: scrii o dată, pleacă singură la ora stabilită pe Facebook, Instagram, X, LinkedIn, YouTube, TikTok și celelalte
/stocarecopiile de siguranță ale serverului, pe storage
media.ambru.netpui materiale pe storage direct din browser: încarci fișiere, faci foldere, cauți după nume, descarci — și dai link public fișierelor pe care le alegi
/servereharta mașinilor tale, cu parolele lor; „Verifică" intră pe server și-ți spune ce e pe el
/discutiice discuții s-au salvat, când, pe ce temă și unde au ajuns
/taskurilista taskurilor lucrate cu AI-ul: ce e de făcut, ce a făcut AI-ul și ce ai confirmat tu cu bifă verde
/proxyproxy-urile cumpărate: le adaugi, le imporți și vezi care mai merg
/hartaschema tuturor mașinilor tale și fișa fiecăreia
/aplicatiitoate uneltele instalate, cu pictograme, grupate pe ce fac
10kwebsite.ambru.usmanualul site-ului de 10.000 $: ce trebuie să conțină, cei opt pași de lucru cu AI, proba de livrare. Pagină deschisă, fără parolă; lista o încarci ca .md sau .pdf, fișierele rămân cu link de descărcare
aivideo.ambru.usghidul „Cum se produce corect un video cu AI”: un clip face o singură schimbare, fluxul în cinci pași, uneltele din Google Flow și costul modelelor. Aceeași pagină e și pe aivideo.baspool.eu și aivideo.la-rousse.eu, în culorile fiecărui site. Fără parolă, numai de citit
marketingdigital.ambru.usghidul public „Ce este marketingul digital? Exemple de promovare online”: o pagină care curge de sus în jos, cu schițe desenate, socotitoare pentru costul unui client și cele opt reguli ale manualului de 10.000 $. Are și pagina /prompturi, cu tot ce i s-a cerut asistentului. Fără parolă, numai de citit
/serverraportul zilnic: când a fost serverul încărcat, ce alerte au fost
/controlfaci chei API cu furnizorii și regulile alese de tine
activepieces.ambru.usautomatizări „când X, fă Y", mai ușor de folosit; rulează pe serverul Amsterdam (din 23 oct. 2026); vezi „Activepieces" mai jos
n8n.ambru.usautomatizări mai puternice, pentru cazuri complicate
Media (pe VPS)fișierele tale de pe cele 1 TB, văzute ca foldere în browser
/chatchat web peste Claude Code, agy și Codex; include butonul 🎛 Meniu Funcții
/keys, /resurse, /furnizoricheile furnizorilor, linkuri utile, tabelul cu furnizori gratuiți

Pe alte adrese: n8n.ambru.us, activepieces.ambru.us (automatizări; rulează pe Amsterdam), stats.ambru.us (Beszel, măsurători live), portainer.ambru.us (containerele Docker).

Putemis Lab: cum adaugi și verifici un API AI

Acesta este traseul vizual complet pentru situațiile în care ai un API AI, dar nu știi încă ce protocol folosește, ce modele oferă sau dacă poate fi adăugat în router.

Ghidul are trei trasee interactive: am URL + cheie, am doar IP-ul și vine din Control LiteLLM. Poți apăsa pe fiecare etapă și vezi exact ce informații sunt necesare, cine face verificarea și când API-ul poate fi salvat în Putemis.

Deschide ghidul vizual Putemis Lab →

Adresa directă: https://ai.ambru.us/ghid/putemis-lab. Din ghid poți continua direct către API Tester, Control LiteLLM sau Chat.

Folosire ca CLI: în Chat alegi Putemis API Router, apoi modelul și nivelul de acces: verifică și citește, editează fișiere sau acces complet. 🛠 CLI nativ înseamnă că modelul știe direct tool-calling; 🔌 CLI prin adaptor înseamnă că Python transformă răspunsurile text în apeluri controlate de unelte, după același principiu folosit pentru Perplexity.

Control LiteLLM: de la cheile furnizorilor la o singură cheie virtuală

Ghidul vizual Control Atlas arată ce se întâmplă efectiv când introduci o cheie de furnizor: descoperirea modelelor, alegerea tipului, testarea, etichetarea costului, salvarea ca deployment și rotirea între mai multe chei.

Are trei trasee interactive: Adaug o cheie, Import în masă și Creez cheia virtuală. Ultimul traseu explică legătura completă Control → API Tester → Putemis → Chat.

Deschide ghidul vizual Control LiteLLM →

Adresa directă: https://ai.ambru.us/ghid/control-litellm. Ghidul nu conține chei sau parole.

Ce parolă e pentru ce?
Schiță: trei parole diferite, fiecare cu rostul eiCheia de accesintri în paginiParola de storageserverul trimite fișiereParola de criptaredeschizi arhivele .gpg

Se cheamă toate „parolă", dar sunt trei lucruri diferite:

carela ce foloseșteunde stă
Cheia de acceso scrii sus în paginile /agenti, /montaj, /stocare ca să intripe server; dacă o uiți, îi spui lui Claude „arată-mi cheia de acces"
Parola de storageserverul o folosește singur ca să trimită fișiere pe storagedoar pe server; tu ai pus-o o dată în /stocare, nu se mai vede
Parola de criptaredeschide arhivele .gpg ale copiilor de siguranțăpe server și pe hârtia ta — fără ea, arhivele nu se mai deschid

Niciuna nu e parola contului tău Google sau a vreunui site.

Copiile de siguranță: ce, unde, când?
Schiță: serverul face arhive, criptează ce are chei și le trimite pe storage în fiecare noapte; se păstrează ultimele 7Serverulagentimontajchein8ncaddyArhivecele cu chei: gpgStoragemedianoaptea, la 03:40ultimele 7 copii

Ce: tot ce e greu de refăcut — paginile tale (agenți, montaj, chei, raport), baza n8n, Caddy, serviciile. Ce are chei înăuntru se criptează înainte să plece.

Unde: pe storage (media.ambru.net), în folderul copii-0001119. Legătura e pe FTPS, adică parola nu circulă în clar.

Când: în fiecare noapte la 03:40, singur. Se păstrează ultimele 7 copii; cele mai vechi se șterg.

Cum verific: intri pe /stocare → „Testează legătura". Jos e jurnalul cu fiecare copie: când, cât a durat, ce a plecat.

Dacă moare serverul: arhivele sunt pe storage; cu parola de criptare, Claude le poate pune înapoi pe un server nou.

Pun materiale pe storage, direct din browser
None

Unde: media.ambru.net. Intri cu aceeași cheie de acces ca la celelalte pagini.

Ce face: vezi tot contul tău de pe storage (media.ambru.net) ca niște foldere. Încarci fișiere (le alegi cu butonul sau le tragi peste pagină), faci foldere și subfoldere (poți scrie tot drumul deodată: poze/2026/vara), cauți după nume și descarci orice.

Imagine din clipboard: ai făcut o captură de ecran sau ai copiat o poză? Apeși 📋 Imagine din clipboard (sau, direct în pagină, Ctrl+V) și poza se încarcă în folderul deschis, cu numele imagine-clipboard-ZZZZ-OOMMSS.png. Prima dată browserul îți cere voie să citească clipboardul. Dacă nu e nicio imagine copiată, pagina îți spune. Merge pe toate cele trei pagini de storage.

Ce nu se poate strica: în copii-0001119 (copiile de noapte), în mail (Maildir, imap) și în folderele de sistem ale contului, ștergerea e refuzată de server, nu doar ascunsă din pagină. În rest, ca să ștergi ceva trebuie să scrii numele exact.

Nu se suprascrie nimic: dacă încarci un fișier cu un nume care există deja, al doilea se pune ca „nume (2)". Pagina îți spune când s-a întâmplat.

Căutarea merge pe o hartă a numelor ținută pe serverul tău, de aceea e instantanee. Harta se reface singură la 6 ore și se ține la zi cu ce încarci, faci sau ștergi din pagină. Dacă pui ceva pe storage din altă parte (Nextcloud, FTP), apasă „refă harta" — durează vreo 3 minute.

De ce o operație pe rând: storage-ul dă doar 3 conexiuni FTP, iar copia de noapte ia 2. Dacă pagina spune „storage-ul e ocupat", aștepți câteva clipe și mai încerci.

Lacăt cu parolă pe foldere (de la 7 oct.): la fiecare folder ai butonul 🔒 încuie. Îi pui o parolă (fiecare folder are parola lui) și de atunci folderul nu mai apare în listă, nu apare în căutare, nu se descarcă nimic din el și nu se poate șterge fără parolă. Îl deschizi cu butonul 🔑 Folder încuiat: scrii numai parola, nu numele — îl găsesc eu. Rămâne deschis 30 de minute și numai în fila în care ai dat parola; în alt browser nu se vede deloc.

Și pe storage, nu doar în pagină: folderul încuiat primește pe storage drepturi închise, deci dacă intri pe cont prin FTP, nu vezi și nu citești ce e în el — numele folderului se vede, conținutul nu. Drepturile se deschid doar pentru câteva secunde, cât durează o operație din pagină, apoi se închid singure.

Ce nu poate face lacătul: pe cineva care are parola contului de storage nu-l pot împiedica să șteargă folderul direct de pe FTP — FTP-ul nu are așa ceva, iar deținătorul contului poate oricând schimba drepturile. Lacătul apără de priviri și de ștergeri greșite din pagină, nu de cineva care are parola contului tău de storage.

Dacă uiți parola: e păstrată și pe serverul tău, într-un fișier citit numai de root (/etc/incarcare-lacate.json). Îmi ceri și ți-o spun.

Mărime: până la 8 GB pe fișier. Fișierul trece prin serverul tău (Hetzner 1) spre storage, nu pleacă pe nicăieri altundeva.

Link public: „Share public"

Storage-ul nu publică singur nimic pe internet — spațiul ăla e doar al tău, se intră cu parolă. De aceea linkul public îl dă serverul tău: apeși „Share public" lângă un fișier și primești pe loc o adresă de forma
https://media.ambru.net/f/jeton/nume-fișier.jpg
Adresa apare chiar sub numele fișierului, cu buton „copiază". O dai oriunde — WhatsApp, mail, un site — și se deschide la oricine, fără cheie și fără cont.

Numai ce apeși tu. Fără buton, niciun fișier nu se vede din afară. Nu există nicio listă publică: fără jetonul de 22 de caractere nu se ajunge la nimic. Din copii-0001119, din folderele de sistem și din fișierele ascunse din rădăcină (.bash_history și celelalte) partajarea e refuzată de server.

Butonul „🌐 Fișiere publice" din bara de sus îți arată tot ce e public acum, de câte ori s-a deschis fiecare, și are „oprește public" la fiecare. Când oprești, linkul moare pe loc, pentru toată lumea.

Ce se întâmplă pe dedesubt: la partajare, fișierele până în 500 MB sunt aduse o dată pe serverul tău (originalul rămâne neatins pe storage). De acolo linkul se deschide instant, video-ul se poate derula și pot intra mai mulți oameni deodată. Peste 500 MB, fișierul curge direct de pe storage, mai încet. Copiile ocupă cel mult 5 GB; peste atât, cele mai rar deschise se scot, iar linkul merge mai departe, doar mai încet.

În Google nu intră: fiecare fișier public pleacă cu antetul noindex. Linkul merge oriunde îl dai, dar nu apare în căutări. Paginile HTML partajate se deschid „în cutie" (sandbox), ca o pagină pusă public să nu poată citi cheia ta de acces.

Miniaturi și iconițe

În listă, pozele arată poza mică, iar clipurile un cadru din film cu semnul ▶. PDF, HTML, MD, ZIP, DOC și restul au iconița lor colorată cu tipul scris pe ea.

Miniatura se face o singură dată și rămâne pe server (câteva KB). Când încarci un fișier din pagină, miniatura se face pe loc, din fișierul aflat deja pe disc — gratis. Pentru ce e deja pe storage, prima vizită în folder le aduce una câte una (~3 secunde fiecare, pe rând, ca să nu sufoce cele 3 conexiuni); a doua oară apar instantaneu. La clipuri iau doar primii 12 MB din film ca să scot cadrul, nu tot filmul.

Platforma „Hambar": un singur program, mai multe storage-uri

Pagina asta nu mai e un program de unul singur, ci o platformă cu nume și versiune: Hambar. Același cod rulează și pe storage4500.la-rousse.eu, și va rula pe fiecare storage pe care îl mai adaugi (Baspool, de exemplu) — fiecare cu fișierele și storage-ul lui, dar cu exact aceeași interfață. Versiunea scrie în colțul de sus al fiecărei pagini.

Aici e baza. media.ambru.net e locul unde se scrie codul; celelalte sunt copii. De-aia pagina asta are butonul „🧩 Instalări": îți arată fiecare instalare, ce versiune are și dacă a rămas în urmă — bec verde „la zi", galben „în urmă", roșu „nu răspunde".

Nu mai copiezi nimic de mână. Lângă o instalare rămasă în urmă apare butonul „actualizează la vX.Y.Z", iar sus de tot „actualizează tot ce a rămas în urmă". Apeși o dată: instalarea își trage singură codul de aici, îl verifică, face copie de siguranță a ce avea și repornește. Dacă noul cod nu pornește, se întoarce singură la versiunea veche în 12 secunde (plasa rulează ca serviciu separat, ca să nu moară odată cu repornirea pe care o supraveghează). Ce s-a întâmplat scrie în /opt/incarcare/update.log, pe fiecare server.

Cum adaugi un storage nou (Baspool, când îi vine rândul): pui programul pe serverul lui, iar în /etc/incarcare.json de acolo scrii "baza": "https://media.ambru.net" și aceeași "cheie_update"; aici, pe bază, îl adaugi în lista "copii". Din clipa aia apare în „Instalări" și se actualizează cu un buton.

Ce e la fel și ce e diferit: codul (app.py, index.html) e identic la bit pe toate instalările — se vede după „amprenta" din panoul Instalări. Ce ține de serverul lui (storage, parolă, folderul protejat, linkul către panou, bugetul copiilor) stă numai în /etc/incarcare.json și nu se atinge la actualizare.

Proba automată: verifica-pagini are o probă care cade dacă o instalare a rămas în urmă sau nu răspunde — deci afli fără să întrebi.

Digi Storage: al treilea storage, cu FTP
None

Ce e: un cont de stocare la Digi (fullmarket.ro@gmail.com). Îl deschizi din butonul „Digi Storage" din bara de sus (pagina lor de logare: storage.rcs-rds.ro) sau prin FTP.

Cum se conectează prin FTP

câmpvaloare
Adresastorage.rcs-rds.ro, port 21
ProtocolFTP cu TLS explicit (ftpes://), adică parola nu circulă în clar
Utilizatorfullmarket.ro@gmail.com (același ca la contul web)
Parolacea a contului; stă în /servere → „Digi Storage", nu în ghid
Foldere la rădăcinăDigi Cloud și Shared

Testat pe 14 octombrie 2026: am urcat un fișier test-claude.txt în Digi Cloud, l-am listat și l-am citit înapoi — identic. Deci scrierea și citirea merg.

De știut: alte emailuri pe care le-ai încercat (helpukrainianpeople@gmail.com, gotonextlevel.eu) sunt respinse de serverul FTP. Serverul nu copiază nimic singur pe el: copiile de noapte merg tot pe storage-ul principal. Logările lui stau la „Conexiuni" (/servere), lângă storage-ul principal.

Extensia mea: DNG → PNG
None

Ți-ai făcut o extensie de Chrome care transformă pozele DNG (format raw, de la aparat) în PNG, la rezoluție completă, direct pe calculatorul tău — nu se urcă nimic nicăieri. Am pus un buton către ea pe prima pagină și în Aplicațiile mele.

Cum o instalezi

  1. Apeși pe card și se descarcă dng-to-png-extension.zip.
  2. O dezarhivezi undeva pe calculator (iese un folder extension).
  3. În Chrome scrii în bară chrome://extensions.
  4. Pornești Developer mode din colțul dreapta-sus.
  5. Apeși Load unpacked și alegi folderul extension.
  6. Apeși pe pictograma extensiei din bara Chrome și se deschide convertorul.

Merge offline, până la 100 de poze deodată, PNG pe 16 biți (toată gama de culori din senzor). Fiindcă e „încărcată de tine” (load unpacked), rămâne atâta timp cât ții folderul pe calculator.

Aplicațiile mele: ce am instalat
None

Ai zeci de unelte pe servere și e firesc să nu le mai ții minte pe toate. Pagina /aplicatii ți le arată pe toate într-un singur loc, cu o pictogramă colorată pentru fiecare și o linie care spune la ce folosește.

Cum e organizată

Nu e o listă lungă, ci grupată pe ce fac uneltele: chat cu AI, automatizări, modele de AI, video, fișiere și supraveghere. Fiecare grup are culoarea lui, ca să-l recunoști din ochi.

Cum o folosești

Apeși pe o dală și se deschide unealta. Cele care sunt pe serverul tău se deschid în aceeași filă; cele cu o săgeată ↗ se deschid într-o filă nouă, ca să nu pierzi panoul.

Lista e scrisă pe server. Când îți instalez o unealtă nouă, o adaug și aici — deci pagina rămâne mereu oglinda a ce ai cu adevărat.

Harta: ce mașini am și la ce folosesc
None

Ai șapte mașini plătite lunar. Peste un an n-o să mai ții minte de ce ai plătit fiecare. Pagina /harta răspunde la asta dintr-o privire.

Schema de sus

Arată cine cu cine vorbește. În mijloc e Hetzner 1 — creierul: acolo stau panoul, toate uneltele și de acolo pleacă legăturile. În dreapta sunt cele două servere cu domeniu propriu (baspool.eu și la-rousse.eu) și găzduirea de cPanel, cu cele 35 de domenii și mailul. Jos e magazia de 1 TB, unde ajung copiile. Stânga jos, punctat, sunt cele trei VPS-uri mici nefolosite.

Dacă pică Hetzner 1, pică tot ce ai în browser. Celelalte merg mai departe — site-urile clienților nu depind de el.

Fișa fiecărui server

Sub schemă, fiecare mașină are cartea ei de identitate: adresa, domeniul, pe ce port intri și dacă intră cu parolă sau doar cu cheie, plus lista a ce rulează efectiv pe ea. Datele vin din aceeași listă ca pagina /servere, deci nu se pot desincroniza.

Șablonul pentru un server mic

Ultima parte a paginii e o rețetă în cinci pași, pentru când pui în funcțiune o mașină nouă de 2 GB. Regula de bază: o mașină mică face bine un singur lucru. Dacă pui trei unelte pe 2 GB de memorie, se bat între ele și cad toate odată.

Ordinea contează: întâi siguranța (portul mutat, firewall, fail2ban), apoi ușa de la stradă (Caddy cu HTTPS luat singur), apoi unealta propriu-zisă, apoi urmărirea (ca să afli când cade) și la final copiile — dar numai dacă mașina ține date. Dacă nu ține, se reface din șablon în douăzeci de minute, deci n-are ce salva.

Proxy-urile: unde le ții și cum știi care merg
None

Un proxy e un calculator prin care treci atunci când ieși pe internet. Site-ul pe care îl vizitezi vede adresa lui, nu pe a ta. Tu cumperi proxy-uri de la furnizori — Webshare, de exemplu — și le primești ca o listă lungă de adrese.

Problema e că ai liste de pe mai multe conturi, ale tale și ale clienților, iar proxy-urile mor în timp: unele sunt blocate, altele expiră, altele pur și simplu nu mai răspund. Fără un loc în care să le ții, afli că nu merg abia când ai nevoie de ele.

Ce face pagina /proxy

ce vreicum faci
Adaugi o listăO lipești în căsuță, un proxy pe linie. Înțelege toate formele: gazdă:port, gazdă:port:utilizator:parolă, utilizator:parolă@gazdă:port sau cu http:// în față.
Imporți de la furnizorPui adresa de descărcare a listei. La Webshare o iei din Proxy → List → Download. Adresa rămâne salvată: când furnizorul schimbă lista, apeși ↻ și se reimportă.
Vezi care mergFiecare proxy are o bulină: verde merge, roșu cade, galben n-a fost încă testat.
Vezi pe unde iesVerificarea nu se mulțumește să vadă că proxy-ul răspunde: trece prin el și întreabă ce IP și ce țară se văd la ieșire. Așa știi dacă un proxy „din Germania" chiar iese din Germania.
Faci curatUn buton șterge dintr-o dată toate cele care cad.
Iei lista bună„Descarcă lista care merge" îți dă un fișier text doar cu cele active și funcționale, gata de pus în altă unealtă.

Verificarea singură

Un ceas de sistem le verifică la fiecare 6 ore, fără să ceri tu. Dacă serverul a fost oprit când venea rândul, verificarea se face la pornire. Poți oricând porni una pe loc, din buton — se verifică 24 deodată, deci o listă de câteva sute durează un minut-două.

Dacă vezi nesuportat la un proxy, înseamnă că e de tip SOCKS. Pentru acelea e nevoie de o bibliotecă în plus pe server; spune-mi și o pun.

Discuțiile cu Claude: unde se duc?
Schiță: discuția e preluată de poștaș după 15 minute de liniște, devine .md și ajunge în Drive, apoi în copiiDiscuțiaaici, cu ClaudePoștașul15 min linișteDrivecosminambruDrive 2Storageface .md, ascunde cheile

Cine scrie: Claude Code ține singur un jurnal al fiecărei discuții, pe server. Ca un reportofon pornit.

Cine trimite: un program separat, „poștașul". În fiecare minut se uită la jurnale. Dacă într-unul nu s-a mai scris nimic de 15 minute, discuția s-a terminat: o face .md, ascunde cheile și parolele (devin ***) și o trimite. Noaptea la 03:40 mai face o tură completă.

Unde ajunge: în Drive cosminambru, la
Claude / Documente / Conversatii-AI / Claude-Code / <data>-<subiect> /
lângă discuțiile din Perplexity, Cursor și Codex pe care le ai deja acolo. Fiecare dosar are discutie.md (toată discuția) și rezumat.md (pe scurt).

Merge singur de pe 1 octombrie 2026. Pagina /discutii îți arată ce s-a salvat, când și unde. Tot poștașul copiază, la fiecare 30 de minute, și filmele din montaj pe storage.

Taskuri cu AI: ce lucrăm și ce e gata
None

Pagina /taskuri ține lista a tot ce lucrezi cu AI-ul. Când apare un task într-o discuție, AI-ul îl pune acolo, iar lista rămâne salvată pe server, chiar dacă discuția se întrerupe.

Cele trei stări:

  • ○ De făcut — taskul e înregistrat.
  • ✓ Făcut de AI (galben) — AI-ul zice că l-a terminat și așteaptă confirmarea ta.
  • ✓ Confirmat (verde) — apare doar după ce apeși tu „Confirm că e făcut”. AI-ul nu poate pune singur bifa verde.

Paginare: câte 20 de taskuri pe pagină, implicit. Din lista „pe pagină” alegi 10, 20, 30, 50, 100, 200 sau 500; peste limită apar paginile 2, 3 etc. Mai ai filtre pe stare și căutare după text.

Din terminal: task add "titlu" adaugă, task facut ID îl marchează făcut de AI, task lista arată lista.

Cele două conturi Google Drive
Schiță: contul cosminambru e principal; din el se copiază în contul de rezervă și pe storagecosminambruPRINCIPALdriver.for.aioglindăstorageoglindădoar într-un sens

cosminambru@gmail.com e contul principal: aici e folderul Claude cu CLAUDE.md, regulile și tot ce vezi pe calculator în My Drive\Claude. Aici scrie serverul.

driver.for.ai.tools@gmail.com e rezerva (l-ai făcut pentru OLX). Primește o copie identică, la același drum de foldere. La fel și storage-ul.

Important: copierea merge într-un singur sens, din principal spre rezervă. Lucrezi mereu în cosminambru; ce schimbi direct în rezervă se suprascrie la următoarea copiere.

Cum continui o discuție în alt AI?
Schiță: iei discutie.md din Drive și o dai altui AI ca să continueDriveConversatii-AIdiscutie.mdo descarciPerplexitysau alt AI„continuă de unde am rămas”
  1. Deschizi Drive-ul (cosminambru) → Claude / Documente / Conversatii-AI / Claude-Code.
  2. Dacă nu știi care e discuția, deschizi întâi CUPRINS.md sau rezumat.md din dosare.
  3. Descarci discutie.md din dosarul bun.
  4. În Perplexity, Manus, ChatGPT sau alt AI, încarci fișierul și scrii:
Ți-am atașat o discuție pe care am avut-o cu alt asistent AI.
Citește-o toată. Spune-mi pe scurt ce s-a hotărât și ce a rămas de făcut,
apoi continuăm de unde am rămas.

Cheile și parolele din fișier sunt *** — dacă AI-ul are nevoie de una, i-o dai tu separat.

Cum păstrez firul discuției dacă schimb contul?
Schita: cand se termina creditele pe un cont, pornesti alt cont si ii zici sa citeasca ultima discutieCont 1credite terminateCont 2pornesti claudeciteste .jsonlcel mai recentcontinua din acelasi punct

Situația: ești în terminal, vorbești cu Claude Code, și se termină creditele pe contul curent. Vrei să continui exact de unde ai rămas, pe alt cont. Firul discuției nu se pierde — trebuie doar să-i spui noului Claude unde să-l citească.

Metoda rapidă: „citește și continuă"

  1. Creditele s-au terminat → sesiunea se oprește singură.
  2. Deschizi un terminal nou și pornești Claude Code pe celălalt cont.
  3. Îi scrii un singur lucru:
Citește /root/.claude/projects/-root/ — ia cel mai recent .jsonl
care NU e al tău și continuă de unde a rămas celălalt.
Nu repeta ce s-a făcut deja.

Claude citește toată discuția anterioară și continuă din același punct. Nu trebuie să știi numele fișierului — îi zici „cel mai recent" și îl găsește singur.

Metoda cu rezumat pregătit

Dacă vezi că ți se apropie creditele, spune-i înainte să se termine:

Scrie un rezumat cu ce am făcut și ce a rămas de făcut,
în /root/continuare.md

Așa, noul Claude are un rezumat gata și pornește mai repede.

Metoda cu arhiva (dacă a trecut timp)

Dacă au trecut mai mult de 15 minute de la ultima discuție, poștașul a salvat-o deja în arhivă ca .md lizibil. Îi zici noului Claude:

Citește cea mai recentă discuție din
/opt/discutii/arhiva/Claude-Code/ și continuă de unde am rămas.

De reținut

  • Firul nu se pierde — e salvat pe server, indiferent de cont.
  • Fiecare sesiune Claude Code are propriul fișier — nu se amestecă între ele.
  • Dacă ai mai multe sesiuni deschise simultan, fiecare scrie în fișierul ei.
  • Discuțiile se salvează automat și în arhivă, și pe Drive, după 15 minute de liniște.
  • Poți face asta de câte ori vrei — contul 1, contul 2, iar contul 1, fără să pierzi nimic.
Pas cu pas: cum fac un film
  1. Intri pe /montaj și pui cheia de acces.
  2. „Fișierele tale" → „Alege fișiere". Pui clipuri, poze, o voce, muzică. Rămân pe server până le ștergi tu.
  3. „Fă filmul" → apeși pe fiecare fișier ca să-l adaugi în film. Ordinea în care le apeși e ordinea din film.
  4. Pentru fiecare clip poți scrie titlu și subtitlu și alege unde apar: sus, la mijloc, jos. La poze, scrii câte secunde să stea pe ecran (implicit 4).
  5. Alegi formatul: 9:16 pentru TikTok și Reels, 16:9 pentru YouTube, 1:1 sau 4:5 pentru postări.
  6. Alegi vocea și, dacă vrei, muzica de fundal. Volumul se potrivește singur.
  7. Apeși „Fă filmul". Se face o singură lucrare pe rând; dacă mai e una în față, aștepți.
  8. Când e gata, apare jos cu player. Îl vezi, îl descarci.

Important: de pe server filmul se șterge după 24 de ore. Dar la cel mult 30 de minute după ce e gata, se copiază singur pe storage — de acolo nu se mai pierde. După ștergere, pagina îl redă de pe storage, iar linkul „Galeria tuturor filmelor" îți arată tot ce ai făcut vreodată.

Dacă dă eroare: cel mai des e un fișier pe care ffmpeg nu-l înțelege. Încearcă fără el și spune-mi care era.

Pas cu pas: atelierul video (uneltele ffmpeg)

Montajul face filme din bucăți. Atelierul face celelalte lucruri, pe un fișier care există deja: îl tai, îl faci mai mic, îi scoți sunetul, îl întorci, faci un GIF din el. Adresa: unelte.ambru.us (sau butonul „Atelier video" din bara de sus).

  1. Intri și pui cheia de acces — aceeași de la celelalte pagini.
  2. Biblioteca: tragi fișierele în pagină, sau apeși „Alege fișiere", sau pui o adresă de pe internet și apeși „Adu de pe internet". Fișierele rămân acolo până le ștergi tu, cu ×.
  3. Din meniul din stânga alegi unealta. Sunt pe grupe: Video (taie, convertește, comprimă, comprimă în bulk, decupează, viteză, rotește, lipește), Sunet (scoate sunetul, schimbă sunetul, normalizează volumul), Imagine (GIF, cadre din film, siglă), Text (subtitrări), Avansat (parametri de mână).
  4. Completezi câmpurile — sub fiecare scrie ce înseamnă — și apeși „Fă lucrarea".
  5. Jos vezi bara de procent cât lucrează, iar la final playerul, mărimea fișierului și butonul de descărcare.

Butonul „Arată comanda ffmpeg" îți scrie comanda exactă, fără s-o ruleze. E bun la două lucruri: înveți din ea, sau o copiezi și o rulezi singur în terminal, pe un fișier mai mare.

când vrei să…unealta
trimiți un film pe WhatsApp și e prea mareComprimă la N megabytes — îi dai ținta, el socotește restul
ai mai multe clipuri de sute de MB și le vrei toate sub 50 MBComprimă în bulk — le alegi pe toate odată, rezultatele apar împreună și le iei dintr-un singur .zip. Aceeași unealtă e și cardul „Comprimă video” în Flow, Muse, Design, Grok Studio și Grok Bot Studio: clipurile comprimate se salvează singure în galeria fiecăreia
faci un Reel dintr-un film filmat pe latDecupează, format 9:16, „umple"
ai nevoie doar de vocea dintr-un interviuScoate sunetul → mp3
vrei o miniatură pentru YouTubeScoate cadre din film, un cadru de la secunda X
filmul e întors pe o parteRotește — șterge și eticheta de rotire
vrei subtitrări care se văd pe InstagramSubtitrări, „lipite"

Ce nu merge, dinadins: în câmpul liber opțiunile sunt pe listă albă, iar filtrele care deschid fișiere de pe server (movie=, textfile=, file:) sunt refuzate — altfel pagina ar fi o ușă de citit serverul. Rezultatele se șterg după 24 de ore; fișierele din bibliotecă rămân.

Ghidul lui propriu, cu toate câmpurile fiecărei unelte, e la unelte.ambru.us/ghid și se face singur din definițiile uneltelor, deci nu poate rămâne în urmă.

Pas cu pas: cum folosesc Agenții AI

Ai 91 de conturi cu credite (Manus, Apify, Vercel, Gemini). Pagina alege singură contul cu cele mai multe credite.

  1. Intri pe /agenti cu cheia de acces.
  2. Sus vezi conturile grupate pe furnizor, fiecare cu soldul lui. Cele roșii sunt goale sau cu cheia moartă.
  3. La „Chat" alegi tipul: text, imagine, voce, agent, web, căutare sau video.
  4. Scrii întrebarea și apeși trimite. Răspunsul apare jos. Dacă e lung, pagina îți dă un link spre un fișier .txt, ca să nu încarce pagina.
  5. „Comparație" trimite aceeași întrebare la două conturi diferite, ca să vezi care răspunde mai bine.
  6. „Chei de automatizare" îți face o cheie pe care o pui în n8n sau Activepieces; ea rotește singură între conturi, ca să nu termini creditele unuia singur.

De știut: Manus primește 6.000 de credite în fiecare zi la ora 21:00 (ora UTC); o sarcină costă 4–14 credite. Apify se plătește la consum — generările video chiar costă bani, deci nu te juca acolo.

Pas cu pas: cum fac o ofertă pentru un client

Fiecare client primește adresa lui, de forma numeclient.ambru.net, cu lacăt verde, ascunsă de Google.

  1. Îmi spui ce vrei: „fă-mi popescu.ambru.net cu pagina asta, filmul ăsta și oferta în PDF".
  2. Eu creez subdomeniul, îi pun certificatul HTTPS gratuit și urc fișierele. Durează câteva minute.
  3. Îți dau linkul. Îl trimiți clientului.
  4. Când nu-ți mai trebuie, îmi spui și îl șterg.

Ce poate conține: pagini HTML, filmele făcute în montaj, imagini, PDF-uri, prezentări PowerPoint de descărcat.

Ce e deja pregătit: ambru.net stă pe storage, iar orice subdomeniu ajunge automat acolo — nu mai trebuie umblat la DNS. Vezi un exemplu la demo.ambru.net.

Google nu le indexează, deci numele clientului nu apare în căutări.

Pas cu pas: cum recuperez ceva dintr-o copie

În fiecare noapte la 03:40, serverul se copiază singur pe storage. Se păstrează ultimele 7 nopți.

Dacă vrei doar să vezi ce e acolo:

  1. Intri pe media.ambru.net → folderul copii-0001119.
  2. Vezi fișiere de forma copie-20261001-034000-agenti.tar.gz.gpg: data, ora și ce conține.

Dacă vrei să recuperezi ceva: spune-mi ce și din ce zi. Eu aduc arhiva, o descui și pun fișierele la loc. Nu trebuie să faci tu nimic tehnic.

Dacă serverul moare de tot: arhivele sunt pe storage, iar tu ai parola de criptare (din /servere, bara „Parole de descuiat arhivele"). Cu ele, se reface totul pe un server nou. De-aia am insistat să ții parola aia și undeva în afara serverului.

Pas cu pas: cum fac o automatizare

O automatizare înseamnă „când se întâmplă X, fă Y", fără să stai tu la calculator.

  1. Îmi spui ce vrei, în cuvintele tale: „când apare un film nou, trimite-mi linkul pe Telegram".
  2. Eu o construiesc în Activepieces, direct de aici, din discuție — în contul tău de pe cloud.activepieces.com, singurul la care am legătură directă.
  3. Intri pe cloud.activepieces.com și o vezi gata făcută.
  4. Apeși „Test" ca să vezi dacă face ce trebuie.
  5. Apeși „Publish" și de atunci merge singură.

Ce declanșator poate avea: o oră fixă („în fiecare zi la 8"), un email nou, un fișier nou, un anunț nou, sau o chemare din altă parte.

Ai două Activepieces, să nu le încurci: unul pe cloud.activepieces.com (7 fluxuri, aici le construiesc eu) și unul al tău, la activepieces.ambru.us (din 23 octombrie 2026 rulează pe serverul Amsterdam; detalii la „Activepieces" mai jos). Fluxurile de pe cloud pornesc toate „la chemare" (webhook), adică stau degeaba până le cheamă cineva — de-aia par să nu facă nimic. Un flux util are nevoie de un declanșator adevărat: o oră fixă, un email, un fișier nou.

Pas cu pas: raportul serverului
  1. Intri pe /server.
  2. Vezi, pe zile: cât de încărcat a fost procesorul și memoria, la ce oră a fost vârful și ce rula atunci.
  3. Mai jos sunt alertele: memorie peste 90%, disc plin, serverul căzut.

Datele vin de la Beszel, care măsoară tot timpul. Panoul lui, cu grafice în timp real, e la stats.ambru.us.

Când să te uiți: dacă o pagină merge greu sau un film se face mai încet decât de obicei.

Conexiuni: unde-mi țin parolele și cum intru
Schita: pagina /servere tine toate masinile si intra pe fiecare sa vada ce ruleaza/servereharta + paroleHetzner 1cPanelHetzner 2…ce ruleazacat loc e

Pagina /servere ține toate mașinile tale: Hetzner 1 (serverul pe care lucrăm), Hetzner 2 (al lui Sever), serverul cPanel cu site-urile, VPS-urile InterServer. Cu „+ Adaugă un server" pui altele; fiecare are „Șterge serverul". Apeși pe o bară: datele se văd direct, parola cu „arată"; „Editează" doar când schimbi ceva.

Parolele stau aici, pe server (/etc/servere.json, citit doar de root) — nu pe calculatorul tău, nu în chat. Tot aici, jos, sunt barele Spațiu de stocare, Nextcloud și Parole de descuiat arhivele.

Parolele de la n8n și Activepieces (din 4 octombrie 2026; Activepieces rulează acum pe Amsterdam): în /servere ai acum bara „Automatizări (n8n și Activepieces)". Acolo sunt adresa, utilizatorul și parola pentru fiecare — ascunse, le vezi cu „arată". Amândouă uneltele sunt deschise către internet, deci parola e singura ușă: nu le da mai departe.

Cum schimbi parola, dacă bănuiești că a scăpat: apeși „Parolă nouă · n8n" sau „Parolă nouă · Activepieces". Pagina face o parolă de 24 de caractere, o pune chiar în unealtă și o scrie în bară. Sesiunile deschise în acel moment cer parola din nou. La n8n durează vreo 20 de secunde, pentru că unealta repornește — butonul îți spune „gata" abia când n8n chiar răspunde iar. Poți și să scrii tu o parolă în căsuță și să salvezi: o pune tot în unealtă, nu doar în pagină. Datele stau în /etc/automatizari-acces.json, citit doar de root.

„Verifică ce e pe el" intră pe mașină și îți arată: sistemul, memoria și discul libere, containerele, serviciile, firewall-ul, domeniile de pe ea și, la Hetzner, tipul și prețul pe lună.

Cum intri prin terminal (SSH), din 2 octombrie 2026: pe cPanel și pe Hetzner 2, SSH-ul e pe portul 22422 și primește doar chei, nu parole — roboții, care ghiceau parola de root de zeci de mii de ori, n-au ce ghici. Cheile pentru Cursor, AntiGravity sau alte unelte le faci tot aici, la „Chei SSH pentru uneltele tale": „Fă o cheie nouă", „Descarcă", iar dacă pierzi una, „Taie cheia". Acolo e și comanda exactă pentru fiecare server.

Logarea în cPanel, WHM și webmail din browser rămâne cu parola de root — cea nouă, lungă, pe care o vezi în /servere.

Ca să nu ții minte nimic: în fiecare bară de server e un rând 🔑 „Cum intru pe el", cu portul, comanda întreagă și scris negru pe alb dacă merge cu parolă sau doar cu cheie. Dacă vrei, scrii tu acolo textul tău (de pildă pentru un client); dacă îl lași gol, îl scrie pagina singură din datele serverului. Deci nu-l afli din memorie, îl citești.

Dacă rămâi totuși pe dinafară (ai uitat portul, ai pierdut cheia, ai greșit o setare): la serverele Hetzner intri în contul Hetzner → serverul → butonul Console. E un ecran legat direct la mașină, ca și cum ai sta cu tastatura în fața ei: nu trece prin SSH, deci merge și când SSH-ul e stricat sau pe alt port. Te loghezi cu root + parola din /servere (parola de pe mașină rămâne valabilă la consolă chiar dacă SSH-ul primește doar chei). De acolo repari portul sau pui cheia înapoi. Pentru serverul cPanel ai, în plus, și WHM în browser. Hetzner 2 e în contul lui Sever, deci la consola lui ajungi doar prin el — de asta acolo nu închidem niciodată și parola de root.

OpenCode: un al doilea Claude, pe server, cu modele gratuite

Ce e: o unealtă ca mine, dar open-source și gratuită, instalată pe Hetzner 1 pe 2 octombrie 2026 (versiunea 1.18.34). Lucrează în terminal: îi dai o sarcină în română, ea citește și scrie fișiere pe server.

Nu cere nicio cheie și nu costă nimic: vine cu 9 modele gratuite incluse. Testată: merge.

Cum o pornești (din terminalul serverului): opencode pentru fereastra întreagă, sau opencode run "ce vrei să facă" pentru o singură comandă.

În browser, fără terminal: butonul OpenCode din bara de sus, sau bara „OpenCode" de pe prima pagină. Adresa e opencode.ambru.us. Îți cere utilizator opencode și o parolă (24 de caractere), pe care o vezi în /servere → bara „OpenCode (fereastra web)" → „arată". De acolo o poți și schimba.

La ce-ți folosește: e o a doua pereche de mâini pentru lucruri mici, când nu vrei să mă deranjezi pe mine sau când vrei să nu consumi din abonament. Atenție: are drepturi de root pe server, ca mine — deci ce-i ceri, face. Cine are parola aceea poate schimba orice pe server: nu o da mai departe și n-o lipi în chat.

LibreChat și AnythingLLM: două ferestre de chat, ale tale

De ce două: fac lucruri diferite. LibreChat e ca ChatGPT — conversații salvate, pui întrebări, ceri texte. AnythingLLM e pentru documente: încarci PDF-uri, contracte, manuale, și întrebi despre ele; răspunde din ce scrie acolo, nu din memorie.

Unde sunt: librechat.ambru.us și anythingllm.ambru.us, cu butoane în bara de sus. Fiecare cere cont și parolă proprii — le vezi în /servere → bara „Chat cu modele" → „arată".

Pe ce mașină stă fiecare: LibreChat pe Hetzner 1 (două containere: aplicația și baza de date). AnythingLLM pe VPS1, ca să nu încarce serverul principal — legătura cu el trece printr-un tunel SSH (serviciul tunel-vps1), deci partea de pe VPS nu e expusă în internet: Caddy de pe Hetzner 1 vorbește cu ea prin tunel.

De unde vin modelele: din uneltele tale, prin LiteLLM. Fiecare are cheia ei, făcută din pagina /control (numele lor: „LibreChat" și „AnythingLLM"), limitată la furnizorii tăi gratuiți. Nu costă nimic în plus și nu cere nicio cheie nouă de la tine.

Un singur model, numit „text": așa funcționează cheile din /control — nu dau model cu model, ci o grupă. „text" alege singur dintre modelele tale gratuite care merg atunci. Dacă vrei să alegi anume un model, se poate, dar cere altă cheie — spune-mi.

LibreChat are acum 5 containere din cele 6 oficiale (pornite pe 4 oct. 2026, la cererea lui): aplicația, baza de date, căutarea în conversații (meilisearch), plus baza de vectori și motorul de documente (vectordb + rag_api) — deci poți încărca PDF-uri și în LibreChat, nu doar în AnythingLLM. Rămâne scos doar panoul de administrare: fiind un singur cont și înregistrările închise, n-are ce administra. Toate cinci iau împreună sub 1 GB.

Capcana de la documente, ca să știi de ce e așa: modelele care transformă textul în numere („embedding") dau vectori de mărimi diferite — unul 4096 de numere, altul 3072. O bază de vectori nu poate amesteca mărimi. De aceea cheia pentru documente e făcută pe un singur furnizor cu un singur model (nebius, Qwen3-Embedding-8B, 4096) — așa mărimea e mereu aceeași. Dacă vreodată se schimbă modelul ăla, documentele vechi trebuie încărcate din nou.

Verificat cap-coadă cu un contract scris în română: s-a încărcat, s-a tăiat în bucăți, iar la întrebarea „care e penalitatea pentru întârziere?" a găsit exact paragraful potrivit.

Cine poate intra: la LibreChat înregistrările sunt închise — nimeni nu-și mai poate face cont, doar tu intri. Verificat: o cerere de cont nou primește „interzis".

Composio: aplicațiile tale legate la un loc

Ce e: o punte între serverele tale și aplicațiile din care vrei să citești sau să scrii — Gmail, Google Drive, Notion, GitHub, Canva, Supabase și încă vreo 500. O dată conectate în contul tău Composio, programele tale le pot comanda fără să te mai loghezi de fiecare dată.

Pagina ta: composio.ambru.us (butonul „Composio" din bara de sus). Îți cere cheia de acces a panoului, apoi arată ce aplicații sunt legate și pe ce adresă de email, plus care cont e cel folosit implicit. De acolo pui și cheia de API.

Atenție, lucrul cel mai important: Composio nu rulează pe serverul tău și nu poate. Serviciul lor e la ei; găzduirea pe server propriu există doar pe planul lor Enterprise, cu contract. Pe serverele tale e doar biblioteca-client, în /opt/composio-venv — o unealtă care vorbește cu ei. De asta Composio n-are parolă proprie și n-a avut subdomeniu până acum: pagina de la composio.ambru.us e făcută de noi, nu de ei.

Cheia de API: se ia din contul tău de pe composio.dev → Settings → Project Settings → secțiunea API Keys. Începe cu ck_ (documentația lor zice ak_, dar e greșită). Se lipește în pagină. Pagina o verifică pe loc cu o cerere adevărată; dacă Composio o refuză, nu o salvează și rămâne cea de dinainte. Se păstrează în /etc/composio.env, citit doar de root, și nu se mai întoarce niciodată în pagină.

La ce-ți trebuie cheia, dacă oricum îmi poți cere mie: eu ajung la Composio prin legătura mea, deci pentru ce-ți fac eu nu e nevoie de nicio cheie. Cheia e pentru ca serverul să lucreze singur: un flux din n8n care îți atinge mailul la 3 noaptea, un script care pune ceva în Notion, OpenCode care cere un fișier din Drive — fără mine la mijloc.

De știut despre conturi: în contul tău Composio sunt legate mai multe adrese de Gmail (peste zece). Contul pe care-l vrei folosit e cosminambru@gmail.com, iar pagina îl marchează cu eticheta „contul tău", ca să-l vezi dintr-o privire între celelalte.

AntiGravity: modelele Gemini gratuite și testul zilnic

Ce e: AntiGravity e calea prin care OpenCode poate folosi modele Gemini de la Google, gratuit, pe două conturi ale tale. Merge printr-un plugin din ~/.config/opencode/opencode.jsonc.

Ce s-a întâmplat: între 2 și 4 octombrie 2026, Google a răspuns 429 („prea multe cereri") la tot, pe amândouă conturile. Fiind amândouă lovite, deși doar unul fusese marcat ca limitat, blocajul era pe adresa serverului, nu pe conturi. Pe 4 octombrie blocajul s-a ridicat.

Ce merge acum (verificat 4 oct. 2026): gemini-3.1-flash-lite, gemini-3.1-flash-image și gemini-2.5-flash, pe amândouă conturile. Modelele gemini-3-flash-preview, gemini-3-pro-preview, gemini-3-pro-image și gemini-3.1-flash-lite-preview dau 404 — ăsta nu e blocaj, e lipsă de acces: Google nu le-a dat conturilor tale, ar trebui cerut acces de preview.

Testul zilnic: în fiecare dimineață, pe la 6:40 (cu o abatere la întâmplare de până la 20 de minute, ca să nu lovim Google mereu la aceeași secundă), serverul trimite singur o cerere minusculă — cuvântul „ping" și cel mult 8 jetoane de răspuns — pe fiecare cont și pe fiecare model. Nu costă nimic și durează o jumătate de minut.

Unde vezi rezultatul: pe prima pagină a panoului, sus, e o linie cu un bec: verde = merge, roșu = blocat, galben = ceva nelămurit. Scrie și când a fost verificat ultima dată. Nu trebuie să intri nicăieri și nu-ți vine nicio notificare — o vezi când deschizi panoul.

Dacă vrei să-l rulezi chiar acum, din terminalul serverului: python3 /opt/antigravity-test/verifica.py. Istoricul ultimelor 180 de zile e în /opt/antigravity-test/istoric.json, iar starea de acum în /etc/antigravity-stare.json. Ceasul e antigravity-test.timer; dacă serverul a fost oprit la ora aceea, rulează la pornire.

Botul de OLX din Telegram: cum îl folosesc

Ce face: caută pe OLX în locul tău, direct din Telegram, și poate repeta căutarea singur — chiar dacă nu ești în Telegram — trimițându-ți doar anunțurile noi.

Cum cauți: scrii pur și simplu ce vrei, ca pe site:

  • motorola g54
  • motorola g54 max 500
  • iphone 12 min 400 max 900 in Cluj-Napoca

Implicit caută doar telefoane, fără folii, huse, display-uri sau piese. Dacă vrei chiar tot, adaugi cuvântul tot la final: motorola g54 max 500 tot.

Pe fiecare rezultat ai două butoane: 💾 Salvează (îl citește complet — titlu, descriere, preț, localitate, poze — și ți-l trimite în Telegram) și 🔗 Deschide (linkul către OLX).

Butoanele de jos: 🗂 Categorie (unde să caute; sus ai „Telefoane fără accesorii”, o categorie făcută de noi), 💰 Preț (de la / până la, rămân până le schimbi), 📍 Locație (județ → literă → localitate, din toate cele 10.532 de localități OLX), 💾 Salvate (anunțurile tale salvate).

Categoriile au trei niveluri

OLX își împarte anunțurile pe trei niveluri, nu pe două. De exemplu:

Servicii → Servicii specializate și pentru afaceri → Campanii SEM & SEO, creare website

În meniul 🗂 Categorie, subcategoriile care mai au ceva sub ele sunt marcate cu o săgeată „›" la coadă. Apeși pe ele și se deschide al treilea nivel. Sus ai mereu butonul „📂 Tot: …", dacă vrei toată subcategoria, nu doar o felie din ea.

De ce contează: dacă dai o căutare de „web design" în toată categoria Servicii, primești și instalatori, și traduceri, și contabili. Dacă intri pe al treilea nivel, primești doar ce te interesează — mult mai puține anunțuri, dar toate bune.

Căutări care se repetă singure — și cum le oprești

După o căutare poți apăsa ⏰ În fiecare oră sau 📅 În fiecare zi. De atunci botul o repetă singur. Ai grijă cu „în fiecare oră”: dacă uiți una pornită, îți trimite mesaje la nesfârșit.

Ca să vezi ce ai pornit și să oprești: apeși butonul ⏰ Orare sau 📅 Zilnice de jos (sau scrii /urmarite). Îți arată lista, iar lângă fiecare ai ⏸ ca s-o oprești temporar și 🗑 ca s-o ștergi de tot.

Cât loc ocupă pe server: foarte puțin — vreo 2 MB cu tot cu pozele salvate. Chiar dacă ai zeci de căutări pornite, nu-ți umple serverul. Dacă vezi discul plin, cauza e în altă parte.

Ce nu poate: numărul de telefon al vânzătorului. OLX îl arată doar celor logați, deci îl vezi apăsând „Arată” pe pagina anunțului.

10k Website: manualul site-ului scump

Adresa: 10kwebsite.ambru.us. Răspunde la o singură întrebare: cum faci, cu AI, un site care valorează 10.000 $ și nu 300. Pagina e deschisă de tot (6 oct. 2026): intră oricine, fără parolă, și poate și încărca și bifa. O poți deschide în fața unui client sau o poți trimite pe mail ca atare.

Are și șase desene: anatomia unei pagini scumpe, aceeași pagină la trei prețuri (200 $ / 3.000 $ / 10.000 $), drumul fișierului tău, cei opt pași, cele nouă straturi și cadranele probei de livrare.

Are cinci capitole:

capitolulce găsești
Ce înseamnă 10ktabelul 300 $ / 3.000 $ / 10.000 $ pe nouă rânduri: text, imagini, tipografie, viteză, conversie, predare. Asta e felia pe care o arăți când cineva zice „am găsit unul la 300"
Manualullista cu ce trebuie să conțină site-ul — citită din fișierul tău
Drumul cu AIopt pași în ordine, fiecare cu promptul real, de copiat cu un clic
Cele nouă straturistrategie, structură, text, identitate, materiale, mișcare, performanță, găsire, predare
Proba de livrarece verifici înainte de orice link trimis clientului

Cum pui lista (asta era întrebarea)

Lista cu ce trebuie să conțină site-ul nu se scrie în cod. O pui chiar tu, din pagină, și nu-ți mai trebuie nicio parolă:

  1. deschizi 10kwebsite.ambru.us și cobori la capitolul Manualul;
  2. tragi fișierul peste caseta punctată, sau apeși „Alege fișierele". Merge .md, .txt și .pdf, până la 12 MB bucata;
  3. pagina îl desface singură în capitole și puncte, cu bife.

Acum sunt puse The_10K_Checklist.md și The_10K_Checklist.pdf — cele opt puncte se citesc din .md, iar amândouă fișierele apar pe pagină în secțiunea „Fișierele manualului", fiecare cu „deschide" și „descarcă".

Pagina înțelege două forme de listă: cu liniuțe („- punctul unu") și cu titluri plus explicație („## Typography that does work." urmat de un paragraf) — a doua e forma listei tale, iar titlul devine punctul care se bifează.

Dacă pui și .md și .pdf, lista se construiește din .md (e mai curat), iar PDF-ul rămâne document de descărcare. Dacă pui doar PDF, textul se scoate din el cu pdftotext.

Nimic nu se șterge și nimic nu se înlocuiește. Nu există buton de ștergere și nici punct de API pentru ea; un fișier cu nume deja folosit se salvează alături, ca lista-2.md. Ca să scoți un fișier, îl ștergi de pe server, de mână, din /opt/10kwebsite/manual/ — sau îmi spui mie.

Pentru că poate încărca oricine, am pus trei plase: doar .md/.txt/.pdf, 12 MB per fișier, și opritoare la 80 de fișiere / 400 MB în folder. După ele, încărcarea se refuză politicos, fără să-ți umple discul.

Bifele se țin pe server (/opt/10kwebsite/bife.json), deci le vezi la fel din orice browser — și le poate bifa oricine intră.

Și în engleză

Aceeași pagină, tradusă, la 10kwebsite.ambru.us/en. În bara de sus e un buton RO / EN, pus dinadins în afara listei de legături, ca să rămână vizibil și pe telefon. Bifele sunt aceleași pe ambele limbi — se țin după textul din manual, nu după pagină. Mesajele de la încărcare vin și ele în engleză.

Unde stau lucrurile

ceunde
fișierele tale cu lista/opt/10kwebsite/manual/
bifele/opt/10kwebsite/bife.json
pagina și serviciul/opt/10kwebsite/, serviciu 10kwebsite, portul 8806
Marketing digital: ghidul public de promovare online

Adresa: marketingdigital.ambru.us. E un ghid de utilizare care răspunde la întrebarea „ce este marketingul digital?” și arată exemple de promovare online. Scris simplu dinadins: îl înțelege și un copil de 10 ani. Pagină publică, fără parolă, numai de citit — o poți trimite oricui ca atare.

Toată pagina curge de sus în jos (stil one-page flow), cu zece capitole numerotate:

capitolulce arată
01 Ce esteexplicația cu taraba de limonadă mutată din stradă în telefon, plus schița desenată
02 Două lumiafișul de pe stâlp față de anunțul de pe telefon, unul lângă altul
03 Pâlniacele cinci etape (mă vede → intră → se gândește → cumpără → revine); apeși pe fiecare și se deschide ce ai de făcut acolo
04 Canalelenouă drumuri prin care ajunge omul la tine, fiecare cu un exemplu care apare când treci cu mouse-ul
05 Exemplepatru cazuri „înainte / după”: cofetăria, instalatorul, magazinul de haine, cursul online
06 Pașiișapte pași în ordine, cu bife care rămân pe calculatorul celui care citește
07 Măsurasocotitoarea: tragi de cinci cursoare și vezi pe loc câți clienți ies, cât te costă unul și ce rămâne
08 Greșelișase greșeli de început, fiecare cu ce se face în loc
09 Manualul de 10.000 $cele opt reguli, traduse, fiecare cu „cum a fost respectată chiar pe pagina asta”, plus butoane de descărcare pentru PDF și pentru lista .md
10 Contactdatele tale de pe ambru.net: WhatsApp, e-mail, LinkedIn, Facebook

Ce are în plus față de o pagină obișnuită

  • Schițe desenate cu creionul — SVG cu linie tremurată, care se desenează singure când ajungi la ele.
  • Micro-acțiuni la mouse: un punct care urmărește cursorul și se mărește peste butoane, carduri care se înclină, butoane care se mișcă puțin spre deget.
  • Patru clipuri generate anume prin Apify (actorul MiniMax H3), în aceeași lumină caldă: antet, bandă cu citat, dală în galerie, bandă deasupra contactului. Niciunul nu are sunet, toate sub 400 KB.
  • Lumină sau întuneric, la alegere, din butonul din dreapta sus; alegerea rămâne.
  • Dacă omul a cerut din sistem „mai puțină mișcare”, toate animațiile și clipurile se opresc singure.

Pagina „prompturi”

La /prompturi stau prompturile pe care le-ai introdus, cuvânt cu cuvânt, așa cum le-ai scris. Discuția din chat se adaugă tot acolo, la final, când spui „adaugă discuția”. Textul întreg se poate citi și simplu, la /prompturi.txt.

Ca să pui discuția nu e nevoie de repornire: se scrie în /opt/marketingdigital/date/discutie.md și pagina o ia singură.

Și în engleză

Ghidul întreg, tradus, la marketingdigital.ambru.us/en, cu buton RO / EN în bara de sus. Socotitoarea scrie englezește și socotește fără monedă (merge în orice valută). Pagina de prompturi englezească e la /en/prompts: fiecare prompt apare în original, în română, iar dedesubt traducerea, pe fond verzui.

Traducerile stau în fișiere proprii: index.en.html pentru ghid și date/prompturi.en.md pentru prompturi. Stilul și codul sunt comune ambelor limbi (media/baza.css, media/pagina.css, media/pagina.js), deci o schimbare de design se face o singură dată.

Unde stau lucrurile

ceunde
pagina și serviciul/opt/marketingdigital/, serviciu marketingdigital, portul 8808
prompturile și discuția/opt/marketingdigital/date/
clipurile, fonturile, stilul/opt/marketingdigital/media/
manualul de 10.000 $ (PDF + MD)/opt/marketingdigital/manual/
AI video: cum se produce corect un film cu AI

Adresa: aivideo.ambru.us. Aceeași pagină stă pe toate trei site-urile tale, fiecare în culorile ei: aivideo.baspool.eu (aqua pe negru) și aivideo.la-rousse.eu (mov și alamă, după manualul de identitate). Fără parolă, numai de citit.

Ce scrie în ea

Regula din care decurge tot restul: un clip face o singură schimbare. Nu două, nu cinci. Modelele video nu construiesc scena pas cu pas — primesc un punct de plecare și unul de sosire și inventează drumul dintre ele. Cu cât drumul e mai lung, cu atât inventează mai mult.

Fluxul de lucru, în ordine: fixezi cadrele ca imagini și le aprobi → împarți filmul în tranziții cu o singură schimbare → testezi ieftin (rezoluție și durată mici, dar pe același model ca finalul) → ce trece reiei la calitate, ce pică de două ori spargi în două → upscale o singură dată, la final.

Mai are: ce faci când un clip e bun doar pe bucăți (tabel cu toate cazurile), uneltele din Google Flow (Frames to Video, Save frame, Extend, Scenebuilder), costul modelelor Omni Flash și Veo 3.1, structura unui prompt care funcționează, șapte greșeli care au costat și lista de verificat înainte de fiecare generare.

Unde stau lucrurile

ceunde
pagina publicată (pe fiecare din cele trei servere)/var/www/aivideo/, servită direct de Caddy
sursa din care se construiesc toate trei/root/claude/proiecte/aivideo/ pe serverul ăsta: corp.html (textul), stil.css (forma), teme.py (culorile fiecărui site)
cum le refaci după o modificarepython3 construieste.py în folderul acela, apoi copiezi build/<site>/ în /var/www/aivideo/

Textul e identic pe toate trei — se schimbă doar culorile și fonturile. Fonturile sunt aduse pe serverele tale, deci pagina nu depinde de Google.

Celelalte două servere ale tale: baspool.eu și la-rousse.eu

De pe 2 octombrie 2026 ai trei servere, fiecare cu domeniul și panoul lui:

  • ai.ambru.us — ăsta, serverul principal
  • ai.baspool.eu — Hetzner 2 (fostul „Server AI Sever”)
  • ai.la-rousse.eu — Hetzner 3

Fiecare are cheia LUI de acces, diferită de asta. Le găsești toate în /servere, la bara „Panourile serverelor noi”, împreună cu utilizatorul și parola de la monitorizare.

Ce are fiecare dintre cele două servere noi: ghid propriu, raport de server (cu analiza containerelor, ca aici), montaj video, n8n, Activepieces, Docker, OpenCode și biblioteca Composio. La la-rousse.eu e în plus și pagina de stocare.

Adresele fiecăruia (înlocuiește DOMENIU cu baspool.eu sau la-rousse.eu): DOMENIU site, ai.DOMENIU panou, stats.DOMENIU monitorizare live, docker.DOMENIU containere, n8n.DOMENIU, activepieces.DOMENIU, opencode.DOMENIU. Toate cu HTTPS automat.

Sunt independente: nu trec prin serverul ăsta. Dacă el se oprește, ele merg mai departe. Securitatea e aceeași: SSH pe portul 22422 doar cu chei, firewall, fail2ban, parolă de root doar pentru consola Hetzner.

Composio: aplicațiile tale, comandate din programe

Ce e: un serviciu la care ai deja conectate zeci de aplicații — Gmail, Notion, Supabase, Canva, Perplexity și altele. Composio ține legătura cu ele, iar tu le poți comanda din programe, fără să te loghezi de fiecare dată.

Ce am instalat: biblioteca Composio pe toate cele trei servere (/opt/composio-venv). Nu e un program cu pagină proprie — e „telefonul” prin care serverul sună la contul tău Composio.

Atenție, ca să nu te aștepți la altceva: Composio nu se poate instala pe serverul tău. Serviciul rulează la ei; imaginile lor de instalare sunt goale, am verificat. Ce ai e legătura către contul tău.

Ca să funcționeze îi trebuie cheia ta de API din contul Composio (Settings → API Keys). Când o pui în /keys, o leg și poți folosi aplicațiile din n8n, din OpenCode sau din cod scris de mână, pe oricare server.

Toate serverele dintr-o privire

Pagina /flota întreabă fiecare mașină a ta, pe loc, și-ți arată într-un singur ecran: cât e încărcat procesorul, câtă memorie și cât disc mai are, de cât timp e pornită, ce containere și ce servicii rulează pe ea.

Barele colorate la memorie și disc îți spun dintr-o privire cine e aproape plin. Dacă un server nu răspunde, scrie limpede asta și motivul — de pildă dacă e oprit sau dacă s-a schimbat ceva la acces.

Spațiile de stocare nu apar aici: nu sunt servere Linux, nu se intră pe ele prin SSH. Pentru ele ai barele din /servere.

Datele se țin un minut în memorie, ca să nu batem serverele la fiecare reîncărcare. Butonul „Reîmprospătează” cere date noi imediat.

Cum pun alt AI să continue treaba

Pagina /preluare îți scrie, dintr-un buton, tot ce-i trebuie altui AI ca să continue de unde am rămas: ce servere ai, cum se intră pe fiecare, ce rulează pe ele, unde sunt fișierele, ce reguli să respecte ca să nu strice nimic, și unde sunt toate discuțiile noastre despre serverele astea.

Textul se face din starea reală a mașinilor, în clipa în care apeși — nu dintr-o listă veche care se învechește. Ai buton de copiere și de descărcare ca fișier.

Cum îl folosești: deschizi pagina, apeși „Copiază tot”, și lipești textul în discuția cu celălalt AI, la început. De acolo știe tot ce trebuie.

Ca să poată și intra pe servere, îi faci o cheie a lui: /servere → „Chei SSH pentru uneltele tale” → „Fă o cheie nouă” cu numele uneltei → „Descarcă”. Se pune singură pe toate serverele. Dacă vrei să-i iei accesul, apeși „Taie cheia” și dispare de peste tot, fără să atingi celelalte unelte.

Important: textul de preluare nu conține parole. Accesul se dă doar prin chei, una pe unealtă, ca să știi mereu cine a intrat și să poți tăia pe oricare separat.

„Apropo” (/btw): o întrebare pe lângă, fără să întrerupi treaba

Ești în mijlocul unei sarcini lungi și îți trece prin cap o întrebare. Nu vrei s-o oprești și nici s-o încurci cu ce face. Pentru asta e /btw („by the way”, adică „apropo”).

Claude Code: scrii /btw întrebarea ta chiar cât lucrează. Răspunsul apare într-o fereastră mică, separată, iar sarcina de bază merge mai departe, neatinsă. Întrebarea nu intră în discuția principală și nu o schimbă. Se poate răspunde doar din ce se știe deja în discuție: nu are unelte, deci nu citește fișiere și nu rulează comenzi pe server. Pentru ceva care cere verificări, aștepți să termine sarcina și întrebi normal.

agy (Antigravity): programul are și el comanda /btw (am găsit-o în program), cu același rost. Nu am încercat-o încă live pe server, așa că, dacă se poartă altfel decât la Claude, spune-mi și corectez aici.

Codex CLI: nu are /btw. Cel mai apropiat lucru e comanda codex queue --thread NUME --message "text", care pune un mesaj la coada unei sesiuni existente, ca să-l primească după ce termină. Spre deosebire de /btw, mesajul intră în discuția acelei sesiuni și nu primești răspuns pe loc.

unealtacumrăspunde pe loc?intră în discuție?
Claude Code/btw întrebareda, în fereastră micănu
agy/btw întrebare (neîncercat live)probabilnecunoscut
Codex CLIcodex queuenuda

Când îl folosești: ca să întrebi „ce însemna X?”, „unde rămăsesem?”, „ce cont folosesc acum?”, fără să deranjezi treaba în curs. Când nu: dacă vrei ca AI-ul să schimbe ceva sau să verifice pe server, caz în care scrii o cerere obișnuită.

Meniul de conturi CLI: cum vezi și schimbi toate conturile (terminal și chat)
Schiță: adaugi un cont din chat, te loghezi, iar contul apare peste tot+ Contîn antetLoginlink / cod în browserApare peste totchat · Mută · terminalfără să editezi scripturi: conturile se descoperă singure

Toate conturile tale de CLI sunt centralizate într-un singur sistem, accesibil atât din terminal, cât și din chatul web.

1. În Terminal (înainte să ajungi pe oricare CLI)

Imediat ce deschizi o sesiune de terminal (prin SSH sau prin terminalul din browser), înainte de a ajunge pe oricare CLI, pe ecran îți apare automat meniul cu toate conturile:

#AsistentContComandăEmail5h / Gemini7z / Claude+CGT
[1]Claude CodeCont 1claudecosminambru@gmail.com39%45%
[2]Claude CodeCont 2claude2nasaworld@affordify.edu.lk100%100%
[3]Claude CodeCont 3claude3aitooloneyear@gmail.com100%100%
[4]Antigravity (AGY)Cont 1agyhelpukrainianpeople@gmail.com100%0% (↻5z)
[5]Antigravity (AGY)Cont 2agy2ambrucosmin2000@gmail.com93%97%
[6]Antigravity (AGY)Cont 3agy3bombonelpacanel@gmail.com100%100%
[7]Antigravity (AGY)Cont 4agy4cosminambru@gmail.com100%100%
[8]OpenAI CodexCont 1codexcosminambru@gmail.com93%99%
[9]OpenCodeCont 1opencodeGemini 3 (Google API Key)100%Nelimitat
  • Alegi numărul [1-9] sau scrii comanda: intri direct în sesiunea asistentului pe acel cont.
  • Apeși [Enter], [0] sau [q]: rămâi în linia de comandă obișnuită Linux (bash).
  • Comanda în terminal: oricând vrei să redeschizi acest meniu, tastează comanda conturi sau meniu.
  • Indicatorul de cotă disponibilă (Free / Rămas): afișat pe fiecare rând sub tabel:
    • Verde (100% disponibil): cont proaspăt, toată cota este liberă.
    • Galben (20–59%): consum mediu pe fereastra respectivă (5h sau 7 zile).
    • Roșu (0–19%): cotă consumată la maximum / limită atinsă, însoțită de timpul până la reset (ex: ↻5z06h).

2. În Chat-ul Web (pagina /chat)

În aplicația de chat web ai butonul 🎛 Meniu Funcții (în antet și în bara din stânga):

  • Deschide o fereastră completă cu 📋 Toate Conturile CLI, unde poți apăsa direct butonul „Comută” pentru a trece chatul pe acel cont fără reîncărcare.
  • ⚡ Aplicații & Funcții Web: acces dintr-un click la Terminal, Generatorul de Voce, Generatorul Flow (imagini și video), Ecranul VNC, Istoric, Media și Setări.
  • 💻 Comenzi în Terminal: fișă rapidă cu comenzile pe care le poți rula în consolă.

3. Schimbarea modelului când se atinge limita de cotă

  • În Antigravity (agy): când contul atinge cota, apeși tasta m pentru a alege alt model pe același cont (Sonnet 4.6, Gemini Flash High, etc.) sau tasta c pentru alt cont. Comanda agyauto face comutarea singură după 60 de secunde.
  • În Claude Code și Codex: tastezi comanda /model în timpul discuției pentru a comuta pe un model cu consum mai mic.
Chat (pagina /chat): ce este și cum îl folosești
Schiță: browserul vorbește cu chat-web, care rulează CLI-urile; textul rămâne în fișierele discuțieiBrowserpagina /chatchat-webpe serverClaude CodeagyCodexfișierelediscuțieichatul e o fereastră; munca o fac CLI-urile

În meniul principal e butonul Chat (sau direct ai.ambru.us/chat/). E un chat în browser peste Claude Code, agy și Codex. Tu scrii într-o fereastră cu aspect de chat; munca o fac CLI-urile de pe server, pe aceleași discuții ca în terminal. De aceea tot textul rămâne în fișierele lor, iar discuția o poți continua oricând din SSH sau din terminalul din browser.

Intrarea: utilizator admin, cu parola comună a aplicațiilor protejate. După ce ai intrat, butonul 🔑 Parola din antet o arată și o copiază. Dacă browserul nu îți mai cere parola, deschide pagina într-o fereastră privată.

Cum arată pagina:

undece găsești
stânga, sus+ Discuție nouă și 🕘 Istoric (toate discuțiile din arhivă, cu căutare)
stânga, mijlocProiecte: discuțiile grupate pe proiecte; ☰ pentru filtre, + pentru proiect nou
stânga, susMedia: galeria cu tot ce a generat AI-ul
stânga, jos⚙ Setări
antetCont (al CLI-ului ales), Permisiuni, Compactează, ⇄ Mută, 🖼 Fișierele discuției, 🎙 Voce, 🎨 Flow (generatorul de imagini și video), + Cont (adaugi un cont), 📖 Manual, ⚙ și 🔑 Parola
jos, caseta de scris+ atașează fișiere · CLI · model (mouse deasupra = barele de cotă) · permisiuni · butonul rotund de trimitere (devine „Oprește” cât lucrează)

Fișiere: + din caseta de scris, tragi fișiere în pagină sau lipești o poză (Ctrl+V). Imaginile, PDF-urile, textul și codul se citesc direct; Word, Excel, ZIP se atașează, dar le deschide CLI-ul prin comenzi. Se păstrează în /root/chat-fisiere/.

După o actualizare a paginii apasă Ctrl+F5, ca să nu rămâi pe varianta veche din cache.

Chat: Media, fișierele discuției, conversii și previzualizare
Schiță: cardurile din chat duc la Media, la lista discuției și la conversiiChatcarduriMediagalerie + filtreListafișierele discuțieiConverteștepdf md html txt docxPDF ← OfficeLibreOffice, la click💬 Discuțialegătura înapoiSalvează ca…sub fiecare mesaj

Tot ce generează AI-ul în chat (imagini, pagini web, PDF-uri, documente Office, audio, video) apare ca card sub mesaj și intră în arhiva Media, legat de discuția din care vine.

undece face
Media (stânga)galeria cu tot ce s-a generat, cu filtre (Imagini, Pagini web, PDF, Video, Audio, Documente) și căutare. Pe cardurile legate de o discuție ai butonul 💬 Discuția, care o deschide.
Fișierele discuției (antet)deschide în panoul din dreapta lista fișierelor discuției curente, în ordinea creării; click pe unul îl previzualizează, iar ← te duce înapoi la listă.
icoana de lângă titluîn lista din stânga, o discuție care are fișiere media generate are o icoană de galerie lângă titlu.
după refreshcând redeschizi o discuție, cardurile reapar la locul lor, după mesajul care le-a generat (se potrivește după ora fiecărui mesaj). Se leagă doar fișierele create după introducerea legăturii; cele mai vechi apar în Media, dar fără buton către discuție.
ora mesajelorsub fiecare mesaj apare ora (sau data și ora, pentru cele mai vechi).

Previzualizare pentru fiecare tip: pagini web, SVG, imagini, PDF, video și audio (cu player) se văd direct; Markdown, text, CSV și SRT se arată ca text. Word, Excel și PowerPoint (docx, xlsx, pptx, plus doc, xls, ppt, odt, ods, odp, rtf) se convertesc în PDF cu LibreOffice, doar când apeși Previzualizează; PDF-ul se păstrează în /root/chat-fisiere/previzualizari/, deci a doua deschidere e instantanee. O singură conversie rulează odată, cu limită de 60 de secunde.

Conversii între formate (PDF, MD, HTML, TXT, DOCX):

  • sub fiecare mesaj al AI-ului, la hover, apare ⬇ Salvează ca…: textul mesajului devine fișier și cardul apare în chat și în Media;
  • pe cardul unui fișier md, html, txt, docx, odt, rtf sau pdf apare ⇄ Convertește…;
  • PDF-ul din md, html sau txt se face cu Chromium fără interfață (de pe server, în /root/.cache/ms-playwright) — dacă îl ștergi, nu mai merge PDF-ul; din docx se face cu LibreOffice; din PDF se extrage doar textul (nu și aspectul).
  • fișierele convertite stau în /root/chat-fisiere/convertite/.

Ce AI generează imagini: Codex și agy generează imagini reale; Claude nu are generator de imagini, dar poate desena SVG și pagini HTML. Imaginile din agy și Codex se copiază automat lângă fișierele chatului.

Generator de voce (pagina /voce/ și din chat)
Schiță: textul și stilul intră în voce-web, care alege motorul și produce un mp3Textscris sau din chatStilton · viteză · efectvoce-web/voce/ · 7 vociPiper · Metape serveredge-tts · gTTScer internetmp3player în chat + Media

Transformă un text în voce în limba română, cu 10 voci (femeie și bărbat), fiecare cu avatar și o mostră pe care o poți asculta înainte să alegi. Îl găsești în trei locuri: în meniul principal (cardul „Generator de voce” sau linkul „Voce”), direct la ai.ambru.us/voce/ (aceeași parolă ca la Chat, utilizator admin) și în chat, la butonul 🎙 Voce din antet, care îl deschide în panoul din dreapta.

vocemotorgencum eunde rulează
Alinaedge-tts (Microsoft)femeiefoarte naturalăcere internet; serviciu neoficial
Emiledge-tts (Microsoft)bărbatfoarte naturalăcere internet; serviciu neoficial
MihaiPiperbărbatbunăpe server, fără internet; date CC0 (se poate folosi și comercial)
MetaMMS-TTS (Meta)bărbat (după înălțimea tonului)mai metalică, lentă (~20 s pe frază)pe server; licență necomercială (CC-BY-NC)
GooglegTTSfemeieclară, ușor monotonăcere internet; serviciu neoficial
GeminiGemini TTS (Google, API oficial)femeie sau bărbat, după vocea aleasă (Kore, Aoede, Leda, Zephyr, Puck, Charon, Fenrir, Orus)foarte naturală; înțelege stilul din setări. Model la alegere: 2.5 Flash, 2.5 Pro, 3.1 Flash, 3.8 Flash, 3.8 Flash Lite (Pro cere cheie cu plan plătit)cere internet; folosește cheile din /opt/voce-web/gemini.keys (se încearcă pe rând); dacă e gratuit depinde de planul cheilor
ElevenLabs · femeie / bărbatElevenLabs (API oficial)21 de voci premade la alegere (7 femei, 14 bărbați/neutre)foarte naturală, cu română în 6 modelecere internet; plan gratuit: 10.000 de caractere pe lună, doar necomercial; cheile sunt în /opt/voce-web/elevenlabs.key, câte una pe linie (cheie sau Eticheta|cheie); în pagină alegi contul sau „Automat” (primul cu destule caractere); pagina arată cota fiecărui cont
Robot bărbat / femeieeSpeak NGbărbat / femeierobotică, instantaneepe server

Ce poți alege la voce: stilul (Natural, Povestitor, Calm, Energic, Știri, Dramatic, Șoaptă, Radio / telefon), viteza, tonul (grav ⟷ subțire, în semitonuri), volumul, pauzele între propoziții și expresivitatea (doar la Piper), plus un efect de sunet (cald, clar, cameră, ecou, radio, șoaptă). Stilul doar pre-setează glisoarele; le poți ajusta apoi. Butonul Mostră scurtă generează doar prima propoziție, ca să încerci setările fără să aștepți tot textul.

Alegerea modelului și a avatarului: sus, în pagină, ai butoane pentru motor (edge-tts, Piper, MMS, gTTS, eSpeak NG) și pentru gen. Fiecare voce arată motorul și modelul exact folosit (de exemplu Piper → ro_RO-mihai-medium). Lângă butonul „Generează” ai o listă cu toate motoarele și modelele, ca să-l schimbi fără să derulezi. Butonul 🎭 de pe fiecare voce îți dă 6 avatare de ales (se țin în browserul tău). Secțiunea Modele instalate acum numără motoarele, vocile și modelele (acum: 5 motoare, 7 voci, 7 modele). Toate cele 7 voci sunt gratuite și fără cheie; tabelul cu motoare arată și ce limbi știu, iar un al doilea tabel listează serviciile cu plan gratuit care cer cont sau cheie (Google Cloud, Azure, ElevenLabs, Gemini).

Subtitrare sincronizată și dublaj:

  • Subtitrare sincronizată: bifează „Generează și subtitrare .srt sincronizată cu vocea” înainte de „Generează”. Textul e citit propoziție cu propoziție, deci momentele din .srt sunt exacte (propozițiile lungi se împart în cue-uri de cel mult 84 de caractere). Primești mp3-ul și .srt-ul cu același nume. La Piper și Meta durează mai mult, pentru că modelul se pornește la fiecare propoziție.
  • Dublare dintr-un .srt: secțiunea 3 · Dublare primește un fișier .srt sau .vtt (încărcat sau lipit). Fiecare replică e citită la momentul ei; dacă nu încape în interval, e accelerată cel mult 1,4×. Replicile care tot depășesc sunt numărate, iar .srt-ul rezultat are timpii reali. Maximum 150 de replici.
  • Ștergere: fiecare voce din Generate recent și fiecare rezultat nou au butonul 🗑 Șterge; dispar mp3-ul, subtitrarea cu același nume și intrarea din Media. Copiile deja aduse în Montaj sau Atelier rămân acolo.

În Montaj și în Atelier video: în Montaj, lângă câmpul Voce, și în Atelier, la Biblioteca, butonul 🎙 Din generator arată vocile generate (cele mai noi primele). Un click copiază mp3-ul (și .srt-ul, dacă are) în folderul de intrare / în bibliotecă. În Montaj îl alegi ca Voce, iar butonul 📝 Pune textul pe clipuri împarte textul vocii pe clipurile alese (în al doilea rând de peste imagine) și potrivește durata imaginilor cu vocea. În Atelier, .srt-ul e gata pentru Pune subtitrări, iar mp3-ul pentru Schimbă sunetul. Linkul Generează o voce ↗ deschide generatorul. Dacă Atelierul se actualizează de la serverul de bază, modificarea poate dispărea (copii în app.py.bak-voce și index.html.bak-voce, în ambele foldere).

Din chat:

  • 🎙 Voce (antet) deschide generatorul în panoul din dreapta; mp3-ul generat apare ca card cu player în discuție și intră în Media, legat de discuție.
  • sub un mesaj al AI-ului, ⬇ Salvează ca… → 🔊 Citește cu voce (mp3) deschide generatorul cu textul mesajului deja pus.
  • Dacă scrii în chat „generează o voce”, „fă un voiceover”, „mp3” sau „text to speech”, chatul adaugă o notă invizibilă în fața mesajului, care îi spune lui Claude, agy sau Codex că există comanda voce; AI-ul o rulează și scrie calea mp3-ului, iar cardul cu player apare în chat. Nota nu se vede în istoric.

Din terminal (și pentru n8n, scripturi): voce "text" /root/chat-fisiere/voce/ceva.mp3 --voce edge-alina --stil povestitor --viteza 0.95 --ton -1 --efect cald. Vocile: edge-alina, edge-emil, piper-mihai, mms-ron, gtts-ro, espeak-m, espeak-f. Pentru un text lung: --fisier text.txt. Fișierele generate stau în /root/chat-fisiere/voce/.

Ce să știi: o singură voce se generează odată (Piper și Meta consumă procesor). Limita e de 6000 de caractere pe cerere. Vocile edge-tts și Google depind de serviciile lor gratuite, neoficiale: dacă se schimbă ceva la ei, acele voci pot înceta să meargă (Piper și eSpeak merg oricum). La Motoare TTS pe GitHub, în josul paginii, vezi câte stele au cele mai cunoscute motoare și care știu română: cele mai populare (Coqui XTTS, Chatterbox, Kokoro) nu au română. Serviciul se numește voce-web (port 8814, fișiere în /opt/voce-web/, vocile în /opt/tts/).

Google Flow: imagini și video (pagina /flow, chat și terminal)
Schiță: browserul vorbește cu chat-web, care rulează CLI-urile; textul rămâne în fișierele discuțieiBrowserpagina /chatchat-webpe serverClaude CodeagyCodexfișierelediscuțieichatul e o fereastră; munca o fac CLI-urile

Google Flow generează imagini și clipuri video din cuvinte sau din imaginile tale. Aici e comandat de pe server, cu contul tău Google, în trei feluri: pagina ai.ambru.us/flow/ (aceeași parolă ca la Chat, utilizator admin), în chat (butonul 🎨 Flow din antet, panoul din dreapta) și în terminal (comanda flow). Rezultatele se salvează în /home/gflow/iesiri și se copiază singure pe storage, în Claude/Documente/Flow-Google/<data> Aceleași fișiere (foto și video) se copiază singure și pe Digi Storage, în Digi Cloud/Flow-Google/<data> (remote rclone digi:); pe pagina Flow apare „Digi Storage ✓” sau butonul „Trimite pe Digi”. Butonul „🔗 Digi Public” creează linkul public Digi (pagina storage.rcs-rds.ro/links/…) și îl afișează lângă „Public” și „Drive”.

Ce poți face (toate testate):

funcțiece facicostă
Text → imaginescrii promptul; alegi modelul (Nano Banana 2, Pro, 2 Lite), formatul (3:4, 16:9, 1:1, 4:3, 9:16) și câte imagini (1–4)gratuit
Text → videoalegi modelul (Veo 3.1 Lite, Fast, Quality sau Omni 1.1 Flash), formatul (16:9 sau 9:16) și durata (4, 6, 8 s; 10 s doar la Omni Flash)credite
Imagine → videoîncarci o imagine (sau o alegi din rezultate), iar clipul pornește de la eacredite
Imagine de început + imagine de sfârșitclipul pornește de la prima imagine și ajunge la a doua (merge cu Veo Lite și cu Omni Flash)credite
Referințe → videopână la 7 imagini ca ingrediente (subiecte, stil) pentru un clip noucredite
Imagine → imaginepornești de la una sau mai multe imagini și descrii schimbarea (editare sau combinare)gratuit
Extinde un clip / leagă două clipuriclipul pornește de la ultimul cadru al clipului tău, iar apoi se lipesc (video 1 + continuare); sau un clip de tranziție de la sfârșitul clipului 1 la începutul clipului 2 (video 1 + tranziție + video 2)credite (un clip)
Upscale la descărcareimagine: 2K; video: 1080p (mărit), 720p (original) sau GIF 270pgratuit

Cât costă un clip (credite Flow, măsurat): Veo Lite 8 s = 10 · Veo Fast 8 s = 20 · Veo Quality 8 s = 100 · Omni Flash 4 s = 7, 6 s = 10, 8 s = 12, 10 s = 15. Imaginile (inclusiv editările) nu consumă credite. Pagina arată soldul sus și costul real după fiecare video; în terminal ai /credite. La orice video bifezi (sau confirmi) că înțelegi că se consumă credite.

Pagina /flow/: cinci file (Text → imagine, Text → video, Imagine → video, Referințe → video, Imagine → imagine). Pe fiecare alegi modelul, formatul, durata și imaginile. Sub generări vezi pașii în direct, iar în „Rezultate” ai: Descarcă, Trimite pe storage, Șterge și butoanele de upscale. Dacă Flow dă „Something went wrong”, reîncearcă: n-a costat nimic. O singură generare rulează odată; celelalte așteaptă la coadă.

Flow ca a patra opțiune în chat (cel mai simplu): jos, în caseta de scris, alegi la selectorul de CLI (acolo unde alegi Claude, agy sau Codex) opțiunea Flow. Chatul devine un chat de generare: deasupra casetei apare o bară cu Imagine / Video, modelul, formatul, durata (la video), câte imagini (la imagine) și „Ce fac” (clip nou, extinde ultimul clip, leagă ultimele două clipuri). Scrii ce vrei și răspunsul vine ca mesaj cu progresul, apoi cu cardul imaginii sau clipului. Cu + atașezi imagini: la Imagine le editez după prompt; la Video, 1 imagine = clipul pornește de la ea, 2 imagini = de la prima la a doua (sau le bifezi ca „referințe”), 3 sau mai multe = referințe. Sub fiecare rezultat ai butoane: Mărește 2K (imagine) sau 1080p / 720p / GIF 270p și ➕ Extinde clipul (video). La video apare o confirmare cu costul în credite. Alegând Claude, agy sau Codex, chatul revine la normal.

În chat: butonul 🎨 Flow din antet deschide generatorul în panoul din dreapta și fiecare rezultat nou apare ca card în discuție. Butonul 🎨 Flow ↗ din stânga îl deschide într-un tab separat. În Meniu Funcții ai cardurile „Generator Flow”, „Flow în tab nou” și „Flow în chat”. Poți și să scrii în chat „Cu Flow, generează…”: Claude, agy sau Codex rulează comenzile în locul tău și îți arată rezultatul (la video te întreabă înainte; Codex și agy au nevoie de Permisiuni → Lasă liber).

În terminal: scrii flow (sau alegi rândul 10, „Flow”, din meniul conturi). Scrii promptul și primești imaginea. Comenzi:

  • video ce vrei = clip (cu confirmare de credite și costul la final)
  • /lista = ultimele rezultate, numerotate
  • animeaza 3 prompt = imagine → video din rezultatul 3; animeaza 3 -> 5 prompt = pornește de la 3 și ajunge la 5
  • ref 3,4 prompt = video din referințe; editeaza 3 prompt = imagine → imagine
  • extinde 3 prompt = continuă clipul 3 (video 1 → continuare); leaga 3,4 prompt = clip care leagă video 3 de video 4. Primești clipul nou și un fișier …_lipit.mp4 cu totul lipit
  • /upscale 3 = mărește rezultatul 3 (imagine 2K; video 1080p, sau /upscale 3 720p, /upscale 3 270p)
  • /model nano-pro, /modelvideo veo-fast, /durata 8, /format 16:9, /numar 2, /setari, /credite, ajutor

La pornire, comanda flow afișează meniul cu toate comenzile; îl revezi oricând cu ajutor. Comenzile directe (le folosesc și asistenții): gflow-img, gflow-video, gflow-i2v --first a.jpg --last b.jpg --prompt "…", gflow-ref --mode r2v|i2i --ref a.jpg …, gflow-ext --mode ext|bridge --video a.mp4 …, gflow-upscale fisier 2k|1080p|720p|270p, gflow-credite.

Sfaturi: promptul merge cel mai bine în engleză, cu lumină și cadru. Pentru video folosește imagini cu același format ca clipul, altfel apar bare negre sus și jos. Pentru cadru de sfârșit, imaginile trebuie să semene ca stil, altfel tranziția e un morph.

Ce nu se poate pe contul tău: rezoluția clipului la generare (360p/720p) și mai multe clipuri deodată; 4K la imagine sau video cere upgrade de plan la Google; modelul „Veo Lite prioritate mică” nu există în meniul Flow al contului.

Despre „Extend”: Flow nu are buton de extindere pe contul tău (agentul spune că există, dar nu apare nicăieri). De aceea extinderea e făcută așa: se scoate ultimul cadru al clipului, se generează un clip nou care pornește de la el, apoi cele două se lipesc cu ffmpeg. La legare, clipul nou pornește de la ultimul cadru al primului clip și ajunge la primul cadru al celui de-al doilea.

Cum e făcut (pe scurt): contul Google are un Flow cu „agent” în loc de caseta de prompt clasică, pe care gflow-cli oficial nu o poate comanda (issue #799). Folosim patch-ul neoficial din PR #824 pentru text → imagine și text → video, iar imagine → video, referințe, editări și upscale sunt făcute separat, prin pagina Flow, cu atașarea imaginilor ca „ingrediente”. Dacă Google schimbă interfața Flow, pot înceta să meargă; spune-mi și le repar. Chrome rulează ca utilizatorul gflow, pe ecranul virtual al serverului.

Login la Google (doar dacă expiră sesiunea):

  1. În terminal: gflow-ecran start, apoi deschide https://ai.ambru.us/ecran/vnc.html?path=ecran/websockify&autoconnect=1&resize=scale (parola Caddy, utilizator admin; VNC nu cere parolă).
  2. Rulează scriptul de login (bash /root/gflow-login.sh) și te loghezi tu, în fereastra Chrome din ecranul din browser, cu contul Google care are Flow, până se vede editorul Flow cu proiectele.
  3. La final: gflow-ecran stop. Parola contului Google o scrii doar tu, în browser; nu o dai nimănui.
Mermaid Studio: diagrame din discuții (pagina /chat/mermaid-studio/)
Schiță: browserul vorbește cu chat-web, care rulează CLI-urile; textul rămâne în fișierele discuțieiBrowserpagina /chatchat-webpe serverClaude CodeagyCodexfișierelediscuțieichatul e o fereastră; munca o fac CLI-urile

Mermaid Studio transformă o discuție cu AI-ul, sau orice text lipit de tine, într-o diagramă: schemă de proces, arhitectură, secvență („cine cu cine”), cronologie, hartă mentală, plan Gantt, baze de date, stări. Seamănă cu mermaid.ai, dar rulează pe serverul tău.

Unde îl deschizi: din Chat, butonul ◈ Mermaid Studio din stânga jos (lângă GitHub Search, în dreapta lui); din Meniul Funcții & Conturi; din Setări → General; din ghidul 📖 al chatului (secțiunea „Mermaid Studio”); din bara de sus a acestui panou; sau direct la ai.ambru.us/chat/mermaid-studio/ (aceeași parolă ca la Chat, utilizator admin).

  1. Alegi 💬 Din discuție (și câte mesaje recente să citească), 📝 Din text (lipești un plan sau o explicație) sau 🗨 Chat (vezi mai jos).
  2. În primele două moduri alegi tipul diagramei (sau „Automat”), poți scrie ce vrei să arate și apeși ✨ Generează diagrama: textul, tipul și regulile de format se trimit AI-ului ales, iar blocul Mermaid din răspuns apare în editor.
  3. Codul Mermaid apare în editor, iar diagrama se desenează dedesubt. Poți edita codul; se redesenează singur.
  4. Schimbi tema de culori (Aurora, Ocean, Apus, Pădure, Neon, Sobru) fără să regenerezi.
  5. Exporți SVG sau PNG, sau copiezi codul (butonul „Cu temă” include culorile în cod, ca să arate la fel în alte locuri).

🗨 Chat cu expertul: descrii în cuvintele tale ce conține diagrama, cum arată și ce trebuie să facă. AI-ul ales (agy, Codex, Claude sau Copilot) lucrează ca expert în hărți mentale, diagrame și chart-uri: alege tipul potrivit, spune într-o propoziție ce a ales și scrie codul, care se desenează imediat. Continui cu „adaugă un pas”, „fă-o orizontală”, „treci pe hartă mentală”; fiecare mesaj pleacă împreună cu diagrama curentă și ultimele schimburi. Sub răspuns, Vezi promptul trimis arată exact ce a primit AI-ul; ⟲ Nou șterge conversația.

Zona de desen: diagrama e mereu centrată și se potrivește singură în spațiu. Clic pe ea (sau ⤢ Mărește) o deschide într-o fereastră mare cu − / + , „Potrivește” și „100%”. Bara dintre cod și desen se trage în sus și în jos (dublu-clic o readuce la loc). Fundalul e negru implicit; butonul ☀ / 🌙 comută pe alb și ține minte alegerea (tema Neon rămâne mereu închisă).

Șabloane: butonul 🎨 Șabloane are 12 modele gata făcute, de la care pornești.

Skill: mermaid-frumos (în biblioteca de skills, atașezi din 🧩 Skills) îi spune AI-ului din chat cum să scrie diagrame cu culori semantice, forme potrivite și maximum ~15 noduri.

Ce să știi: generarea folosește același AI ca restul chatului (implicit agy) și poate consuma din cota lui. Dacă diagrama arată eroare, codul are o greșeală de sintaxă; mesajul apare sub editor. Fișierele sunt în /opt/chat-web/mermaid_studio.html.

Chat: cota CLI-urilor (barele de consum)
Schiță: la hover pe CLI apar barele de consumPe CLI sau modelmouse deasupraFereastra de 5 ore ▓▓░░░░ consumat · liberSăptămânal ▓░░░░░ resetare în 5 zLunar — doar dacă planul o raportează

Treci cu mouse-ul peste numele CLI-ului sau peste model, în caseta de scris, și apare un cartonaș cu barele de consum ale contului curent: cât ai consumat și cât mai ai liber, în procente, și când se resetează fereastra.

ce aratăClaudeCodexagy
fereastra de 5 oreda (pe cont)dada, separat pe grupa Gemini și grupa Claude+GPT (din /usage)
săptămânalda (pe cont; poate și pe Opus/Sonnet, dacă le trimite Claude)dada, pe cele două grupe
lunarnu e raportatnu e raportatnu

În terminal: agyauto. Comenzile agy, agy2, agy3, agy4 arată contul și emailul la pornire (și în titlul ferestrei). La limită afișează planul și așteaptă 60 de secunde: Enter = acum, m = alt model, c = alt cont, q = rămâi. Fără altă comandă, mută singur discuția: întâi alt model (Sonnet 4.6, apoi cel mai bun Gemini), apoi alt cont, în ordine crescătoare. agyauto singur reia ultima discuție pe primul cont cu cotă. La fel în chat: bannerul de limită are numărătoare de 60 s, cu „Treci acum”, „Anulează” și alegere de model/cont.

Trecere automată pe următorul cont la limită: când agy răspunde „RESOURCE_EXHAUSTED (code 429): Individual quota reached… Resets in 127h55m57s” (cota epuizată), chatul notează contul ca fiind la limită până la resetare, copiază discuția pe următorul cont agy (în ordinea numerelor; se sar conturile pe care /usage le arată la 0% pentru grupa modelului) și reia mesajul pe aceeași discuție, cu un rând „↪ …” în chat. Dacă toate conturile sunt la limită pentru modelul ales, încearcă alt model din lista agy. Mesajul „UNAVAILABLE (code 503): No capacity available for model …” (modelul e supraîncărcat, nu cota) se reîncearcă o dată după 5 secunde, apoi se trece pe alt cont/model. Starea limitelor e în /var/lib/chat-web/limite_agy.json. La Claude, bannerul de limită își alege singur următorul cont fără limită și retrimite mesajul.

De unde vin datele: Claude și Codex trimit procentele la fiecare mesaj, deci cartonașul arată ultima valoare primită și când a fost actualizată (de exemplu „acum 5 h”). Un cont Claude pe care n-ai scris încă nu are date până la primul mesaj. agy are comanda /usage (nu consumă nimic), citită la fiecare deschidere a cartonașului. Dacă fereastra s-a resetat între timp, bara arată 0%. Cota e a contului, nu a fiecărui model în parte; unde CLI-ul trimite limite separate pe model, apar ca bare în plus.

Chat: alegi cu cine vorbești (Claude, agy sau Codex)
Schiță: caseta de scris, cu CLI, model și permisiuni pe rândul de josScrie aici. Enter trimite, Shift+Enter rând nou.+Claude ▾Model ▾Permisiuni ▾↑alegi CLI-ul (Claude · agy · Codex)model și permisiuni se schimbă odată cu CLI-ul

Primul text de pe rândul de jos al casetei de scris e CLI-ul: Claude, agy sau Codex. Mesajul tău pleacă la cel ales, pe aceeași discuție (cu reluare), iar răspunsul apare în pagină. Când schimbi CLI-ul se schimbă și restul: contul din antet, lista de modele și „Permisiuni”.

Claudeagy (Antigravity)Codex
conturicele din claudemutacele din agymutacele din codexmuta
modeleSonnet, Opus, HaikuGemini și altele (din agy models)modelele GPT din Codex
răspunsîn flux, cuvânt cu cuvântpe bucăți, la fiecare mesaj completpe bucăți, la fiecare mesaj complet
aprobăributoane Permite / Refuzăfără butoane: politică fixăfără butoane: sandbox fix
Compacteazădanunu

De ce nu are agy și Codex butoane de aprobare: în modul în care le rulează chatul (fără ecran interactiv) nu au cum să ceară aprobare. Am verificat: agy ignoră explicit mesajele de aprobare. De aceea Permisiuni alege o politică, pe care am testat-o:

PermisiuniagyCodex
Cere aprobare / Doar citirecomenzile sunt refuzatenu scrie nimic
Editează fișiere / Scrie în dosareditează, comenzile rămân refuzatepoate scrie în dosarul de lucru
Doar plandoar propune un plancitește și propune, fără modificări
Lasă liberrulează orice, fără întrebărifără sandbox, fără întrebări

Dacă agy refuză o comandă, chatul îți spune: „agy a încercat o comandă și a fost refuzată… alege Lasă liber”. Folosește „Lasă liber” cu grijă: programul poate modifica orice pe server.

Dacă schimbi CLI-ul în mijlocul unei discuții, se pornește una nouă în noul CLI. Ca să duci discuția curentă în alt CLI, folosești Mută.

Chat: proiecte, subproiecte și reguli în cascadă
Schiță: o discuție obișnuită poate fi organizată într-un proiect fără să-și piardă istoriculDiscuție nouăfără proiectCreezi / alegiun proiectDiscuțiaintră în proiectconținutul rămâne; de la mesajul următor primește regulile proiectuluiproiectul poate deveni părinte pentru oricâte subproiecteSchiță: regulile globale, proiectul, subproiectul și discuția se combină în cascadăGlobalpentru toateProiectServerSubproiectDockerDiscuțieunainstrucțiunile și skills-urile se adună de la stânga la dreaptasubproiecte la orice adâncime · discuțiile pot avea reguli proprii

În stânga, sub Proiecte, poți organiza munca în proiecte și subproiecte, la oricâte niveluri ai nevoie. Fiecare nivel poate avea propriile instrucțiuni și skills. O discuție primește tot ce vine de sus, în ordinea: global → proiect mare → subproiect → discuție.

Pas cu pas

  1. Proiect nou: apasă + de lângă „Proiecte”, scrie numele și pornește prima discuție.
  2. Subproiect: apasă ⋯ pe proiectul-părinte → + Subproiect…. Subproiectul apare retras sub părinte și moștenește regulile lui.
  3. Instrucțiuni: intră în proiect și apasă 📋 Instrucțiuni. Poți edita nivelul proiectului sau, într-o discuție deschisă, numai acea discuție.
  4. Discuție nouă aici: ⋯ pe proiect → + Discuție nouă aici. Mesajele trimise de aici primesc automat cascada completă.
  5. Reorganizare: ⋯ → ↳ Mută sub alt proiect… sau ↑ Fă-l proiect principal. Discuțiile pot fi mutate cu ↗.

Exemplu: „Server & infrastructură” poate conține „Docker & containere”. Regulile generale de server se scriu o singură dată în proiectul mare, iar în subproiect rămân doar regulile specifice Docker. O discuție de depanare poate primi încă o instrucțiune numai pentru ea.

De știut: mutarea unei discuții sau a unui subproiect schimbă regulile primite începând cu mesajul următor; istoricul conversației nu este rescris. Proiectul fixat 🔎 Căutare avansată păstrează separat căutările și ramurile pornite din ele.

Chat: biblioteca de skills și alegerea automată
Schiță: mesajul este comparat cu indexul de skills, iar skill-ul se activează numai după confirmareMesaj nouce vrei să faciIndex skillscaută localPropunereDa / NuSkill activîn discuțieskill-ul rămâne într-o singură bibliotecă; aici se salvează doar legăturaîl poți atașa global, pe proiect, pe subproiect sau doar pe discuție

Un skill este o fișă de lucru reutilizabilă: spune modelului când și cum să facă o anumită sarcină și poate avea exemple, referințe sau scripturi. Skill-ul există o singură dată în bibliotecă; proiectele și discuțiile păstrează doar legătura către el.

Cum atașezi un skill

  1. Deschide proiectul sau discuția și apasă 🧩 Skills.
  2. Alege nivelul: discuția aceasta, proiectul și subproiectele sau toate discuțiile.
  3. Bifează un skill existent. Poți și să imporți un skill Claude/plugin sau să adaugi un SKILL.md ori un ZIP.
  4. Salvează. Din mesajul următor, skill-ul este disponibil tuturor modelelor folosite în acel loc.

Sugestia automată: la începutul unei discuții, mesajul este comparat rapid cu indexul local al descrierilor. Dacă găsește ceva potrivit, apare un card cu Da, folosește-le și Nu. Nimic nu se activează fără confirmarea ta. Pentru cereri neclare, un model rapid poate confirma selecția; sunt propuse cel mult trei.

CLIcum primește skill-ul
Claudeskill nativ, încărcat la nevoie
Codex și agydin dosarul de lucru comun, cu instrucțiunile proiectului
Perplexityprimește în mesaj numai descrierile și corpurile relevante; scripturile locale nu pot rula acolo

În dialog vezi separat ce este atașat aici și ce este moștenit de la nivelurile de deasupra. Oprirea unui skill la un nivel nu șterge skill-ul din bibliotecă.

Skill Studio: tag-uri, colecții, căutare online și pagina fiecărui skill
Schiță: primul mesaj dă discuției un ID, o indexează și îi creează automat proiectulDiscuțienouăPrimulmesajCLIcreează IDChat-webindexeazăProiectautomatTitlumesajdacă ai ales deja proiectul, discuția intră direct în elSchiță: configurația finală adună globalul, proiectul, subproiectul, discuția și rezumatul părinteluiGlobalskillsProiectinstr · tag · colecțieSubproiect+ reguliDiscuție+ localeAIconfigRezumat părinteaceeași regulă venită din mai multe locuri ajunge o singură datăSchiță: o discuție poate avea mai multe ramuri, iar fiecare ramură poate fi ramificată din nouDiscuțiepărinteRezumateditabilSubdiscuțiereguli propriiAltă ramurăindependentăSub-subdiscuțiepoți continua ramificarea la orice adâncimeSchiță: Skill Studio leagă biblioteca, tag-urile, colecțiile și nivelurile unde se aplicăBibliotecăskills localeTag-uridinamiceColecțiiexacteAplicarepe nivelîn Skill Studio vezi, testezi și organizezi înainte să apliciglobal · proiect · subproiect · discuție · subdiscuțieSchiță: un skill conține descriere, instrucțiuni, exemple, referințe și eventual scripturiSkillo capacitateNumeidentitateDescrierecând se foloseșteInstrucțiunicum lucreazăExempleReferințeScripturiopționaledatele firmei nu intră în skill; ele rămân în SurseSchiță: tag-ul aduce dinamic toate skills-urile etichetate; colecția păstrează exact lista aleasăTag #web-designDINAMICColecția #003CONTROLATĂfrontend-designseo-auditbrand-reviewProiectfolosește ambeletagul se schimbă automat · colecția are lista exactă aleasăSchiță: tag-ul server grupează trei skills, iar skill-ul Docker aparține și tag-ului dockerTag #serverdinamicops-chat-webops-backupops-docker-caddyTag #dockermai specificun skill poate aparține mai multor tag-uriSchiță: arborele proiectelor și arborele tag-urilor sunt două structuri diferiteProiect ServerSubproiect DockerDiscuție BackupTag #serverSubtag #dockerSubtag #postgresierarhii separate: ramificarea unei discuții NU creează automat un subtagSchiță: ramura PostgreSQL moștenește Server și Docker, apoi adaugă tag, colecție și instrucțiune proprieProiect Server#serverSubproiect Docker#dockerDiscuție Backupconfirmă ștergereaSubdiscuțieRestaurare PostgreSQL#postgresqlrecuperare-dateInstrucțiunenumai copie testSchiță: zonele actuale ale Skill Studio, de la bibliotecă și căutare până la testare și aplicareBiblioteca meacăutare + filtreCaută onlinepreview + riscTag-uriunice + subtag-uriColecțiilistă exactăTestarecu / fără skillAplicareglobal · proiect · discuțieSchiță: skills-urile Web design pot avea unul sau mai multe tag-uri care le aduc dinamic în proiectfrontend-designseo-auditbrand-reviewaccesibilitate#frontend#web-design#brandingProiectWeb designSchiță: două colecții pot refolosi același skill, dar fiecare păstrează exact lista aleasăLanding pagecolecție exactăIdentitate vizualăcolecție exactăfrontend-designseo-auditaccesibilitatebrand-reviewAlegiexplicitSchiță: exemplu complet — proiectul Web design combină un tag dinamic, o colecție exactă și reguli de subproiectProiectWeb design#web-designtag dinamicLanding pagecolecțiePagini HTMLsubproiectfrontend-designseo-auditaccesibilitatebrand-reviewSchiță: același prompt este comparat fără și cu skills, înainte să aplici colecțiaPrompt realsite construcțiiFără skillrăspuns genericCu colecțiedesign + SEOComparațiece s-a îmbunătățitprevizualizare · informații lipsă · răspuns de probăSchiță: o colecție aplicată proiectului se propagă spre subproiectele și discuțiile luiColecțiaLanding pageProiectWeb designPagini HTMLsubproiectUI / UXsubproiectDiscuțiisite-uri diferitetoate discuțiile moștenesc colecția proiectuluiSchiță: Skill Studio este un ciclu permanent de creare, testare, aplicare, verificare și corectareObservisarcinăCreezisau găseștiTesteziApliciVerificiCorecteziversiuni + raport «unde este folosit»Schiță: varianta completă Skill Studio are bibliotecă, online, tag-uri, colecții și aplicare pe toate nivelurileBiblioteca meacăutare · filtreCaută onlinepreview · importTag-uriunice · subtag-uriColecțiitestareSkill Studiocentrul sistemuluiGlobalProiectDiscuțieSubdiscuțieSchiță: căutarea online folosește cataloage oficiale, apoi arată o previzualizare înainte de importCăutaretermenOpenAIcatalog oficialAnthropiccatalog oficialPreviewSKILL.md + fișiereImportconfirmatnu se execută nimic la căutare sau importSchiță: importul verifică fișierele și riscul, apoi scrie skill-ul fără să-i execute scripturileFolder onlineskillValidarecăi + mărimeRiscscripturi + binareBibliotecăcopie atomicăscripturi găsite → cere confirmare explicităproveniența, repository-ul și amprenta rămân pe pagina skill-uluiSchiță: fiecare skill are pagina lui cu descriere, instrucțiuni, fișiere, organizare, utilizări și istoricPrezentaredescriere + origineInstrucțiunieditare + versiuniFișierescripts · refs · assetsTag-uribife dinamiceColecțiibife controlateUtilizăriunde este activun singur loc pentru a înțelege, organiza, edita și restaura skill-ulSchiță: arhitectura completă unește catalogul online, biblioteca, tag-urile, colecțiile și calculatorul de reguliCatalog onlineverificareSkills localebibliotecăPreviewriscTag-uridinamiceColecțiiexacteCalculatorreguliAItoate nivelurileglobal → proiect → subproiect → discuție → subdiscuție

Skill Studio este locul unde administrezi biblioteca comună folosită de Claude, Codex, agy și Perplexity. Are patru zone: Colecții, Bibliotecă, Tag-uri și Caută online.

Schițele de mai sus reproduc separat toate fluxurile din documentul de proiectare: apariția unei discuții și a proiectului ei, cascada regulilor, ramificarea în subdiscuții, anatomia unui skill, exemplele de tag-uri și colecții, aplicarea lor și arhitectura completă.

Tag dinamic sau colecție controlată?

obiectcum funcționează
tageste unic fără diferență între litere mari/mici; poate avea subtag-uri. Orice skill etichetat ulterior intră automat în toate nivelurile care folosesc tag-ul.
colecțieare număr și nume unic și păstrează exact skills-urile bifate. O modificare a colecției se propagă acolo unde este atașată.

Un skill poate avea mai multe tag-uri și poate fi în mai multe colecții. Un proiect, subproiect, o discuție sau subdiscuție poate folosi simultan mai multe tag-uri și colecții. La nivelul de jos poți exclude un tag moștenit fără să-l ștergi de sus.

Important: arborele tag-urilor și arborele proiectelor/discuțiilor sunt separate. Crearea unei subdiscuții nu creează automat un subtag.

Căutarea și importul online

  1. Deschide fila 🌐 Caută online și scrie termenul.
  2. Rezultatele vin numai din cataloage oficiale aprobate OpenAI și Anthropic.
  3. Apasă Detalii: vezi descrierea, întregul SKILL.md, lista fișierelor și analiza de risc.
  4. Dacă există scripturi, importul cere confirmare explicită. Nici căutarea, nici importul nu execută fișiere.
  5. Skill-ul este copiat atomic în biblioteca locală; repository-ul, calea, referința și amprenta rămân salvate ca proveniență.

Poți lipi și linkul public al unui folder de skill din GitHub. Serverul acceptă numai HTTPS, verifică existența lui SKILL.md, limitele de mărime și căile înainte să ofere importul.

Pagina fiecărui skill

Apasă numele unui skill din Bibliotecă. Pagina separată are: prezentare și proveniență; instrucțiunile complete editabile; exemple; lista fișierelor și scripturilor; cerințele de surse; tag-uri și colecții; test direct; toate utilizările; istoricul cu diferențe vizuale și restaurare. Pentru un skill online poți verifica actualizarea și o poți aplica numai după previzualizare și confirmare.

Serverul verifică periodic dacă există versiuni online noi, dar nu actualizează niciodată singur. Astfel, un script sau o instrucțiune schimbată online nu intră în proiecte fără acordul tău.

Chat: subdiscuții și ramuri cu rezumat
Schiță: o discuție este rezumată și poate porni mai multe subdiscuții independenteDiscuția părintetot istoriculRezumateditabilSubdiscuția 1continuareSubdiscuția 2altă ramurăfiecare ramură poate avea alte instrucțiuni și alte skillsSchiță: la ramificare alegi separat toate cele șase opțiuni, inclusiv sursele și fixarea versiunilorPărinteconfigurație localăSubdiscuțiecopie aleasă☑ rezumat☑ surse live☐ fixează surse☑ taguri + colecții☑ skills directe☑ instrucțiuni

O subdiscuție este o ramură nouă pornită din discuția deschisă. Primește un rezumat al părintelui, dar apoi evoluează independent și poate avea alte instrucțiuni sau alte skills. Poți ramifica din nou, fără limită de adâncime.

  1. Deschide discuția-părinte și apasă ↳ Subdiscuție din antet sau din meniul discuției.
  2. Așteaptă generarea rezumatului. Citește-l și corectează-l dacă lipsește ceva important.
  3. Alege ce copiezi: instrucțiunile părintelui, tag-urile și colecțiile, skills-urile directe, sursele și rezumatul. Poți și să fixezi versiunile actuale ale surselor.
  4. Trimite primul mesaj. Noua ramură apare retrasă sub părinte în lista proiectului.
  5. Dacă părintele s-a schimbat ulterior, folosește Actualizează rezumatul; actualizarea nu copiază automat toate mesajele noi.

Folosește ramurile când vrei să încerci o soluție alternativă, să separi cercetarea de implementare sau să continui un subiect fără să aglomerezi firul principal.

Surse: fișiere și date pentru proiecte, subproiecte și discuții
Schiță: un fișier fizic unic devine document cu versiuni și legături către mai multe niveluriFișier fizicunic după hashDocumentîn bibliotecăVersiunea 1Versiunea 2Versiunea 3ProiectDiscuțieSubdiscuțieSchiță: sursele firmei se moștenesc până la analiza reclamelor, unde pot fi completate sau excluseProiect Companiafirmă.pdf · produse.xlsxMarketing+ strategie.docxCampanie Facebook+ rezultate.csvSubdiscuțieAnaliza reclamelorMoștenește+ oct.xlsx− excludeSchiță: sursele se adună în cascadă de la proiect până la discuția curentăProiectsurse generaleSubproiect+ surse specificeDiscuție+ surse localeModeltoate activesursele se moștenesc; fiecare nivel poate adăuga sau excludesubdiscuția poate fixa versiuni și adăuga propriile fișiereSchiță: instrucțiunile spun cum, skills-urile dau metoda, iar sursele furnizează datele concreteInstrucțiuniCUM lucreazăSkillsCE metodă foloseșteRăspunsconfiguratSurseDIN CE dateSchiță: întrebarea caută în index și trimite modelului numai paginile, rândurile sau fișierele relevanteÎntrebareutilizatorPDFpaginiExcelfoi + rânduriDosarfișiereIndexcaută[S1]fragmentnu trimite toate documentele; alege numai fragmentele relevanteSchiță: fereastra Surse separă documentele proprii de cele moștenite și oferă fișier, URL sau dosar📚 SurseSurse propriiproduse.xlsx✓ indexatsite-firmă.ro↻ actualizareMoștenitereguli.pdfdin Companiabranding.zipdin Marketing+ Fișier+ URL+ DosarSchiță: sursele proprii și moștenite se văd separat, iar o sursă moștenită poate fi exclusă numai pe ramura curentăProiectproduse.xlsxSubproiectmoșteneșteDiscuție+ rezultate.csvExclude aiciproduse.xlsxReincludeoricândexcluderea este locală; nu șterge sursa de la nivelul părinteSchiță: fișierul, pagina sau dosarul intră în depozitul deduplicat, apoi este extras și indexat+ Fișierupload+ URLsnapshot HTTPS+ Dosarstructură păstratăHash unicfără dubluriIndexaretext + locatorSchiță: același tag dinamic poate grupa metodele de lucru și sursele de date ale proiectuluiTag #vânzăridinamicSkillanaliză vânzăriSkillgraficeSursevânzări.xlsxProiectRaport comercialSchiță: skill-ul declară tipul de date necesar, tag-ul găsește sursele, iar colecția organizează raportulSkillanaliză vânzăriCerințăExcel sau CSVTag #vânzăridinamicColecțieRaport comercialproduse.xlsxvânzări.xlsxPDF raportSchiță: la crearea subdiscuției alegi separat rezumatul, sursele, tag-urile, colecțiile, skills-urile și instrucțiunilePărinteconfigurație localăSubdiscuțiecopie aleasă☑ rezumat☑ surse live☐ fixează surse☑ taguri + colecții☑ skills directe☑ instrucțiuniSchiță: subdiscuția poate urmări sursele părintelui în timp real sau poate fixa versiunile de la momentul ramificăriiPărintesurse curente☑ moștenește sursele☐ fixează versiunile+ surse proprii− exclude individualSubdiscuțielive sau fixatăSchiță: fiecare mesaj păstrează versiunea exactă și locatorul fragmentului, chiar dacă documentul este actualizat ulteriorproduse.xlsxv1 · 10 octproduse.xlsxv2 · 15 octproduse.xlsxv3 · curentMesajfolosește v2Surse folositefoaia Lunar · rând 10Schiță: fișierele, notele și paginile HTTPS devin surse persistente cu text extrasFișierPDF · DOCX · CSV…Text / notălipit directURL HTTPSsnapshot controlatDepozit sursecopie persistentă + text extrasPromptdate + cale localăSchiță: calculatorul livrează fiecărui CLI forma de sursă pe care o poate folosiSursatext + fișierCalculatorselectează activeClaude · Codex · agytext + cale fișierPerplexitysnapshot textMesaj vechiconfig păstrat

Butonul 📚 Surse atașează date de informare proiectului, subproiectului, discuției sau subdiscuției curente. O sursă poate fi:

Galeria desenată include toate exemplele din documentul de proiectare: biblioteca fizică unică, moștenirea Companie → Marketing → Campanie → Analiză, interfața Surse, legătura dintre skill, tag, colecție și documente, opțiunile subdiscuției, versiunile și citările.

  • fișier — PDF, Word, Excel, CSV/TSV, PowerPoint, text, cod și imagini cu OCR în română/engleză;
  • text / notă — informație lipită direct;
  • pagină HTTPS — serverul păstrează un snapshot controlat;
  • dosar — până la 250 de fișiere, cu structura relativă păstrată.

Cum o adaugi

  1. Intră în proiect sau deschide discuția și apasă 📚 Surse.
  2. Alege nivelul: proiect/subproiect ori numai discuția curentă.
  3. Dă un titlu, o descriere și tag-uri, apoi adaugă conținutul. Moștenirea este disponibilă la orice nivel, inclusiv către subdiscuții.
  4. Din listă poți opri moștenirea, exclude numai pe ramura curentă, detașa, fixa o versiune sau arhiva.

Fișierele sunt salvate după amprenta SHA-256 în /var/lib/chat-web/surse/blobs/: același conținut nu este duplicat. Versiunile sunt imuabile. Pentru fiecare format se păstrează locatorul util: pagina PDF, foaia și rândul Excel/CSV, diapozitivul, paragraful ori liniile din cod.

La întrebare, indexul caută în toate sursele efective și trimite numai fragmentele relevante, marcate [S1], [S2]. În 🧾 Reguli primite vezi ulterior exact documentul, versiunea și locatorul folosit.

Tag-urile sunt dinamice și pentru surse: o sursă etichetată cu un tag activ al proiectului devine disponibilă automat. O excludere locală are prioritate. Colecțiile rămân pachete controlate de skills, iar pagina skill-ului poate declara ce tipuri de surse îi sunt necesare.

Sursele sunt date, nu instrucțiuni: spun din ce informații să lucreze. Instrucțiunile spun cum să lucreze, iar skills-urile oferă metoda reutilizabilă.

Chat: versiuni, restaurare și „Reguli primite”
Schiță: fiecare modificare creează o versiune, care poate fi restaurată și verificatăEditeziinstrucțiuniVersiunea 1păstratăVersiunea 2curentăRestaurezioricândReguliprimitela fiecare mesaj se păstrează configurația efectivă folosită

Instrucțiunile și legăturile de skills sunt versionate. La fiecare schimbare se păstrează varianta anterioară, ca să poți vedea ce s-a modificat și să revii.

  • Istoric versiuni: din dialogul Instrucțiuni vezi data și nivelul fiecărei versiuni.
  • Restaurează: alegi o versiune veche și o readuci ca variantă curentă; restaurarea creează la rândul ei o versiune nouă.
  • 🧾 Reguli primite: pe mesaj vezi configurația efectivă folosită atunci: lanțul de proiecte, instrucțiunile și skills-urile active.
  • Mutări: după mutarea într-un alt proiect, mesajele vechi își păstrează instantaneul, iar mesajele noi folosesc noua cascadă.

Aceasta este diferența dintre ce este configurat acum și ce a primit modelul la acel mesaj: ambele pot fi verificate.

Chat: cum este construit acum pe server
Schiță: SQLite și biblioteca de skills intră în calculatorul de reguli, care livrează fiecărui CLI formatul potrivitSQLiteproiecte + reguliBibliotecaSKILL.mdCalculator regulicascadă + indexClaudeskills nativeCodex · agydosar de lucruPerplexitytext selectivCopii JSONcompatibilitate

Chat-web are o singură sursă de adevăr. Proiectele, discuțiile, versiunile și legăturile de skills sunt în baza SQLite /var/lib/chat-web/chat-web.sqlite3, iar biblioteca este în /var/lib/chat-web/skills/. Fișierele JSON rămân copii de compatibilitate pentru uneltele vechi.

La fiecare mesaj, serverul calculează lanțul proiectului, adună regulile în cascadă și pregătește formatul potrivit pentru CLI-ul ales. Discuțiile cu aceeași configurație pot refolosi același dosar calculat; skills-urile sunt legături către bibliotecă, nu copii.

componentărol
SQLitescrieri sigure, versiuni, indexul discuțiilor și căutare incrementală
indexul de skillsgăsește local potrivirile rapide; modelul intervine doar când rezultatul este neclar
calculatorul de regulicombină global + proiecte-părinte + subproiect + discuție
backupface o copie coerentă a bazei SQLite și include biblioteca, fișierele-sursă și copiile JSON de compatibilitate

Ce nu este identic între modele: Claude, Codex și agy pot citi fișiere și folosi scripturi locale; Perplexity primește doar text selectiv. De aceea un skill cu script poate fi descris în Perplexity, dar nu poate executa scriptul pe server.

Chat: Mută discuția de la un CLI la altul
Schiță: Mută discuția de la un CLI la altul, pe contul alesde laClaudelaagycont4 · emailMută ↵de la / la: Claude · agy · Codex, în orice combinație (9)opțional: ID discuție, mesaj, „comprimă înainte” (doar de la Claude)același CLI = doar schimbi contul · alt CLI = discuția continuă acolo

Butonul ⇄ Mută din antet deschide o linie: de la [Claude / agy / Codex] → la [Claude / agy / Codex] cont [număr sau email] → Mută ↵. Merg toate cele 9 combinații. Câmpul „cont” e și listă, și loc de scris (numărul sau o parte din email) și arată conturile CLI-ului de destinație.

ce alegice se întâmplăcomanda din terminal
același CLI (ex. Claude → Claude)discuția continuă pe alt cont al aceluiași CLIclaudemuta, agymuta, codexmuta
alt CLI (ex. Codex → agy)textul integral al discuției trece în destinație, care continuă de unde a rămas; se creează o discuție nouă acolo, în același proiectclaude2agy, claude2codex, agy2claude, agy2codex, codex2agy, codex2claude

Opțional: ID discuție (gol = discuția deschisă acum, sau ultima din CLI-ul sursă), mesaj pentru destinație și bifa „comprimă înainte de transfer”, care rulează /compact pe discuția Claude înainte să plece, ca destinația să primească un text mai scurt (doar de la Claude).

Când să folosești: ai atins limita unui cont (treci pe altul), vrei altă părere (treci în alt CLI) sau vrei un model care știe altceva. Nu muta o discuție în timp ce lucrează.

Chat: adaugi un cont nou (Claude, agy, Codex)
Schiță: adaugi un cont din chat, te loghezi, iar contul apare peste tot+ Contîn antetLoginlink / cod în browserApare peste totchat · Mută · terminalfără să editezi scripturi: conturile se descoperă singure

În antet: + Cont. Alegi CLI-ul, iar pagina pornește login-ul real pe server:

  • Claude: primești un buton către pagina de login. Te autentifici în contul dorit, apeși „Authorize”, copiezi codul afișat și îl lipești în fereastră, apoi „Confirmă”.
  • Codex: primești un link OpenAI și un cod de 8 caractere. Te loghezi, introduci codul, iar pagina verifică singură.
  • agy: se loghează doar într-un terminal. Pagina creează dosarul și îți dă comanda de rulat (de forma HOME="/root/agy-cont4" agy), cu link spre terminalul din browser.

Ce se întâmplă apoi: contul apare singur în chat, în rândul „Mută” și în scripturile din terminal. Nu se editează nimic. Un alias nou (claude4, agy4…) apare în terminalele pornite după aceea. Dacă anulezi sau login-ul eșuează, dosarul gol se șterge.

Cum e făcut: scriptul conturi-ai (în /usr/local/lib/conturi_ai.py) caută conturile logate: Claude în /root/.claude și /root/.claude-contN, Codex în /root/.codex și /root/.codex-contN, agy în /root și /root/agy-contN. Numerele conturilor Claude sunt fixate în /etc/conturi-ai.json, ca să nu se mute niciodată. Vezi lista cu conturi-ai în terminal.

Atenție la planuri: un cont gratuit se poate loga, dar nu înseamnă că poate folosi CLI-ul. Claude Code cere de obicei abonament plătit; Codex depinde de planul ChatGPT. Gemini CLI nu mai acceptă login-ul Google personal (de aceea nu e în chat; agy îi ia locul). Nu există încă buton de ștergere a unui cont: ștergi dosarul lui și, la Claude, intrarea din /etc/conturi-ai.json.

Chat: Istoric, căutare și Setări
Schiță: cauți în toate discuțiile, vezi fragmentele, apoi citești discuțiascriipostiz canalerezultatecuvinte evidențiatecitești↑ ↓ în discuție„între ghilimele” = fraza exactă · -cuvânt = exclus

🕘 Istoric (lângă „Discuție nouă”) deschide arhiva tuturor discuțiilor din Claude Code, agy și Codex. Fără căutare vezi titlurile, cele mai noi primele. Filtrezi pe CLI cu butoanele de sus. Un click pe o discuție o deschide în dreapta, doar pentru citire.

Căutarea ignoră diacriticele, găsește forme apropiate (merge / mergea) și greșeli mici de scriere. Rezultatele sunt ordonate după relevanță, cu fragmente și cuvintele evidențiate; un click pe un fragment te duce la acel mesaj. În discuția deschisă ai o căutare proprie, cu ↑ ↓ între potriviri.

scriigăsești
postiz canalediscuțiile cu ambele cuvinte (și formele lor)
"terminal în browser"fraza exactă
certificat -codex„certificat”, dar fără discuțiile cu „codex”

⚙ Setări (jos în stânga sau din antet; în antet sunt și 📖 Manual și + Cont): General (permisiuni, model, trimiți cu Enter sau cu Ctrl+Enter), Aspect (temă automată, închisă sau deschisă) și Conturi (lista pe CLI și „Adaugă cont nou”). Textul vine din arhiva de pe server (/opt/discutii/arhiva); logurile de terminal nu intră în căutare.

Chat: ceva nu merge
ce vezice faci
Pagina arată veche sau lipsește un butonCtrl+F5 (golește cache-ul paginii)
Nu mă lasă înăuntruUtilizator admin; parola e în /root/terminal-parola.txt. Încearcă într-o fereastră privată.
„agy a încercat o comandă și a fost refuzată”agy nu poate cere aprobare în chat. Alege Permisiuni → Lasă liber (cu grijă) sau rulează comanda în terminal.
Un cont Claude „la limită”Apare un banner roșu cu butoane către celelalte conturi; alegi unul și mesajul se retrimite. Sau folosești Mută.
Contul nou nu apare în listăLogin-ul nu s-a terminat (dosarul gol se șterge singur). Repetă „Adaugă cont nou”. Verifică cu conturi-ai în terminal.
Un proiect are discuții care nu au legăturăMuți discuțiile cu ↗. Legătura se face din primele 4 caractere ale ID-ului, deci uneori greșește.
Chatul nu răspunde delocÎn terminal: systemctl status chat-web, apoi systemctl restart chat-web. Discuțiile nu se pierd: sunt în fișierele CLI-urilor.
Un mesaj a rămas „în lucru”Apasă butonul rotund „Oprește”, apoi trimite din nou.

Dacă nu știi ce să faci, îi spui lui Claude: „rulează verifica-pagini”.

Ceva nu merge. Ce fac?
  • O pagină nu se deschide sau dă eroare → îi spui lui Claude: „rulează verifica-pagini". Sunt 14 probe care verifică tot.
  • Ai uitat cheia de acces → îi spui lui Claude: „arată-mi cheia de acces".
  • Copia de noapte a dat greș → /stocare → „Testează legătura", apoi îi arăți lui Claude mesajul de eroare (ca text, nu poză).
  • Nu găsești o discuție → în Drive, Conversatii-AI / Claude-Code / CUPRINS.md.
  • Claude îți cere un cod sau o adresă → copiază-l ca text (Ctrl+L, Ctrl+C, Ctrl+V), nu trimite poză: din poză literele I și l se încurcă.
Ce a rămas de făcut
  • Pornirea arhivei de discuții (așteaptă aprobarea ta — vezi mai sus).
  • Rotirea cheilor care au trecut prin chat: 14 chei (Manus, Gemini, Apify, Genspark, Telegram). Nu e urgent.
  • Contul Manus cont-1 are cheia moartă: de șters sau de înlocuit.
  • Netestate, fără chei: Exa, Tavily, Firecrawl, ElevenLabs.
Pas cu pas: Postiz (postări programate pe rețele)

Postiz face un singur lucru, dar îl face bine: scrii o postare o dată și pleacă singură, la ora pe care o alegi, pe toate rețelele tale. Adresa: postiz.ambru.us (sau butonul „Postiz" din bara de sus).

  1. Prima intrare: îți faci contul cu adresa de email și o parolă. Înregistrările sunt apoi închise, ca să nu-ți poată face nimeni altcineva cont pe serverul tău.
  2. Legi rețelele din „Add Channel". Aici e partea care cere răbdare: Postiz pe serverul tău folosește aplicațiile tale de dezvoltator, nu pe ale lor. Pentru fiecare rețea îți faci o aplicație în portalul ei, iei cele două chei și le pui în Postiz. La Meta (Facebook, Instagram, Threads), YouTube și TikTok, aprobarea poate dura săptămâni. La Mastodon, Discord sau Telegram e de câteva minute.
  3. Scrii postarea: text, poze, filme. Poți da text diferit pe fiecare rețea din aceeași postare, dacă vrei să suni altfel pe LinkedIn decât pe X.
  4. Alegi ziua și ora în calendar. Postările se mută cu mouse-ul dacă te răzgândești.
  5. Gata. La ora respectivă pleacă singură, chiar dacă nu ești la calculator.

Din automatizări: are API public, deci o postare poate fi creată dintr-un flux de n8n sau Activepieces — de pildă, când apare un produs nou, se programează singură o postare.

Fișierele pe care le încarci stau pe discul serverului, nu la Cloudflare. Dacă pui multe filme, spune-mi și le mut pe storage.

Dacă pagina nu răspunde: cd /root/postiz && docker compose ps arată cele șase containere; toate trebuie healthy. Repornirea e docker compose restart postiz.

Pas cu pas: Gemini Pro pe server, prin agy (Antigravity CLI)

agy este unealta oficială Google pentru terminal, care folosește abonamentul tău Google AI Pro. Înlocuiește vechiul „Gemini CLI", pe care Google l-a oprit pentru conturile personale din 18 iunie 2026 (dacă îl rulezi, apare „This client is no longer supported"). Pe serverul ăsta e instalat în ~/.local/bin/agy.

Important: abonamentul Pro merge doar în aplicațiile făcute de Google (agy, aplicația Gemini, Antigravity). În LibreChat, OpenCode, Postiz sau n8n nu poți folosi login-ul Google. Acolo ai nevoie de un API key Gemini, care e altceva: se plătește separat, după consum, sau are un plan gratuit cu limite mici.

1. Prima conectare (se face o singură dată)

  1. Pe PC, deschide un terminal și intră pe server: ssh -p 22422 root@2.28.133.154 (portul SSH al serverului e 22422).
  2. Scrie agy și apasă Enter.
  3. Apare un link care începe cu accounts.google.com. Deschide-l în browser (în Terminal de pe Mac, Cmd+click pe el) și intră cu contul care are Google AI Pro.
  4. Google îți dă un cod scurt. Scrie-l de mână în terminal și apasă Enter. Codul e ca o parolă temporară: nu-l pune în chat și nu-l trimite nimănui.
  5. Sus, în antet, vezi contul și planul: (Google AI Pro). Gata, ești conectat. Scrie o întrebare ca să verifici. Ieși cu /quit.

2. Folosirea de zi cu zi

vrei să…scrii
pornești o discuțieagy
continui ultima discuțieagy -c
reiei o discuție anumeagy --conversation=ID (ID-ul apare când ieși)
pui o singură întrebare și iei răspunsulagy -p "întrebarea ta"
vezi ce servere MCP are conectate/mcp (în discuție)
vezi și schimbi permisiunile/permissions (în discuție)

Să nu se piardă sesiunea când închizi terminalul sau treci de pe un PC pe altul: pornește-l în tmux. Scrii tmux new -s gemini, apoi agy. Ieși fără să-l oprești cu Ctrl+B, apoi D. De pe celălalt PC te întorci cu tmux attach -t gemini.

3. Poate da comenzi pe server?

Da. agy rulează chiar pe server, ca root, deci poate citi fișiere, rula comenzi și intra în Docker, la fel ca Claude. De fiecare dată îți cere voie: alegi „Yes", „always allow in this conversation" sau „always allow (persist)". Regulile salvate stau în ~/.gemini/antigravity-cli/settings.json, la permissions.allow.

Există și --dangerously-skip-permissions, care aprobă tot fără să te întrebe. Nu-l folosi pe serverul ăsta: ar putea șterge sau modifica orice. Dă permisiuni permanente doar pentru comenzi de citire (ls, grep), nu pentru docker sau rm.

4. Legarea la Postiz (MCP)

MCP e „priza" prin care un AI primește unelte din altă aplicație. Cu Postiz conectat, Gemini poate să-ți listeze canalele sau să programeze o postare, nu doar să scrie text.

  1. În Postiz: Settings → Developers → API Key → Copy.
  2. Pe server, în fișierul ~/.gemini/config/mcp_config.json, adresa e https://postiz.ambru.us/api/mcp/CHEIA_TA (la serverUrl). Cheia e legată de un singur workspace din Postiz: dacă ai mai multe, ia-o din cel cu canalele.
  3. Repornești agy, scrii /mcp și trebuie să vezi postiz cu ✓.
  4. Ceri apăsat: „Apelează unealta MCP integrationList de pe serverul postiz". Dacă nu spui asta, Gemini poate încerca să caute prin fișierele serverului.

Cheia nu se pune niciodată în chat. Fișierul cu configurația o conține: nu-l trimite și nu-l arăta în discuții.

5. De ce MCP, dacă la LibreChat folosești oricum un API key?

piesace face
API key Gemini (sau abonamentul Pro, în agy)e creierul: modelul care înțelege și scrie
MCP Postizsunt mâinile: lasă modelul să facă lucruri în Postiz (să vadă canalele, să programeze postări)

Fără MCP, un chat doar scrie textul și tu îl copiezi manual în Postiz. Cu MCP, aceeași cerere („programează mâine la 10 postarea asta pe LinkedIn") se face singură. În LibreChat poți adăuga același server MCP, cu aceeași cheie Postiz; creierul rămâne API key-ul Gemini.

6. Mai multe conturi Gemini Pro (verificat, merge)

agy ține un singur cont pe fiecare HOME. Deci câte un HOME separat = câte un cont. Pe serverul ăsta sunt trei:

comandafolderul de datecont
agy/root/.geminihelpukrainianpeople@gmail.com
agy2/root/agy-cont2-ambrucosmin2000@gmail.comambrucosmin2000@gmail.com
agy3/root/agy-cont3-bombonelpacanel@gmail.combombonelpacanel@gmail.com

agy2 și agy3 sunt aliasuri în ~/.bashrc (HOME=/root/agy-cont2-ambrucosmin2000@gmail.com agy). Merg doar într-un terminal real (SSH sau tmux): prin alte unelte, fără terminal, apare „could not open TTY".

  1. Intri pe server cu SSH și scrii agy2 (sau agy3).
  2. La prima pornire ți se cere login. Deschide linkul în browser. Dacă browserul ține alt cont, folosește o fereastră privată sau „Use another account".
  3. Scrie câteva mesaje. Cota e separată pe fiecare cont.

Să schimbi contul dintr-un folder: închide mai întâi agy (/quit), apoi șterge conținutul folderului (de pildă /root/agy-cont2-ambrucosmin2000@gmail.com) și pornești din nou aliasul. Cât timp agy rulează, ține contul în memorie și îl scrie la loc.

Dacă contul nu e acceptat: apare „Your current account is not eligible for Antigravity". Contul trebuie să fie unul personal, verificat de Google. Nu merge oricare.

Emailul în arhivă: se citește singur din fișierul de login al contului (antigravity-oauth-token). Folderul fiecărui cont are emailul în nume, ca să știi al cui e. Un cont nou nu cere nicio modificare în /opt/discutii/agy_export.py.

6b. Remote Control (control de la distanță)

agy are o funcție Remote Control: o poți porni ca să legi serverul de contul tău, cu un nume de mașină, și să-l vezi din altă parte. Nu am pornit-o și nu am testat-o pe serverul ăsta; mai jos e doar ce spune ajutorul programului.

vrei să…scrii
vezi dacă mergeagy remote-control status (acum: inactive)
o porneștiagy remote-control start
îi dai un numeagy remote-control start --name numele-serverului
pornește doar cât ești logat, nu la fiecare bootagy remote-control start --session
o oprești și o scoți din listăagy remote-control stop
pornești o discuție direct cu eaagy --remote-control

Atenție: start înregistrează serverul la Google și, fără --session, pornește la fiecare boot. Fiecare cont (agy2, agy3) are propriul lui. Logurile: journalctl --user -u antigravity-cli-daemon.service -n 50.

6c. Ai ajuns la limită? Treci pe alt cont și continui discuția

Contul 1claude / agyContul 2claude2 / agy2Contul 3claude3 / agy3copiazăcopiazăComanda: agymuta / claudemuta <număr> · nu se șterge nimic din contul vechiClaude: conturile 1 și 3 au același folder de discuții; contul 2 are folder propriu

Fiecare cont Pro are cota lui. Când ți se termină pe unul, poți continua aceeași discuție pe alt cont, cu tot ce s-a vorbit până atunci (verificat: contul nou a știut despre ce era vorba). Comanda este agymuta.

vrei să…scrii
continui ultima discuție pe contul 2agymuta 2
continui ultima discuție pe contul 3agymuta 3
continui pe contul principalagymuta 1
o discuție anume (ID-ul apare când ieși din agy)agymuta 2 ID-ul-discuției
îi dai direct o cerere, fără ecran interactivagymuta 2 -p "continuă de unde ai rămas"

Conturile sunt numerotate ca mai sus: 1 = agy, 2 = agy2, 3 = agy3.

  1. Ieși din agy cu /quit (sau lasă-l, dacă s-a oprit singur).
  2. Scrii agymuta 2. Scriptul copiază discuția în folderul contului 2 (nu șterge nimic din contul vechi) și deschide agy pe contul 2, la același punct.
  3. Continui să scrii ca și cum nu s-ar fi schimbat nimic.

Ce NU se face automat: agy nu spune într-un fel pe care să-l poată citi alt program că ai atins limita, și nu are cârlig pentru „schimbă contul singur". Deci schimbarea o pornești tu, cu o comandă. Semne că e timpul: apare un mesaj de cotă epuizată sau agy nu mai răspunde. Cota se resetează după un interval, așa că poți reveni pe contul vechi mai târziu cu agymuta 1 (sau 2/3): atunci copiază înapoi discuția cu ce s-a adăugat între timp.

De știut: după mutare, arhiva (/discutii) păstrează un singur dosar pentru aceeași discuție (cel creat prima dată), care se actualizează cu ce scrii pe noul cont. Dacă scrii în paralel în ambele conturi, discuțiile se despart: folosește unul singur odată. Contul din care muți trebuie să fie logat în continuare, iar cel în care muți la fel (în caz contrar, logare nouă în browser).

6c-bis. La fel pentru Claude Code: claudemuta

Aceeași idee și pentru Claude. Numerele sunt la fel ca la agy:

număragyClaude Code
1agyclaude (aitooloneyear@gmail.com)
2agy2claude2 (nasaworld@affordify.edu.lk)
3agy3claude3 (cosminambru@gmail.com)
vrei să…scrii
continui ultima discuție pe contul 2 / 3 / 1claudemuta 2 / claudemuta 3 / claudemuta 1
o discuție anume (merg și primele litere ale ID-ului)claudemuta 3 7b0d
o cerere directă, fără ecran interactivclaudemuta 3 -p "continuă de unde ai rămas"

Nu scrii ID-ul întreg: ajung primele 4 litere (dacă se potrivesc mai multe discuții, comanda le listează). La agymuta merge la fel. Conturile 1 și 3 folosesc același folder de discuții, deci nu se copiază nimic; contul 2 are folder propriu, iar comanda copiază discuția acolo (și nu suprascrie o copie mai nouă). Dacă un cont e la limită, Claude spune „You've hit your weekly limit" și când se resetează.

6c-ter. Treci între agy și Claude (cu textul întreg)

Discuție agyGeminiText integral/root/treceri/Claude Codecontinuă discuțiaDiscuție ClaudeClaude Codeagycontinuă discuțiaclaude2agyagy2claudela agy intră în cerere cel mult ~110 KB (sfârșitul discuției)

O discuție din agy (Gemini) poate fi continuată în Claude, și invers. Comenzile iau tot textul discuției, nu un rezumat, și i-l dau celuilalt asistent, care continuă de unde a rămas. Numerele conturilor sunt cele de mai sus.

vrei să…scrii
continui în Claude contul 3 ultima discuție agyagy2claude 3
o discuție agy anume, cu o cerere directăagy2claude 1 ID-ul -p "ce vrei"
continui în agy contul 2 ultima discuție Claudeclaude2agy 2
o discuție Claude anume, cu o cerere directăclaude2agy 1 ID-ul -p "ce vrei"
  • Textul integral se salvează în /root/treceri/ (nu se șterge nimic din discuția veche).
  • Claude citește singur fișierul. La agy, textul intră direct în cerere; dacă discuția depășește circa 110 KB, agy primește doar sfârșitul ei (restul e în fișierul din /root/treceri/).
  • Se consumă tokeni la contul care primește discuția (o citește). Poți înlănțui oricâte treceri: agy → Claude → agy.
  • Fiecare trecere începe o discuție nouă în celălalt instrument, cu istoricul preluat; discuția veche rămâne neschimbată.

Verificat: lanțuri agy→Claude→agy și Claude→agy→Claude→agy pe conturile reale (toate codurile de test s-au păstrat); claudemuta, agy2claude și claude2agy pe contul 3. Neverificat încă: contul Claude 2, care era la limită.

6e. Codex CLI: la fel ca agy și Claude

Codex CLI (GPT) e instalat pe server și logat pe cosminambru@gmail.com. Intră în aceeași poveste: discuțiile lui se salvează în arhivă (în Codex-CLI, lângă Claude-Code și Antigravity-CLI) și poți duce o discuție între oricare două instrumente, cu textul întreg, nu rezumat.

Text integral/root/treceri/agyGeminiClaude CodeClaudeCodex CLIGPToricare → oricarenu se șterge nimic din discuția sursă
vrei să…scrii
Codex → Claude (contul 3)codex2claude 3
Claude → Codexclaude2codex 1
Codex → agy (contul 2)codex2agy 2
agy → Codexagy2codex 1
o discuție anume, cu o cerere directăcodex2claude 3 ID-ul -p "ce vrei"
continui o discuție Codex pe alt cont Codexcodexmuta 2
  • Numărul din comenzile spre agy și Claude e contul pe care continui (1, 2, 3, ca în 6c). Codex are acum un singur cont, așa că la comenzile spre Codex scrii 1.
  • Merg și primele litere ale ID-ului. Fără ID se ia ultima discuție. Fără -p se deschide ecranul interactiv.
  • Codex rulează în modul doar citire (nu poate modifica fișiere de aici).
  • Fiecare trecere începe o discuție nouă în celălalt instrument, cu titlul „Continuare din … «…»", iar cea veche rămâne neschimbată.
  • La agy și Codex, dacă discuția depășește circa 110 KB, primesc doar sfârșitul; tot textul e în /root/treceri/.
  • Cont Codex nou (pentru codexmuta 2 sau 3): într-un terminal real, CODEX_HOME=/root/.codex-cont2 codex login. codexmuta copiază discuția în contul ales și o reia acolo, fără să șteargă nimic.

Verificat: lanțul Codex → Claude → Codex → agy → Codex (toate codurile de test păstrate) și mecanismul codexmuta pe un dosar de probă. Neverificat: codexmuta între două conturi diferite, pentru că există doar unul.

Cont nou de Claude Code

  1. Deschide un terminal real (SSH), nu o sesiune Claude.
  2. Scrie claude3 (sau claude2), apoi /login.
  3. Deschide linkul în browserul logat pe contul dorit și lipește codul înapoi în terminal.
  4. Verifică: CLAUDE_CONFIG_DIR=/root/.claude-cont3 claude auth status trebuie să arate loggedIn: true și emailul.

Atenție: /login scris într-o sesiune Claude deja deschisă schimbă contul acelei sesiuni, nu pe cel al comenzii claude3.

Drumul unei discuții spre arhivă

Orice discuție, de pe orice cont, ajunge la același arhivator. Dacă ai mutat-o între conturi, rămâne tot în dosarul ei.

Contul 1Contul 2Contul 3Arhivator/discutiiUn singur dosarDrive + oglinziacelași ID = același dosar, chiar mutat între conturi

6d. Modelele din agy: cum le vezi și cum le schimbi

Modelul este „creierul" care răspunde. Pe abonamentul Google AI Pro, agy îți dă mai multe, nu doar Gemini. Lista poate varia în timp și de la un cont la altul; vezi mereu lista reală cu comenzile de mai jos.

vrei să…scrii / faci
vezi toate modelele (din terminal, fără să deschizi agy)agy models (pentru alt cont: agy2 models sau agy3 models)
vezi toate modelele (din interiorul agy)scrii /model: apare lista „Switch Model"
schimbi modelul în discuția curentăscrii /model, alegi cu ↑/↓, apeși Enter
schimbi cât de mult gândește (low / medium / high)în /model, cu săgețile ←/→, apoi Enter
pornești agy direct cu un modelagy --model gemini-3.8-flash-high
pui o singură întrebare cu un model anumeagy --model claude-sonnet-4-6 -p "întrebarea ta"
pornești cu un anumit nivel de gândireagy --effort high (low, medium, high, xhigh, max)
vezi modelul curentsus în ecran, sub emailul contului, și jos în dreapta (de exemplu Gemini 3.8 Flash · high)

Numele de după --model este identificatorul din prima coloană a listei agy models, nu numele frumos. La data scrierii, lista de pe cont arăta așa:

identificator (pentru --model)nume în /model
gemini-3.8-flash-high, -medium, -lowGemini 3.8 Flash (nivelul de gândire e în nume)
claude-sonnet-4-6Claude Sonnet 4.6 (Thinking)
claude-opus-4-6-thinkingClaude Opus 4.6 (Thinking)
gpt-oss-120b-mediumGPT-OSS 120B (Medium)

De știut: nu am verificat cât consumă din cotă fiecare model, deci nu te baza pe o regulă. Dacă ajungi la limită pe un model, încearcă alt model cu /model sau treci pe alt cont (vezi 6c).

7. Unde se salvează discuțiile

Toate trei conturile se arhivează în același loc. Numele dosarului din Drive are emailul contului, de exemplu 2026-10-12-bombonelpacanel-gmail-com-…. O discuție sub 2000 de bytes nu se salvează.

discuția dinstă pe serverajunge în Drive și storage?
Claude Code (cu mine)/root/.claude/projects/Da: pagina /discutii le arhivează în Drive și pe storage
agy (Gemini)~/.gemini/antigravity-cli/conversations/ (un fișier pe discuție) și history.jsonlDa. /discutii le convertește singur și le pune în Drive, în folderul Antigravity-CLI, lângă Claude-Code; apoi ajung și pe storage, odată cu oglinzile

Cum merge: la fiecare minut, /discutii citește fișierele agy (fără să le atingă), le transformă în același format ca discuțiile Claude (/opt/discutii/agy_export.py) și, după ce o discuție stă liniștită 15 minute, o salvează la fel ca pe celelalte: discutie.md (lizibilă, cu cheile înlocuite cu ***) și rezumat.md. Apare în /discutii și în CUPRINS.md din folderul ei. Textul este citit din fișierele agy ca atare; la discuțiile cu rezultate mari de la unelte, în Drive ajung doar cererile, răspunsurile și o linie despre fiecare unealtă chemată.

8. Dacă ceva nu merge

veziînseamnă
postiz error: … Unauthorized în /mcpcheia Postiz lipsește sau e greșită în mcp_config.json
lista de canale vine goalăcheia e dintr-un workspace fără canale; ia cheia din cel potrivit
429 sau „quota"ai folosit cota; așteaptă reîmprospătarea. Google a dat 429 serverului și într-o încercare anterioară, cu alt plugin
„This client is no longer supported"rulezi vechiul gemini; folosește agy
comanda agy nu e găsităscrie source ~/.profile sau deschide un terminal nou
not eligible for Antigravitycontul nu e acceptat de Google; încearcă alt cont personal
could not open TTYl-ai pornit fără terminal real; intră prin SSH și rulează de acolo
vrei o actualizareagy update
Activepieces: unde rulează, cum intri, ce se întâmplă cu el
Schiță: ambele adrese ajung la același Activepieces, care rulează pe serverul AmsterdamTubrowseractivepieces.ambru.usadresa vecheactivepieces.gotonextlevel.euadresa directăAmsterdamActivepiecestrece prin principal

Ce e: unealta de automatizări „când se întâmplă X, fă Y". De pe 23 octombrie 2026 nu mai rulează pe serverul principal, ci pe serverul Amsterdam. Contul, parola, fluxurile, istoricul de rulări și adresele de webhook sunt aceleași: baza de date a fost copiată întreagă.

Adresele

adresace face
activepieces.gotonextlevel.euadresa directă, pe Amsterdam
activepieces.ambru.usadresa veche; merge în continuare, serverul principal o trimite pe Amsterdam. Linkurile și webhook-urile vechi nu s-au stricat

Datele de logare

cevaloare
Utilizatorcosminambru@gmail.com
Parolanu e scrisă aici, pentru că pagina asta e deschisă fără parolă. O găsești în /servere, la bara „Automatizări (n8n și Activepieces)", cu butonul „arată". O găsești și în ghidul de pe Amsterdam (ai.gotonextlevel.eu/ghid, secțiunea „Activepieces") și în Conexiuni pe Amsterdam.

Cum funcționează

Pe Amsterdam rulează patru containere, într-un stack Dockge numit activepieces (docker.gotonextlevel.eu): app (pagina și API-ul), worker (execută fluxurile), postgres (conturile, fluxurile, istoricul) și redis (coada de lucru). Versiunea este 0.82.0, fixată după amprentă, deci nu se schimbă singură la o repornire.

Ce faci tu

  1. Deschizi oricare dintre cele două adrese și te autentifici.
  2. Construiești sau pornești fluxuri ca până acum.
  3. Parola o schimbi din /servere, cu „Parolă nouă · Activepieces": butonul intră pe Amsterdam și o pune direct în baza de date. După schimbare, parola din Conexiuni și din ghidul de pe Amsterdam rămâne cea veche până o treci și acolo.

Copia de siguranță

Instanța veche de pe serverul principal a fost ștearsă. Singura copie în plus a bazei este dump-final.pgdump, pe Amsterdam, în /opt/stacks/activepieces. Nu o șterge.

Să nu încurci: există și Activepieces din cloud (cloud.activepieces.com), cu alt cont. Acolo construiește Claude direct din discuție.

Dacă nu merge

ce vezice faci
adresa nu se deschideintră în Dockge (docker.gotonextlevel.eu), stack-ul activepieces: toate cele patru trebuie să fie verzi. Apasă Restart
fluxurile pornesc, dar nu ruleazăverifică worker în Dockge; dacă e oprit, pornește-l
merge adresa directă, dar nu cea vecheproblema e la serverul principal (Caddy); spune-mi
Scrapling: extragi date de pe site-uri, cu butoane

Ce e: o unealtă care citește pagini de pe internet în locul tău și îți scoate din ele doar ce vrei: citate, prețuri, titluri, linkuri, tot textul. Îți dă rezultatul ca fișier .md, .html sau .txt. Se numește Scrapling și e instalată pe serverul Amsterdam; pagina ei cu butoane e scrapling.gotonextlevel.eu.

Cum intri: adresa cere un utilizator și o parolă (ferestra mică a browserului). Utilizatorul e admin, iar parola e în Conexiuni pe Amsterdam (ai.gotonextlevel.eu/conexiuni, grupul „Scrapling") și în /servere pe serverul principal, la intrarea Amsterdam.

Schiță: alegi comanda în pagina Scrapling, ea cere pagina site-ului și îți dă rezultatul ca fișierTualegi și apeșiPagina Scraplingscrapling.gotonextlevel.euSite-ulpagina cerutăRezultatul.md · .html · .txtcereîți dă

Pas cu pas: prima extragere

pasce faci
1Deschizi scrapling.gotonextlevel.eu și te autentifici.
2Alegi un buton de sus: GET pentru început.
3Apeși „Completează un exemplu": se umplu adresa și selectorul cu un site de probă.
4Apeși „Rulează". În câteva secunde apare rezultatul, cu butoanele Descarcă și Copiază textul.
5Vrei să știi ce comandă ar fi în terminal? Apeși „Arată comanda" și o copiezi.
6Apoi pui adresa ta în loc de exemplu și schimbi selectorul.

Ce buton aleg?

Schiță: ce buton alegi, după cum arată site-ulTextul se vede direct în pagină?GETcel mai simpluTrimiți un formular sau chemi un API?POST · PUT · DELETESe încarcă cu JavaScript sau te blochează?Cu browserChromium ascuns
butoncomanda din terminalcând îl folosești
GETscrapling extract getCel mai rapid. Site-uri obișnuite, care își pun textul direct în pagină.
POSTscrapling extract postTrimiți un formular (nume=Ana&oras=Iasi) sau un JSON; căutări, logări, API-uri.
PUTscrapling extract putCa POST, dar pentru API-uri care actualizează o înregistrare.
DELETEscrapling extract deleteAPI-uri care șterg. Atenție: chiar șterge, deci folosește-l doar pe ce e al tău.
Cu browserscrapling extract fetchPagina se completează cu JavaScript sau te oprește ca robot. Pornește un Chromium ascuns, așteaptă încărcarea și apoi extrage. Mai lent (3-30 secunde) și mai greu pentru server.
Rezultate salvate-Lista rezultatelor din ultimele 24 de ore, cu descărcare și ștergere.
Doar în terminalshell, mcp, installComenzi care au nevoie de terminal sau rămân pornite; le copiezi de acolo.
Verifică instalareascrapling --versionArată versiunea și browserele instalate.
Schiță: butoanele din pagină acoperă comenzile extract; shell, mcp și install rămân în terminalPagina (butoane)GET · POST · PUT · DELETETerminal: shellîncerci pas cu pasTerminal: mcp · installAI sau reinstalare

Selectorul CSS: cum alegi ce vrei din pagină

Schiță: selectorul CSS alege din toată pagina doar bucata care te intereseazăToată paginatitlu, meniu, citate….quoteselectorul CSSDoar citatelece ai cerutgol = tot ce e în pagină

Fără selector primești toată pagina. Cu selector, doar bucățile care se potrivesc. Cum afli selectorul: în browser, click dreapta pe ce te interesează → Inspect și te uiți la class sau la eticheta lui.

scriiprimești
h1toate titlurile mari
.quotetot ce are clasa quote (punct înaintea numelui)
#pretelementul cu id="pret" (diez înaintea numelui)
div.produs span.pretprețul din fiecare produs
.quote .text::textdoar textul, fără etichete
a::attr(href)doar adresele din linkuri

Rezultatele de la selectori se lipesc unul după altul, fără separator. Dacă ai nevoie de ele pe rânduri separate, ia formatul HTML sau Markdown, care păstrează structura.

Opțiunile avansate, pe scurt

opțiunece face
Antete HTTP, Cookie-uri, ParametriCe trimiți în plus cererii. Antetele se scriu câte unul pe rând, Cheie: Valoare; parametrii cheie=valoare.
Se dă drept browserulImită Chrome, Firefox sau Safari, ca site-ul să nu te trateze ca robot.
Doar conținutul principalScoate meniurile, reclamele și elementele ascunse. Bun când dai textul unui AI.
Verifică certificatul SSLDebifează doar la site-uri cu certificat stricat.
ProxyCererea pleacă prin alt server: http://utilizator:parola@gazda:port.
Cu browser: Rezolvă verificarea CloudflarePentru paginile cu „verifică dacă ești om".
Cu browser: Așteaptă elementulExtrage abia după ce apare un element anume; cel mai sigur la pagini cu JavaScript.
Cu browser: Sare peste imagini, Blochează reclamePagina se încarcă mai repede.

În terminal

Aceleași comenzi, scrise de mână, pe serverul Amsterdam (terminal.gotonextlevel.eu):

scrapling extract get 'https://site.ro' rezultat.md --css-selector '.clasa'
scrapling extract fetch 'https://site.ro' rezultat.md --wait-selector '.clasa'
scrapling shell          # consolă interactivă, încerci selectori pe rând
scrapling --version

Instalat în /opt/scrapling/venv; pagina cu butoane e în /opt/scrapling-web, serviciul scrapling-web. Și din Python: from scrapling.fetchers import Fetcher, StealthyFetcher.

De știut

  • Adresele interne ale serverului sunt blocate (localhost, rețele private): pagina nu poate fi folosită ca să ajungi la servicii de pe server.
  • Rezultatele se șterg după 24 de ore. Descarcă ce vrei să păstrezi.
  • Cu browser rulează una pe rând, ca să nu încarce serverul. Dacă e ocupat, primești un mesaj și reîncerci.
  • Respectă site-urile: verifică regulile lor (robots.txt, termenii) și nu trimite mii de cereri deodată.
  • Dacă rezultatul e gol, selectorul nu a găsit nimic. Încearcă fără selector sau cu Cu browser.

Dacă ceva nu merge

veziînseamnă
„Nu găsesc site-ul"adresa nu există sau e scrisă greșit (trebuie să înceapă cu https://)
„Comanda a eșuat", cu 403 sau 429 în jurnalsite-ul te oprește ca robot: încearcă Cu browser sau schimbă „Se dă drept browserul"
„A durat prea mult"mărește timpul maxim sau încearcă „Sare peste imagini"
„Se lucrează la altă cerere"mai rulează una; așteaptă câteva secunde
pagina nu se deschide delocîn terminal: systemctl status scrapling-web; repornire: systemctl restart scrapling-web
browserele lipsesc după o actualizareNODE_OPTIONS=--dns-result-order=ipv4first scrapling install (fără asta se blochează pe IPv6)