====== Little Coder ======
//Vytvořeno: **15.7.2026** | Aktualizováno: **~~LASTMOD~~**//
[[https://github.com/itayinbarr/little-coder|Little Coder]] je terminálový coding agent postavený nad pi a optimalizovaný pro menší lokální jazykové modely. Přidává nad základ pi sadu rozšíření a pracovních postupů, které mají zlepšit práci modelu s nástroji, kontextem a úpravami zdrojového kódu.
===== Účel a praktické použití =====
Little Coder běží v adresáři projektu; nástroje ''Read'', ''Write'', ''Edit'' a ''Bash'' proto pracují s tímto pracovním adresářem, nikoli s instalační cestou programu. Je určen zejména pro použití s lokálně provozovanými modely, ale podporuje také cloudové providery dostupné přes pi.
Pro instalaci je podle [[https://raw.githubusercontent.com/itayinbarr/little-coder/main/README.md|README]] potřeba Node.js alespoň ve verzi ''22.19.0''. Balíček lze nainstalovat globálně přes npm:
npm install -g little-coder
Po spuštění se zvolí model ve formátu ''provider/model'':
cd ~/projekt
little-coder --model llamacpp/qwen3.6-35b-a3b
Agent nabízí mimo jiné plánovací režim, historii promptů, obnovení dřívějších relací a nástroj ''dispatch'' pro izolované podagenty určené k rešerši. Podagenti mají podle dokumentace přístup pouze pro čtení a procházení webu.
===== Architektura nad pi =====
[[https://raw.githubusercontent.com/itayinbarr/little-coder/main/package.json|Balíček]] používá ''@earendil-works/pi-coding-agent'' jako závislost. Pi poskytuje agentní smyčku, TUI, práci s providery, strom relací, kompakci kontextu a základní nástroje pro čtení, zápis, úpravu a Bash.
Little Coder pi neforkuje. Spouštěč aktivuje pi s parametrem ''--no-extensions'' a explicitně načítá pouze rozšíření dodaná v Little Coderu. Vlastní logika je umístěná hlavně v těchto částech:
* ''.pi/extensions/'' – TypeScript rozšíření pro životní cyklus agenta a nástroje,
* ''skills/'' – Markdownové instrukce vkládané podle potřeby,
* ''.pi/settings.json'' – profily pro konkrétní modely, například limit kontextu, budget pro přemýšlení a teplotu,
* ''models.json'' – registrace providerů a modelů,
* ''benchmarks/'' – Python harness pro benchmarky; není součástí publikovaného npm balíčku.
Mezi mechanismy popsané v README patří vynucení čtení souboru před jeho úpravou, ochrany proti přetečení kontextu při čtení, výběr dovedností pro aktuální tah, omezení thinking tokenů, detekce prázdných nebo zacyklených odpovědí, checkpointy před změnou souboru a hlídání maximálního počtu tahů.
===== Provideři a modely =====
README uvádí jako výchozí lokální konfiguraci ''llama.cpp/qwen3.6-35b-a3b''. Podporované příklady spuštění jsou:
# Lokální llama.cpp server
little-coder --model llamacpp/qwen3.6-35b-a3b
# Cloudové modely přes pi
little-coder --model anthropic/claude-haiku-4-5
little-coder --model openai/gpt-4o-mini
# Lokální providery
little-coder --model ollama/qwen3.5
little-coder --model lmstudio/local-model
# Výpis modelů, které agent zná
little-coder --list-models
Pro ''llama.cpp'', Ollama a LM Studio vyžaduje pi hodnotu API klíče i v případě, kdy ji lokální server ignoruje:
export LLAMACPP_API_KEY=noop
export OLLAMA_API_KEY=noop
export LMSTUDIO_API_KEY=noop
Základní URL lokálních providerů lze změnit proměnnými ''LLAMACPP_BASE_URL'', ''OLLAMA_BASE_URL'' a ''LMSTUDIO_BASE_URL''. Další OpenAI-kompatibilní server je možné doplnit definicí vlastního provideru v uživatelském souboru ''models.json''. Uživatelská definice provideru plně nahrazuje stejně pojmenovaný provider z dodaného souboru, nejde o hluboké sloučení konfigurace.
===== Konfigurace modelů a limity =====
Konfigurace modelů se načítá v tomto pořadí:
- cesta z ''LITTLE_CODER_MODELS_FILE'',
- ''$XDG_CONFIG_HOME/little-coder/models.json'',
- ''~/.config/little-coder/models.json''.
Pro ''llama.cpp'' agent při startu zjišťuje aktuální velikost kontextového okna z endpointu ''/props'' a registruje model s touto hodnotou. Velikost kontextu serveru se nastavuje parametrem ''-c''; vyšší hodnota zvětšuje nároky na KV cache.
Little Coder sleduje využití kontextu na hranicích tahů a ve výchozím nastavení spouští kompakci při 80 % kontextového okna. Hranici lze změnit proměnnou ''LITTLE_CODER_COMPACT_AT_PERCENT''. Hodnota ''70'' například kompakci spustí dříve; hodnoty menší nebo rovné nule či alespoň 100 a proměnná ''LITTLE_CODER_NO_COMPACT_WATCHDOG=1'' tento watchdog vypnou.
===== Bezpečnost Bash =====
Little Coder předá Bash příkaz dále jen tehdy, když odpovídá vestavěnému whitelistu bezpečných prefixů. Dokumentace uvádí například ''ls'', ''cat'', ''head'', ''tail'', ''git log'', ''git status'', ''git diff'', ''find'', ''grep'', ''cp'', ''mv'', ''mkdir'' a ''touch''. Příkazy ''rm'' a ''sudo'' ve výchozím seznamu nejsou.
Chování řídí dvě proměnné prostředí:
* ''LITTLE_CODER_PERMISSION_MODE'' – ''auto'' je výchozí režim a blokuje příkazy mimo whitelist; ''manual'' používá stejnou kontrolu s jinou chybovou zprávou; ''accept-all'' kontrolu zcela vypne.
* ''LITTLE_CODER_BASH_ALLOW'' – čárkou oddělené prefixy, které se přidají k vestavěnému whitelistu.
# Povolit konkrétní bezpečně vymezené příkazy navíc
export LITTLE_CODER_BASH_ALLOW="make ,docker compose ps"
# Vypnout Bash gate pouze v kontrolovaném prostředí
export LITTLE_CODER_PERMISSION_MODE=accept-all
Mezera na konci prefixu má význam: ''make '' povolí například ''make test'', ale nikoli ''makefoo''. Režim ''accept-all'' odstraňuje ochranu Bash volání a neměl by být používán mimo kontrolované prostředí. Potvrzování operací ''Write'' a ''Edit'' řeší pi; Little Coder je podle README samostatně nezachytává.
===== Zdroje =====
* [[https://github.com/itayinbarr/little-coder|Little Coder – repozitář na GitHubu]]
* [[https://raw.githubusercontent.com/itayinbarr/little-coder/main/README.md|Little Coder – README]]
* [[https://raw.githubusercontent.com/itayinbarr/little-coder/main/package.json|Little Coder – package.json]]