Projekt, nazvaný Terminal Intelligence (ai-toolkit), je vysoko efektívny, modulárny shell toolkit navrhnutý na integráciu lokálnych (Ollama) alebo vzdialených (OpenAI kompatibilných) LLM modelov priamo do príkazového riadku.
Nižšie uvádzam podrobnú technickú analýzu a recenziu.
???? Technická analýza
1. Architektúra a modularita
Projekt je postavený na princípe rozdelenia kompetencií (Separation of Concerns), čo je pri shell skriptoch zriedkavé, ale veľmi vítané:
-
ai.sh: Hlavný kontrolér (entrypoint), spracováva argumenty a riadi životný cyklus požiadavky. -
lib/api.sh: Abstrakcia sieťovej komunikácie. Obsahuje logiku pre synchrónne aj streamované volania. -
lib/context.sh: Inteligentná vrstva pre prácu s dátami. Dokáže automaticky extrahovať kontext zo súborov v projekte. -
lib/renderer.sh: UI vrstva. Rieši detekciu terminálu, farby a dokonca aj syntax highlighting pre rôzne programovacie jazyky. -
lib/utils.sh: Pomocné funkcie pre sanitizáciu JSONu a nápovedu.
2. Správa kontextu (Context Engine)
Najsilnejšou stránkou projektu je build_context v lib/context.sh. Nie je to len "posielač otázok", ale systém, ktorý:
-
Detekuje názvy súborov v otázke: Ak sa v otázke spomenie
ai.sh, skript ho automaticky nájde a pribalí jeho obsah k promptu. -
Fallback na kľúčové slová: Ak nenájde súbor, hľadá kľúčové slová v projekte a prikladá relevantné úryvky kódu (20 riadkov okolo zásahu).
-
Bezpečnosť: Explicitne ignoruje citlivé priečinky ako
.git,node_modulesalebo.vscode.
3. Renderer a UX
renderer.sh posúva CLI nástroj na úroveň profesionálnej aplikácie:
-
Syntax Highlighting: Obsahuje vlastný parser v
awkpre jazyky ako Python, Bash, C++, Rust, Go a ďalšie. To umožňuje čítať vygenerovaný kód s okamžitou vizuálnou orientáciou. -
Adaptabilita: Detekuje šírku terminálu a prispôsobuje výpis (napr. zmena tabuľkového zobrazenia modelov na blokové pre úzke displeje ako Termux).
-
Metriky: Po každom dotaze vypočítava hustotu tokenov (bytes/token) a percentuálne využitie kontextového okna.
???? Recenzia
Silné stránky (Pros)
-
✅ Rýchlosť a ľahkosť: Žiadne ťažké Python knižnice. Závisí len od
curl,jqa štandardných POSIX nástrojov. -
✅ Inteligentný Kontext: Schopnosť automaticky "pochopiť" projekt bez toho, aby používateľ musel kopírovať kód do chatu.
-
✅ Vizuálne spracovanie: Header a Footer poskytujú skvelý prehľad o technických parametroch dotazu (čas, modely, využitie KB).
-
✅ Podpora streamovania: Implementácia
call_api_streamumožňuje vidieť odpoveď v reálnom čase, čo je pri LLM kľúčové pre UX.
Slabé stránky (Cons)
-
⚠️ JSON escaping: Funkcia
json_escapevutils.shpoužíva viacero volanísed. Pri extrémne veľkých súboroch v kontexte by to mohlo byť úzkym hrdlom výkonu (lepšie by bolo využiťjq --raw-input --slurp). -
⚠️ Závislosť na awk: Syntax highlighting je pôsobivý, ale komplexné regexy v
awkmôžu byť náročné na údržbu pri pridávaní nových jazykov.
Celkové hodnotenie
9/10
Projekt Terminal Intelligence je vynikajúcim príkladom toho, ako sa dá moderná AI integrovať do Unixového workflow. Je to nástroj "od vývojára pre vývojárov". Najviac oceňujem slovenskú lokalizáciu v systémovom prompte a precíznosť, s akou pristupuje k formátovaniu výstupu.