Uka contenido ukar sarañamawa
Nymbot ukanakäñani

Yatiñanaka uñt’ayaña Markaña

Mä git imañ utan irnaqaña

Pro uñataki uka repository ukataki uñacht'asipxa, coding agent ukataki uñjañanaka uñt'ata, — uka jisk'a qillqatanaka uñt'ata, ukat uka qillqatanaka uñt'ata, ukat ukanaka uñt'ata.

Repositariyu uñch'ayaskasipxa

?git, ukax wali Git Toolbar ukan uñjasi, saräwi (provider) uñt'ay: GitHub, GitLab, uta Gitea/Forgejo — Codeberg ukat jaya ukanax uka kawkacha uñt'ayapxi. Personal access token, repository ukat branch ukanakax uñt'ayapxi. Repository uka... Nostr ukan yatiyi yatiyäwi ukan karkatpacha uñjaskasipxa.

You do not have to type the repository's name. Paste the token and choose Aka markax kuns saraskina qillqa.: Nymbot asks the forge what that token can see and shows the answer as a list you check. Checking connects each one with its default branch already filled in, and puts them all in this chat. Anything already connected is shown as such rather than offered a second time. That request goes from your device straight to the forge — not through the Nymbot worker — so the token does not travel anywhere it does not already go. A self-hosted forge that refuses cross-origin requests simply cannot be listed; type the repository in by hand and everything else works the same.

Yatiqañataki, ch'uqiqa repository sutïna uñaychani, ukat khitit p'isiñani ✉️ Pro ukanaka uchataki uñt'atäwin uka repository-na qhiparuxa. ?git disconnect qhiparquini. Qhipaqaña Repository lista ukan tokenax jark'askiti, ukasti repositoryxa ukan uñt'ayaki, token utjaskitiw uñt'ayata, ukax qhipa urunaka kaksiwa uñt'añataki.

Repositorios modal, ukan GitHub, GitLab ukax Gitea repositorio wali chat ukan uñanchasi.
Repositorio junt'asiri. Token wali apparinakaru jank'asipxi, ch'aqi taqi ch'amanchata.

Nostr ukan yatiyäwi repositorios

Janiw forge ukatakiko Nostr ukan uñacht'aski uka repository-naka, uka uñacht'aski: NIP-34 — uka t'aqisiya uka taqiwa ngit uñt'aña gitworkshop. Uñt'äwixa Nostr ukanwa qillqata, proyekto uñt'äwi, ukan yatichirinaka, ukan uñt'ayirinaka, ukan ch'amanchirinaka ukan uñt'aña ukan uñt'äwi ukan uñt'añakarux uñt'äwi ukan uñt'ayirinakaru uñt'ayaskina. Payïr uñt'äwixwa katuqata katuqata uñt'ayaskina.

Uñjächayata mä naddr ukax mä nostr:// Repositoriu phasa ukiru qillqa ukatxa p'it'i. Thariykiway. Nymbot yatiyawixata relays ukanakaru uñjakitawa uñt'añataki: git host ukan ch'amanchata, uka repository, ukat uka branch ukan projektix uñt'ayi. Jumanakax uka host ukaru mä token uñt'añax k'uchu, Nostr yatiyawix uñt'ayi, git serverx jisk'a ukanaka uñt'ayi.

Jan ukax uka uñjasi ukar uñt'ayaski. Repositorio ukax GitHub, GitLab, Gitea jisa Forgejo ukanakan wali URL ukana uñjasi — self-hosted ukanakax ukatwa — Nymbot ukax qillqañapataki. Uka qillqata ukaraki git:// ssh ukan janiw HTTP API ukan janiw qillqatanaka lijch'aña kat, ukatxa Nymbot ukax ukan uñt'ayi janiw jach'a ukanakax wali pacha uñt'ayaptisjaniw kiti. Host ukax self-hosted sapa ukanakaw, ukatxa ukan sutit yatichasipxi, uñt'añataki ukax qillqatañäkipxi.

Uka yatiqawi uñakipata uñakipäwi uñjaskiriwa ngit list ukanax, ukanax uñachtasipxi uñachtat sarnaqäwinakaxaki ukhamaki ukax uñachtat sutinakampi uñakipaxäwi.

