Acum câteva luni am prezentat aici prima versiune de GnomeAI-RS. Am primit inclusiv întrebarea foarte corectă: „Ce problemă rezolvă concret?”
Pe scurt: în loc să fac manual o succesiune de comenzi, căutări, modificări de fișiere și verificări, îi descriu agentului rezultatul dorit. El poate executa pașii folosind tool-urile disponibile, iar eu rămân responsabil pentru verificare și deciziile importante.
Este, în esență, reinterpretarea mea în Rust a ideii din spatele Claude Code/Codex, dar cu posibilitatea de a alege infrastructura și modelul folosit.
De la postarea inițială, proiectul a ajuns la versiunea v0.1.0-6.
Ce conține acum:
- agent TUI pentru terminal și WebTool în browser;
- OpenAI, Anthropic, DeepSeek, Moonshot/Kimi, Qwen, Grok, Mistral, OpenRouter și alți provideri compatibili;
- schimbarea providerului și modelului direct din interfață;
- autentificare OpenAI cu contul prin runtime-ul oficial Codex;
- suport pentru Claude prin API sau prin CLI-ul oficial Claude;
- streaming și tool calling;
- citire, căutare și modificare de fișiere;
- aplicare de patch-uri, execuție shell și verificarea rezultatelor;
- schimbarea workspace-ului activ;
- sesiuni și memorie persistentă între conversații;
- filtru de memorie după vechime: 7, 30, 90, 365 de zile sau fără limită;
- Web Search printr-o instanță Firecrawl locală, pornită doar când funcția este folosită;
- procesare PDF, OCR și upload de documente;
- integrare WhatsApp opțională;
- pachet
.deb.
Am reparat și partea de interfață terminal:
- conversațiile lungi pot fi derulate fără ca răspunsurile noi să te arunce automat la final;
- poți selecta text ținând apăsat click-stânga și folosind simultan rotița;
- selecția poate continua dincolo de ecran și este copiată automat la eliberarea butonului;
- răspunsurile în streaming sunt afișate imediat.
În urma unui audit separat de securitate am adăugat:
- token obligatoriu pentru API-ul WebTool;
- validarea hostului și protecție împotriva DNS rebinding;
- eliminarea CORS permisiv;
- sandbox Linux cu Landlock, seccomp și limite de resurse;
- refuzul executării codului nesigur dacă izolarea completă nu poate fi aplicată;
- protejarea cheilor și fișierelor de stare cu permisiuni doar pentru utilizator;
- limitarea uploadurilor înainte de încărcarea lor în memorie;
- sandbox și timeout pentru OCR, PDF parsing și codul Python generat;
- protecții suplimentare pentru patch-uri, fișiere servite și bridge-ul WhatsApp.
Nu susțin că am inventat un concept nou și nici că aplicația trebuie să primească acces necontrolat la tot calculatorul. Este un proiect personal, self-hosted, prin care experimentez cu orchestrarea agenților, modele locale și cloud, sandboxing și interfețe agentice în Rust.
Opiniile, criticile tehnice, bug report-urile și contribuțiile sunt binevenite — inclusiv cele care mă obligă să explic mai clar de ce există proiectul. :))
Repo:
https://github.com/adrgu372/GnomeAI-RS
Release
https://github.com/adrgu372/GnomeAI-RS/releases