Potrošio sam nedelju dana da shvatim CLI — konačno znam zašto je komandna linija budućnost Agent-a
Poslednje dve nedelje intenzivno koristim CLI.
Na primer, koristim OpenCLI za prikupljanje podataka o videima sa B stanice.

Na primer, koristim Feishu CLI da direktno generišem oblak reči (podaci potiču iz Feishu multidiimenzijske tabele za izmenu biografija).

U eri AI Agent-a — komandna linija je opet u igri.
Čak i Claude Code i Codex koje svakodnevno koristimo, ulaz u izvršavanje je skoro uvek komandna linija.
IntelliJ IDEA polako prestaje da je miljenik ove ere, jer je dizajniran za ljude, dok AI alati za kodiranje prirodno dobro komuniciraju direktno sa kodom — čovek samo zadaje zahteve, pa GUI više nije potreban.
Ali komandna linija postoji još od sedamdesetih.
Prošlo je više od 50 godina; logično bi trebalo da bude zbrisana od raznih fancy GUI-ja i low-code rešenja. A ipak, 2026. godine najsavremeniji AI Agent alati je koriste.
Zašto?
Potrošio sam oko nedelju dana da raspletem čitav tok: odakle CLI dolazi, zašto ima ovakvu strukturu, zašto je sada ponovo izabran. U današnjem tekstu podeliću sa vama moje misli i testove.
Kada ovo razumete, dobićete potpuno drugačiji ugao gledanja na celu Agent oblast.
01. CLI postoji da bi predao komande računaru
Kada se pomene CLI, mnogi najpre pomisle na crni prozor komandne linije — programerski alat za posebne, koji je običnim ljudima neprijateljski nastrojen.

I ja sam mrzeo tu stvar kad sam počinjao, tada nas je nastavnica učila da pišemo hello world u Notepadu.
Dosta mi je bilo.
CLI je skraćenica za Command-Line Interface, naši "komandni interfejs". Pre nego što se pojavio, kako su ljudi i mašine komunicirali? Bušene kartice, papirne trake, paneli sa prekidačima — ubacite informaciju u mašinu, ali povratna informacija ne stiže odmah, a kamoli interakcija u realnom vremenu.

Tek pojavom teleprintera i terminala ljudi i mašine po prvi put dobijaju petlju realnog vremena "unesem rečenu i odmah vidim rezultat".
U tom trenutku se postavlja pitanje: sada kad možemo da komuniciramo u realnom vremenu, kako čovek jasno da izrazi mašini šta želi da uradi?
Najprirodniji način je da se radnja koju treba obaviti pojednostavi u jednu liniju komande — "komandna reč + parametri + objekat".
rm -rf /tmp/old_filesTa struktura, od sedamdesetih do danas, gotovo da se nije promenila.

CLI predaje akciju operativnom sistemu, koji zatim poziva osnovne mogućnosti.
- Predati akciju
- Dobiti povratnu informaciju odmah
- Povezati više akcija zajedno
Tipičan predstavnik CLI-ja je BIOS prozor, koji je u vreme flešovanja stvarao glavobolje.

Kasnije se pojavio GUI.
Dugmići, prozori, ikone, meniji — običnom čoveku mnogo lakše nego pamćenje komandi. Ljudi su prirodno dobri u vizuelnoj prepoznavanju, a loši u napamet učenju.
GUI zaista rešava problem snižavanja praga, vizualizacije stanja i omogućavanja netehničkim korisnicima da koriste računar. On zamenjuje "mesto za prijem" CLI-ja.
CLI je "razmisli pa unesi"; GUI je "vidi pa deluj". Prvi je za čoveka zaista neprijateljski, ali u izražavanju akcija, vraćanju rezultata i povezivanju koraka nema premca.
Zato CLI nije nestao ni u GUI eri — git i danas uglavnom radi u komandnoj liniji.
Obični korisnici koriste GUI; geeks koriste CLI.
Na primer Git, Linux.
02. U Agent eri ponovo dolazi red na CLI
AI era.
Jedna strana je modelska. Anthropic je ulaz za izvršenje Agenta spustio u CLI i napravio Claude Code.
Druga strana je softverska. Platforme počinju da se prepakivaju u komandnu liniju — Feishu je izašao sa CLI-jem.

