Autonómny vývojár, ktorý beží na vašom stroji a dotahuje úlohy až do zlúčeného PR.
mcptask_runner premení Claude Code na samostatného člena tímu. Funguje s Claude, Kimi, DeepSeek, lokálnou ollamou alebo akýmkoľvek modelom — bez vendor lock-inu. Vyberie úlohu, napíše kód aj testy, otvorí PR a po zelenom CI ho zlúči. Zadáte večer dobre špecifikovanú prácu, ráno ju nájdete hotovú.
Plný autonómny harness nad Claude Code
mcptask_runner je Ruby gem, ktorý do hostiteľskej Rails aplikácie pridá rake tasky pre automatizované vykonávanie úloh z mcptask.online cez Claude Code — od začiatku do konca. Riadi celý životný cyklus agentnej práce: nájde úlohu → posúdi zložitosť → zvolí model → spustí Claude Code → stráži beh watchdogom → dodrží dennú kvótu → (voliteľne) po CI zlúči PR.
Nie je to len „tupý spúšťač" Claude Code. Pridáva orchestráciu, dohľad, zotavenie a riadenie kvality, ktoré holý Claude Code nemá.
Čo z toho reálne máte
Rámcované prínosom pre freelancera alebo dev tím, nie technikou.
Cudzie bugy sa premenia na sledované úlohy
Keď runner uprostred úlohy narazí na cudzí bug, založí si naň vlastný sledovaný úlohu, opraví ho a vráti sa k pôvodnej práci. Chaos sa zmení na auditovateľnú položku.
Samo sa to zotaví a dotiahne
Preplnený kontext, zaseknutie alebo prerušenie úlohu nezabijú. Runner naviaže na silnejšom modeli a dotlačí prácu do PR. Úloha sa naozaj dokončí, nielen začne.
Žiadny vendor lock-in na model
Úrovne genius / smart / primitive si namapujete v mcptask_runner.yml na Claude, Kimi, DeepSeek, lokálnu ollamu alebo čokoľvek chcete. Zmena poskytovateľa = jedna zmena premennej. Veľkí agenti vás zamknú na svoj prémiový model; runner nie.
Riadené náklady na AI
Lacný model na čítanie, silný len na ťažké kódovanie. QuotaGuard (fail-closed) stráži denný rozpočet, aby nedošlo k preťaženiu. Predvídateľné výdaje.
Beží na vašom stroji, proti realite
Spúšťa sa proti vašej reálnej PostgreSQL, vašim reálnym system testom a vašim reálnym screenshotom. Nie osekaný cloud sandbox s mockovanými dátami.
Z backlogu hotové PR — aj cez noc
Naskladáte úlohy do mcptask.online. Runner ich odbavuje, zatiaľ čo robíte niečo iné alebo spíte. Ráno máte hotové a zlúčené PR.
Beží bez dozoru, podľa plánu
Každé pracovné ráno sa sám rozbehne a berie frontu. Žiadne babysittanie promptov.
Vstavaná brána kvality
Nič sa nezlúči bez zeleného CI. Sami si volíte: auto-merge, alebo PR na ľudskú revíziu. Runner vie aj zapracovať review feedback.
Žiadna čierna skrinka — plná sledovateľnosť
Každý beh je sledovaná úloha s % postupu, živou kartou a JSON logmi. Auditovateľné, prehľadné pre celý tím.
Násobí kapacitu tímu bez náboru
Autonómny vývojár, ktorý drží konvencie projektu (testy, CI, PR), riadený ľuďmi tam, kde to dáva zmysel.
Na vašom stroji, proti realite
Cloud agenti bežia v očistených sandboxoch. Runner beží vo vašom reálnom Rails projekte.
Reálna databáza
Pripojí sa k vašej PostgreSQL, spúšťa migrácie a testuje proti reálnym tvarom dát — nie hračkárskej schéme.
Reálne system testy
Capybara/Selenium beží proti vašej reálnej aplikácii. Screenshoty a prehliadačové kontroly znamenajú, že PR je naozaj overené.
Reálne commity a PR
Vetvy, commity a pull requesty žijú vo vašom repu, s vaším CI, pod vašou Git históriou.
Úloha → zlúčené PR → výkaz → faktúra
Runner nie je samostatný kóder. Jeho práca rovno tečie späť do mcptask.online.
Slučka berie úlohy, cieľ ich dokončuje
mcptask_runner spája pracovnú slučku (berie úlohu za úlohou z fronty) s cieľom (dokončí každú úlohu až do zeleného PR, nielen k „nejakým úpravám"). Vie bežať v štyroch režimoch:
Jedna úloha
Posúdenie a spracovanie jednej úlohy. Ideálne pre prvé behy a ladenie.
Dnešná práca
Slučka úloh do dosiahnutia dennej kvóty. PR zostávajú otvorené na ľudskú revíziu.
Nepretržitá fronta
Priebežné spracovanie fronty, kým prichádzajú nové úlohy.
Všetky úlohy jedného príbehu
Spracuje všetky dostupné úlohy v rámci jedného príbehu, podľa priority.
Jeden príkaz urobí celý bootstrap
rake mcptask_runner:install vykoná celý setup: nakopíruje 11 bundled Claude Code skillov do .claude/skills/, skontroluje helper binárky, zlúči baseline oprávnenia do .claude/settings.local.json, obstará JWT token pre mcptask.online, zapíše SSE server do .mcp.json, opýta sa, do ktorého Epiku ukladať auto-nájdené bugy, a na macOS vygeneruje LaunchAgent pre spúšťanie vo všední dni o 08:00. Jeden riadok, zhruba dve minúty k prvej úlohe.
$ bundle exec rake mcptask_runner:install
→ Installing 11 skills into ./.claude/skills/
→ Checking required helpers ✓ ok
→ Merging permissions into
.claude/settings.local.json
→ Provisioning MCPTASK_TOKEN
→ Writing .mcp.json ✓
→ macOS LaunchAgent scheduled
(weekdays 08:00) ✓
Ready. Have a nice day.Aktualizácie skillov bez straty vašich úprav
Po bumpu gemu stačí jeden rake mcptask_runner:update. Updater si drží manifest s content-hashom každého skillu a každý klasifikuje ako chýbajúci (skopíruje), identický (preskočí), zastaraný (aktualizuje) alebo lokálne upravený (nechá byť / s FORCE=1 zálohuje do .bak a prepíše). Nové schopnosti runneru dostanete automaticky, vaše vlastné úpravy skillov zostanú zachované. Git hooky navyše skilly re-syncujú po pull a checkoute. Verzia gemu sa inkrementuje automaticky post-merge hookom.
mcptask_runner:prepare:permissions zlúči baseline oprávnenia — súčasť bezúdržbovej prevádzky.
Čo robí autonómiu skutočne autonómiou
Nižšie je technický detail za tvrdením, že runner je „viac než spúšťač". Každá vlastnosť existuje preto, že by sa bez nej reálny beh rozsypal.
Keď narazí na cudzí bug, založí naň úlohu a pozastaví sa
Ak runner behom práce narazí na URGENTNÝ bug, ktorý nesúvisí s aktuálnou úlohou, commitne a pushne rozrobenú prácu na feature vetvu, prepne na main (čistý strom), založí novú urgentnú bug úlohu a vráti jej id a názov. Runner si bug pripne na disk (UrgentBugPin), takže aj po reštarte ide najprv opraviť bug a až potom sa vracia k pôvodnej úlohe. Chaos z „narazil som na niečo cudzie" sa zmení na sledovateľnú, vlastnenú úlohu.
Zotavenie po zaplnení kontextu alebo prerušení
Keď beh skončí kvôli preplneniu kontextu, kvóte alebo zásahu urgent bugu, úloha zostane in_progress a nedokončená práca zostáva na feature vetve. Ďalší beh ju naviaže: prečíta git log + stav vetvy, fetchne a zlúči origin/main, preskočí hotové kroky a povýši model na „genius" (Opus), aby úlohu dokončil silnejší model. Runner navyše obmedzuje spálenie kontextu: paralelné nezávislé nástroje, žiadne opakované čítanie súboru, žiadne pollovanie v slučkách, screenshoty konvertované a zmenšené. Dlhá úloha prežije naprieč behmi.
Watchdog a detekcia zaseknutia
HeartbeatMonitoring killne beh po 20 minútach nečinnosti, soft-warn na frozen po 3 minútach, stropy na zaseknuté nástroje, absolútny backstop 30 minút a pri každom tepe prepočíta dennú kvótu. StallDetector číta stream Claude Code riadok po riadku a spozná „točenie sa dokola" — opakované chyby Edit alebo Bash, rovnaký podpis nástroja bez zmeny súborov. Pri zaseknutí proces zabije; úloha zostane in_progress a nabudúce sa resumuje na Opuse. QuotaGuard je jediný zdroj pravdy o dennom rozpočte — fail-closed. Pri každom tepe sa obnoví log/runs/run_*.json, takže máte audit toho, čo sa naozaj stalo.
Triage a voľba modelu (tri úrovne)
Pred prácou prebehne Triage: posúdi zložitosť úlohy a odporučí model. Tri úrovne: genius (Opus — ťažké kódovanie), smart (Sonnet — triage, review), primitive (Haiku — len čítanie). ID modelov sú verziované, takže reťazce retry prežijú preplnenie kontextu.
Kvalita: testy, CI, auto-merge
Honest executor ide plný workflow: vetva → kód → unit testy → screenshoty → system testy → push → PR → lokálne CI. Úloha nie je hotová, kým neprejde CI. V režimoch auto-squash runner po zelenom CI PR sám squash-merge; v manuálnych režimoch zostane PR otvorené na ľudskú revíziu. Runner vie aj spracovať review feedback na existujúcom PR.
Model-agnostický cez konfiguráciu
Tri úrovne si namapujete na ľubovoľného poskytovateľa. Vymeňte Claude za ollamu, Kimi, DeepSeek alebo Alibaba DashScope jednou zmenou premennej.
models:
genius: minimax-m3:cloud
smart: kimi-k2.7-code:cloud
primitive: deepseek-v4-flash:cloud
launcher:
# Lokálna ollama
command: [env, "ANTHROPIC_BASE_URL=http://localhost:11434", "ANTHROPIC_AUTH_TOKEN=ollama", "claude"]
Prečo to nie je kúzlo
Šesť vlákien, jeden orchestrátor a stavový automat, ktorý drží agenta pod kontrolou.
Pracovná slučka
Hlavné orchestračné vlákno. Riadi slučku, spúšťa Claude Code cez Open3.popen3 ako child proces vo vlastnej process group (kvôli čistému SIGTERM/SIGKILL celého stromu).
Čítačka stdout
Číta výstup Claude Code (stream-json) riadok po riadku, ako vzniká. Parsuje eventy, počíta ich, hľadá TASKRUNNER_RESULT marker (signál dokončenia) a kŕmi StallDetector. Žiadne čakanie na koniec procesu — reaguje priebežne.
Čítačka stderr
Oddelene zachytáva chyby, aby neblokovala hlavný stream a vedelo sa rozlíšiť reálny pád od očakávaného ukončenia.
Watchdog
Nezávislé strážiace vlákno, ktoré tepe podľa plánu: kill po 20 minútach nečinnosti, soft-warn na frozen po 3 minútach, stropy zaseknutých nástrojov, absolútny backstop 30 minút a pri každom tepe prepočíta dennú kvótu z REST. Je to jediný externý dozorca nad child procesom.
WebSocket do mcptask.online
EventStream drží perzistentný WebSocket (ActionCable, RunnerSessionChannel) spojenie na mcptask.online. Po otvorení pošle subscribe handshake, snapshoty posiela throttlovane (zhruba 0,5 s), ale zmenu stavu FSM pretlačí okamžite; pri výpadku sa asynchrónne znovu pripája s throttlom 30 s. Finálny „closed" snímok dostane grace okno 0,5 s, aby živá karta nezamrzla na starom stave. Premenná MCPTASK_RUNNER_DISABLE celý stream vypne (používa sa v testoch, aby ruby test/... nezakladal karty na produkcii).
Thread-safe snapshot builder
Stavový automat (starting → triage → processing → waiting → finished / stalled / frozen / pending / error / closed) je chránený Mutexom a vracia immutable snapshot hash. Producent/konzument kontrakt má verziované schémy (docs/runner_snapshot_schema.md) — ani jedna strana ho nezmení bez bumpu verzie.
Čo všetko vie a ako sa to volá
Každá položka nižšie sa spúšťa ako bundle exec rake <task> z koreňa projektu. Voliteľné prepínače: verbose=true, ignore_quota=true. Varianty story a task vyžadujú argument — bez neho spadnú.
Manuálne režimy — PR zostáva otvorené na revíziu
mcptask_runner:manual:onceJedna úloha. Triage a vykonanie.
mcptask_runner:manual:once_dryLen zobrazí ďalšiu úlohu, nič nevykoná.
mcptask_runner:manual:todaySlučka úloh do dosiahnutia dennej kvóty.
mcptask_runner:manual:dailyNepretržitá denná slučka.
mcptask_runner:manual:queueNepretržité spracovanie fronty.
mcptask_runner:manual:reviewOpraví review feedback na PR aktuálnej vetvy.
mcptask_runner:manual:reviewsSlučka cez všetky PR s nevybaveným review.
mcptask_runner:manual:workflowNajprv review, potom dnešné úlohy.
mcptask_runner:manual:story[STORY_ID]Všetky úlohy v príbehu.
mcptask_runner:manual:task[TASK_ID]Jedna konkrétna úloha.
Auto-squash režimy — PR sa po CI sám zlúči
mcptask_runner:auto:onceJedna úloha, auto-merge, koniec.
mcptask_runner:auto:squash:todayDnešné úlohy, každá auto-merge.
mcptask_runner:auto:squash:story[STORY_ID]Celý príbeh, auto-merge.
mcptask_runner:auto:squash:task[TASK_ID]Jedna konkrétna úloha, auto-merge.
mcptask_runner:auto:squash:queueNepretržitá fronta, auto-merge.
Údržba
mcptask_runner:installPlný bootstrap: skilly, oprávnenia, token, .mcp.json, plánovač.
mcptask_runner:updateObnoví bundled skilly bez straty lokálnych úprav.
mcptask_runner:prepare:permissionsZlúči baseline oprávnenia.
mcptask_runner:bug_reportZaloží high-priority bug s posledným run logom a (redigovanými) env configmi.
Ráno zapnite stroj
mcptask_runner nenahrádza váš tím — násobí ho. Jeden Ruby gem, jeden riadok na inštaláciu, a váš backlog sa hýbe sám.
30 dní zadarmo. Bez kreditnej karty. Open source. Kedykoľvek zrušíte.