Kamat k'ant'asipaxa?

Repository ukan mä jisk'a agent ukatakiwa lurata, jani mä katuqata ukasti. Aka model ukan uñjirinaka uñayaña, qillqata lijkiyäña ukhamaraki, uñjaña ukhamaraki lurañ muni; ukatxa uñjata ukanakampi kutichayäña. Ukhamärima "kunatsa retry loop ukatakiwa jark'askitaxa" ukax aka qillqata ukatakiwa kutichayaña, jani wali uñjawi ukhamaraki.

Jumanax uñt'ayta thakhi, jichha p'iq ukan uñjaski.

Janiw server sarnaqaski ch'amachata chat uka jakasipxi, ukax ukanampi ukaru qalltañatak uñacht'añatakis askis mayas, ukanax Nymbot server ukan jumanakax uñacht'añatakit uka thaxu ukaru uñacht'añatakis askis. k’uchisiñataki uka k'uchisiñatakipuniwa jumanakax uka ukan uñacht'añanakataki.

Janpacha ukhunaka uñt'ayata ukhunaka qillqt'aña telefonan: Nymbot wali jichhata uñt'asita uñacht'asita diff ukhunakarux uñaya.
Mä telefona ukan repo taska, patch ukat qullqi katuqata uka runa ukan ukhamaki.

Writaripax jach'añchaskiwa

?git writes on arkipiniwa uñjancha, arkipiniwa ch'amanchaña, ramillanakaña ukat pull or merge requests uñch'ayaña. Jan uñjanchata, ukat jumaru uñjanchata mayasta.

Writena ukanakampi, askaña k’uchuyata uñacht’añataki, ukatxa rama (branch) ukat pull request uñacht’añatakix jikisiñani, chat ukan amuyt’ata patch ukanakax janiw aka ukan uñjt’ati: task ukax ukan uñjaski jupataki*�thought <channel|>jupataki*thoughtJanpacha juk'asipki, jumanak qallta rama juk'asipkini ukatxa qhiparitäxaki, uka rama uñt'ata ukatxa jumanak uñjaskta.

Run uka thakhun uñjañanakax repository mayacht'ata commit ukanakampi jichhax uñjasi, run ukat jark'asina ukhax ukhamaraki, ukatwa uka model ukax uñjaskisax wali k'uchu uñjañaw uñjasi. Ukhamaraki uñjañanakax jilk'at ukanakampi uñjañ muntañax, uka uñjañanakax uñjañanakax... Yatiqisi kamachasipata qhipatiyata taqiru uka repository uka jakatata. Ukax qhiparakiw uka uñt’irinaka uñt’añataki, wakichataxa uka uñt’irinaka diff ukat uñt’ayaski, ukat Uñt'añani yapatipxi uka jisa Qhipaqarata qhatayipxi. Uyt'aña jani walitwa.

Taki ukanakax katuqata uñakipäwi ukanakax ukanakampiwa.

Janiw Jisa utjacha uñt'ayata ukanakax uñt'ayäwinakax uñt'ayäwinakampi kawkha uñt'ayäwinakampi uñt'ayañani. on, which it is for every repository unless you turn it off, a task that writes commits to a branch of its own, named nymbot/ and a short id. Nymbot makes it from the head of the working branch when the task makes its first commit, so a task that only reads makes no branch at all. The working branch itself is not touched, which is why several tasks can write to the same repository at once instead of waiting their turn.

T'aqi pacha lurañax waliwxa, Nymbot k'amakïpawa uka ukanwa uñjasi. Tantata ukhamarux arusu. Pull request ukax jik'asiñani juk'amp jach'a uñjaskiriwa; Tinkayata uñt'añani uñt'asiñani jichax jichhata jichhata uñayiwa yarp'äwin mä Merge uñt'ata; Yatichata pacha sarnaqi jisk'añanänäkiti. Yatichäwinakax Settings ukanwa, ... ukan jikisiñani. Taki yanaka p'iqatätixa amuyt'añataki, and each repository can choose differently in its own form. If the forge has no API for pull requests Nymbot can use, or it refuses one, the branch is left as it is and the reply says so.