Što se obe strane na kraju slivaju u CLI nije slučajnost.
To je zato što se u softverskom svetu pojavio novi izvršilac: Agent.
Nekadašnji softver bio je uglavnom "čovek preko GUI-ja upravlja softverom". Postepeno se to pretvara u "čovek postavi zahtev, a Agent razlaže zadatak, izvršava i koriguje".
Čim se izvršilac iz "čoveka" pretvori u "Agent-a", CLI je najzrelije rešenje.
Jer čim Agent krene da radi, odmah se pojavljuju četiri problema:
- Kako komanda stiže do softverskog sloja
- Kako se vraća rezultat izvršenja
- Kako se ispravlja nakon greške
- Kako se povezuje više akcija
Upravo to je ono u čemu CLI briljira.
Postoji jedna zabluda — mnogi mešaju CLI i API.
API je sirovi interfejs softverskih mogućnosti. Na primer, Feishu otvara čitanje i pisanje tabele, slanje poruka kao API, koje drugi programi pozivaju.
Feishu CLI je omotač oko Feishu API-ja. On rešava autentifikaciju, sklapanje parametara, paginaciju, obradu grešaka — te složene detalje — i Agentu izlaže samo jednu komandu.

Mislim da postoje tri razloga zbog kojih se CLI vratio u fokus.
Prvo, GUI je ljubazan prema ljudima, ali nezgodan za Agent-a. Čovek pogleda dugme i odmah zna gde da klikne; da bi Agent upravljao GUI-jem, mora prvo da uslika, prepozna interfejs, locira element i tek onda simulira klik. Trošak vizuelnog razumevanja je visok.
CLI je stabilniji od GUI-ja, jer je interfejs tekst, a ne slika; CLI je zgodniji i od API-ja, jer je prljav posao već pakovan u CLI.
Drugo, veliki modeli od prirode znaju da koriste CLI.
Ovo je strukturalna prednost. U korpusu za treniranje velikih modela nabijene su komandne instrukcije svake vrste.
Model ne mora iz početka da uči "kako se koristi komandna linija" — prirodno poznaje taj obrazac.
Treće, Unix filozofija se savršeno uklapa sa načinom rada Agent-a.
Unix je još rano utvrdio osnovnu logiku CLI-ja: svaki program radi samo jednu stvar, saradnja između programa ide preko teksta kao univerzalnog interfejsa.

Ta tri svojstva su upravo ono što Agentu najviše treba.
Tekst je maternji jezik modela — ulaz je tekstualna komanda, izlaz tekst ili JSON.
Svaka komanda radi samo jednu stvar, ali više komandi se može povezati u radni tok.
cat /var/log/app.log | grep ERROR | wc -lTaj ciklus "uradi korak, pogledaj, ispravi" savršeno se poklapa sa mehanizmom povratne informacije CLI-ja u realnom vremenu.
03. Kakav je odnos MCP-a i CLI-ja
I CLI i MCP stoje između Agent-a i osnovnih mogućnosti, ali potpuno drugačije prilaze istom problemu.
Uzmimo primer: "iz Feishu multidiimenzijske tabele povuci skup zapisa".
CLI put: Agent mora prvo da zna koja komanda postoji, a onda generiše jedan red teksta:
lark-cli base records list --table xxxZatim se rezultat vraća u tekstualnom obliku (obično JSON). Agent čita tekst i odlučuje sledeći korak.
Ako Agent ne zna da postoji alat lark-cli, ovaj put se ne može preći.

MCP put: protokol aktivno saopštava Agentu koje mogućnosti ima.
Agent ne mora unapred da zna nijednu komandu. MCP Server sam gura Agentu svoj spisak mogućnosti.
Agent pregleda spisak, izabere alat, popuni parametre i pozove. Ne mora da zna da li se ispod izvršava lark-cli ili direktan poziv Feishu API-ja — MCP zaklanja te detalje.
Dve jake strane CLI-ja
Prva je kompozicija preko cevovoda.
Na primer zadatak "pročitaj log, izdvoji linije sa greškama, prebroj ih ukupno".
U CLI režimu Agent napiše jednu liniju — tri koraka se povezuju preko cevovoda, i jednim pozivom je gotovo.
cat app.log | grep ERROR | wc -lU MCP režimu? Isti posao se deli u tri koraka — prvo pozoveš read_file da dobiješ fajl, zatim search_text da filtriraš linije sa greškama, i konačno count_lines da prebrojiš. Tri poziva, pri čemu svaki put biraš alat i popunjavaš parametre.
Razlika u efikasnosti je velika.
Drugo je štednja konteksta.

U podacima za treniranje velikih modela, CLI je najgušće zastupljeni obrazac korišćenja alata.
Model ne mora da uči iz početka — već je video to bezbroj puta.
A MCP šema alata je nova stvar iz 2024. Još važnije, MCP mora da ubaci opise alata u prozor konteksta Agent-a — Agent još nije ni počeo da radi, a prozor mu je već delimično zauzet.
Iako rešenja poput deferovanih alata (deferred tools) mogu da ublaže ovaj problem, i dalje se ne mogu porediti sa CLI-jem, jer "ne mora da se ubacuje, prirodno zna" prednost je strukturalne prirode.
Dve jake strane MCP-a
Prva je nije ograničeno na tekst.
Cevovod CLI-ja je tok teksta. Tekst ulazi, tekst izlazi — to je pravilo koje je Unix doneo pre 50 godina.
Za logove, kod, konfiguracione fajlove — čist tekst — CLI je veoma efikasan.
Ali šta ako Agent treba da obradi sliku, audio snimak ili strukturirani rezultat upita nad bazom podataka? Tekstualni cevovod postaje usko grlo. Ne možete PNG progurati kroz cevovod do sledeće komande.
Strukturirani pozivi MCP-a nemaju to ograničenje. Mogu da prenose JSON strukturu, binarne podatke, tipizovane povratne vrednosti. Za scenarije koji obrađuju više tipova sadržaja MCP je prirodno pogodniji.

