Kennisbasis Ontwikkelaar
Vuur oorblyk
Die modelle, generators en balans wat jy gebruik in die app, uit jou eie kode. Die API praat die OpenAI en Anthropic formate, so die meeste gereedskap en SDKs werk deur die verandering van 'n basis URL en 'n sleutel.
Hierdie bladsy is gerieflikheidshalwe masjienvertaal. Die Engelse oorspronklike is die weergawe wat van toepassing is.
Wat is die vuur
'N HTTP API op nymbot.ai wat dieselfde versoekings beantwoord wat 'n OpenAI- of Anthropic-kliënt reeds stuur.
- Chat voltooiingDie Reaksies op vuur en Antropiese boodskappe, met streaming, gereedskap, beelde, rede en websoek, vir elke model in die Kataloog en vir Nymbot se eie outo-routing.
- Foto’s, Video’s, Spreekwoord, Transposisie en Beperkings.
- Jou Die balans, Die Lightning Top-ups, Automatiese top-ups van jou portemonnee en a geskiedenis wat elke versoek kos.
Dit word betaal deur dieselfde twee balanseer Daar is geen abonnement en geen gratis toekenning op die API nie: elke versoek word betaal uit krediete wat jy gekoop het.
Wat die API nie doen nie, is om iets van Nymbot se eie by te voeg. Jou boodskappe gaan na die model terwyl jy hulle gestuur het: geen Nymbot-stelselvermaning nie, geen geheue nie, geen datum of taal aanwysings nie.
Gebaseerde URL's
| Gebruik | Gebaseerde URL |
|---|---|
| OpenAI SDK's en OpenAI-kompatibele gereedskap | https://nymbot.ai/api/v1 |
| Antropiese SDK's en Claude Kode | https://nymbot.ai/api (die SDK voeg by /v1/messages die self) |
Elke eindpunt leef onder /api/v1/'n Onbekende pad terugkeer 404 en 'n bekende pad met die verkeerde metode terugkeer 405Soos die JSON.
Die API beantwoord kruisverwante versoekings van enige webwerf, sodat 'n leserblad dit kan noem. Alles wat jy na 'n leser stuur, kan gelees word deur wie dit oopmaak, so doen dit net met 'n sleutel wat 'n klein HoofDie eindpunte wat met jou nym onderteken is (sleutels, die rekeningopsomming, NWC se out-top-up en terugbetalingsverlossing) is die uitsondering: in 'n leser antwoord hulle slegs Nymbot se eie webwerwe. Handtekening van rekeningverzoeke.
Stuur elke JSON-lêer met Content-Type: application/jsonEnige ander tipe word verwerp met 415, so 'n eenvoudige HTML vorm of 'n text/plain 'n versoek van 'n ander webwerf kan nie die API bereik nie.
-H "Content-Type: application/json" Saam met -d.
vuur sleutels
Sleutels word gemaak in die app. oop vuur in die zijbalk van die webprogram, of in die menu op Android en iOS, en druk Skep die sleutelGee dit 'n naam en, as jy wil, 'n cap en 'n vervaldatum.
Kopieer dit 'n veilige plek voordat jy die ark sluit: Nymbot hou slegs 'n vingerafdruk daarvan, sodat dit dit nie weer aan jou kan toon nie. 'n Verlore sleutel kan nie herstel word nie; herroep dit en maak 'n ander.
Die sleutel lyk soos sk-nymbot- gevolg deur 43 letters, getalle, dashes en underscores. Die app lys elke sleutel deur sy naam en 'n kort hint soos:
sk-nymbot-Qm7x…c2Lw.
- 'N sleutel behoort aan jou nym. Dit spandeer jou balans, en net jou nim kan dit maak, verander of herroep.
- Caps is in sats. 'N sleutel kan 'n uitgaanscap hê, en die cap kan elke dag, elke week (maandag) of elke maand (die eerste) op 00:00 UTC herstel. Dit tel beide salde, 'n standaardkrediet as 10 sats en 'n Pro-krediet as 100, sodat dit dieselfde beteken watter salde 'n versoek spandeer. Voordat 'n versoek uitgevoer word, word die maksimum wat dit kan koste (afgerond tot hele krediete) gestel teen wat van die cap oorbly.
403key_limit_reached, selfs as die antwoord onder die cap ingekom het; die fout sê hoeveel bly en wanneer die cap herstel word.max_tokens'N Verzoek word in rekening geneem wat dit eintlik kos en wat teen die cap tel, dus as die verskaffer meer tokens rapporteer as wat afgesit is, kan die laaste versoek wat pas, die sleutel 'n bietjie oor sy cap neem; die volgende word dan geweier. - 'N Gebruikte cap stop net die uitgawes. 'N sleutel by sy cap kan steeds die balans kyk, sy geskiedenis lees, modelle lys, tokens tel, top-up en kyk na 'n video wat dit reeds begin het.
- Expiry is optioneel. Na die datum wat jy ingestel het, stop die sleutel werk.
- Die herroeping is onmiddellike en finale. 'N herroepte sleutel misluk sy volgende versoek.Dit bly in die lys, gemerk herroep, sodat sy spandeer geskiedenis steeds sin maak.
- Jy kan tot 25 aktiewe sleutels hê, elkeen met sy eie naam.
Die dieselfde blad toon elke sleutel se uitgawes gedurende hierdie tydperk en in totaal, wanneer dit die laaste keer gebruik is, beide jou salde en jou onlangse API-verzoeke. Die bestuur van sleutels.
Authentifiseer 'n versoek
Stuur die sleutel in enige van hierdie kopieë. Hulle is ekwivalent, dus gebruik wat jou kliënt standaard stuur:
| Die header | Stuur deur |
|---|---|
Authorization: Bearer sk-nymbot-… | OpenAI SDK's, die meeste gereedskap, Claude Code met ANTHROPIC_AUTH_TOKEN |
x-api-key: sk-nymbot-… | Antropiese SDK's |
api-key: sk-nymbot-… | Azure-styl kliënte |
'N Ontbrekende, onbekende, herroep of vervalde sleutel terugkeer 401Met die kode
missing_api_key, invalid_api_key, revoked_api_key of
expired_api_keyListing modelle, klank modelle en stemme, en betaalmetodes benodig geen sleutel nie.
Foto's, video's, spraak, transkripsies en embeddings kan ook betaal word vir een versoek op 'n tydperk oor Lightning sonder 'n sleutel ten alle: stuur die versoek sonder een en betaal die faktuur in die 402 Antwoord: Dit is Betaal per versoek sonder sleutel.
Sleutelbestuur, die rekeningopsomming en outomatiese top-ups is die uitsondering: hulle neem 'n handtekening van jou nym in plaas van 'n sleutel, sodat 'n lekkie sleutel nie meer sleutels kan maak nie. Handtekening van rekeningverzoeke.
Jou eerste versoek
Plaas die sleutel in 'n omgewingsvariabele, dan vra 'n model iets. NYMBOT_API_KEY.
cURL
export NYMBOT_API_KEY="sk-nymbot-..."
curl https://nymbot.ai/api/v1/chat/completions \
-H "Authorization: Bearer $NYMBOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "nymbot/auto",
"messages": [{"role": "user", "content": "What is a Lightning invoice?"}]
}'
Python
import os
from openai import OpenAI
client = OpenAI(
base_url="https://nymbot.ai/api/v1",
api_key=os.environ["NYMBOT_API_KEY"],
)
reply = client.chat.completions.create(
model="nymbot/auto",
messages=[{"role": "user", "content": "What is a Lightning invoice?"}],
)
print(reply.choices[0].message.content)
JavaScript
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://nymbot.ai/api/v1",
apiKey: process.env.NYMBOT_API_KEY,
});
const reply = await client.chat.completions.create({
model: "nymbot/auto",
messages: [{ role: "user", content: "What is a Lightning invoice?" }],
});
console.log(reply.choices[0].message.content);
nymbot/auto is Nymbot se eie routing, betaal uit die standaardbalans. Plaas daar 'n katalogusmodel-id in plaas daarvan, soos anthropic/claude-sonnet-5, om die model van die Pro balans te gebruik. Lysteer modelle Gee elke ID.
Wat 'n versoek kos
Die API reken presies soos die app doen.
- Wat ’n balans.
nymbot/autoSpandeer die Standaard balans (10 sats 'n krediet). Elke ander chat model spandeer die Die Pro balans (100 sats 'n krediet). Die standaard beeldgenerator en die standaard stem spandeer standaard krediete; elke ander generator spandeer Pro. Embeddings spandeer standaard krediete. Transcription spandeer standaard krediete wanneer die standaard balans dit kan dek, en Pro krediete anders. Die model lys sê wat die balans elke model spandeer. - Hoeveel 'N Chat versoek word gemeter op die tokens wat die model eintlik gelees en geskryf het, by die verskaffer se gepubliseerde tariewe. Hierdie prys het 'n 5% fooi bygevoeg en word dan vermenigvuldig met 1,5, sodat jy 1.575 keer die verskaffer se lysprys betaal. Dit word omskep na sats by die lewende Bitcoin prys en in duisendde van 'n krediet opgelê. Pro foto's, video en spraak word per generasie, per sekonde of per karakter, en transkripsie per sekonde van klank, met dieselfde fooi en marge. Die standaard beeld is 'n flat 5 standaard krediete en die standaard stem 'n flat 3.
- die minimum. Elke gemeten versoek wat duur ten minste 0.05 krediet: 'n halwe sit op die standaard balans, 5 sats op Pro.
- Hou op, dan sit op. Voordat 'n versoek uitgevoer word, word die meeste wat dit kan koste, gehou van jou salaris, gebaseer op wat jy gestuur het en die meeste tokens wat dit kan skryf. Tekst buite die eenvoudige ASCII word afgebak van sy UTF-8 bytes, en ASCII getalle en punctuation tel as 'n token elkeen, dus word teks in enige script, kode en getalle in die volle gehou. Die hold is in hele krediete, ten minste een, so enige versoek benodig ten minste 10 gratis sats op die standaard salaris of 100 sats op Pro om te begin. Slegs die werklike koste word in rekening geneem; die res word vrygestel wanneer dit voltooi word. 'n lang versoek hou sy hold so lank as dit loop; as die gehou krediete op enige manier beskikbaar is, stop 'n stro
402insufficient_balanceIn die geval van 'n fout gebeur, en wat gegenereer is, word in rekening geneem. As die werklike koste meer is as wat die saldo kan betaal, word die hele saldo geneem, die res is skuldig (owed_satsIn dienymbotobjek, en 'n negatiewe salaris). Wat skuld word eerste betaal uit die volgende krediete wat daardie salaris bereik. Totdat dit betaal word, kan niks op daardie salaris bestee word nie: nie deur die API nie, antwoorde in die app, 'n oordrag of 'n geskenk. - Nie genoeg krediet nie. As die balans nie die besit kan dek nie, word die versoek verwerp met
402Die fout sê watter balans kort is, hoeveel sats die versoek benodig en hoeveel is gratis.max_tokensDit beteken 'n kleiner hou. - die mislukking. 'N Verzoek wat misluk, kos niks nie, tensy die verskaffer vir die werk wat dit gedoen het voor mislukking, of 'n websoek of die
nymbot/autoTask check was reeds uitgevoer; dan is dit wat jy betaal, ten minste 0.05 krediet. 'n stroom wat jy afskakel, word opgelos vir die tokens wat die verskaffer rapporteer: Nymbot lees die verskaffer se stroom tot 25 sekondes nadat jy verlaat om daardie telling te kry. As dit nie aankom nie, word die belasting geraam van wat jy gestuur het en wat geskryf is, en vir 'n model wat redes dit sluit die hele output toelaat van die hou. - Web soek kos $ 0,008 'n soektog, omskep in sats, elke keer as 'n soektog uitgevoer word, of die model dan antwoord of misluk.
Elke antwoord sê wat dit kos. JSON antwoorde dra 'n nymbot die voorwerp met die saldo waaruit dit betaal is, die koste in krediete en sats, en wat bly:
Die koste voorwerp
"nymbot": {
"balance": "pro",
"charged_credits": 0.162,
"charged_sats": 16.2,
"balance_credits": 412.425,
"balance_sats": 41242.5
}
Betaalde antwoorde dra ook hierdie kopieë, wat is waar om te kyk vir die koste van 'n antwoord wat nie JSON is nie, soos spraak:
| Die header | Betekenis |
|---|---|
X-Nymbot-Cost-Sats | Wat hierdie versoek kos, in sats. |
X-Nymbot-Balance-Sats | Wat bly op die saldo waaruit dit betaal is, in sats. |
X-Request-Id | 'N ID vir die versoek, op elke reaksie. Citeer dit as jy kontak ondersteuning. |
Pryse per miljoen tokens, reeds insluitend die vergoeding en marge, is in die
Modelle se lys in dollars en sats, en op
Die PrysbladAs die Bitcoin-koers nie lees kan word nie, word betaalde versoekings teruggekeer 503 price_unavailable met
Retry-After: 60 eerder as om te raai.
Die foute
Elke fout het dieselfde vorm, een wat OpenAI kliënte reeds verstaan. code is 'n stabiele naam wat jy kan pas op; message Dit is vir mense en kan verander.
verkeerde liggaam
{
"error": {
"message": "This request needs up to 200 sats (2 credits) on your Pro balance, and 40 sats are free. Catalog models spend the Pro balance. Top up in the Nymbot app or with POST /api/v1/topup/create/btc-lightning.",
"type": "insufficient_quota",
"code": "insufficient_balance",
"param": null,
"balance": "pro",
"required_sats": 200,
"balance_sats": 40
}
}
| Status | Wanneer |
|---|---|
400 invalid_request_error | Die liggaam is nie geldig JSON (invalid_json, 'n vereiste veld ontbreek (missing_required_parameter), 'n waarde is verkeerd, of die versoek vra vir iets wat die model of eindpunt nie doen nie, soos gereedskap op nymbot/auto (unsupported_tool). param Naam die veld. ook upstream_rejected wanneer die verskaffer die versoek verwerp het. |
401 authentication_error | Die sleutel is ontbreek, onbekend, herroep of verval, of 'n onderteken verzoek is ongeldig of hergebruik. |
402 insufficient_quota | Die saldo kan nie die versoek dek nie. kode insufficient_balance, met balance, required_sats en balance_sats. |
403 permission_error | Die vraag pas nie by die sleutel se cap nie (key_limit_reached, met limit_sats, used_sats en reset_at), of die rekening mag nie die diens gebruik nie (account_denied). |
404 not_found_error | 'n Onbekende pad (unknown_endpoint'n Model wat nie bestaan nie (model_not_found), of 'n onbekende sleutel, faktuur of video. |
405 | Die pad bestaan, maar nie met daardie metode nie (method_not_allowed) die Allow Header lys die metodes wat dit gebruik. |
413 | Die liggaam of lêer is te groot (payload_too_large, file_too_large) of 'n opname is te lank (audio_too_longDie Die grense. |
415 invalid_request_error | Die liggaam word nie as application/json (Of, vir die oplaaiende eindpunte, multipart/form-data): unsupported_media_type. |
422 | 'N Stem en taal wat nie in teks na spraak saam gaan nie (voice_language_mismatch, unsupported_language). |
429 rate_limit_error | Te veel versoekings op hierdie sleutel, van hierdie adres, of met credentiale wat nie geverifieer het nie (rate_limit_exceeded(Of die verskaffer is die tarief beperking)upstream_rate_limitedWaak vir die sekondes in Retry-After. |
500 api_error | Iets het verkeerd gegaan op die kant van Nymbot (internal_error). |
502 api_error | Die verskaffer het nie 'n antwoord teruggegee nie (upstream_error(Of 'n bliksemrekening kon nie gemaak word nie)invoice_unavailable). |
503 api_error | Die verskaffer is oorbelast (upstream_overloadedDie Bitcoin-koers kan nie lees word nie (price_unavailable), of 'n deel van die diens is af (service_unavailable, media_hosting_unavailable). Retry-After sê wanneer om weer te probeer, waar dit bekend is. |
Twee uitsonderings:
/api/v1/messagesantwoorde in Anthropic se foutformaat, aangesien dit is wat Anthropic kliënte ondersoek:{"type": "error", "error": {"type": "authentication_error", "message": "…"}}Die tipe volg die status:invalid_request_error,authentication_error,billing_error(402),permission_error,not_found_error,request_too_large,rate_limit_error,api_errorofoverloaded_error(503).- 'N Streamingverzoek wat misluk voordat sy eerste byte kry, kry 'n gewone JSON-fout met die status hierbo, nie 'n gebeurtenisstroom nie. 'N Mislukking nadat die stroom begin het, word gestuur as die laaste gebeurtenis van die stroom, in daardie eindpunt se eie formaat.
Foutboodskappe bevat nooit interne besonderhede van 'n ander diens nie. 'n verskaffer se eie fout word herwoord voordat dit jou bereik.
Die grense
| Die limiet | Waarde |
|---|---|
| Vraag per sleutel | 120 per minuut.Daarop, 429 met Retry-After. |
| Vra sonder 'n sleutel | 120 per minuut per adres, vir die model, klank en betaling metode lys, terugbetaling token checks, en betaalde eindpunte gebel sonder 'n sleutel of betaling. 429 met Retry-After. |
| Versuim authenticasie | 30 'n minuut per adres vir sleutels, handtekenings, betalingsbevestigings en terugbetaling tokens wat nie verifieer nie. 429 met Retry-After totdat die minuut verby is. Credentials word ondersoek voordat die liggaam gelees word. |
| Nuwe sleutels | 60 per uur per nym en 120 per uur per adres. |
| Top-up rekeninge | 60 per uur per nym en 120 per uur per adres. |
| NWC Wallet verbindings | 10 'n uur per nym en 30 'n uur per adres. wss:// Op die standaardpoort. |
| Herstel van tokens | 60 vrae per minuut. |
| Adresse | 'N IPv6 adres tel as sy hele /64 in elke per-adres limiet, en 'n IPv4-mapped IPv6 adres as sy IPv4 adres. |
| JSON verzoek liggaam | 4 MB; 64 KB vir versoekings wat met jou nym onderteken is. |
| Multipart verzoek liggaam (uploads) | 32 MB. 'n beeld om te bewerk, kan tot 20 MB wees, 'n klank lêer tot 25 MB. Op die meeste 64 dele, elkeen met ten hoogste 8 KB van deelkoppe, en 'n grens van 1 tot 70 karakters; andersins 400 invalid_multipart. |
| Foto's in 'n chat versoek | 20 Elkeen is 'n https:// of http:// 'n link na 'n openbare gasheer, of a data:image/… Die URL. |
| Afbeeldings per generasie versoek | 1 van 4 (n) |
| Uitkoms van tokens | Op die maksimum van die model se eie. 'n groter max_tokens Dit word verlaag, nie verwerp nie. |
| Spreek invoer | 800 karakters vir die standaard stem, 2000 vir Aura 2. |
| Transcripsies | 30 minute van klank, 25 MB. 'n langer opname word geweier met 413 en nie belas word nie, selfs wanneer die lengte daarvan slegs bekend is nadat die Whisper dit gehoor het. |
| Inskrywing | 100 inputs per versoek. |
| Video werk | Hou vir 24 uur nadat hulle ingedien word; 'n rendering word na 'n uur opgegee. |
| Historie wil hê | Verwag vir 90 dae. |
| Aktiewe sleutels per nym | Slegs die nuutste 50 herroepte sleutels word bewaar. |
'N skakel na 'n prentjie moet na 'n openbare gasheer dui: 'n adres op 'n private of plaaslike netwerk, of op Nymbot se eie webwerwe, word geweier.
Wat die vuur kan sien
Die API is nie privaat in die manier waarop die programme is nie, en dit is die moeite werd om presies te wees oor hoe.
- Dit is nie end-to-end versleutel nie. In die programme word 'n boodskap op jou toestel verzegel tot sleutels wat net Nymbot hou en as 'n Geskenk Wrap'N API-verzoek is gewone HTTPS: dit word versleutel op die pad na Nymbot, en Nymbot se bediener lees dit in die helder om dit te hanteer.
- Prompte en antwoorde word nie gestoor nie. Wat bewaar word, is die rekening: vir elke versoek die tyd, model, tipe, token tel, koste, balans, sleutel en of dit geslaag het, vir 90 dae, wat is wat Historiese begeerte 'N gebruik rekord van dieselfde versoek (tyd, tipe, model, token getalle, koste, duur en of dit gebruik web soek of suksesvol) word ook gehou vir 90 dae, saam met die app se eie.
- Alles wat vir 'n nym gehou word, is klein en hier vermeld. vuur sleutels is gestoor as 'n hash, nooit die sleutel, met hul naam, 'n kort wenk, uitgaanskap, herstel tydperk, vervaldatum en wanneer hulle gemaak is en die laaste gebruik; slegs die nuutste 50 herroepte sleutels word bewaar. Automatiese top-up video-werk is gehou vir 24 uur. versoek betaal per oproep laat slegs 'n Lightning betaling hash vir 7 dae en 'n hashed terugbetaling token vir 30 dae, gekoppel aan geen nym. belasting 'n balans kon nie dek word gehou as skuld totdat 'n top-up hulle betaal.
- Die app verwyder dit. A Gebruik Wipe herroep en verwyder elke API sleutel, en verwyder die query geskiedenis, gebruik rekords, wallet verbinding en video werk.
- Die verskaffer van die model sien jou versoekKataloogmodelle loop by hul makers; standaard roetes en embeddings loop op Cloudflare.
- Die geskep media is openbaar. Foto's en video's wat as skakels gelewer word, word geüpload na openbare Blossom-bestandshoste, waar die adres van 'n lêer sy hash is. Elkeen met die skakel kan dit oopmaak, en Nymbot kan dit nie weer afneem nie.
b64_jsonen 'n gegenereerde prentjie kom terug in die reaksie en word nooit opgelaai nie. - So is die foto's wat jy gee 'n generator. 'n Foto wat jy oplaai
Edit, of stuur as a
data:URL in 'n generatorimage_url, word eerste opgespoor na 'n openbare Blossom-host sodat die generator dit kan opneem, en dieselfde geld vir dit.https://Die foto's in 'n chatverzoek gaan na die model se verskaffer, nie na Blossom nie. - 'N sleutel is gekoppel aan jou nym. Alles wat 'n sleutel spandeer, kom van jou nim-balans, so API-gebruik is nie AnoniemAs u API-gebruik van u alledaagse nym wil hou, maak die sleutels van 'n aparte nym met sy eie balans.
As jy die beskerming van die programme nodig het, gebruik die apps. Die API is vir wanneer jy die modelle in jou eie gereedskap nodig het.
Elke eindpunt
| Die eindpunt | Wat dit doen | Autisme |
|---|---|---|
GET /api/v1/models | Lyste van modelleMet die pryse | Geen |
POST /api/v1/chat/completions | Chat voltooiing | die sleutel |
POST /api/v1/responses | Reaksies op vuur | die sleutel |
POST /api/v1/messages | Antropiese boodskappe | die sleutel |
POST /api/v1/messages/count_tokens | Skatting van die input tokens | die sleutel |
POST /api/v1/images/generations | Genereer beelde | sleutel of die bliksem |
POST /api/v1/images/edits | Edit 'n beeld | sleutel of die bliksem |
POST /api/v1/videos, GET /api/v1/videos, GET /api/v1/videos/{id} | Begin, lys en kyk video's | die sleutel, of die bliksem Om een te begin |
POST /api/v1/audio/speech | Tekst van die toespraak | sleutel of die bliksem |
GET /api/v1/audio/models, GET /api/v1/audio/voices | Audio modelle en stemme | Geen |
POST /api/v1/audio/transcriptions, POST /api/v1/audio/translations | Spreek na teks, en na Engels | sleutel of die bliksem |
POST /api/v1/embeddings | Inskrywing | sleutel of die bliksem |
GET /api/v1/credits/balance (en die POST) | Beide balanse | die sleutel |
GET /api/v1/topup/payment-methods | Manier om te betaal | Geen |
POST /api/v1/topup/create/btc-lightning | 'n Lightning rekening | die sleutel |
GET /api/v1/topup/status/{invoice_id} | Kies en krediet dit | die sleutel |
GET /api/v1/queries/history | Wat elke versoek kos | Kliek of nym |
GET /api/v1/account | Rekening opsomming | Nieu |
/api/v1/keys | Maak, verander en herroep sleutels | Nieu |
/api/v1/nwc-auto-topup | Automatiese top-ups | Nieu |
GET /api/v1/l402/refunds, POST /api/v1/l402/refunds/redeem | Check of los 'n terugbetaalde token | Vervang die token; nym to redeem |
“Nym” beteken 'n versoek onderteken deur jou Nostr sleutel, beskryf in Handtekening van rekeningverzoekeVir gereedskap wat reeds hierdie formate praat, sien Tools en SDK's, en vir kode-agente soos Claude Code, Codex en Cline, sien Kodeer gereedskap.