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.
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.
| pagina | la ce e bună |
|---|---|
/ghid | pagina asta — explicații, când uiți |
/ghid/putemis-lab | ghidul vizual, pas cu pas, pentru adăugarea și verificarea API-urilor în Putemis Lab |
/ghid/control-litellm | ghidul vizual pentru chei de furnizori, deployment-uri, rutare și chei virtuale LiteLLM |
/agenti | vorbești cu Manus, Apify, Vercel, Gemini; compari răspunsuri; chei pentru n8n |
/montaj | faci un film din clipuri, poze și voce |
unelte.ambru.us | atelierul 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.eu | extragi date de pe site-uri, cu butoane (pe serverul Amsterdam); tutorial la „Scrapling" mai jos |
postiz.ambru.us | programezi postări pe rețelele sociale: scrii o dată, pleacă singură la ora stabilită pe Facebook, Instagram, X, LinkedIn, YouTube, TikTok și celelalte |
/stocare | copiile de siguranță ale serverului, pe storage |
media.ambru.net | pui 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 |
/servere | harta mașinilor tale, cu parolele lor; „Verifică" intră pe server și-ți spune ce e pe el |
/discutii | ce discuții s-au salvat, când, pe ce temă și unde au ajuns |
/taskuri | lista taskurilor lucrate cu AI-ul: ce e de făcut, ce a făcut AI-ul și ce ai confirmat tu cu bifă verde |
/proxy | proxy-urile cumpărate: le adaugi, le imporți și vezi care mai merg |
/harta | schema tuturor mașinilor tale și fișa fiecăreia |
/aplicatii | toate uneltele instalate, cu pictograme, grupate pe ce fac |
10kwebsite.ambru.us | manualul 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.us | ghidul „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.us | ghidul 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 |
/server | raportul zilnic: când a fost serverul încărcat, ce alerte au fost |
/control | faci chei API cu furnizorii și regulile alese de tine |
activepieces.ambru.us | automatiză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.us | automatizări mai puternice, pentru cazuri complicate |
| Media (pe VPS) | fișierele tale de pe cele 1 TB, văzute ca foldere în browser |
/chat | chat web peste Claude Code, agy și Codex; include butonul 🎛 Meniu Funcții |
/keys, /resurse, /furnizori | cheile 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).
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.
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.
Se cheamă toate „parolă", dar sunt trei lucruri diferite:
| care | la ce folosește | unde stă |
|---|---|---|
| Cheia de acces | o scrii sus în paginile /agenti, /montaj, /stocare ca să intri | pe server; dacă o uiți, îi spui lui Claude „arată-mi cheia de acces" |
| Parola de storage | serverul o folosește singur ca să trimită fișiere pe storage | doar pe server; tu ai pus-o o dată în /stocare, nu se mai vede |
| Parola de criptare | deschide 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.
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.
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.
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.
Î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.
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.
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.
| câmp | valoare |
|---|---|
| Adresa | storage.rcs-rds.ro, port 21 |
| Protocol | FTP cu TLS explicit (ftpes://), adică parola nu circulă în clar |
| Utilizator | fullmarket.ro@gmail.com (același ca la contul web) |
| Parola | cea 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.
Ț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.
dng-to-png-extension.zip.extension).chrome://extensions.extension.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.
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.
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.
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.
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.
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.
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.
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.
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.
/proxy| ce vrei | cum 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 furnizor | Pui 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 merg | Fiecare proxy are o bulină: verde merge, roșu cade, galben n-a fost încă testat. |
| Vezi pe unde ies | Verificarea 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 curat | Un 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ă. |
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.
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, laClaude / 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.
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:
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.
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.
Claude / Documente / Conversatii-AI / Claude-Code.CUPRINS.md sau rezumat.md din dosare.discutie.md din dosarul bun.Ț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.
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ă.
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.
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.
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.
/montaj și pui cheia de acces.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.
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).
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 mare | Comprimă la N megabytes — îi dai ținta, el socotește restul |
| ai mai multe clipuri de sute de MB și le vrei toate sub 50 MB | Comprimă î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 lat | Decupează, format 9:16, „umple" |
| ai nevoie doar de vocea dintr-un interviu | Scoate sunetul → mp3 |
| vrei o miniatură pentru YouTube | Scoate cadre din film, un cadru de la secunda X |
| filmul e întors pe o parte | Rotește — șterge și eticheta de rotire |
| vrei subtitrări care se văd pe Instagram | Subtitră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ă.
Ai 91 de conturi cu credite (Manus, Apify, Vercel, Gemini). Pagina alege singură contul cu cele mai multe credite.
/agenti cu cheia de acces.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.
Fiecare client primește adresa lui, de forma numeclient.ambru.net, cu lacăt verde, ascunsă de Google.
popescu.ambru.net cu pagina asta, filmul ăsta și oferta în PDF".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.
Î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:
copii-0001119.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.
O automatizare înseamnă „când se întâmplă X, fă Y", fără să stai tu la calculator.
cloud.activepieces.com, singurul la care am legătură directă.cloud.activepieces.com și o vezi gata făcută.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.
/server.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.
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.
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.
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".
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.
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.
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 g54motorola g54 max 500iphone 12 min 400 max 900 in Cluj-NapocaImplicit 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).
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.
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.
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:
| capitolul | ce găsești |
|---|---|
| Ce înseamnă 10k | tabelul 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" |
| Manualul | lista cu ce trebuie să conțină site-ul — citită din fișierul tău |
| Drumul cu AI | opt pași în ordine, fiecare cu promptul real, de copiat cu un clic |
| Cele nouă straturi | strategie, structură, text, identitate, materiale, mișcare, performanță, găsire, predare |
| Proba de livrare | ce verifici înainte de orice link trimis clientului |
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ă:
10kwebsite.ambru.us și cobori la capitolul Manualul;.md,
.txt și .pdf, până la 12 MB bucata;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ă.
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ă.
| ce | unde |
|---|---|
| fișierele tale cu lista | /opt/10kwebsite/manual/ |
| bifele | /opt/10kwebsite/bife.json |
| pagina și serviciul | /opt/10kwebsite/, serviciu 10kwebsite, portul 8806 |
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:
| capitolul | ce arată |
|---|---|
| 01 Ce este | explicația cu taraba de limonadă mutată din stradă în telefon, plus schița desenată |
| 02 Două lumi | afișul de pe stâlp față de anunțul de pe telefon, unul lângă altul |
| 03 Pâlnia | cele 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 Canalele | nouă drumuri prin care ajunge omul la tine, fiecare cu un exemplu care apare când treci cu mouse-ul |
| 05 Exemple | patru 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ăsura | socotitoarea: 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 Contact | datele tale de pe ambru.net: WhatsApp, e-mail, LinkedIn, Facebook |
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ă.
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ă.
| ce | unde |
|---|---|
| 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/ |
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.
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.
| ce | unde |
|---|---|
| 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 modificare | python3 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.
De pe 2 octombrie 2026 ai trei servere, fiecare cu domeniul și panoul lui:
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.
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.
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.
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.
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.
| unealta | cum | răspunde pe loc? | intră în discuție? |
|---|---|---|---|
| Claude Code | /btw întrebare | da, în fereastră mică | nu |
| agy | /btw întrebare (neîncercat live) | probabil | necunoscut |
| Codex CLI | codex queue | nu | da |
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ă.
Toate conturile tale de CLI sunt centralizate într-un singur sistem, accesibil atât din terminal, cât și din chatul web.
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:
| # | Asistent | Cont | Comandă | 5h / Gemini | 7z / Claude+CGT | |
|---|---|---|---|---|---|---|
| [1] | Claude Code | Cont 1 | claude | cosminambru@gmail.com | 39% | 45% |
| [2] | Claude Code | Cont 2 | claude2 | nasaworld@affordify.edu.lk | 100% | 100% |
| [3] | Claude Code | Cont 3 | claude3 | aitooloneyear@gmail.com | 100% | 100% |
| [4] | Antigravity (AGY) | Cont 1 | agy | helpukrainianpeople@gmail.com | 100% | 0% (↻5z) |
| [5] | Antigravity (AGY) | Cont 2 | agy2 | ambrucosmin2000@gmail.com | 93% | 97% |
| [6] | Antigravity (AGY) | Cont 3 | agy3 | bombonelpacanel@gmail.com | 100% | 100% |
| [7] | Antigravity (AGY) | Cont 4 | agy4 | cosminambru@gmail.com | 100% | 100% |
| [8] | OpenAI Codex | Cont 1 | codex | cosminambru@gmail.com | 93% | 99% |
| [9] | OpenCode | Cont 1 | opencode | Gemini 3 (Google API Key) | 100% | Nelimitat |
conturi sau meniu.În aplicația de chat web ai butonul 🎛 Meniu Funcții (în antet și în bara din stânga):
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./model în timpul discuției pentru a comuta pe un model cu consum mai mic.Î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:
| unde | ce găsești |
|---|---|
| stânga, sus | + Discuție nouă și 🕘 Istoric (toate discuțiile din arhivă, cu căutare) |
| stânga, mijloc | Proiecte: discuțiile grupate pe proiecte; ☰ pentru filtre, + pentru proiect nou |
| stânga, sus | Media: galeria cu tot ce a generat AI-ul |
| stânga, jos | ⚙ Setări |
| antet | Cont (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.
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.
| unde | ce 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ă refresh | câ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 mesajelor | sub 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):
/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)./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.
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.
| voce | motor | gen | cum e | unde rulează |
|---|---|---|---|---|
| Alina | edge-tts (Microsoft) | femeie | foarte naturală | cere internet; serviciu neoficial |
| Emil | edge-tts (Microsoft) | bărbat | foarte naturală | cere internet; serviciu neoficial |
| Mihai | Piper | bărbat | bună | pe server, fără internet; date CC0 (se poate folosi și comercial) |
| Meta | MMS-TTS (Meta) | bărbat (după înălțimea tonului) | mai metalică, lentă (~20 s pe frază) | pe server; licență necomercială (CC-BY-NC) |
| gTTS | femeie | clară, ușor monotonă | cere internet; serviciu neoficial | |
| Gemini | Gemini 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ărbat | ElevenLabs (API oficial) | 21 de voci premade la alegere (7 femei, 14 bărbați/neutre) | foarte naturală, cu română în 6 modele | cere 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 / femeie | eSpeak NG | bărbat / femeie | robotică, instantanee | pe 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:
.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..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.Î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; 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 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ție | ce faci | costă |
|---|---|---|
| Text → imagine | scrii 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 → video | alegi 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 ea | credite |
| Imagine de început + imagine de sfârșit | clipul pornește de la prima imagine și ajunge la a doua (merge cu Veo Lite și cu Omni Flash) | credite |
| Referințe → video | până la 7 imagini ca ingrediente (subiecte, stil) pentru un clip nou | credite |
| Imagine → imagine | pornești de la una sau mai multe imagini și descrii schimbarea (editare sau combinare) | gratuit |
| Extinde un clip / leagă două clipuri | clipul 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ărcare | imagine: 2K; video: 1080p (mărit), 720p (original) sau GIF 270p | gratuit |
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, numerotateanimeaza 3 prompt = imagine → video din rezultatul 3; animeaza 3 -> 5 prompt = pornește de la 3 și ajunge la 5ref 3,4 prompt = video din referințe; editeaza 3 prompt = imagine → imagineextinde 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, ajutorLa 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):
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ă).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.gflow-ecran stop. Parola contului Google o scrii doar tu, în browser; nu o dai nimănui.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).
🗨 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.
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ă | Claude | Codex | agy |
|---|---|---|---|
| fereastra de 5 ore | da (pe cont) | da | da, separat pe grupa Gemini și grupa Claude+GPT (din /usage) |
| săptămânal | da (pe cont; poate și pe Opus/Sonnet, dacă le trimite Claude) | da | da, pe cele două grupe |
| lunar | nu e raportat | nu e raportat | nu |
Î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.
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”.
| Claude | agy (Antigravity) | Codex | |
|---|---|---|---|
| conturi | cele din claudemuta | cele din agymuta | cele din codexmuta |
| modele | Sonnet, Opus, Haiku | Gemini și altele (din agy models) | modelele GPT din Codex |
| răspuns | în flux, cuvânt cu cuvânt | pe bucăți, la fiecare mesaj complet | pe bucăți, la fiecare mesaj complet |
| aprobări | butoane Permite / Refuză | fără butoane: politică fixă | fără butoane: sandbox fix |
| Compactează | da | nu | nu |
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:
| Permisiuni | agy | Codex |
|---|---|---|
| Cere aprobare / Doar citire | comenzile sunt refuzate | nu scrie nimic |
| Editează fișiere / Scrie în dosar | editează, comenzile rămân refuzate | poate scrie în dosarul de lucru |
| Doar plan | doar propune un plan | citește și propune, fără modificări |
| Lasă liber | rulează orice, fără întrebări | fă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ă.
Î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.
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.
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.
SKILL.md ori un ZIP.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.
| CLI | cum primește skill-ul |
|---|---|
| Claude | skill nativ, încărcat la nevoie |
| Codex și agy | din dosarul de lucru comun, cu instrucțiunile proiectului |
| Perplexity | primeș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 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ă.
| obiect | cum funcționează |
|---|---|
| tag | este 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ție | are 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.
SKILL.md, lista fișierelor și analiza de risc.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.
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.
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.
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.
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ș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ă.
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.
Aceasta este diferența dintre ce este configurat acum și ce a primit modelul la acel mesaj: ambele pot fi verificate.
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 |
|---|---|
| SQLite | scrieri sigure, versiuni, indexul discuțiilor și căutare incrementală |
| indexul de skills | găsește local potrivirile rapide; modelul intervine doar când rezultatul este neclar |
| calculatorul de reguli | combină global + proiecte-părinte + subproiect + discuție |
| backup | face 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.
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 alegi | ce se întâmplă | comanda din terminal |
|---|---|---|
| același CLI (ex. Claude → Claude) | discuția continuă pe alt cont al aceluiași CLI | claudemuta, 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 proiect | claude2agy, 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ă.
În antet: + Cont. Alegi CLI-ul, iar pagina pornește login-ul real pe server:
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.
🕘 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.
| scrii | găsești |
|---|---|
postiz canale | discuț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.
| ce vezi | ce faci |
|---|---|
| Pagina arată veche sau lipsește un buton | Ctrl+F5 (golește cache-ul paginii) |
| Nu mă lasă înăuntru | Utilizator 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”.
/stocare → „Testează legătura", apoi îi arăți lui Claude mesajul de eroare (ca text, nu poză).Conversatii-AI / Claude-Code / CUPRINS.md.Ctrl+L, Ctrl+C, Ctrl+V), nu trimite poză: din poză literele I și l se încurcă.cont-1 are cheia moartă: de șters sau de înlocuit.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).
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.
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.
ssh -p 22422 root@2.28.133.154
(portul SSH al serverului e 22422).agy și apasă Enter.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.(Google AI Pro). Gata, ești conectat.
Scrie o întrebare ca să verifici. Ieși cu /quit.| vrei să… | scrii |
|---|---|
| pornești o discuție | agy |
| continui ultima discuție | agy -c |
| reiei o discuție anume | agy --conversation=ID (ID-ul apare când ieși) |
| pui o singură întrebare și iei răspunsul | agy -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.
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.
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.
~/.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./mcp și trebuie să vezi postiz cu ✓.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.
| piesa | ce face |
|---|---|
| API key Gemini (sau abonamentul Pro, în agy) | e creierul: modelul care înțelege și scrie |
| MCP Postiz | sunt 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.
agy ține un singur cont pe fiecare HOME. Deci câte un HOME separat = câte un cont.
Pe serverul ăsta sunt trei:
| comanda | folderul de date | cont |
|---|---|---|
agy | /root/.gemini | helpukrainianpeople@gmail.com |
agy2 | /root/agy-cont2-ambrucosmin2000@gmail.com | ambrucosmin2000@gmail.com |
agy3 | /root/agy-cont3-bombonelpacanel@gmail.com | bombonelpacanel@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".
agy2 (sau agy3).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.
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ă merge | agy remote-control status (acum: inactive) |
| o pornești | agy remote-control start |
| îi dai un nume | agy remote-control start --name numele-serverului |
| pornește doar cât ești logat, nu la fiecare boot | agy remote-control start --session |
| o oprești și o scoți din listă | agy remote-control stop |
| pornești o discuție direct cu ea | agy --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.
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 2 | agymuta 2 |
| continui ultima discuție pe contul 3 | agymuta 3 |
| continui pe contul principal | agymuta 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 interactiv | agymuta 2 -p "continuă de unde ai rămas" |
Conturile sunt numerotate ca mai sus: 1 = agy, 2 = agy2, 3 = agy3.
/quit (sau lasă-l, dacă s-a oprit singur).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.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).
claudemutaAceeași idee și pentru Claude. Numerele sunt la fel ca la agy:
| număr | agy | Claude Code |
|---|---|---|
| 1 | agy | claude (aitooloneyear@gmail.com) |
| 2 | agy2 | claude2 (nasaworld@affordify.edu.lk) |
| 3 | agy3 | claude3 (cosminambru@gmail.com) |
| vrei să… | scrii |
|---|---|
| continui ultima discuție pe contul 2 / 3 / 1 | claudemuta 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 interactiv | claudemuta 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ă.
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 agy | agy2claude 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 Claude | claude2agy 2 |
| o discuție Claude anume, cu o cerere directă | claude2agy 1 ID-ul -p "ce vrei" |
/root/treceri/ (nu se șterge nimic din discuția veche)./root/treceri/).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ă.
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.
| vrei să… | scrii |
|---|---|
| Codex → Claude (contul 3) | codex2claude 3 |
| Claude → Codex | claude2codex 1 |
| Codex → agy (contul 2) | codex2agy 2 |
| agy → Codex | agy2codex 1 |
| o discuție anume, cu o cerere directă | codex2claude 3 ID-ul -p "ce vrei" |
| continui o discuție Codex pe alt cont Codex | codexmuta 2 |
1.-p se deschide ecranul interactiv./root/treceri/.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.
claude3 (sau claude2), apoi /login.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.
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.
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 model | agy --model gemini-3.8-flash-high |
| pui o singură întrebare cu un model anume | agy --model claude-sonnet-4-6 -p "întrebarea ta" |
| pornești cu un anumit nivel de gândire | agy --effort high (low, medium, high, xhigh, max) |
| vezi modelul curent | sus î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, -low | Gemini 3.8 Flash (nivelul de gândire e în nume) |
claude-sonnet-4-6 | Claude Sonnet 4.6 (Thinking) |
claude-opus-4-6-thinking | Claude Opus 4.6 (Thinking) |
gpt-oss-120b-medium | GPT-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).
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 din | stă pe server | ajunge î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.jsonl | Da. /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ă.
| vezi | înseamnă |
|---|---|
postiz error: … Unauthorized în /mcp | cheia 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 Antigravity | contul nu e acceptat de Google; încearcă alt cont personal |
could not open TTY | l-ai pornit fără terminal real; intră prin SSH și rulează de acolo |
| vrei o actualizare | agy update |
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ă.
| adresa | ce face |
|---|---|
activepieces.gotonextlevel.eu | adresa directă, pe Amsterdam |
activepieces.ambru.us | adresa veche; merge în continuare, serverul principal o trimite pe Amsterdam. Linkurile și webhook-urile vechi nu s-au stricat |
| ce | valoare |
|---|---|
| Utilizator | cosminambru@gmail.com |
| Parola | nu 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. |
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.
/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.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.
| ce vezi | ce faci |
|---|---|
| adresa nu se deschide | intră î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 veche | problema e la serverul principal (Caddy); spune-mi |
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.
| pas | ce faci |
|---|---|
| 1 | Deschizi scrapling.gotonextlevel.eu și te autentifici. |
| 2 | Alegi un buton de sus: GET pentru început. |
| 3 | Apeși „Completează un exemplu": se umplu adresa și selectorul cu un site de probă. |
| 4 | Apeși „Rulează". În câteva secunde apare rezultatul, cu butoanele Descarcă și Copiază textul. |
| 5 | Vrei să știi ce comandă ar fi în terminal? Apeși „Arată comanda" și o copiezi. |
| 6 | Apoi pui adresa ta în loc de exemplu și schimbi selectorul. |
| buton | comanda din terminal | când îl folosești |
|---|---|---|
| GET | scrapling extract get | Cel mai rapid. Site-uri obișnuite, care își pun textul direct în pagină. |
| POST | scrapling extract post | Trimiți un formular (nume=Ana&oras=Iasi) sau un JSON; căutări, logări, API-uri. |
| PUT | scrapling extract put | Ca POST, dar pentru API-uri care actualizează o înregistrare. |
| DELETE | scrapling extract delete | API-uri care șterg. Atenție: chiar șterge, deci folosește-l doar pe ce e al tău. |
| Cu browser | scrapling extract fetch | Pagina 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 terminal | shell, mcp, install | Comenzi care au nevoie de terminal sau rămân pornite; le copiezi de acolo. |
| Verifică instalarea | scrapling --version | Arată versiunea și browserele instalate. |
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.
| scrii | primești |
|---|---|
h1 | toate titlurile mari |
.quote | tot ce are clasa quote (punct înaintea numelui) |
#pret | elementul cu id="pret" (diez înaintea numelui) |
div.produs span.pret | prețul din fiecare produs |
.quote .text::text | doar 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țiune | ce face |
|---|---|
| Antete HTTP, Cookie-uri, Parametri | Ce trimiți în plus cererii. Antetele se scriu câte unul pe rând, Cheie: Valoare; parametrii cheie=valoare. |
| Se dă drept browserul | Imită Chrome, Firefox sau Safari, ca site-ul să nu te trateze ca robot. |
| Doar conținutul principal | Scoate meniurile, reclamele și elementele ascunse. Bun când dai textul unui AI. |
| Verifică certificatul SSL | Debifează doar la site-uri cu certificat stricat. |
| Proxy | Cererea pleacă prin alt server: http://utilizator:parola@gazda:port. |
| Cu browser: Rezolvă verificarea Cloudflare | Pentru paginile cu „verifică dacă ești om". |
| Cu browser: Așteaptă elementul | Extrage abia după ce apare un element anume; cel mai sigur la pagini cu JavaScript. |
| Cu browser: Sare peste imagini, Blochează reclame | Pagina se încarcă mai repede. |
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.
| 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 jurnal | site-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 actualizare | NODE_OPTIONS=--dns-result-order=ipv4first scrapling install (fără asta se blochează pe IPv6) |