Druga je validacija parametara.
U CLI-ju sve je string. Da li su parametri komande koje je Agent složio ispravni, zna se tek kad se izvrši. Ako je format parametra pogrešno napisan, komanda prijavljuje grešku; a još gore, ako u unosu stoji zlonamerni sadržaj, Agent može složiti opasnu komandu — to je rizik ubacivanja.
MCP te probleme može da zaustavi pre poziva. Svaki parametar alata ima definisan tip (string, broj, obavezno/opciono), a sloj protokola validira pre izvršenja.
Greška se prijavljuje odmah na licu mesta i ne odlazi u fazu izvršenja.
Uzmimo Claude Code za primer. Njegove ugrađene sposobnosti (pokretanje komandi, čitanje i pisanje fajlova, pretraga koda) sve idu CLI putem. Spoljni servisi (GitHub, baze podataka, platforme trećih strana) idu preko MCP-a.
04. CLI se ponovo dizajnira
Prva linija: postojeći CLI bolje izložiti Agentu
Ovaj pravac se oko postojećeg CLI-ja bavi dvema stvarima:
Dat Agentu jedinstven ulaz, da ne traži komande po celog sveta; organizovati rezultat izvršenja u oblik koji Agent razume i na osnovu kog može da odlučuje.
Tako CLI više nije stručni alat "možeš ako znaš komandu", već postaje radni sto koji može da prati Agentovu kontinualnu petlju rada.
Druga linija: prevođenje veba i platformi u CLI
OpenCLI hvata baš to.
On ne rešava "kako otkriti postojeći CLI", već "kako platforme koje originalno nemaju CLI postaju CLI".
Probao sam jednom, efekat je prilično impozantan. Ranije, kad sam želeo da sa B stanice skinem listu videa nekog autora, morao sam sam da pišem scraper, rešavam anti-scraping i parsiram HTML — muka velika.
Sad sa OpenCLI-jem jedna komanda izbaci rezultat.

Još važnije, on ne daje samo komande, već i mašinski čitljiv mehanizam otkrivanja. To znači da rešavajući drugi problem, istovremeno ublažava i prvi — komande više nisu pisane samo za ljude, već počinju da se pišu i za Agent-e.
To znači da CLI ne predstavlja više samo mogućnosti lokalnog računara, već i veb platforme i udaljene servise.
Današnji CLI:
- Alatni CLI: git, docker, GitHub CLI
- Platformski CLI: Feishu CLI, OpenCLI
- Agentski CLI: Claude Code, Codex CLI, Gemini CLI

Zaključak
Prvo, tehnologija ne napreduje linearno, već spiralno.
Mislimo da je GUI zbrisao CLI, a posle 50 godina CLI se vratio. Isti scenario se u istoriji događao mnogo puta — mislili smo da je funkcionalno programiranje mrtvo, a onda ga React vratio; mislili smo da je monolitna arhitektura zastarela, a onda su se posle mikroservisa svi vratili monolitu.
Tehnologija ne nazaduje, potrebe se menjaju. CLI se nije promenio — Agent ga je ponovo aktivirao.
Drugo, Agent nije prevrat, već priključenje.
Mnogi čim spomenu Agent pomisle na revoluciju — da sve postojeće treba srušiti i početi ispočetka.
Ali zapravo, Agent samo proširuje naše granice mogućnosti, dodajući međusloj između čoveka i softvera.
Treće, softverski svet se dizajnira za Agent-a.
Nekada, kad smo pravili proizvod, prva pomisao na korisnika bila je "običan korisnik". Zatim bismo pitali: da li razumeju ovaj dugmić? Da li je tok gladak? Da li postoji trošak učenja?
Sad imamo još jednog korisnika: Agent.
On ne čita ikone, ali čita JSON. Ne radi drag-and-drop, ali slaže komande. Neće biti oduševljen fancy animacijom, ali će biti zadovoljan stabilnim stdout/stderr.
Ako vaš proizvod dizajnirate samo za ljude, Agent može samo da posmatra spolja.
Ako ga istovremeno dizajnirate i za Agent-a, on može postati raspoređivi čvor u Agentovom radnom toku — potpuno drugačija tržišna pozicija.
