Zukko Blog

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

API key in Docker: passing it safely without baking it into the image

5 min · · development

A key in a Dockerfile stays in the image layers forever. We cover env_file, Compose secrets, build-time secrets, .dockerignore and image checks — with examples for a Zukko key.

How AI finds bugs in screenshots: UI analysis for QA

4 min · · development

Playwright captures the screen, a vision-capable model returns JSON with typos, overlaps and missing elements. Python code, a prompt template and an honest cost calculation.

Error 503 model_disabled: What It Means and How to Handle It

4 min · · errors

model_disabled means one specific model is switched off right now, not that the whole service is down. How to find a replacement, switch your IDE, and code a fallback.

How to Debug Requests to an LLM API: From curl to Error Codes

5 min · · development

Most often the problem is the request, not the model: the URL, key, limit or body size. A step-by-step debugging routine and a table of Zukko error codes with fixes.

/v1/responses or /v1/chat/completions: Which API to Use

4 min · · API keys

Two OpenAI-compatible endpoints with different request and response shapes. On Zukko, Chat Completions works with every model, Responses with Claude and GPT.

Browser Chat or API: Choosing the Right Tool for Your Task

5 min · · API keys

Browser chat suits hands-on work, the API suits automation. Per-token prices are the same; the differences are control, history, and how a conversation's cost grows.

Generating test data with an AI model: schema, validation and fixtures

5 min · · development

When test data is worth generating with an AI model and when Faker is enough. A Python script with pydantic validation, batches, pytest fixtures and a cost estimate.

PowerShell and the Claude API: Invoke-RestMethod, Unicode and streaming

5 min · · development

How to call Claude from PowerShell so non-Latin text survives both the request and the response: a ready function for 5.1 and 7, HTTP error handling, parallel requests and streaming via HttpClient.

Bash, curl and jq: calling the Claude AI model straight from scripts

5 min · · development

A ready three-function library for calling Claude from the shell: JSON built with jq, reading from a pipe, streaming without extra tools, HTTP error handling and batch file processing.

Rust and async-openai: connect Claude through an OpenAI-compatible API

4 min · · development

How to connect Claude to a Rust application: async-openai with with_api_base, the chat-completion feature, streaming, bounded concurrency and error handling. A reqwest option for minimal dependencies.

Claude API in C# and .NET: HttpClient, OpenAI SDK and ASP.NET Core

4 min · · development

Connect Claude to a .NET application two ways: plain HttpClient and the official OpenAI package. Streaming, error handling, timeouts and a minimal API on ASP.NET Core.

AI code review in GitLab CI: a merge request comment via the API

5 min · · development

A GitLab CI job takes the merge request diff, sends it to Claude through Zukko and leaves a comment with findings in the MR, updating it on every push.

Notion API automation: summaries and tags for a database with Claude

5 min · · автоматизация

A Python script reads Notion database entries, gets a summary and tags from Claude and writes them to page properties. Covers data sources and Notion API limits.

AI text generation in WordPress via API: a plugin with an editor button

4 min · · development

A small WordPress plugin: a REST route calls Claude via wp_remote_post, and a panel in the block editor inserts the generated text into the post.

VK bot with an AI model: Bots Long Poll API and Claude in Python

5 min · · development

Build a bot for a VK community that answers through Claude: community setup, Bots Long Poll API, cost tracking from usage and complete code.

Telegram bot on aiogram 3 with Claude through an API gateway

5 min · · development

Build a Telegram bot on aiogram 3 that answers through Claude: routers, chat history, ChatActionSender, error handling and complete working code.

How to test prompts: a simple eval harness in Python

4 min · · development

"Works for me" is not a test. We build a small script that runs a prompt over a test set and several models and shows whether it actually got better.

Logging LLM requests without leaking personal data

4 min · · development

Logs are needed for debugging and cost tracking, but LLM requests often contain personal data. What to log, how to mask it and how to store it.

Temperature and top_p: what they do and where you can no longer set them

4 min · · development

Temperature and top_p control how varied answers are. How they work, why newer Claude models no longer accept them, and what to use instead.

How to list available models via the API and survive model changes

3 min · · models

The model catalog changes: new models arrive, old ones are switched off. How to fetch the current list and write code that survives a model change.

GPT-5.6 Luna: when a low-cost model is enough for bulk tasks

5 min · · models

For bulk classification and extraction, cost per request matters. We calculate what Luna costs at real volumes and show how to test it on your own data.

How to write CLAUDE.md — instructions for Claude Code

4 min · · development

CLAUDE.md is the instructions file Claude Code loads at the start of every session. Here's what to put in it and how to avoid paying for context bloat.

Analyze reviews with AI: from CSV to insights

3 min · · development

Load a CSV of reviews, a cheap model labels each one, pandas aggregates the stats, a second request writes the report. The full path from data to insights.

Recognize a receipt from a screenshot with AI

4 min · · development

A user photographs a receipt, the model reads the date, total, and line items. We show how to send the image in a request and get structured data back.

Zukko Blog — guides to Claude Code, Cursor and the API — page 15