Pro koho o Windmillu píšu
Než se pustím do čehokoli dalšího, chci Ti ušetřit čas, protože tohle není pro všechny.
Nepotřebuješ být programátor (obzvlášť ne dnes), ale hodí se být z oborů, kde intenzivně pracuješ s digitálně reprezentovanými informacemi a rád bys věci viděl plynule zautomatizované.
Pokud se v něčem z toho poznáš, nemusíš číst dál. Teda vlastně - musíš číst dál, protože tohle je jen výčet. Teď víš, že jsi tu správně.
Tohle je pro Tebe, pokud sis někdy napsal/a (nebo si nechal/a napsat) skript, který něco dělá - stáhne data, přejmenuje soubory, pošle notifikaci, cokoliv - a pak se na něj díváš a říkáš si: fajn, a co teď s tím?
Je to pro Tebe, pokud pracuješ v organizaci, kde se ručně nebo složitě a nepřehledně dělají věci, které by přece snadno šly automatizovat a zpřehlednit, protože nikdo nemá kapacitu nebo vůli to nastavit nebo opravit.
Je to pro Tebe, pokud selfhostuješ - ať už máš doma NAS s filmy, Unraid a ‚pole‘ disků na starém ThinkPadu ‚nevypínat‘ na horní polici v komoře, nebo třeba VPS za pět euro měsíčně - nebo dokonce ‚organickou‘ kombinaci toho všeho.
Je to pro Tebe, pokud Ti doma, na chalupě nebo na zahradě měří senzory - teplota, vlhkost půdy, spotřeba, fotovoltaika - a chtěl bys, aby z těch čísel konečně něco vyplynulo: aby se zalévalo, když je sucho a nepršelo, aby Ti přišla zpráva, když v mrazáku stoupá teplota, nebo aby si chytrá domácnost rozuměla i se službami, o kterých výrobce Tvojí krabičky nikdy neslyšel.
Je to pro Tebe, pokud sis nechal vyrobit malou webovou aplikaci - interní dashboard, formulář, přehled objednávek, cokoliv - a teď řešíš, kam to nasadit / jak to hostovat, a proč kvůli jedné stránce s tabulkou, co byla hotová za odpoledne, potřebuješ trávit týdny času a nastavovat Vercel, doménu a CI/CD pipeline.
Je to pro Tebe, pokud sis začal vibecodovat vlastní nástroje - protože jsi zjistil, že to najednou jde, a že ten pocit, když Ti něco konečně funguje přesně tak, jak sis představoval, je dost návykový.
A samozřejmě je to pro Tebe, jestli jsi programátor/ka - obzvlášť pokud máš API klíče k pěti různým službám uložené v .env souboru, o kterém doufáš, že ho nikdy omylem necommitneš.
Pokud to stejně čteš až sem a nepoznáváš se v ničem - wow, asi pojď číst dál i tak, protože Tě to očividně přitahuje a bude to obohacující. No a nebo ne - svět je plný skvělých článků o jiných věcech. Doporučuji třeba cokoliv co má na svědomí Michael Levin - biolog a původně ajťák, který zkoumá široké rozpětí věcí - třeba co to znamená inteligence, jak může vypadat vpád z neviditelných dimenzí do našeho světa, nebo jak buňky komunikují a organizují se do složitějších celků. Dokáže o tom mluvit tak, že fascinuje i lidi, kteří biologii normálně považují za super nudnou. Přesně takhle bych chtěl psát o automatizaci - protože v jádru jde o podobnou věc: jak se z jednoduchých částí, z nichž každá svérázně dělá svou věc, posbírá něco, co drží a funguje jako celek.
Cesta, kterou nejde přeskočit
Teď popíšu posloupnost zkušeností, které nějak takto zažívá každý, kdo snaží přimět počítač, aby automaticky něco dělal.
Milník 1: „Funguje to!“
Napíšeš si skript. Nebo Ti ho dneska snadno napíše Claude. Nebo jsi ‚jen‘ vzal hotový nástroj, knihovnu, službu s API, a propojil to s něčím dalším. Nebo si necháš vyrobit malinkou aplikaci: stránku, která zobrazuje přehled. Formulář, který někam ukládá data. Dashboard, na kterém je vidět, co se děje. Důležité je, že jsi přiměl počítač udělat něco užitečného, s čím bys jinak musel trávit čas.
Možná to ‚jen‘ stahuje kurzy měn. Možná je to ‚jen‘ nákupní seznam pro rodinu. Možná to ‚jen‘ přejmenuje fotky podle data pořízení - ale dělá to samo a Ty máš pocit, že jsi právě zažehl oheň.
Je to zářivý moment. Jako by se rozpustila mlha a krajina možností se odhalila až po horizont.
Milník 2: „A teď to rozjedu… zase já?“
Euforie postupně opadá - mívá na tom podíl váha uvědomění, že ten skript se o sebe nepostará. Že sice nemusíš pokaždé, když ho chceš použít, otevřít terminál, přejít do správné složky, přebrat si v hlavě, jak jsi to vlastně nastavil a proč, a stisknout Enter - nemusíš, protože si to samozřejmě nachystáš nějak dostupněji. Ale tisíckrát nic umořilo osla.
A to je jenom začátek. Protože pak tu jsou nevyhnutelné nové verze. Časem někdo změní API a musíš skript upravit. A nebo si napíšeš druhý skript, a třetí. Pak malou webovou appku, která ty skripty obsluhuje - ale najednou máš pět věcí, z nichž každá potřebuje vlastní údržbu, každá má své závislosti, každá běží někde jinde nějak jinak, a zatímco ses na každé z nich něco naučil, Ty jsi jediný člověk na světě, který tuší, jak to celé drží pohromadě (a i to jen přibližně a hlavně dočasně) - a to je tíživé.
Mimochodem - nebylo by se čemu divit, kdyby to všechno bylo závislé na Tvém zařízení. Zavřeš notebook, skript se zastaví. Přijdeš o notebook, smůla (ne, já vím, samozřejmě máš zálohy). Což je trochu nežádoucí stav, když to přece měla být automatizace, která Ti umožní propůjčit svou kapacitu zajímavějším věcem.
Nic z toho zas tak moc nevadí, když si hraješ a nebo něco potřebuješ jednou za čas. Ale jakmile o něco jde, jakmile se to má dít pravidelně nebo to musí řešit i někdo jiný, uvědomíš si, že svým zářivým de-facto-programátorským vítězstvím jsi právě vyřešil ten zajímavější, ale méně tíživý problém; ten nudnější, avšak mnohem trvalejší problém, tedy „jak tomu zajistit fungování“, se teprve vynořuje.
Milník 3: „Prostě se to bude hodně spouštět někde“
A tak si nastavíš cronjob. Nebo systemd timer. Nebo Windows Task Scheduler, pokud máš tuhle konkrétní formu masochismu nebo utkvělou představu, že pod Linuxem by věci byly moc složité. Nebo si prostě řekneš, že to budeš spouštět přes GitHub Actions, protože tam je to ‚zadarmo‘.
A funguje to - skript se spouští, Ty nemusíš nic dělat. Tohle je pravá automatizace. Tohle je budoucnost. Oheň vytrvale plane.
Dokud to fungovat nepřestane.
Milník 4: „Jak dlouho že to nefunguje?!“
Ať už předchozí milníky máš krásně zaběhané, nebo se pořád s něčím pereš, svět na nic nečeká a nevyhnutelně přichází tahle studená sprcha: Tvůj nástroj tiše selhal - možná se změnilo API, možná vypršel token, možná prostě už jenom vůbec nerozumíš tomu, co to má dělat.
Problém není, že něco selhalo (všechno selže), ale že se o tom nevědělo.
Možná máš logy, ale nemáš notifikace. Možná něco proklouzlo nastavením. Možná ani nemáš jak zjistit, kdy přesně to přestalo fungovat a proč. Každopádně oprávněně v Tobě kvasí pocit, že automatizace a vůbec celá digitalizace je podvod a pyramidová hra a akorát je pak se vším mnohem víc práce, která stejně zákonitě nemůže vést k tomu, že cokoli bude jednou provždy vyřešené, a jen se do toho víc zaplétáme.
Ale emoce s časem pominou a užitečnost digitálního je nepopiratelná.
Milník 5: „Potřebuju… systém“
A tady se děje něco důležitého. Tohle je ten moment, kdy máš šanci přestat řešit jednotlivé skripty a začít skutečně přemýšlet o infrastruktuře. Ne jako o něčem otravném, nebo něčem, co by bylo pěkné, ale kdo na to má čas a kapacitu. Jako o základech stavby a lešení, které se o ně může opírat, a bez kterého nechceš fungovat, protože ta jednoduchost jednoduchých řešení byla zdánlivá.
Zjišťuješ, že by to chtělo:
- jedno místo, kde skripty žijí a kde se dají najít i za půl roku - ne porůznu ve složkách a poznámkách, ne každý na svém síťovém disku, ne jako hromada názvů „final final final“, mezi kterými se nedá vybrat bez plýtvání pozorností
- způsob, jak skripty pravidelně a spolehlivě spouštět
- logy, nejlépe nějak centralizované, abys mohl snadno vidět a dohledat, co se děje (případně co se neděje)
- dostatečně přísné (ale ne zase moc časté) notifikace, aby se správní lidé dozvěděli, když něco selže
- správu přístupů, abys neměl hesla natvrdo v kódu nebo porůznu na jiných hrůzných místech
- nějaký přehled, kde a co vlastně běží, kdy a jak často
- a pokud k tomu ještě máš webovou appku nebo dvě - zabezpečené místo, kde je hostovat, nejlépe aniž bys pro každou musel řešit deployment zvlášť
Ideální by bylo mít to pěkně pohromadě. Historickým vývojem se ale úplně běžně stává, že máš půlku automatizací u adminů v cronu, čtvrtku u programátorů v GitHub Actions, pár kousků na obchodním v Zapieru nebo Make a zbytek jsou mlhavé představy v něčí hlavě - nebo ani to ne. Je to dokonce přesně ten chybný přístup, který se může jevit jako úspěšný pořádek, dokud nenastane problém - nemluvě o tom, jak takový slepenec plýtvá kapacitou lidských myslí, které ho v sobě musí udržovat při životě, a pak jim záhadně zbývá méně a méně místa na jiné důležité věci, třeba skutečnou práci, nebo i vlastní život. Při žonglování se všemi těmi možnostmi navíc není možné občas nějakou kuželku neupustit.
A právě v tomto temném a zoufalém momentu, kdy se tu v představě zmítáme pod vahou nepotřebných digitálních nánosů a z prošlé řady zkušeností nám vyvstal soubor potřeb, bych Ti chtěl představit produkt, který se jmenuje Windmill, a svůj ‚mlýn‘, který Windmillem poháním.
Proč Windmill
Nebudu zahajovat tím, že Windmill je nejlepší věc od vynálezu krájeného chleba, protože by to za (a) bylo povrchně marketingové, za (b) předkrájený chleba je dost nízká laťka a za (c) Ty jsi dočetl až sem, takže očekáváš šťavnaté, výživné informace, ne pitomé superlativy.
Takže jsi tu správně.
Mlýn jako hlavní místo
Windmill je super moderní (v Rustu!) a v základu open-source platforma, která se umí skvěle postarat přesně o ty naše automatizační potřeby. Vezme naše skripty a nejen že poskytne domov jejich zdrojovým kódům, ale rovnou jim zajistí i fungování a prostředí kolem toho. Teoreticky bys ani nepotřeboval na ukládání svých zdrojáků Git, Windmill je taky verzuje, ale to by bylo rouhání, takže Git samozřejmě používáš dál i s Windmillem (a pokud ne, věnuješ půlden tomu, aby ses s ním seznámil) - v Gitu jsou skripty zapsané, ve Windmillu ožívají.
Je skoro jedno, jaký na své skripty potřebuješ jazyk, podporované je všechno možné: Python, TypeScript, Go, Bash, SQL, .NET, Docker atd. Každý skript může být v jiném programovacím jazyce a Windmill s tím nemá problém. Skript můžeš dodat hotový, nebo napsat s LLM asistencí v interním editoru, a Windmill ze skriptu dokáže obratem udělat spustitelnou jednotku s logováním, schedulingem, vstupními parametry, správou credentials a webovým rozhraním.
Ale není to zdaleka jen o spouštění skriptů. Windmill umí hostovat i plnohodnotné webové aplikace - dashboardy, formuláře, interní nástroje, administraci. Windmill rovnou poskytne i databázi, když je třeba, a máš funkční aplikaci pro interní využití bez toho, abys řešil samostatný hosting, deployment, CORS, reverse proxy nebo jakýkoliv jiný z těch pojmů, kvůli kterým nikdo normální nechce dělat IT admina.
Windmill umí pomoct ven z různých vězení - jedno z nich se jmenuje tabulky. Znáš to - Excel, ve kterém se počítají objednávky, druhý, který z něj přes makro tahá čísla, a třetí, do kterého je někdo každé pondělí ručně kopíruje, aby z nich udělal report pro vedení. A běda, když se někomu v tom prvním posune sloupec. Windmill tuhle tyranii dokáže rozpustit: data si sám stáhne tam, kde vznikají, uloží je do databáze, přepočítá je podle plánu a výsledek vystaví jako dashboard, pošle mailem jako pondělní report, nebo - když na tom někdo trvá - zapíše zpátky do excelové tabulky, aby se šéfové nemuseli nic učit. Není to zrovna nový koncept, jen je provedený bez balastu našeho historického zjišťování, co je vlastně potřeba. Z ručně udržovaného slepence se tak může stát pružná sada nástrojů na business intelligence a reporting, která dokáže prakticky i sama běžet a rozvíjet se, a na Tvém tabulkovém dashboardu je pořád vidět, odkud které číslo přišlo.
Ale tím klíčovým slovem není „místo“ - je to „hlavní“.
Prostě mlýn na datové toky
Windmill a na něm stojící mlýn je hlavní bod, kudy v mém digiself (moje data, poznámky, myšlenky, fotky…) všechno prochází.
Windmill sám je automatizační platforma, mlýn je Windmill s názorem a obsahem - automatizační platforma pro jednotlivce, skupiny i organizace. Jakmile si na tyto možnosti zvykneš, je těžké se vrátit k životu, ve kterém každá digitální věc měla svůj nahodilý, odpojený svět.
Představ si to jako „Zapier, který místo klikání necháváš agenta psát kód v bezpečné ohrádce“ - nebo jako „GitHub Actions, ale selfhosted, s možností věci naklikat i v UI, a s tím bonusem, že tam rovnou můžeš hostovat i tu appku, kvůli které jsi ty skripty vůbec psal“. Jenže na rozdíl od obojího z toho je to zároveň i místo, odkud se to všechno řídí - ne jen spouští.
Každá externí služba, kterou potřebuji nebo se kterou pracuji (namátkou Google věci, Reddit, faktury…), dnes u mě má svůj Windmill obal. Malý skript (nebo několik pod jednou fasádou), který tu službu obaluje (přímo nebo přes existující knihovny), dává jí jednotné rozhraní, jednotné logování, jednotné konvence pojmenování a struktury. A stará se o to, aby moje data v cloudu zůstávala i doma - ve výchozím nastavení.
Důležité je tam to slovo obaluje. Pro mlýn se snažím brát hotové věci - open source projekty a existující knihovny, o které se už někdo staral, opravoval je a přemýšlel nad nimi. Nechci monolitické řešení ušité přesně na míru svým potřebám. Svět doiteroval k dnešním zavedeným modelům a nástrojům z nějakého důvodu. Je to zajímavý myšlenkový experiment zkoumat, proč to tak je a jestli je to to nejlepší, co se dá vymyslet - ale myslet si, že si prostě všechno nakóduju na míru, protože mi to dnes AI napíše za odpoledne, by byl příznak AI psychózy. I jenom slepovat hotové kusy k sobě je na pozornost dost náročné.
Proč? Protože mlýn jako místo, přes které v Tvém digitálním světě všechno teče, skýtá zajímavé možnosti:
- Sledovatelnost — Každá akce, ať už ji spustil cron, webhook, ruka nebo AI agent, má záznam. Žádné „jak to, že už se to pustilo?“ a žádné „kdo to vlastně zavolal?“.
- Kompozice — Skripty, které obalují různé služby, se dají skládat do flows - a najednou máš pipeline, která stáhne článek z webu, pošle ho přes LLM, uloží ho do vaultu a pošle notifikaci nebo přidá sekci k načtení do personalizovaného denního přehledu dění v autě - a každý krok je samostatně testovatelný, vyměnitelný kus.
- Hexagonální architektura — Hlavní koncept programátorské hexagonální architektury jsou porty a adaptéry. Dovolují jednotně připojit různé varianty nějaké služby - dejme tomu místo na ukládání souborů. Službám mého mlýna má být jedno, jestli jim posílám soubor rovnou nebo jako link na Google Drive, nebo ho mám třeba v Obsidianu. Když máme zapojený patřičný adaptér, je to pro mlýn prostě další dostupný soubor. Když dejme tomu CloudX zapojený nemáme, LLM agent na CloudX zanedlouho vyklódí funkční adaptér a pak už zbývá jen svůj mlýn svým účtem do CloudX přihlásit (přístup se uloží šifrovaně přímo ve mlýně) a služby mlýna najednou dokážou s CloudX úložištěm pracovat.
- Jedna sada konvencí — Všechny skripty vypadají stejně, fungují stejně, logují stejně. Když se po půl roce vracíš k něčemu, co jsi psal (nebo co za Tebe psal agent), víš, kde co hledat.
- Jedno monorepo — Všechny skripty, flows, aplikace a konfigurace můžou žít v jednom Git repozitáři.
wmill sync pusha máš to nasazené.wmill sync pulla máš to v Gitu, ať už jsi jednotlivec nebo organizace. Žádný deployment cirkus - na druhou stranu, určitě si to můžeš trochu zkomplikovat, komplikování věcí mlýn sice nepomáhá, přesto skýtá neomezené možnosti.
Navíc, a to není málo, není nijak složité si to celé pouštět na vlastním serveru.
Ty milníky, jeden po druhém
Vzpomínáš na tu cestu výše? Pojďme si to proletět znovu, tentokrát s Windmillem:
„Funguje to!“ - Pokud fakt nechceš být ani trochu programátor a odmítáš použít IDE a Git, klidně vytvoř nebo nech vytvořit ‚skript‘ (nebo několik) ve Windmillu přímo v prohlížeči. Windmill Ti dá editor a dovolí napojit AI asistenta, kterého používáš, a automaticky řeší importy a nainstaluje závislosti. Žádné npm install, žádné virtuální prostředí, žádné „na mém stroji to fungovalo“. Klikneš Run, vidíš výstup. Hotovo.
„A teď to rozjedu… zase já?“ - Ne. Přidáš schedule na tom jediném místě, kde takové věci soustředíš. Řekneš „každou hodinu“ nebo „každé pondělí v 8:00“ nebo napíšeš libovolný cron výraz. Windmill se postará. Ty si jdeš dělat něco jiného.
„Prostě se to bude hodně spouštět někde“ - Windmill je ten cron, ale lepší. Každé spuštění má svůj záznam - kdy to běželo, jak dlouho, co to vrátilo, jestli to uspělo nebo selhalo. Dá se to proklikat, dá se to filtrovat, dá se to exportovat, na všechno tam je API, takže se do dá ovládat odjinud.
„Jak dlouho že to nefunguje?“ - Na tohle má Windmill odpověď z principu. Každý běh je zalogovaný. Pokud skript selže, vidíš to okamžitě v UI - a můžeš si nastavit notifikaci (webhook, email, Slack, cokoliv), která Ti to řekne. Méně tichých selhání, méně překvapení po týdnech.
„Potřebuju… systém“ - Windmill je ten systém. Skripty jsou organizované do složek (doménově - f/scraper, f/llm, f/google, f/invoicing - nebo podle libosti). Credentials Windmill udržuje šifrované v resources, odkazuješ se na ně jménem, nikdy je nevidíš v kódu, a každý uživatel může mít vlastní. Máš přehled všech plánů, všech běhů, všech skriptů na jednom dashboardu.
Co je na tom zadarmo
Tady bych normálně čekal, že přijde háček™. „Free tier do 100 spuštění měsíčně“ nebo „zdarma pro jednoho uživatele s omezeným počtem kroků“ - znáš to.
Windmill to dělá jinak. Self-hosted verze je zdarma bez limitu na počet spuštění. Žádný licenční klíč, počítadlo, „upgrade abyste mohli pokračovat“. Prostě si to spustíš.
Neříkám, že za to nikdy nic nebudeš platit. Enterprise funkce jako audit logy, SAML SSO, nativní Git sync nebo Kafka triggery - to je placené. Ale pro jednoho člověka, malý tým nebo organizaci, která potřebuje automatizovat desítky procesů? Free tier stačí. Já na něm jedu už pár let, mám 200+ skriptů v 27 doménách, tisíce spuštění denně, a nikdo mi zatím neposlal fakturu.
Proč ne Zapier / n8n / Make
Nemám nic proti těmhle nástrojům. Dělají, co mají. Ale:
Zapier Ti účtuje za každý „task“ (krok v automatizaci). Pokud máš automatizaci, která stáhne RSS → pošle to do LLM → uloží výsledek → pošle notifikaci, to jsou 4 tasky. Za jednu automatizaci. Při sto spuštěních denně jsi na 12 000 tasků měsíčně, což Tě na Zapier Pro vyjde… no, víc než ta VPSka, na které Ti Windmill poběží s neomezeným počtem kroků. Make je na tom podobně, jen tomu neříká tasky, ale operace - a platí se za každou.
n8n je skvělý a jeho zdrojový kód je veřejný (i když licence ‚fair-code‘ není úplně open source), ale je to klikací editor. Pro jednoduché automatizace perfektní. Ale jakmile potřebuješ napsat skutečnou logiku - podmínky, cykly, error handling, volání externích knihoven - začneš se prát s „code node“ uvnitř vizuálního editoru, což je přesně tak příjemné, jak to zní. A když chceš zapojit cizí opensource knihovnu, napsanou třeba v Go? Jasně - postav si vlastní Docker image, do kterého ji přibalíš, nebo si k tomu rozjeď vlastní workery. Jasně, jde to. Hodně štěstí.
Windmill je code-first. Tvůj skript je ta automatizace. Skoro žádná vrstva mezi Tvým prostředím a kódem. Když chceš vizuální flow (a pro některé věci je to legitimně užitečné), Windmill to umí taky - ale jako kompozici kódových kroků, ne jako alternativu k nim. A pokud potřebuješ, aby Tvoje automatizace měla i tvář - frontend, se kterým může pracovat člověk, který terminál neotevřel a nechce - i to je pořád Windmill, pořád na stejném místě, pořád bez dalšího nasazování.
🤯 na závěr: agent-ready
Všechny AI společnosti dnes řeší, kdo Ti dodá asistenta, pracovníka, učitele, chápavé náhražky partnerů, na kterých budeme závislí, aby následně mohli utáhnout šrouby a dojit a enshittifikovat. Když máš mlýn, máš šanci mít všechno svoje a jen do toho zapojíš LLM - klidně i svůj lokální model.
Windmill umí fungovat jako MCP server: MCP je prostě domluvený způsob, jakým AI asistenti používají nástroje mimo sebe.
Windmill umí skripty, které vybereš, nabídnout jako nástroje.
Zní to nenápadně, ale je to poslední dílek skládačky. ChatGPT appka v telefonu už dnes umí MCP nástroje používat i v konverzačním režimu - takže můj Claude Code ve svém izolovaném kontejneru pracuje na nějakém projektu, a ChatGPT mi jako asistent přes můj mlýn mrkne do workspace terminálu, co se děje, já můžu hlasem zodpovědět otázky, které mi tam Claude klade a v telefonu ChatGPT přečte, nebo ho klidně ještě poslat něco někde hledat nebo zkoumat a pak z toho sesumírovat ‘pořádný’ výstup, protože na to samozřejmě v Obsidianu mám uložená pravidla.
No a nebo můžu prostě hlasem vyřizovat maily a plánovat schůzky do kalendáře - klidně napříč několika cloudy nebo zcela selfhostovaně.
Když najednou nebudu mít přístup k některé ze služeb, které používám, o nic nepřijdu, protože všechno jde přes mlýn a zrcadlí se ke mně. A ‚nic‘¹ nepotřebuju nechávat kdovíkomu k vytěžení.
¹ ‚Nic‘ v tomto případě znamená ‚jen to, co píšu do LLM a co LLM posílá zpět‘.
A přitom nemusím OpenAI ani Anthropic přihlašovat do svého Gmailu a podobně a svoje přihlášení jim nechávat, nebo platit za nějaké další služby, které se mi budou starat o projekty, grafiku, cokoli. Mlýn, když má propůjčenou LLM jako jsou Claude modely (aktuálně vládne 5.5), dneska dokáže automaticky spolknout a zahrnout a nebo rovnou nahradit velkou spoustu věcí, které Tě dnešní ekosystém vede vést roztroušeně, draze a dostupné ke šmírování, protože to stavíš na cizích zahrádkách.
S Windmillem je přihlášený můj mlýn, na ‘mém’ stroji - a cizí asistent se k zapojené službě, třeba k emailu, dostane přes mlýn jen na můj popud, zprostředkovaně, přes nástroje, které jsem mu sám nabídl, v rozsahu, který jsem mu vymezil, a se schválením, které mu můžu nebo nemusím dát.
Přístup pro agenty je nejzásadnější ‚vedlejší efekt‘ mlýna - můžeš jakékoli svoje LLM pustit do mlýna nebo do jeho části. Tvůj agent, klidně Claude nebo ChatGPT appka v telefonu, může přes mlýn obsluhovat všechno, co dovolíš. V praxi to znamená, že můžu mít svůj poznámkový Obsidian, povídat si s GPT Astro - modelem, se kterým se dá normálně mluvit, nejen psát - nahlas mu říct, co mi má najít nebo zapsat, a vědět, že výsledný artefakt nevznikne v oplocené zahrádce OpenAI, ale rovnou u mě doma. A když už něco musí vznikat jinde, mlýn dokáže zautomatizovat, že se to bude ukládat i doma.
Vzápětí můžu na počítači použít Claude, napsat mu, že tu poznámku, co jsem teď přidal, má načíst, a vytvořit pro ni podle mých pravidel v mém vaultu (které si samozřejmě sám načte) základ projektu - a on si zase volá můj mlýn, a klidně by mohl tu přidat záznam do Google tabulky, tam nastartovat nové prostředí, nebo rozjet výzkum na nějaké téma (mlýn samozřejmě umí přečíst z webu věci, které dneska LLM agentům bývají skryty), sepsat scénář na pětiminutový podcast (opět podle pravidel, která už mám ve vaultu) a přes mlýn ho nechat načíst pomocí služby, kterou tam mám připojenou.
Totéž může udělat i manželka - pod svým účtem může ten stejný mlýn pustit do svého digiself.
Trvalo několik let mého postupného zkoušení a zlepšujících se schopností nejlepších LLM modelů, než jsem si ověřil, že o uspořádání mlýna se můžu opřít a dělat jen tak mimoděk po chvilkách věci, které by jinak potřebovaly tým na plný úvazek - třeba sérii předvolebních AMA na brněnském Redditu. Napřed chci každý krok zkontrolovat a schválit, než se provede, ale to se nedá dělat donekonečna a člověk se postupně naučí, že se správným postrojem umí být dnešní LLM celkem spolehlivé. A když se zítra rozhodnu, že místo Google chci Microsoft nebo si rovnou provozovat všechno doma nebo v sousedství, či třeba chci ChatGPT místo Clauda (nebo svůj lokální model, nebo všechno zároveň podle potřeby), nic se nestěhuje, nic není nutné přenášet - nástroje, vstupy, výstupy o přístupy zůstávají dostupné ve mlýně a přes mlýn, a v oplocené cizí zahrádce prostě jen na chvíli mihnou, než se zase všechno vrátí do mého digitálního prostoru.
Mlýn schválně nedává AI autonomii
Není to „celé agent“, jak dnes (asi nevyhnutelně) zkoušejí lidé v experimentech. Mlýn není autonomní agent typu OpenClaw nebo Hermes, jeho zapojení nedovoluje generovanému textu ovládat Tvůj digitální život a dělat tam, co uzná za vhodné. Ale rozhodně i takový agent by Windmill přístup a lešení dobře využil.
Je to spíš pult s tlačítky: každé dělá jednu popsanou věc, pokaždé stejně, a každé zmáčknutí se zapíše.
Asistenta můžeš nechat, aby některá zmáčkl - a zmáčknutí je předvídatelné a dohledatelné.
A nová tlačítka Ti dneska vyrobí taky agent. Když víš, co po něm chtít a jak ověřit, že je to správně, tak dneska to dokáže spolehlivě, obzvlášť s ochrannými mantinely Windmillu. Ukážeš mu dokumentaci ke službě, kterou chceš připojit, a on podle Tvých konvencí napíše skript (a testy a dokumentaci), vyzkouší ho, nahraje do Windmillu a klidně i zpřístupní Tvým asistentům. Za půl hodiny máš nový nástroj a nemusel jsi kvůli tomu opustit konverzaci, ve které jsi to zadal. A až ho asistenti budou používat, hesla a klíče k té zapojené službě neuvidí - ty zůstávají šifrované ve mlýně.
Fakt se není čemu divit, že v Číně lidé masově chodí na kurzy, jak si nastavit agenty. Jsme v situaci, kdy je opravdu možné nechat LLM asistenty vyřizovat rutinní věci - ne v ukázce na keynote, ale v obyčejném úterý. Otázka už není, jestli to půjde, ale kde to poběží, komu to bude patřit, a jaké budou prompty - je třeba slušné chování nechávat za sebe bez varování pod svým jménem psát LLM? Kde si výsledné směřování jako společnost zapíšeme?
Mlýn je moje odpověď: cesta, jak používat možnosti LLM na maximum, ale také v maximální možné míře na ‚svém‘ hardwaru, s open source programy, o které se nemusím sám starat, ve svém digitálním soukromí. Mlýn umí být ovládací panel všeho, pevná, ale pružná páteř pro digitální život - o to mocnější, že jeho utváření, provoz, správu i péči o něj klidně zvládnou agenti, když je dobře navedeš. Nebo když je navede organizace, která by nám takové věci mohla řešit.
A když se má mlýn stát páteří organizace, je to ještě zajímavější. Organizace odjakživa mají svého ducha, ale teprve dnes se duch organizace může začít autonomně projevovat, když napojíme LLM. Akorát se rychle ukáže, že duch spousty organizací je dost hrozivý.
Začni od mlýnského kola od plánování pozorováním
Zkus si příští měsíc všímat:
- Rozházených kousků — skript tady, cronjob támhle, záložka s API dokumentací, kterou jednou za čas otevřeš a ručně z ní něco vytáhneš nebo zavoláš.
- Tichých selhání — kde něco přestalo fungovat a Ty se to dozvídáš pozdě nebo náhodou.
- Odložených nápadů — kdy Tě napadlo „tohle by přece šlo automatizovat“, a hned za tím „ale to by bylo moc práce“.
- Chybějících napojení — kolikrát vidíš „tohle by dokázal udělat agent, kdyby se měl jak napojit“.
Až si toho nasbíráš dost, budeš přesně vědět, jestli potřebuješ nástroj jako Windmill. A pokud ano, začni od píky: prázdným Windmillem.
LLM agenta (dnes na konci 2026 to je převážně Claude Code / Codex) necháš nastudovat skutečnou dokumentaci a sepsat skilly, tedy postupy, jak se věci ve Windmillu správně dělají - nebo dobře, rovnou zkusíš zapojit skript, který řeší tu jednu věc, co Tě pálí nejvíc. Na první experimenty bude stačit místo s pár jádry a pár giga RAM, půlhodina času a docker compose up -d.
Zní to pomaleji a složiteji, než zaplatit za možnost stavět cizími nástroji na cizí zahrádce a raději nemyslet na to, jestli si to později budu moct i odnést. Windmill ale není zbytečně složitý, i když tak na první pohled může vypadat. Hotový systém je komplexní věc, jejíž smysl leckdy zprvu nedohlédneš - a tak po Tobě chce samé zdánlivé zbytečnosti: konvence, kterým ještě nerozumíš, vrstvy na problémy, které ještě nemáš. Kdežto skript, který Ti ušetří ranní ruční práci, dává smysl od první minuty. Druhý taky. A u pátého zjistíš, že nějaké konvence potřebuješ - a tentokrát budeš vědět proč.
Složitý systém, který funguje, se vždycky vyvinul z jednoduchého systému, který fungoval. Složitý systém navržený od nuly nikdy nefunguje a nedá se zalátat tak, aby fungoval.
— John Gall, Systemantics (1975)
Vlastní mlýn
Chtěl bys rovnou můj mlýn místo prázdného Windmillu? Aby dělal, co mu řekneš, a sám se budoval a spravoval? Hah, to se ví 🤠
Jasně, můžeme se bavit o tom, že Ti takový mlýn na zakázku zařídím, ať už pro organizaci nebo pro rodinu. Samozřejmě to můžu udělat, mám na všechno předpřipravené šablony, sepsané schopnosti pro AI agenty, a skoro automaticky se to celé umí samo zapojit a provozovat. Součástí je nasazení Windmillu, nastavení konvencí, převod existujících skriptů, napojení služeb.
Jen to celé není produkt, je to balík konvencí, je to cesta, kterou se rozhoduješ jít dnes už ne sám, ale s pomocí LLM - základ tvoří instance mlýna s principy a skilly, na které se můžeš spolehnout, a Tvůj mlýn pak s Tvou pomocí a s Tebou zvoleným poskytovatelem AI utváří svou vlastní podobu a fungování tak, jak potřebuješ.
Mlýn má samozřejmě appku, ve které usnadňuje přístup k různým částem, které si v něm zařídíš. Mlýn do sebe dokáže pustit další uživatele, a dokáže sám sebe uživatelům i Tobě vysvětlit. Po chvíli vyptávání se dokáže navrhnout, co by se hodilo připojit, jak by to mohlo být propojené.
S Windmillem a připraveným LLM postrojem můžeš jít do libovolné hloubky - nemusíš se potkat s kódem, ale klidně můžeš o kousek vedle optimalizovat workflow do poslední query.
Startup? Radši spolek

