HomeArticle

How to get access to K3 after Kimi suspended new subscriptions

爱范儿2026-07-24 11:18
Harness is not necessarily just a chat box.

After Kimi officially stopped accepting new membership subscriptions, figuring out how to access the latest K3 model became a top priority — and there was one intuitively obvious answer: the API.

K3 can be called directly through the open platform, and can also be integrated into third-party programming agents like Claude Code. With just an API Key and minimal configuration, users seemingly bypass the crowded official entry point and reconnect the model's capabilities directly to their own computers.

But... is it really that simple?

Pick a Good "Harness" for Your API

Claude Code represents a relatively straightforward path: using the Anthropic-compatible interface, it can redirect requests originally intended for Claude straight to Kimi K3, while still leveraging Claude Code's built-in file reading/writing, terminal execution, and agent workflows.

However, when I connected K3 to Claude Code and asked it to complete the simplest possible smoke test — checking the current directory, verifying Node and npm versions, and creating a text file — eight minutes passed with no meaningful progress, and no response came from follow-up prompts.

Wait, could even the API be hitting my rate limit? Let me check: engine_overloaded_error...

It turns out the problem wasn't with Claude Code or my configuration — the K3 inference service itself had no available capacity to process this request. In short, I hadn't spent enough money, and was still stuck on the low-priority routing tier.

No problem: if new memberships are unavailable, I can still top up my account. Combined with my previous payment history, my total spending exceeded 50 yuan, upgrading my account from the free tier to Tier-1. Only then did that same minimal request finally return an HTTP 200 success code.

Admittedly, the API is an alternative path outside the official subscription flow, but "open to call" and "available right now" are not the same thing. Kimi, facing tight computing resources, can only provide services selectively.

What's even more interesting is that even when running on the exact same K3 model, different access methods produce noticeably different capabilities, output habits, and even visual styles. For this test, I used the same webpage screenshot as a reference — the goal wasn't to ask the model to replicate every pixel, but to see if it could understand the page's visual language and reconstruct it into a browser-accessible webpage with basic interactivity.

The reference page wasn't a highly complex design. To avoid excessive compute costs (just kidding), it featured generous white space, serif typography, clean navigation, and horizontally arranged exhibit content. While not technically difficult, it was perfect for testing whether the model was actually understanding the original image, or just applying a generic AI webpage template.

The four test scenarios were:

1. Direct K3 API connection: The encoded image is sent directly to the model, which returns the full HTML in a single response.

2. K3 integrated into Claude Code: Still running on K3 at its core, but with access to Claude Code's file system, terminal, and tool calling capabilities.

3. Official Kimi native client: Represents K3's performance using Moonshot AI's own custom system prompts, tools, and delivery workflows.

4. Codex: My original plan was to route K3 through CC Switch to access Codex, but requests kept hitting 502 errors at the local translation layer. In the end, this test used Codex's native GPT 5.6 sol and agent — which worked fine, and made for a fair head-to-head comparison.

Overall, the first three scenarios mainly compare how the exact same model performs within different harnesses, while Codex serves as an external benchmark representing a mature, dedicated coding product.

Key metrics observed in the test included: time from task submission to a usable page, whether the first generation runs immediately, the model's understanding of the reference layout and style, functional interactivity, and the number of required manual interventions.

Direct API Connection: No Visible Process, But First to Submit Results

The direct API connection has the shortest workflow of all four methods — it can be activated simply by opening a terminal window. The only special requirement is that the raw API only returns the model's generated text or code, and cannot automatically read local images, save them as webpage files, or launch previews. A supporting script is needed to handle image encoding, request submission, result persistence, and local execution. This script sends the reference image and prompt to K3 in one go, asking it to return a single-file webpage containing HTML, CSS, and JavaScript.

The obvious downside of this method is the complete lack of process feedback. The terminal only displays a single line:

Sending image and prompt to Kimi K3...

Then silence...

Since the request uses non-streaming mode, the user cannot see what the model is doing — whether it's parsing the image, planning the layout, or already generating code — making it appear to be "frozen". This explains why Kimi invests so much effort into their animated loading indicators.

That said, the direct connection was the first to deliver a fully functional page. Once the terminal showed "done", the HTML file was immediately available in the target folder and ready to open.

K3 successfully captured the most prominent visual features of the reference: restrained layout, museum-like presentation, serif typography, expansive white backgrounds, and relaxed horizontal content arrangement. The page maintains a consistent design language, proving it didn't just identify "this is a webpage" — it attempted to understand "what kind of webpage this is". It achieved a near-complete reconstruction of the visual style and page structure, though not pixel-perfect replication — some element dimensions, positions, and content details differ from the reference, and images are simplified vector graphics.

The direct connection's strengths are clear: no bloated agent system context, no complex tool calling chains, just dedicated focus on completing one single task. For requests like "here's an image, return a working HTML file", it can be more efficient than a full-featured programming agent.

