Autonomní vývojář, který běží na vašem stroji a dotahuje úkoly až do zmergovaného PR.
mcptask_runner promění Claude Code v samostatného člena týmu. Funguje s Claude, Kimi, DeepSeek, lokální ollamou nebo jakýmkoli modelem — bez vendor lock-inu. Vybere úkol, napíše kód i testy, otevře PR a po zeleném CI ho zmerguje. Zadáte večer dobře specifikovanou práci, ráno ji najdete hotovou.
Plný autonomní harness nad Claude Code
mcptask_runner je Ruby gem, který do hostitelské Rails aplikace přidá rake tasky pro automatizované vykonávání úkolů z mcptask.online přes Claude Code — od začátku do konce. Řídí celý životní cyklus agentní práce: najde úkol → posoudí složitost → zvolí model → spustí Claude Code → hlídá běh watchdogem → dodrží denní kvótu → (volitelně) po CI zmerguje PR.
Není to jen „tupý spouštěč" Claude Code. Přidává orchestraci, dohled, zotavení a řízení kvality, které holý Claude Code nemá.
Co z toho reálně máte
Rámováno přínosem pro freelancera nebo dev tým, ne technikou.
Cizí bugy se promění ve sledované úkoly
Když runner uprostřed úkolu narazí na cizí bug, založí si na něj vlastní sledovaný úkol, opraví ho a vrátí se k původní práci. Chaos se změní v auditovatelnou položku.
Samo se zotaví a dotáhne
Přeplněný kontext, zaseknutí nebo přerušení úkol nezabijí. Runner naváže na silnějším modelu a dotlačí práci do PR. Úkol se opravdu dokončí, ne jen začne.
Žádný vendor lock-in na model
Úrovně genius / smart / primitive si namapujete v mcptask_runner.yml na Claude, Kimi, DeepSeek, lokální ollamu nebo cokoli chcete. Změna poskytovatele = jedna změna proměnné. Velcí agenti vás zamknou na svůj prémiový model; runner ne.
Řízené náklady na AI
Levný model na čtení, silný jen na těžké kódování. QuotaGuard (fail-closed) hlídá denní rozpočet, aby nedošlo k přetažení. Předvídatelné výdaje.
Běží na vašem stroji, proti realitě
Spouští se proti vaší reálné PostgreSQL, vašim reálným system testům a vašim reálným screenshotům. Ne osekaný cloud sandbox s mockovanými daty.
Z backlogu hotová PR — i přes noc
Naskládáte úkoly do mcptask.online. Runner je odbavuje, zatímco děláte něco jiného nebo spíte. Ráno máte hotová a zmergovaná PR.
Běží bez dozoru, podle plánu
Každé pracovní ráno se sám rozjede a bere frontu. Žádné babysitting promptů.
Vestavěná brána kvality
Nic se nesloučí bez zeleného CI. Sami si volíte: auto-merge, nebo PR k lidské revizi. Runner umí i zapracovat review feedback.
Žádná černá skříňka — plná sledovatelnost
Každý běh je sledovaný úkol s % postupu, živou kartou a JSON logy. Auditovatelné, přehledné pro celý tým.
Násobí kapacitu týmu bez náboru
Autonomní vývojář, který drží konvence projektu (testy, CI, PR), řízený lidmi tam, kde to dává smysl.
Na vašem stroji, proti realitě
Cloud agenti běží v očištěných sandboxech. Runner běží ve vašem reálném Rails projektu.
Reálná databáze
Připojí se k vaší PostgreSQL, spouští migrace a testuje proti reálným tvarům dat — ne hračkářskému schématu.
Reálné system testy
Capybara/Selenium běží proti vaší reálné aplikaci. Screenshoty a prohlížečové kontroly znamenají, že PR je opravdu ověřené.
Reálné commity a PR
Větve, commity a pull requesty žijí ve vašem repu, s vaším CI, pod vaší Git historií.
Úkol → zmergované PR → výkaz → faktura
Runner není samostatný kodér. Jeho práce rovnou teče zpět do mcptask.online.
Smyčka bere úkoly, cíl je dotahuje
mcptask_runner spojuje pracovní smyčku (bere úkol za úkolem z fronty) s cílem (dotahuje každý úkol až do zeleného PR, nejen k „nějakým úpravám"). Umí běžet ve čtyřech režimech:
Jeden úkol
Posouzení a zpracování jednoho úkolu. Ideální pro první běhy a ladění.
Dnešní práce
Smyčka úkolů do dosažení denní kvóty. PR zůstávají otevřená k lidské revizi.
Nepřetržitá fronta
Průběžné zpracování fronty, dokud přicházejí nové úkoly.
Všechny úkoly jednoho příběhu
Zpracuje všechny dostupné úkoly v rámci jednoho příběhu, podle priority.
Jeden příkaz udělá celý bootstrap
rake mcptask_runner:install provede celý setup: nakopíruje 11 bundled Claude Code skillů do .claude/skills/, zkontroluje helper binárky, sloučí baseline oprávnění do .claude/settings.local.json, obstará JWT token pro mcptask.online, zapíše SSE server do .mcp.json, zeptá se, do kterého Epiku ukládat auto-nalezené bugy, a na macOS vygeneruje LaunchAgent pro spouštění ve všední dny v 08:00. Jedna řádka, zhruba dvě minuty k prvnímu úkolu.
$ 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.Aktualizace skillů bez ztráty vašich úprav
Po bumpu gemu stačí jeden rake mcptask_runner:update. Updater si drží manifest s content-hashem každého skillu a každý klasifikuje jako chybějící (zkopíruje), identický (přeskočí), zastaralý (aktualizuje) nebo lokálně upravený (nechá být / s FORCE=1 zazálohuje do .bak a přepíše). Nové schopnosti runneru dostanete automaticky, vaše vlastní úpravy skillů zůstanou zachované. Git hooky navíc skilly re-syncují po pullu a checkoutu. Verze gemu se inkrementuje automaticky post-merge hookem.
mcptask_runner:prepare:permissions sloučí baseline oprávnění — součást bezúdržbového provozu.
Co dělá autonomii skutečně autonomií
Níže je technický detail za tvrzením, že runner je „více než spouštěč". Každá vlastnost existuje proto, že by se bez ní reálný běh rozsypal.
Když narazí na cizí bug, založí na něj úkol a pozastaví se
Pokud runner během práce narazí na URGENTNÍ bug, který nesouvisí s aktuálním úkolem, commitne a pushne rozdělanou práci na feature větev, přepne na main (čistý strom), založí nový urgentní bug úkol a vrátí jeho id a název. Runner si bug připne na disk (UrgentBugPin), takže i po restartu jde nejdřív opravit bug a teprve pak se vrací k původnímu úkolu. Chaos z „narazil jsem na něco cizího" se změní ve sledovatelný, vlastněný úkol.
Zotavení po zaplnění kontextu nebo přerušení
Když běh skončí kvůli přeplnění kontextu, kvótě nebo zásahu urgent bugu, úkol zůstane in_progress a nedokončená práce zůstává na feature větvi. Další běh ho naváže: přečte git log + stav větve, fetchne a mergne origin/main, přeskočí hotové kroky a povýší model na „genius" (Opus), aby úkol dotáhl silnější model. Runner navíc omezuje spálení kontextu: paralelní nezávislé nástroje, žádné opakované čtení souboru, žádné pollování ve smyčkách, screenshoty konvertované a zmenšené. Dlouhá úloha přežije napříč běhy.
Watchdog a detekce zaseknutí
HeartbeatMonitoring killne běh po 20 minutách nečinnosti, soft-warn na frozen po 3 minutách, stropy na zaseknuté nástroje, absolutní backstop 30 minut a při každém tepu přepočítá denní kvótu. StallDetector čte stream Claude Code řádek po řádku a pozná „točení se dokola" — opakované chyby Edit nebo Bash, stejný podpis nástroje beze změny souborů. Při zaseknutí proces zabije; úkol zůstane in_progress a příště se resumuje na Opusu. QuotaGuard je jediný zdroj pravdy o denním rozpočtu — fail-closed. Při každém tepu se obnoví log/runs/run_*.json, takže máte audit toho, co se opravdu stalo.
Triage a volba modelu (tři úrovně)
Před prací proběhne Triage: posoudí složitost úkolu a doporučí model. Tři úrovně: genius (Opus — těžké kódování), smart (Sonnet — triage, review), primitive (Haiku — jen čtení). ID modelů jsou verzovaná, takže řetězce retry přežijí přeplnění kontextu.
Kvalita: testy, CI, auto-merge
Honest executor jede plný workflow: větev → kód → unit testy → screenshoty → system testy → push → PR → lokální CI. Úkol není hotový, dokud neprojde CI. V režimech auto-squash runner po zeleném CI PR sám squash-merguje; v manuálních režimech zůstane PR otevřené k lidské revizi. Runner umí i zpracovat review feedback na existujícím PR.
Model-agnostický přes konfiguraci
Tři úrovně si namapujete na libovolného poskytovatele. Vyměňte Claude za ollamu, Kimi, DeepSeek nebo Alibaba DashScope jednou změnou proměnné.
models:
genius: minimax-m3:cloud
smart: kimi-k2.7-code:cloud
primitive: deepseek-v4-flash:cloud
launcher:
# Lokální ollama
command: [env, "ANTHROPIC_BASE_URL=http://localhost:11434", "ANTHROPIC_AUTH_TOKEN=ollama", "claude"]
Proč to není kouzlo
Šest vláken, jeden orchestrátor a stavový automat, který drží agenta pod kontrolou.
Pracovní smyčka
Hlavní orchestrační vlákno. Řídí smyčku, spouští Claude Code přes Open3.popen3 jako child proces ve vlastní process group (kvůli čistému SIGTERM/SIGKILL celého stromu).
Čtečka stdout
Čte výstup Claude Code (stream-json) řádek po řádku, jak vzniká. Parsuje eventy, počítá je, hledá TASKRUNNER_RESULT marker (signál dokončení) a krmí StallDetector. Žádné čekání na konec procesu — reaguje průběžně.
Čtečka stderr
Odděleně zachytává chyby, aby neblokovala hlavní stream a šlo rozlišit reálný pád od očekávaného ukončení.
Watchdog
Nezávislé hlídací vlákno, které tepe podle plánu: kill po 20 minutách nečinnosti, soft-warn na frozen po 3 minutách, stropy zaseknutých nástrojů, absolutní backstop 30 minut a při každém tepu přepočítá denní kvótu z REST. Je to jediný externí dozorce nad child procesem.
WebSocket do mcptask.online
EventStream drží perzistentní WebSocket (ActionCable, RunnerSessionChannel) spojení na mcptask.online. Po otevření pošle subscribe handshake, snapshoty posílá throttlovaně (zhruba 0,5 s), ale změnu stavu FSM protlačí okamžitě; při výpadku se asynchronně znovu připojuje s throttlem 30 s. Finální „closed" snímek dostane grace okno 0,5 s, aby živá karta nezamrzla na starém stavu. Proměnná MCPTASK_RUNNER_DISABLE celý stream vypne (používá se v testech, aby ruby test/... nezakládal karty na produkci).
Thread-safe snapshot builder
Stavový automat (starting → triage → processing → waiting → finished / stalled / frozen / pending / error / closed) je chráněný Mutexem a vrací immutable snapshot hash. Producent/konzument kontrakt má verzované schéma (docs/runner_snapshot_schema.md) — ani jedna strana ho nezmění bez bumpu verze.
Co všechno umí a jak se to volá
Každá položka níže se spouští jako bundle exec rake <task> z kořene projektu. Volitelné přepínače: verbose=true, ignore_quota=true. Varianty story a task vyžadují argument — bez něj spadnou.
Manuální režimy — PR zůstává otevřené k revizi
mcptask_runner:manual:onceJeden úkol. Triage a provedení.
mcptask_runner:manual:once_dryJen zobrazí příští úkol, nic neprovede.
mcptask_runner:manual:todaySmyčka úkolů do dosažení denní kvóty.
mcptask_runner:manual:dailyNepřetržitá denní smyčka.
mcptask_runner:manual:queueNepřetržité zpracování fronty.
mcptask_runner:manual:reviewOpraví review feedback na PR aktuální větve.
mcptask_runner:manual:reviewsSmyčka přes všechna PR s nevyřízeným review.
mcptask_runner:manual:workflowNejdřív review, pak dnešní úkoly.
mcptask_runner:manual:story[STORY_ID]Všechny úkoly v příběhu.
mcptask_runner:manual:task[TASK_ID]Jeden konkrétní úkol.
Auto-squash režimy — PR se po CI sám zmerguje
mcptask_runner:auto:onceJeden úkol, auto-merge, konec.
mcptask_runner:auto:squash:todayDnešní úkoly, každý auto-merge.
mcptask_runner:auto:squash:story[STORY_ID]Celý příběh, auto-merge.
mcptask_runner:auto:squash:task[TASK_ID]Jeden konkrétní úkol, auto-merge.
mcptask_runner:auto:squash:queueNepřetržitá fronta, auto-merge.
Údržba
mcptask_runner:installPlný bootstrap: skilly, oprávnění, token, .mcp.json, plánovač.
mcptask_runner:updateObnoví bundled skilly bez ztráty lokálních úprav.
mcptask_runner:prepare:permissionsSloučí baseline oprávnění.
mcptask_runner:bug_reportZaloží high-priority bug s posledním run logem a (redigovanými) env configy.
Ráno zapněte stroj
mcptask_runner nenahrazuje váš tým — násobí ho. Jeden Ruby gem, jedna řádka na instalaci, a váš backlog se hýbe sám.
30 dní zdarma. Bez kreditní karty. Open source. Kdykoli zrušíte.