Yini i-UNCUT?
I-UNCUT iyiharness ye-coding agent engenayo i-head, eyenzelwe ama-shell pipeline, imisebenzi ye-CI, ama-container, kanye nokuhlolwa kwama-agent. Isatshalaliswa njengefayela elincane le-Go elixhunywe ngokuma lodwa, futhi ixhumana nge-standard input ne-standard output. Ayinayo i-terminal user interface, i-telemetry, uhlelo lwama-plugin, ama-agent asebenza ngemuva, ama-retry azenzakalelayo, noma i-context compaction efihlekile.
Okuyichazayo yinkontileka yayo yokuthutha idatha ngaphandle kokulahlekelwa. I-UNCUT ithumela yonke ingxoxo njalo lapho ibiza imodeli, futhi ayinqumi, ayifingqi, ayisusi, noma ayibhali kabusha ama-prompt e-UTF-8 avumelekile, imilayezo egciniwe, okuqukethwe kwamafayela, noma okukhiphayo kwemiyalo. Uma umhlinzeki emisa impendulo ngenxa yomkhawulo wokukhipha, i-UNCUT ibika iphutha esikhundleni sokuphatha impendulo engaphelele njengempendulo ephumelele.
Okubalulekile: Ukuthutha idatha ngaphandle kokulahlekelwa akukhulisi i-context window yemodeli futhi akulawuli ukucutshungulwa ohlangothini lomhlinzeki. Umhlinzeki usengalenqaba isicelo esikhulu kakhulu. I-UNCUT yenza lelo phutha libonakale esikhundleni sokususa okuqukethwe buthule.
Izici ezibalulekile
- Umongo ophelele: Yonke imilayezo egciniwe nemiphumela yamathuluzi ithunyelwa kuso sonke isicelo semodeli.
- Ukusebenza ngaphandle kwe-interface: Umbhalo wokugcina ubhalwa ku-stdout, kanti i-
--jsoninikeza imicimbi ehlelekile ye-NDJSON. - Ifayela eliphathekayo: Ama-release ayatholakala ku-Linux, macOS, naku-Windows ku-amd64 naku-arm64.
- I-protocol engancikile kumhlinzeki: I-UNCUT isebenza nama-endpoint e-OpenAI-compatible Chat Completions, kuhlanganise namaseva asekhaya.
- Ama-session angaqhubeka: Amafayela e-JSONL abhalwa ngokwengeza, agcina imilayezo ephelele nemiphumela yamathuluzi.
- Amathuluzi amane agxile: I-agent ingafunda amafayela, ibhale amafayela, ishintshe umbhalo oqondile, futhi isebenzise imiyalo.
- Amaphutha acacile: I-UTF-8 engavumelekile, ama-session angakhiwanga kahle, ukunqanyulwa kokukhiphayo, nokuphela komkhawulo wezinyathelo kukhiqiza amaphutha esikhundleni sokululama buthule.
Faka i-UNCUT
Linux
Landa ifayela le-release elihambisana ne-architecture yakho. Shintsha i-amd64 ibe yi-arm64 kusistimu ye-ARM64.
VERSION=0.1.1
ARCH=amd64
curl -fSLo uncut "https://github.com/Balanov/uncut/releases/download/v${VERSION}/uncut-linux-${ARCH}"
mkdir -p "$HOME/.local/bin"
install -m 0755 uncut "$HOME/.local/bin/uncut"
export PATH="$HOME/.local/bin:$PATH"
uncut --version
Faka i-$HOME/.local/bin ekucushweni okuhlala njalo kwe-PATH yakho uma ingakafakwa.
macOS
Amasistimu e-Apple Silicon ngokuvamile asebenzisa i-arm64; ama-Mac e-Intel asebenzisa i-amd64.
VERSION=0.1.1
ARCH=arm64
curl -fSLo uncut "https://github.com/Balanov/uncut/releases/download/v${VERSION}/uncut-darwin-${ARCH}"
mkdir -p "$HOME/.local/bin"
install -m 0755 uncut "$HOME/.local/bin/uncut"
export PATH="$HOME/.local/bin:$PATH"
uncut --version
Windows PowerShell
$Version = "0.1.1"
$Arch = "amd64"
$Dest = "$env:LOCALAPPDATA\Programs\UNCUT"
New-Item -ItemType Directory -Force $Dest | Out-Null
Invoke-WebRequest -Uri "https://github.com/Balanov/uncut/releases/download/v$Version/uncut-windows-$Arch.exe" -OutFile "$Dest\uncut.exe"
$env:Path = "$Dest;$env:Path"
uncut --version
Sebenzisa i-arm64 esikhundleni se-amd64 ku-Windows ARM64. Faka ifolda okuyiwa kuyo ku-PATH yomsebenzisi wakho ukuze umyalo utholakale kuma-session e-PowerShell azayo.
Faka noma wakhe nge-Go
Uma kufakiwe i-Go 1.26 noma eyakamuva, faka inguqulo yakamuva ngokuqondile:
go install github.com/Balanov/uncut/cmd/uncut@latest
Ngenye indlela, yakha i-checkout ye-repository:
git clone https://github.com/Balanov/uncut.git
cd uncut
go build -trimpath -ldflags="-s -w" -o bin/uncut ./cmd/uncut
Ku-Windows, sebenzisa i-bin/uncut.exe njengendlela yokukhipha.
Qinisekisa amafayela e-binary alandiwe
I-release ngayinye ifaka ifayela le-checksums.txt. Isibonelo esilandelayo siqinisekisa ukulanda kwe-Linux amd64:
VERSION=0.1.1
ARCH=amd64
curl -fSLO "https://github.com/Balanov/uncut/releases/download/v${VERSION}/checksums.txt"
grep "uncut-linux-${ARCH}$" checksums.txt | sha256sum -c -
Ama-binary e-release okwamanje awasayiniwe nge-code, ngakho i-Gatekeeper noma i-SmartScreen ingabonisa isexwayiso. Qinisekisa i-SHA-256 checksum ngaphambi kokuvumela ifayela elisebenzisekayo. Ngemva kokuqinisekisa ku-macOS, i-quarantine ingasuswa efayileni elilodwa elifakiwe kuphela:
xattr -d com.apple.quarantine "$HOME/.local/bin/uncut"
Lungiselela umhlinzeki wemodeli
I-UNCUT idinga isihlonzi semodeli. Enkonzweni ephethwe, ngokuvamile idinga ne-API key. Setha womabili amanani bese usebenzisa i-prompt:
export UNCUT_API_KEY="your-api-key"
export UNCUT_MODEL="your-model-id"
uncut "Inspect this repository and fix the failing tests"
I-endpoint ezenzakalelayo yi-https://api.openai.com/v1, ngaphandle uma kusethwe i-UNCUT_BASE_URL noma i-OPENAI_BASE_URL. Ukuze usebenzise enye i-endpoint ehambisana ne-OpenAI, nikeza i-base URL yayo:
export UNCUT_BASE_URL="https://openrouter.ai/api/v1"
I-UNCUT iphinde isebenzise i-OPENAI_API_KEY uma i-UNCUT_API_KEY ingekho. Ngokuzenzakalelayo, i-key ayidingeki kuma-endpoint asekhaya.
Xhuma ku-Ollama yasekhaya
Isibonelo esihloliwe se-README sisebenzisa imodeli efakiwe, ekwazi ukusebenzisa amathuluzi, i-qwen3:8b:
ollama pull qwen3:8b
export UNCUT_BASE_URL="http://localhost:11434/v1"
export UNCUT_MODEL="qwen3:8b"
uncut "Explain this repository"
Faka imodeli efakwe emshinini wakho esikhundleni sesibonelo. Izinga nokuziphatha kokubiza amathuluzi kuncike kwimodeli ekhethiwe.
Qalisa umsebenzi wakho wokuqala wokwenza ikhodi
Qalisa i-UNCUT usuka endaweni yokugcina ofuna i-agent iyihlole. Ngokuzenzakalelayo, uhla lwemibhalo lwamanje luba yindawo yokusebenza yamathuluzi wamafayela nemiyalo ye-shell.
cd path/to/project
uncut "Hlola le ndawo yokugcina, sebenzisa izivivinyo, bese ulungisa ukwehluleka"
Ngesikhathi somsebenzi, imodeli ingabiza amathuluzi amane:
read_fileifunda lonke ifayela lombhalo le-UTF-8.write_fileibhala okuqukethwe okuphelele futhi idale uhla lwemibhalo lwabazali olungekho.replaceishintsha ukwenzeka okukodwa ncamashi. Iyahluleka uma ingatholi okufanayo noma ithola okufanayo okuningi.run_commandibuyisa ikhodi yokuphuma kanye ne-stdout ne-stderr ehlanganisiwe ephelele.
Izindlela zamathuluzi wamafayela kumele zihlale ngaphakathi kwendawo yokusebenza. Ku-Unix, imiyalo isebenza nge-/bin/sh -c. Ku-Windows, isebenza nge-cmd.exe /D /S /C.
Sebenzisa i-UNCUT kumapayipi e-Unix
I-UNCUT inamathisela okokufaka okuphasisiwe ekwazisweni njengoba kunjalo. Lokhu kuyenza ifanele ukubuyekezwa nokuhlaziywa kwamalogi ngaphandle kokudala amafayela esikhashana.
git diff | uncut "Buyekeza lo mehluko. Ungawahleli amafayela."
cat failing-test.log | uncut "Thola imbangela engaba khona"
Okokufaka kumele kube yi-UTF-8 evumelekile. I-UNCUT iyakwenqaba okokufaka okungavumelekile kunokushintsha amabhayithi buthule. Iphinde yenqabe amafayela kanambambili. Ku-Windows, lungiselela izinsiza ukuthi zikhiphe i-UTF-8 lapho kungenzeka khona ngoba eminye imiyalo ikhiqiza okukhiphayo kwe-UTF-16 noma kwekhodi yephepha.
Sebenzisa imicimbi ehlelekile ye-NDJSON
Sebenzisa --json lapho uhlanganisa i-UNCUT nezikripthi, amasistimu e-CI, noma enye ingqalasizinda yama-agent:
uncut --json "Qalisa izivivinyo bese ulungisa ukwehluleka"
Ukusakazwa kwemicimbi kungaba nezinhlobo zamarekhodi ezilandelayo:
useryemilayezo yomsebenzisi.assistantyemilayezo ye-assistant nezingcingo zamathuluzi eziphelele.assistant_metayolwazi lokusetshenziswa nezizathu zokuqeda.toolyemiphumela yamathuluzi ephelele.donelapho ukusebenza kuqeda ngempumelelo.errorlapho ukusebenza kwehluleka.
I-UNCUT isebenzisa ama-Chat Completions angasakazwanga. Isekela umbhalo nezingcingo zamathuluzi, kodwa ayisekeli okokufaka kwezithombe.
Dala futhi uqhubeke namaseshini
Iseshini irekhodi le-JSONL elengezwa kuphela eliqukethe yonke ingxoxo nemiphumela yamathuluzi. Qala umsebenzi ngefayela leseshini, bese usebenzisa lelo fayela futhi ukuze uqhubeke:
uncut --session .uncut/work.jsonl "Qala ukulungisa kabusha ikhodi"
uncut --session .uncut/work.jsonl "Qhubeka nezivivinyo"
Uma ifayela selikhona, i-UNCUT ilayisha wonke umlando walo. Amarekhodi amasha ayengezwa futhi avumelaniswe ngemva kwesinyathelo ngasinye. Amarekhodi angavumelekile noma angaphelele adala iphutha elicacile futhi awalahlwa ukuze kuphoqwe iseshini ukuthi ilayishe.
Amafayela amaseshini angaqukatha ikhodi yomthombo, okukhiphayo kwemiyalo, iziqinisekiso, noma ezinye izimfihlo. Wavikele ngokufanele futhi ugweme ukuwafaka ekulawulweni kwezinguqulo.
Lawula indawo yokusebenza nomjikelezo we-agent
Sebenzisa --cwd ukuze usebenze ngendawo yokusebenza engesiyona ifolda yamanje:
uncut --cwd ./services/api "Qalisa izivivinyo ze-API bese uchaza noma yikuphi ukwehluleka"
Izinketho eziningana zilawula ukuziphatha kwezicelo nomjikelezo:
--max-steps <n>ikhawulela izingcingo zemodeli. Okuzenzakalelayo ngu-32.--max-tokens <n>isetha umkhawulo ocacile wokukhipha womhlinzeki esikhundleni sokusebenzisa okuzenzakalelayo komhlinzeki.--request-timeout <duration>ishintsha isikhathi sokuvala sesicelo ngasinye sisuke kokuzenzakalelayo okungu-10m. Inani elingu-0likhubaza isikhathi sokuvala.--no-agentsivimbela i-UNCUT ekufundeni i-AGENTS.mdyendawo yokusebenza.
Ngokuzenzakalelayo, i-UNCUT ifunda ngokuphelele i-AGENTS.md empandeni yendawo yokusebenza bese iyengeza ekwazisweni kwesistimu. Lapho kuqhutshwa iseshini futhi, iphinda isebenzise umlayezo wesistimu wokuqala ogciniwe esikhundleni sokuwakha kabusha isuka kufayela lamanje.
Qonda amakhodi okuphuma
Amakhodi okuphuma anokwethenjelwa enza i-UNCUT isebenziseke ekuzenzakaleleni:
0kusho ukuthi i-agent ikhiqize impendulo yokugcina eyimpumelelo.1ikhombisa iphutha lomhlinzeki, lokokufaka/lokukhipha, leseshini, noma lokwenza.2ikhombisa ukusetshenziswa komugqa womyalo okungavumelekile.3kusho ukuthi umhlinzeki ubuyisefinish_reason=lengthnomamax_tokens; i-UNCUT yenqabe impendulo engaphelele.4kusho ukuthi kufinyelelwe enanini eliphezulu lezinyathelo ngaphambi kwempendulo yokugcina.
Kwi-CI, phatha wonke amakhodi angelona uziro njengokusebenza okuhlulekile bese uhlola i-stderr noma umcimbi wokugcina we-error ovela ku---json.
Amathiphu athuthukile
Khetha imikhawulo ngenhloso
Ngenxa yokuthi i-UNCUT ayifinyezi umongo, amaseshini amade nemiphumela emikhulu yamathuluzi kungagcina kudlule iwindi lomongo wemodeli. Qala iseshini entsha lapho kufanele, khetha umhlinzeki onomthamo womongo owanele, futhi usethe --max-tokens kuphela uma uqonda umkhawulo wempendulo womhlinzeki. I-UNCUT ngeke ihlanganise izimpendulo ezingaphelele noma iphinde izame ngokuzenzakalelayo.
Gcina ukusebenza okuzenzakalelayo kufundeka yimishini
Sebenzisa --json kwi-CI nasekuhlanganiseni esikhundleni sokuhlaziya umbhalo wengxoxo wokugcina. Imicimbi ehlukene yemethadatha ivumela abathengi ukuthi bahlole izizathu zokuqeda nokusetshenziswa ngaphandle kokukuxuba nokuqukethwe kwe-assistant.
Sebenzisa izindawo ezihlukanisiwe zomsebenzi ongathembekile
I-UNCUT ayiyona i-sandbox. Nakuba amathuluzi wamafayela ephoqelela imingcele yendawo yokusebenza, run_command isebenza ngezimvume zomsebenzisi wamanje wesistimu yokusebenza futhi ayivinjelwanga yilokho kuhlolwa kwamafayela. Sebenzisa ukwaziswa noma izindawo zokugcina ezingathembekile ngaphakathi kwe-container elahlwayo noma kwenye indawo ehlukanisiwe. Zihlolele wena izinguquko zamafayela namarekhodi amaseshini.
Awekho amabhokisi ezingxoxo okugunyaza, ama-commit azenzakalelayo, ukuphinda uzame okuzenzakalelayo, noma imijikelezo yokubuyisa efihlekile. Lokhu kwenza ukuziphatha kokwenza kube sobala, kodwa kusho nokuthi unomthwalo wokukhetha indawo evinjelwe ngendlela efanele.
Qinisekisa inkontileka yokudlulisa ngaphandle kokulahleka endaweni yangakini
Indawo yokugcina ikhodi ihlanganisa iskripthi sokuqinisekisa esinqunywe kusengaphambili esisebenzisa i-binary yangempela nomhlinzeki wasendaweni. Sidinga i-Python 3 kodwa asidingi ukhiye we-API, imodeli yangaphandle, noma iphakheji ye-Python yomunye umuntu:
go build -o bin/uncut ./cmd/uncut
python bench/proof.py ./bin/uncut
Ubufakazi buhlola ukudluliswa okuphelele kwamafayela amakhulu nokuphumayo kwemiyalo, ukuqhubeka kabusha kweseshini ngokunembile, indlela yokuhlela, ukwehluleka okusobala kokunqunywa, imikhawulo yezinyathelo, kanye nokuphathwa kwe-UTF-8 engavumelekile. Lezi zivivinyo zikala ukuziphatha kokudlulisa kunekhwalithi yemodeli. Imiphumela erekhodiwe nemiyalelo yokuphinda kwenziwe iyatholakala endaweni yokugcina ikhodi ye-UNCUT.
Qalisa ukuhlolwa kokuthuthukisa
Lapho ulungisa i-UNCUT uqobo, lungisa ifomethi, hlola, futhi usebenzise i-vet kukhodi ye-Go:
gofmt -w cmd internal
go test -count=1 ./...
go vet ./...
Isiphetho
I-UNCUT inikeza indlela encane nesobala ngamabomu yokusebenzisa ama-agent okubhala ikhodi kumatheminali, kumapayipi okusebenza, kuma-container, nasezinhlelweni ze-CI. Ukudluliswa kwemilayezo ephelele, ukuphathwa kokwehluleka okusobala, amasession angaqhubeka, imicimbi ehlelekile, kanye namathuluzi amane akhelwe ngaphakathi kuyenza ibe wusizo lapho ukuncishiswa komongo buthule kungamukelekile. Lungiselela indawo yokuphela ehambisana ne-OpenAI, qala endaweni yokusebenza ehlukanisiwe, futhi usebenzise amasession noma okukhiphayo kwe-NDJSON lapho udinga ukuzenzakalela okungaphindaphindeka.