This is a longstanding quirk of Kimi: it tends to use a sledgehammer even for simple tasks, increasing unnecessary compute load and draining API credits like melting butter.

Claude Code: Constantly Working, But Forgot to Save the File

After connecting K3 to Claude Code, the experience immediately feels much more like a proper coding agent.

It can read the reference image, inspect the current directory, plan the file structure, generate HTML, CSS and JavaScript, and run terminal commands. Unlike the silent waiting of the direct API call, the entire process becomes transparent, with real-time visibility into page analysis, code organization, and task progression.

In theory, this should be the most complete solution.

However, after the first generation completed, Claude Code returned a large block of code, but failed to actually write the page to a local file.

Only after being explicitly instructed to "check which files actually exist in the current directory and confirm the code has been written to disk" did it realize during self-check that the previous code generation had never been converted into actual file operations. It then re-invoked its tools to create the missing file, and finally launched an accessible local preview.

This reveals a classic problem with agent products: while the agent harness extends the model's capabilities, it also expands its potential failure points. The model must not only generate correct code, but also select the right tools, construct valid tool parameters, wait for execution results, interpret feedback, and finally verify the file exists. A single broken step can leave users with the false impression that "it looks like the task is already done".

That said, Claude Code's strength lies in this exact same behavior: even though it failed to save the file initially, it could inspect its environment and self-correct once given validation requirements. After generating the page, users can submit actual rendered screenshots to ask it to compare the reference image with the current output and modify existing files. This continuous cycle of reading, writing, running, and correcting is impossible for a one-off API response to achieve on its own.

The final page revealed another interesting difference: the reference image and direct API version both used near-pure white backgrounds, but the Claude Code variant had a very faint warm red tint, bearing the distinct subtle color signature of Claude itself — a clear case of model-to-model style transfer.

Agent Harnesses Are Far From Trivial

Strictly speaking, that faint red tint can't be entirely blamed on Claude Code. Generative models are inherently random, with inference intensity, maximum output length, and message formatting not perfectly aligned. But this test at least proves that having the same model name does not guarantee identical product behavior.

The exact same model, when placed in different harnesses, stops being the same "designer" — that's the difference a harness makes.

A direct API call is like completing an exam question in one sitting: the model forms a unified solution in a single generation pass, then writes it from start to finish. Claude Code works more like a phased project: first interpret the screenshot, then plan the structure, then create files, add styles, implement interactivity, and launch the server. Every additional step gives the model another chance to reinterpret the task, and increases the possibility of style drift.

To observe K3's performance in its native environment, we also used a high-tier legacy Kimi account, plus Codex running on its native GPT 5.6 Sol, to replicate the exact same task.

Part of the reason for this was that integrating K3 into Codex never worked smoothly: Codex primarily uses the Responses API, while Kimi provides a different compatible interface. CC Switch was supposed to translate requests and streaming responses locally, but even after direct Kimi API connectivity was restored, requests sent from Codex to the local translation port kept returning repeated 502 errors.

The results showed both official clients performed better and with more attention to detail. Kimi's native version made minor "tweaks", swapping in different fonts to match its signature house style. GPT's reconstruction was nearly one-to-one, with only trivial differences in spacing.

This demonstrates that API compatibility is far more than just changing the Base URL and model name. Any discrepancy in request protocols, reasoning content, tool calling schemas, or streaming formats can turn the translation layer into a new point of failure. It becomes obvious that the value of a native client is not to guarantee the model produces a perfect page every time, but to handle all the invisible, non-intuitive work that ordinary users should never need to worry about.

"Harnessing" Still Has Real Value

Returning to the original question: after Kimi suspended new subscriptions, is there still a way to use K3?

The answer is yes. While topping up API credits doesn't guarantee uninterrupted access, it at least works. After adding funds to the open platform, you can integrate K3 into development tools like Claude Code. Technically, the model's capabilities still exist, unaffected by the pause on official subscriptions.

But this test also shows that what you migrate via API is only the model's raw inference and generation capabilities. The fine-tuned system prompts, tool orchestration, file management, error recovery, and delivery workflows already polished in the official client do not come bundled with your API Key.

Users gain greater control over their model choices, but also inherit full responsibility for stability, protocol compatibility, runtime environments, and output validation. For users who need the model to read real projects, edit multiple files, run commands, and iterate continuously, agent harnesses like Claude Code are well-suited — though they do introduce new execution errors and product-specific biases.

For ordinary users unfamiliar with environment variables, Python scripts, and local servers, waiting for the official native access to resume remains the lowest-cost option.

This leads to a deeper insight.

Over recent years, the market has used the dismissive term "wrapper" to describe products that don't train their own base models and only call third-party APIs. The accompanying assumption was that "