Janiw kutipxi kunsachata uñayañani Aka PR ukhampachañani, Taqisiña ukat Qhipaqata, ukatwa Arusa taqillata uñayaña ukax task ukan uñacht'aski. Task ukax amuyt'asitiniw, uñacht'ata card-jax, Arusa taqilla ukat uñacht'ata ukanax uñayi uka branch-axa janiw jichhaka yatiyaskti, account-man utjaskina uñachata uka device ukanakax. Parst'ata janiw amuyt'asitini ukhax nayraki uka branch-axa jark'aski, uka ukhax merge ukaru jark'aña, qillqaña ukana ukanakax uñachasipxi. Merge ukax merge commit forge-at uka pull request-man, Nymbot uñacht'ata commit-ukamp, uka ukhax janiw uñacht'ata commit-anakax merge ukas uñachasipkiti. Janiw force-push ukax jark'asipkiti. Chacha uka branch ukax working branch-ukamp uñachasipki, ukhax ukanakax uñacht'aski PR uñakipäwi uñt'añataki resolve ukama Nymbot sapa yatiqawipa wakichasïxa askasïna., uka yatiqänakan uñjt’añataki, working branch ukanax merge commit ukan uñt’añax mä rebasing ukatäkisa. GitHub ukatxa Gitea jisa Forgejo ukax ukanax uka lurapxi; GitLab ukax uka luratakiw API ukax janiw uñt’añati, ukanax merge request ukan uñt’añapawa.

CI ukat workflow aruntanaka jumanakar uñt'ayaskatwa, jikisiñanakax kuns janiw aka yatiyäwi katuqan xa uñt'ayätäkiti ukarux jikisiñaniwa.

Qhispiña kamayätwa

Suticharakir uksat khuyayätatxa nymbot/ aka aka ch'amaka aka aka uñjawayiwa. Ukatxa uka repository ukan lurayänäti, ukhamasti Nymbot ukanaka qhichuxt'aña repositoviru walixt ukan, pull request ukaxa mergiyaski uka ukax jichax jark'ataski, ukhamaraki qanuqata uka ukax pusi urunaka utj ukatxa mergiyakiraki uka ukax jark'ataki. Ramu chxa ukarax jark'añapakakiwa uka Nymbot t'aqisi uka commit ukana uñt'asiñapataki, ukatxa kunka ukanwa juk'amp uñt'ayata ukhaxa jark'apachäñäni, ukatxa juk'amp ramu ukax jark'añäkiti. Jumanax uka token uka ukhax juman qhipatuxa ukatx uñt'aski; server ukax juk'amp uñt'añataki uka token ukax jark'apachäni.

Kamachawinak lurañatakta working branch ukanwa qhiparata lurañatak, Axa janipuni uñt'ata, ukatxa mä taska repository ukanwa uñt'ata, ukatxa mä katu qhiparata ukanwa uñt'ata mä taska uñt'ata. App ukan mäqha uñt'ata ukanwa lurañaw uñt'ata.

Taki k'uchuata uñt'ayata amuyt'atata uñt'ayata

Mayir qillqata qillqt'asitx, kunsa uñacht'ayapxi: qillqata uksan, yatiqata, ukat juk'amp qillqanakas. Aka ch'amachäwinakax qullt'ay qhipaq uñacht'ayi — aka kamachanakax khit uñakipataxa ukax yatiqäna, runa uñt'atajjatäpachax uñt'atäna. Uka lurawix uñt'atäna... Uqarux uñjawitata qañu iwichata amuyunaka uñch'uyar uñt'ayata, janipuniw kunsas uñt'ayata uñjasi: Qhipaqata nayra raniwa qhipaqi ukampis.

Uka uñjt'ata kiti kuns, jan wali wali qillqata kiti kuns. Janipuniw ukax q'ipati, janipuniw yatiqäwinakax wali qillqata kiti kuns: Nymbot luratäx log ukan uñjasiwa, janipuniw uka purini kiti kuns. Kuns uka qillq'ata kins uka luratanakax uñjasiwa uka luratäx uñjasiwa.

It costs nothing. Undoing touches no model, so it spends no credits — the access token travels with that one request the way it does with every other, and nothing about the checkpoint is stored anywhere but your own device.

