Zukko Blog

Guides to Claude Code, Cursor, Codex and the Claude and GPT APIs: setup, token savings and troubleshooting.

Getting strictly structured JSON out of the model

3 min · · API

Asking the model to "reply in JSON" in the system prompt works about half the time. Here is a more reliable approach using tools with a strict schema.

Why Russian text tokenizes differently than English

4 min · · models

The same sentence in Russian and English isn't billed the same — not because of markup, but because the tokenizer splits Cyrillic differently.

Timeouts on long generations: how to avoid them

4 min · · development

A response cut off mid-stream almost always means your own client's timeout, not a token limit. Where it comes from and how to retry without a double charge.

Full Node.js example: official SDKs through our gateway

2 min · · development

The Node builds of the official SDKs configure exactly like their Python counterparts — one baseURL field reroutes the whole request.

Full Python example: official SDKs through our gateway

3 min · · development

You don't need to replace the official SDKs, just repoint them. A working walkthrough of both clients against real endpoints.

OpenAI Agents SDK over our /v1/responses endpoint

4 min · · агенты

The Agents SDK talks to OpenAI by default. Two client settings redirect it through our gateway onto the models in our catalog.

LlamaIndex: indexing data with Claude and GPT

5 min · · development

LlamaIndex splits the answer-synthesis LLM from the embedding model — the gateway only covers the first part. Here's how to set that up honestly.

Vercel AI SDK: connecting a Next.js app to Claude and GPT

5 min · · development

The AI SDK's OpenAI and Anthropic providers build the path on top of baseURL differently — easy to get /v1 wrong in one route handler. Setup and the client-leak trap.

Semantic Kernel: connecting a .NET app to Claude and GPT

5 min · · агенты

SK talks to OpenAI through the official .NET SDK, which honors HttpClient.BaseAddress. Setup, the trailing-slash 404, and double-charged retries.

Bulk request processing without hitting the rate limit

4 min · · development

One key with a spending limit on a batch job is a guaranteed 429 partway through. How to structure bulk processing so that doesn't happen.

Wiring an AI bot into Slack over API

4 min · · development

Slack expects a reply to a command within three seconds, and a model can take longer. How to work around it with response_url, with working Bolt code.

AI tools in the terminal: what exists and when to use what

2 min · · cli

Not everything called an agent is one. Three classes of tools and the jobs they were built for.

VS Code AI extensions: how they differ

2 min · · setup

There are many extensions; they differ in three things: how they connect a model, how they build context, how they ask permission.

Migrating a project from the official API to a gateway

2 min · · migration

Moving to a compatible gateway is two lines of configuration and an hour of verification. Here is exactly what changes.

Your API key leaked — a step-by-step response

2 min · · security

A leaked key means a growing bill. The first steps take a minute, and their order matters more than speed.