Dlouhodobě soudím, že pro tak mocnou věc, jako je mlýn (a AI obecně, ale džin mlýna zatím z lahve neutekl) nesmíme používat ziskový model - tím si přivoláváme scénář s kancelářskými sponkami: systém posedlý jedním cílem (zisk pro vybrané) kvůli němu převálcuje všechno ostatní. Ve slavném myšlenkovém experimentu je tím cílem výroba sponek. V našem světě je to fantom nutné ziskovosti a věčného růstu.
Ostatně - zatím jsem si nevšiml, že by AI korporace svou AI nějak horlivě využívaly k tomu, aby vypustily existující rybníky moci. Spíš je prohlubují a stavějí kolem nich plot. Nedá se jim to ani moc vyčítat, je to nevyhnutelně dáno obchodním modelem. A právě proto náš model obchodní a ziskový být nechce a nesmí.
Označuju tento směr úvah Aretea (podle starořeckého ἀρετή) a není to startup, ze kterého bych chtěl rychle cash out, ale spolek, který dávám dohromady, a který má za cíl dělat věci tak nejlépe, jak nám to dnešek umožňuje. Přesněji řečeno jde o metaspolek: spolek jako replikovatelná šablona pro lidi a skupiny, kteří chtějí mít svou digitální infrastrukturu pod svou kontrolou, za sdílené náklady, transparentně, bez toho, aby z toho někdo vytěžoval vlastní zisk. Šablona, která na libovolném cloudu nebo vlastním serveru zprovozní potřebnou digitální infrastrukturu, automaticky nastavenou a připravenou na zapojení LLM, s Windmillem jako jedním z hlavních opěrných bodů, s jejichž pomocí se pak o sebe dokáže postarat skoro sama.
Technická část je přitom ta snazší. Kód dneska z velké části napíšou agenti a mlýn jim vymezí, kde ho spouštět.
Pokud AI vyřeší psaní kódu, zbývá nám ta společensky méně příjemná část: zjistit, co vlastně chceme, a na čem se dokážeme dohodnout.
Na tu společenskou stránku žádný skript není. Na tohle je spolek - lidi, kteří si to vyjasňují spolu, a pak spolu sdílejí i ten mlýn. Detaily postupně přibývají na aretea.cz a kerray.cz. Žádný mailing list, žádné „přihlaste se k odběru novinek“ - občas se podívej, nebo se rovnou ozvi. Budu rád.
Příště: Coder, další šikovný open-source nástroj - protože jakmile máš Windmill jako místo, kde věci běží, přirozeně vyvstane otázka, kde je vyvíjet. Přece by sis nepustil agenta s plnými právy na celý svůj počítač, že ne? Že ne?
Windmill: windmill.dev | GitHub | selfhosted, open-source, free tier bez limitu spuštění.