Arumantakiwa uñani uñakipata uñjawixa

A branch or pull request the run opened is listed and left where it is. Closing somebody's pull request on their behalf is not an undo, and deleting a branch other people may have fetched is not either — do those yourself if you want them gone.

Repo luräwin qawqhaw pachanätaki

Repo taskax tiap mä mensa ukanakax mäqita model uñt'ayirinakampi uñt'ayi — uñt'aña, lijña, saräwi, jaqïna — janis k'uchu model uka k'uchu ukaru uñt'atayi Pro qullqiLurata uñjatanakaruw payi, ukax uñjatanakaru payichata.

Aplicaciónxa jisa pacha ukhamaraki qillqata ukanaka juk'amp jikhata pacha ukax qullqit uñjasi mayasti repo task ukax qalltaw.

T'aqi uñt'ata ukhamat t'aqhasiñanakaxa ukat janiw uñt'atañati

A repository task is a loop, not a single answer: the model lists a directory, reads a file, searches the tree, reads another, and only then writes. That loop has an allowance — a number of model calls the reply reserved credits for — because an unbounded agent is an unbounded bill.

Yatiqäwi t’aqhipirus luräwix janiw tukuyatawayati, Nymbot t'aqt'asipxi, uka luräwix ukanwa jisaxtat, ukat uka uñjasi. Janiw uka askipati kunsachas.

Jik'at'añatakiw uñt'añäni. Settings ukan mä continuation budget uñt't'asi, ukatxa Nymbot mä uñt'äwi tukuyasipxäta, janiw mä uñt'äwi uñt'añakiti, uka uñt'äwi tukuyasipxäta, aka qullqit mä ch'amampi jiparkañani. Mä ch'amaw uñt'äwi ukhamaki, qullqi uñt'äwinakaki, ukatxa qullqipjax tukuyasipxäta, mä uñt'äwi ukhamaki, janiw uñt'añakiti, ukhamasti Stop ukham uñt't'añäni. "Qullqipjax tukuyasipxäta" ukham uñt't'añax mä qhipan uñt'äwiwa — janiw mä jisk'a qullqiti, juman qullqipaxwa.

Qillqata

The default is to stop and tell you. Nothing continues, and nothing is spent beyond the reply you asked for, unless you have set a budget.

Jark'aqataki qullqit p'iqasipxi, ukatxa luräwi luraskiwa aplikasax aka p'iqasipxi jisa. Uka ukanwa qhiparkat pacha luräwixta Wakichata ukhakiwa, server ukax jayaña qhipa t'aqas uñacht'ayapxi aplikasa jark'at ukax, pacha ukan ukat, pampa qillqa t'aqas ukat suxta urunaka, ukax uñacht'ayapxi lurawixa tukuyaski ukhakiwa. Uka luratakiwa, repository token ukax markat uñacht'ayapxi kawkatiw markat uñacht'ayi lurawixa luraski ukhakiwa, ukax qhipat uñacht'äni lurawixa tukuyaski ukhakiwa ukat suxta urunaka ukan. Lurawixa ukan uñacht'ayi jupax jupax ukan uñacht'ayi ukan.

Uka token tuqitxa

Uka token tuqitxa

Aksïp evenka jark'atäna amuyunaka ukanakax uñjaskipasipxani uka end-to-end encrypted settings ukanax, ukatxa serverax jark'atäna uka amuyunaka uñjasa uka jark'atäna mä seal copy ukatxa uka uñjasa. Uka ch'amanchata uka aparitiyaña, Nymbot ukaru uñakataki aski askhipañanakampi jark'akipxi, ukatxa server ukan qillqata uñjasiñäkiti ukatxa relays ukan saripäkitiw. Server ukan uñjaskïpanxa tutupxiwa, ukatxa a Qhipan sarnaqaña uyayaw kawkasa mä ch'axwa t'aqasitawa, atipxa 6 urunakasawa. Mä repository ukhamaraki uñjasi, ukat qhiparux k'uchuyasini uka provider ukan.

Because it syncs, a chat that uses the repository works on every device you sign in on without connecting it again. Disconnecting the repository on one device clears the token on the others too. The token never enters a server uyt'añaurusa ch'uqi.