<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Claude Code on KnightLi Blog</title>
        <link>https://knightli.com/en/tags/claude-code/</link>
        <description>Recent content in Claude Code on KnightLi Blog</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en</language>
        <lastBuildDate>Fri, 29 May 2026 15:22:47 +0800</lastBuildDate><atom:link href="https://knightli.com/en/tags/claude-code/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Claude Opus 4.8 Released: Anthropic Keeps Strengthening Coding and Agent Tasks</title>
        <link>https://knightli.com/en/2026/05/29/claude-opus-4-8-agentic-coding-update/</link>
        <pubDate>Fri, 29 May 2026 15:22:47 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/29/claude-opus-4-8-agentic-coding-update/</guid>
        <description>&lt;p&gt;Anthropic released Claude Opus 4.8 on May 28, 2026. This is a new version in the Opus series, and the official positioning is clear: it is not a generational renaming, but a continued improvement over Opus 4.7 in coding, agent tasks, reasoning, and expert knowledge work.&lt;/p&gt;
&lt;p&gt;This update certainly matters for regular chat users, but Claude Code and long-running agent scenarios are the more interesting part. Anthropic describes Opus 4.8 as a more reliable collaborator: in complex tasks, it should be better at judging when to ask questions, when to move forward, and when to handle things conservatively.&lt;/p&gt;
&lt;h2 id=&#34;key-points-in-this-update&#34;&gt;Key points in this update
&lt;/h2&gt;&lt;p&gt;Claude Opus 4.8 is now available, with pricing unchanged. Anthropic also highlighted several accompanying changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Opus 4.8 continues to improve over the previous generation in coding, agent capabilities, reasoning, and knowledge work evaluations.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;claude.ai&lt;/code&gt; users can control how much effort Claude spends on a task.&lt;/li&gt;
&lt;li&gt;Claude Code adds dynamic workflows for handling larger-scale problems.&lt;/li&gt;
&lt;li&gt;Opus 4.8&amp;rsquo;s fast mode can work at roughly 2.5x speed and is three times cheaper than the previous model&amp;rsquo;s fast mode.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Taken together, these changes show that Anthropic is not merely making a small model-score upgrade. It is reshaping the product around &amp;ldquo;running complex tasks for a long time.&amp;rdquo; A stronger model is only one part of that; task control, workflow decomposition, and cost structure matter just as much.&lt;/p&gt;
&lt;h2 id=&#34;why-claude-code-users-should-pay-closer-attention&#34;&gt;Why Claude Code users should pay closer attention
&lt;/h2&gt;&lt;p&gt;For a coding agent like Claude Code, the biggest risk is not failing to write a single function, but getting lost inside a real repository. It needs to read files, understand dependencies, run tests, inspect errors, revise its plan, and keep changes within a reasonable scope.&lt;/p&gt;
&lt;p&gt;Opus 4.8&amp;rsquo;s selling points line up closely with these problems:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;It is better suited to agentic tasks, meaning tasks where the model must keep planning, call tools, observe results, and adjust strategy.&lt;/li&gt;
&lt;li&gt;It puts more emphasis on judgement, so it can stop and confirm when uncertain instead of confidently writing the wrong thing all the way through.&lt;/li&gt;
&lt;li&gt;Dynamic workflows make Claude Code better suited to large, multi-step problems.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If these abilities prove stable in real projects, Claude Code will feel closer to &amp;ldquo;give it a clear goal and let it push forward&amp;rdquo; instead of only asking it to fill in a piece of code.&lt;/p&gt;
&lt;h2 id=&#34;what-effort-control-means&#34;&gt;What effort control means
&lt;/h2&gt;&lt;p&gt;Anthropic added effort control to &lt;code&gt;claude.ai&lt;/code&gt; this time, and the meaning is straightforward: users can adjust how much energy the model spends on a task.&lt;/p&gt;
&lt;p&gt;That is very practical for everyday use. Simple questions do not need deep reasoning, while complex tasks are worth giving the model more time to think. In the past, many users could only express &amp;ldquo;be more careful&amp;rdquo; or &amp;ldquo;answer quickly&amp;rdquo; through prompts. Now this kind of control is starting to appear in the product layer.&lt;/p&gt;
&lt;p&gt;For developers, this is also a signal: future agent products will not expose only &amp;ldquo;which model to choose.&amp;rdquo; They will also expose more execution strategies, such as speed, cost, reasoning depth, tool-call aggressiveness, and risk preference.&lt;/p&gt;
&lt;h2 id=&#34;the-cost-change-in-fast-mode-matters&#34;&gt;The cost change in fast mode matters
&lt;/h2&gt;&lt;p&gt;Anthropic says Opus 4.8&amp;rsquo;s fast mode can reach roughly 2.5x speed, while costing much less than the previous model&amp;rsquo;s fast mode.&lt;/p&gt;
&lt;p&gt;This point is easy to miss under the model-capability headlines, but it matters a lot for real workflows. Many agent tasks do not run just once; they repeat:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Generate an initial draft&lt;/li&gt;
&lt;li&gt;Run tests&lt;/li&gt;
&lt;li&gt;Fix failures&lt;/li&gt;
&lt;li&gt;Run tests again&lt;/li&gt;
&lt;li&gt;Continue revising based on review&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If fast mode is cheap enough, teams will be more willing to put it into high-frequency workflows instead of using the top model only occasionally for critical tasks. Once speed and cost come down, agents can more easily move from &amp;ldquo;demo effect&amp;rdquo; to &amp;ldquo;everyday tool.&amp;rdquo;&lt;/p&gt;
&lt;h2 id=&#34;its-relationship-to-opus-47&#34;&gt;Its relationship to Opus 4.7
&lt;/h2&gt;&lt;p&gt;Opus 4.8 feels more like a usability-focused enhancement. It inherits Opus 4.7&amp;rsquo;s positioning, but pushes further into coding, agent tasks, and professional work.&lt;/p&gt;
&lt;p&gt;Based on Anthropic&amp;rsquo;s wording, Opus 4.8 is not just better at answering. It is better at collaborating. During a task, it should be clearer about when it needs information, when a plan is shaky, and when it should build confidence before making large changes.&lt;/p&gt;
&lt;p&gt;These capabilities are hard to judge from a single benchmark. The real test is how it performs in large repositories, complex business rules, long-context tasks, and multi-round fixes.&lt;/p&gt;
&lt;h2 id=&#34;impact-on-ai-coding-competition&#34;&gt;Impact on AI coding competition
&lt;/h2&gt;&lt;p&gt;In 2026, model competition has clearly shifted from &amp;ldquo;chat ability&amp;rdquo; to &amp;ldquo;can it get work done.&amp;rdquo; OpenAI, Anthropic, Google, and xAI are all binding models more tightly to toolchains: models handle reasoning, tools handle execution, and the product layer keeps tasks within a controllable range.&lt;/p&gt;
&lt;p&gt;The release of Claude Opus 4.8 continues this trend. Its focus is not showing off one isolated capability, but strengthening three links:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The model itself is better suited to code and agent tasks.&lt;/li&gt;
&lt;li&gt;Claude Code can break down larger workflows.&lt;/li&gt;
&lt;li&gt;The product layer is starting to offer execution controls such as effort and fast mode.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For developers, the practical meaning is that choosing a model cannot be only about &amp;ldquo;which one is smartest.&amp;rdquo; You also need to ask whether it fits the tool you use, whether it can call tools reliably, whether the cost of long tasks is acceptable, and whether it is easy to correct when it fails.&lt;/p&gt;
&lt;h2 id=&#34;my-take&#34;&gt;My take
&lt;/h2&gt;&lt;p&gt;Claude Opus 4.8 is a pragmatic update. It does not build the story around an exaggerated new parameter, but keeps filling in what agent workflows need most: judgement, stability, speed, cost, and task control.&lt;/p&gt;
&lt;p&gt;If you already use Claude Code, this update is worth trying soon. It is especially suitable for comparison on long tasks in real repositories, such as cross-module refactors, test fixes, documentation sync, and complex bug hunting.&lt;/p&gt;
&lt;p&gt;If you are only a regular chat user, Opus 4.8 may not feel immediately stunning in the way a new model generation does. But as a product-direction signal, it shows Anthropic is still pushing Claude toward &amp;ldquo;reliably executing complex work.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Original link: &lt;a class=&#34;link&#34; href=&#34;https://www.anthropic.com/news/claude-opus-4-8&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Introducing Claude Opus 4.8&lt;/a&gt;&lt;/p&gt;
</description>
        </item>
        <item>
        <title>CLIProxyAPI: Wrapping Codex, Claude Code, and Gemini CLI into a Unified API</title>
        <link>https://knightli.com/en/2026/05/24/cliproxyapi-cli-to-api-gateway/</link>
        <pubDate>Sun, 24 May 2026 10:03:33 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/24/cliproxyapi-cli-to-api-gateway/</guid>
        <description>&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/router-for-me/CLIProxyAPI&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;CLIProxyAPI&lt;/a&gt; is a very practical, community-engineering kind of project. It is not another large model, and it is not merely an API forwarder. Instead, it repackages a set of AI tools that are originally interactive, CLI-oriented, or OAuth-login-oriented into a unified API service.&lt;/p&gt;
&lt;p&gt;It supports Gemini CLI, OpenAI Codex, Claude Code, Amp CLI, AI Studio Build, and upstream OpenAI-compatible services. In plain terms, it tries to answer this question:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I have CLI tools, subscription accounts, and OAuth login sessions. Can I connect these capabilities to my own client, scripts, IDE, or internal services just like calling a normal API?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;CLIProxyAPI&amp;rsquo;s answer is yes: put a proxy layer in the middle and translate CLI capabilities from different sources into OpenAI-, Gemini-, Claude-, and Codex-compatible interfaces.&lt;/p&gt;
&lt;h2 id=&#34;the-real-pain-point-it-solves&#34;&gt;The Real Pain Point It Solves
&lt;/h2&gt;&lt;p&gt;Many AI coding tools are powerful, but their default usage patterns are not automation-friendly.&lt;/p&gt;
&lt;p&gt;For example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Gemini CLI can log in with an account, but your program may prefer calling an HTTP API.&lt;/li&gt;
&lt;li&gt;Claude Code is excellent for interactive coding, but integrating it into other clients can run into protocol mismatches.&lt;/li&gt;
&lt;li&gt;Codex CLI supports OAuth login and Responses-style capabilities, but not every upper-layer tool knows how to talk to it.&lt;/li&gt;
&lt;li&gt;A team may have multiple accounts and need rotation, load balancing, unhealthy account removal, and quota visibility.&lt;/li&gt;
&lt;li&gt;You may want some tools to see only an OpenAI-style interface, while the backend is actually Gemini, Claude, or Codex.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;CLIProxyAPI is positioned as the protocol adaptation layer between these tools and your clients.&lt;/p&gt;
&lt;p&gt;It hides the complex side behind the scenes: OAuth, CLI login, multiple accounts, different protocols, and different providers. On the front side, it exposes familiar interfaces such as OpenAI Chat Completions, OpenAI Responses, Gemini, Claude Messages, and Codex-related endpoints.&lt;/p&gt;
&lt;h2 id=&#34;capability-overview&#34;&gt;Capability Overview
&lt;/h2&gt;&lt;p&gt;According to the official README and documentation, CLIProxyAPI currently focuses on:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Providing OpenAI-, Gemini-, Claude-, and Codex-compatible API endpoints for CLI models.&lt;/li&gt;
&lt;li&gt;Connecting OpenAI Codex and Claude Code through OAuth login.&lt;/li&gt;
&lt;li&gt;Supporting streaming and non-streaming responses, plus WebSocket in some scenarios.&lt;/li&gt;
&lt;li&gt;Supporting function calling, tool calling, and multimodal input.&lt;/li&gt;
&lt;li&gt;Supporting multi-account rotation and load balancing for Gemini, OpenAI, and Claude.&lt;/li&gt;
&lt;li&gt;Supporting Gemini AI Studio API keys.&lt;/li&gt;
&lt;li&gt;Supporting account pools for AI Studio Build, Gemini CLI, Claude Code, and OpenAI Codex.&lt;/li&gt;
&lt;li&gt;Connecting OpenAI-compatible upstreams through configuration, such as OpenRouter.&lt;/li&gt;
&lt;li&gt;Providing a Go SDK so the proxy capability can be embedded into your own services.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The most valuable part of this kind of project is not that it supports a few more model names. It is that it packages account login, protocol translation, and request routing into one operational layer.&lt;/p&gt;
&lt;h2 id=&#34;who-it-is-for&#34;&gt;Who It Is For
&lt;/h2&gt;&lt;p&gt;CLIProxyAPI is better suited to several groups of users.&lt;/p&gt;
&lt;p&gt;The first group is heavy AI coding users. You already use Codex, Claude Code, and Gemini CLI, but you want to connect them to Cursor, Cline, RooCode, Amp, internal scripts, or custom workflows.&lt;/p&gt;
&lt;p&gt;The second group is people with multiple account pools. For example, you may have several Gemini, OpenAI, or Claude login sessions and do not want to switch manually. You want automatic rotation, balanced usage, and quick troubleshooting when an account becomes abnormal.&lt;/p&gt;
&lt;p&gt;The third group is people building internal team gateways. The team may not want every client to separately adapt to Gemini, Claude, and Codex. Instead, it wants one middle layer that exposes a unified API.&lt;/p&gt;
&lt;p&gt;The fourth group is people who like working with protocols. You may care how Responses, Chat Completions, Claude Messages, and Gemini v1beta interfaces can be converted between one another, or you may want to switch backends from the same client.&lt;/p&gt;
&lt;p&gt;If you only ask AI a few questions occasionally, or only use the official apps for chat, the deployment and maintenance cost of CLIProxyAPI may feel heavy.&lt;/p&gt;
&lt;h2 id=&#34;how-it-differs-from-a-regular-api-proxy&#34;&gt;How It Differs from a Regular API Proxy
&lt;/h2&gt;&lt;p&gt;A typical API proxy looks like this:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Client -&amp;gt; Proxy API -&amp;gt; Upstream model API
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;CLIProxyAPI is closer to this:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Client -&amp;gt; CLIProxyAPI -&amp;gt; CLI / OAuth session / account pool -&amp;gt; model service
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;The difference is that it handles more than API key forwarding. It also deals with CLI tools, OAuth accounts, protocol surfaces, and model aliases.&lt;/p&gt;
&lt;p&gt;Tools such as Codex and Claude Code are not traditional &amp;ldquo;give me one API key and I can call it stably&amp;rdquo; services. CLIProxyAPI wraps their login sessions and calling logic so external clients can access them as if they were normal APIs.&lt;/p&gt;
&lt;p&gt;That is what makes it attractive, and also what makes it complex.&lt;/p&gt;
&lt;h2 id=&#34;common-misunderstandings&#34;&gt;Common Misunderstandings
&lt;/h2&gt;&lt;p&gt;First, do not assume that a unified &lt;code&gt;/v1/...&lt;/code&gt; path eliminates all protocol differences.&lt;/p&gt;
&lt;p&gt;The CLIProxyAPI documentation specifically notes that when you need the request and response shape of a certain backend type, you should prefer provider-specific paths. For example, use &lt;code&gt;/api/provider/{provider}/v1/messages&lt;/code&gt; for messages-style requests, &lt;code&gt;/api/provider/{provider}/v1beta/models/...&lt;/code&gt; for Gemini model paths, and &lt;code&gt;/api/provider/{provider}/v1/chat/completions&lt;/code&gt; for chat-completions-style requests.&lt;/p&gt;
&lt;p&gt;A unified entry point is convenient, but the semantics of different protocols do not disappear. Tool calling, streaming responses, multimodal input, and system message handling may all differ by backend.&lt;/p&gt;
&lt;p&gt;Second, a model name does not uniquely identify a backend.&lt;/p&gt;
&lt;p&gt;If multiple backends expose the same client-visible model name, the path alone may not lock the request to the backend that actually performs inference. To strictly pin a backend, use unique aliases, prefixes, or avoid exposing the same model name from multiple backends.&lt;/p&gt;
&lt;p&gt;Third, multi-account rotation is not unlimited quota.&lt;/p&gt;
&lt;p&gt;Rotation only spreads usage more evenly across the account pool. It cannot bypass the real limits of upstream services. Abnormal accounts, exhausted quota, risk controls, and expired OAuth sessions still need monitoring.&lt;/p&gt;
&lt;p&gt;Fourth, it is not a maintenance-free magic box.&lt;/p&gt;
&lt;p&gt;Once you put it into your daily workflow, you need to care about configuration, logs, upstream account status, version upgrades, client compatibility, and security boundaries.&lt;/p&gt;
&lt;h2 id=&#34;management-and-monitoring&#34;&gt;Management and Monitoring
&lt;/h2&gt;&lt;p&gt;The official README notes that since v6.10.0, CLIProxyAPI and CPAMC no longer include built-in data statistics. If you need usage statistics, you can use separate projects:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CPA Usage Keeper: syncs CLIProxyAPI data into SQLite and provides aggregation APIs and a dashboard.&lt;/li&gt;
&lt;li&gt;CLIProxyAPI Usage Dashboard: a local-first usage and quota dashboard that can show accounts, models, time windows, and remaining Codex quota.&lt;/li&gt;
&lt;li&gt;CPA-Manager: a fuller management center for request monitoring, cost estimation, account pool inspection, abnormal account location, and cleanup suggestions.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This suggests that CLIProxyAPI&amp;rsquo;s core is closer to a proxy and protocol layer, not an all-in-one commercial admin backend. If a team uses it, logs, monitoring, and account pool management should be considered from the beginning.&lt;/p&gt;
&lt;h2 id=&#34;a-reasonable-way-to-try-it&#34;&gt;A Reasonable Way to Try It
&lt;/h2&gt;&lt;p&gt;If you want to test it, a safer order is:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Start it with the official Quick Start documentation.&lt;/li&gt;
&lt;li&gt;Connect only one provider first, such as Gemini CLI or Codex, and confirm basic requests work.&lt;/li&gt;
&lt;li&gt;Then test higher-risk capabilities such as streaming responses, tool calling, and multimodal input.&lt;/li&gt;
&lt;li&gt;Confirm which endpoint the client actually uses, and avoid mixing protocol paths.&lt;/li&gt;
&lt;li&gt;Finally add multi-account rotation, management panels, and usage statistics.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Do not connect Gemini, Codex, Claude, OpenRouter, multiple accounts, and all clients at once from the start. When something breaks, it becomes hard to tell whether the issue is authentication, protocol conversion, model naming, or the upstream account.&lt;/p&gt;
&lt;h2 id=&#34;think-through-the-security-boundary&#34;&gt;Think Through the Security Boundary
&lt;/h2&gt;&lt;p&gt;CLIProxyAPI can touch account login sessions, API keys, OAuth-related credentials, and request contents. If it only runs on your own machine, the risk is relatively manageable. If it is exposed to the public internet or a team intranet, authentication, access control, log redaction, and network isolation become mandatory.&lt;/p&gt;
&lt;p&gt;Management endpoints especially should be limited to localhost or a trusted internal network. Do not expose management interfaces directly just to save a few minutes.&lt;/p&gt;
&lt;h2 id=&#34;conclusion&#34;&gt;Conclusion
&lt;/h2&gt;&lt;p&gt;CLIProxyAPI&amp;rsquo;s value is that it gathers AI capabilities scattered across multiple CLIs, accounts, and protocols into one programmable API layer.&lt;/p&gt;
&lt;p&gt;It fits heavy AI coding users, multi-account users, and internal team gateway scenarios. It is less suitable for lightweight users who want something completely plug-and-play with no maintenance.&lt;/p&gt;
&lt;p&gt;If you are already experimenting with Codex, Claude Code, and Gemini CLI, and want to connect them to your own client or automation workflow, CLIProxyAPI is worth a serious look. Treat it as infrastructure, not as a disposable small utility.&lt;/p&gt;
&lt;p&gt;References:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/router-for-me/CLIProxyAPI&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;router-for-me/CLIProxyAPI GitHub repository&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/router-for-me/CLIProxyAPI/blob/main/README_CN.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;CLIProxyAPI Chinese README&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://help.router-for.me/cn/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;CLIProxyAPI official documentation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>What is CodeGraph? A local code map for Claude Code, Codex, and Cursor</title>
        <link>https://knightli.com/en/2026/05/23/codegraph-local-code-knowledge-graph-ai-coding-agent/</link>
        <pubDate>Sat, 23 May 2026 21:09:46 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/23/codegraph-local-code-knowledge-graph-ai-coding-agent/</guid>
        <description>&lt;p&gt;&lt;code&gt;CodeGraph&lt;/code&gt; is a local code knowledge graph designed for AI coding tools. It indexes a project ahead of time and organizes symbol relationships, call graphs, code structure, route relationships, and related information into a queryable graph. That lets Claude Code, Codex CLI, Cursor, OpenCode, Hermes Agent, and similar tools avoid relying on grep, glob, Read, and exploratory subagents every time they need to understand a project.&lt;/p&gt;
&lt;p&gt;It solves a very practical problem: when an AI Agent works on a large codebase, much of the cost is not spent on changing code, but on finding where the relevant code lives. If every task starts with repeated searches, reads, and filtering, tokens, time, and tool calls are wasted. &lt;code&gt;CodeGraph&lt;/code&gt; tries to turn the repository into a local map first, so the agent can ask the map before deciding which files to read.&lt;/p&gt;
&lt;h2 id=&#34;what-pain-points-does-it-address&#34;&gt;What pain points does it address?
&lt;/h2&gt;&lt;p&gt;AI coding tools usually work well in small projects. There are few files, search is fast, and reading files is cheap. In larger projects, common problems appear:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The agent repeatedly calls grep, find, ls, and Read just to understand one module.&lt;/li&gt;
&lt;li&gt;Exploratory subagents read many irrelevant files, while the main task context remains unclear.&lt;/li&gt;
&lt;li&gt;Architecture questions spend too many tokens locating files.&lt;/li&gt;
&lt;li&gt;Before changing a function, it is unclear who calls it and what it calls.&lt;/li&gt;
&lt;li&gt;In web projects, URL routes and handler functions are not always obvious.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;CodeGraph&lt;/code&gt; tries to move this &amp;ldquo;find the way first&amp;rdquo; work earlier. Once the project index exists, the agent can query related symbols, callers, callees, impact scope, and code snippets directly.&lt;/p&gt;
&lt;h2 id=&#34;installation&#34;&gt;Installation
&lt;/h2&gt;&lt;p&gt;The project provides cross-platform installation scripts and does not require users to prepare Node.js manually:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -fsSL https://raw.githubusercontent.com/colbymchenry/codegraph/main/install.sh &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;On Windows PowerShell:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;irm &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;https&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;//&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;raw&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;githubusercontent&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;com&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;colbymchenry&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;codegraph&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;main&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;install&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;ps1&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;iex
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;If you already have a Node environment, you can use npm directly:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npx @colbymchenry/codegraph
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Or install it globally:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm i -g @colbymchenry/codegraph
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;The installer detects and configures installed agents such as Claude Code, Cursor, Codex CLI, opencode, and Hermes Agent. It writes the relevant MCP server configuration and instruction files so those tools know when to call CodeGraph.&lt;/p&gt;
&lt;h2 id=&#34;initializing-a-project&#34;&gt;Initializing a project
&lt;/h2&gt;&lt;p&gt;After installation, build an index inside the target project:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; your-project
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;codegraph init -i
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;This command creates a project-level knowledge graph index. The README notes that as long as a &lt;code&gt;.codegraph/&lt;/code&gt; directory exists in the project, agents can automatically use CodeGraph tools.&lt;/p&gt;
&lt;p&gt;To stop using it, you can remove the global configuration:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;codegraph uninstall
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;That removes the MCP server configuration, instructions, and permissions written by the installer. The &lt;code&gt;.codegraph/&lt;/code&gt; index in the project is not deleted automatically. To remove the project index, use &lt;code&gt;codegraph uninit&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;why-it-helps-agents&#34;&gt;Why it helps agents
&lt;/h2&gt;&lt;p&gt;Tools like Claude Code, Codex CLI, and Cursor often explore before making changes: find files, read entry points, inspect references, and follow call chains. For humans this feels like browsing a project. For models, it becomes a series of tool calls and context cost.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;CodeGraph&lt;/code&gt; turns that into index queries. An agent can first use &lt;code&gt;codegraph_context&lt;/code&gt; to find relevant entry points, symbols, and snippets, then use &lt;code&gt;codegraph_explore&lt;/code&gt; or other tools to read the necessary details. The benefits are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fewer irrelevant files read.&lt;/li&gt;
&lt;li&gt;Fewer search tool calls.&lt;/li&gt;
&lt;li&gt;Faster discovery of relevant code.&lt;/li&gt;
&lt;li&gt;Clearer impact scope before edits.&lt;/li&gt;
&lt;li&gt;Easier answers to architecture questions in large repositories.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The README reports benchmark results across seven real open source repositories comparing runs with and without CodeGraph. On average, enabling CodeGraph reduced cost, tokens, latency, and tool calls. The exact numbers depend on project size, language, question type, and agent behavior, but the direction is clear: the larger the repository, the more valuable pre-indexing becomes.&lt;/p&gt;
&lt;h2 id=&#34;core-capabilities&#34;&gt;Core capabilities
&lt;/h2&gt;&lt;h3 id=&#34;1-smart-context-construction&#34;&gt;1. Smart context construction
&lt;/h3&gt;&lt;p&gt;One tool call can return entry points, related symbols, and code snippets, reducing the need for the agent to launch many exploratory tasks before filtering the results. This is useful for architecture understanding, module location, and feature entry-point analysis.&lt;/p&gt;
&lt;h3 id=&#34;2-full-text-search&#34;&gt;2. Full-text search
&lt;/h3&gt;&lt;p&gt;CodeGraph uses FTS5 for full-text search, letting it quickly search names and text across the codebase. It does not replace every grep use case, but it gives the agent a more structured first stop.&lt;/p&gt;
&lt;h3 id=&#34;3-impact-analysis&#34;&gt;3. Impact analysis
&lt;/h3&gt;&lt;p&gt;Before changing a function, class, method, or route, the agent can query callers, callees, and impact radius. This is especially useful for refactoring, bug fixing, and deleting old code, where missing upstream or downstream calls is the main risk.&lt;/p&gt;
&lt;h3 id=&#34;4-automatic-freshness&#34;&gt;4. Automatic freshness
&lt;/h3&gt;&lt;p&gt;The README says CodeGraph uses native filesystem events such as FSEvents, inotify, and ReadDirectoryChangesW, along with debounced auto-sync. In practice, the index updates as local code changes, so users do not need to rebuild it manually after every edit.&lt;/p&gt;
&lt;h3 id=&#34;5-multi-language-support&#34;&gt;5. Multi-language support
&lt;/h3&gt;&lt;p&gt;The project lists support for more than 19 languages, including TypeScript, JavaScript, Python, Go, Rust, Java, C#, PHP, Ruby, C, C++, Swift, Kotlin, Dart, Lua, Luau, Svelte, Liquid, and Pascal / Delphi.&lt;/p&gt;
&lt;p&gt;That makes it suitable for multi-language repositories and full-stack projects, not just one language.&lt;/p&gt;
&lt;h3 id=&#34;6-web-route-awareness&#34;&gt;6. Web route awareness
&lt;/h3&gt;&lt;p&gt;CodeGraph also detects route files and route declarations in many web frameworks, connecting URL patterns with handler functions. The README mentions Django, Flask, FastAPI, Express, NestJS, Laravel, Rails, Spring, Gin, Axum, ASP.NET, Vapor, React Router, SvelteKit, and others.&lt;/p&gt;
&lt;p&gt;This is practical because the real entry point of many web projects is not an obvious &lt;code&gt;main&lt;/code&gt; function, but routes, controllers, handlers, views, or resolvers. If an agent can first understand the URL-to-handler relationship, it can understand business flow much faster.&lt;/p&gt;
&lt;h2 id=&#34;local-first-design&#34;&gt;Local-first design
&lt;/h2&gt;&lt;p&gt;CodeGraph emphasizes being &lt;code&gt;100% local&lt;/code&gt;. It does not require an API key or external service. Index data is stored in a local SQLite database.&lt;/p&gt;
&lt;p&gt;For enterprise projects, private repositories, or sensitive code, this matters. The concern with AI coding tools is often not only &amp;ldquo;can they find the code?&amp;rdquo;, but &amp;ldquo;will the code structure and index be sent elsewhere?&amp;rdquo; CodeGraph is positioned as local indexing, local querying, and local service for agents.&lt;/p&gt;
&lt;p&gt;Of course, local indexing also means considering disk usage, indexing time, file watching, and project size. Very large repositories still require resources for initial indexing and later synchronization.&lt;/p&gt;
&lt;h2 id=&#34;suitable-scenarios&#34;&gt;Suitable scenarios
&lt;/h2&gt;&lt;p&gt;CodeGraph is a good fit for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Large codebases where architecture and call-chain questions are common.&lt;/li&gt;
&lt;li&gt;Teams using Claude Code, Codex CLI, Cursor, or similar agents for code understanding and edits.&lt;/li&gt;
&lt;li&gt;Reducing random file reads, broad searches, and repeated exploration by agents.&lt;/li&gt;
&lt;li&gt;Analyzing impact before code changes.&lt;/li&gt;
&lt;li&gt;Web projects with complex routing, where URL-to-handler lookup matters.&lt;/li&gt;
&lt;li&gt;Teams that want a more stable local project index for AI agents.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For a small project with a few dozen files, normal search may be enough and CodeGraph&amp;rsquo;s advantage may not be obvious. It is most valuable in medium-to-large repositories and workflows where agents do a lot of exploration.&lt;/p&gt;
&lt;h2 id=&#34;things-to-watch-out-for&#34;&gt;Things to watch out for
&lt;/h2&gt;&lt;p&gt;First, CodeGraph is not a substitute for code review or testing. It helps agents find relevant code faster, but it does not guarantee that their changes are correct.&lt;/p&gt;
&lt;p&gt;Second, index quality affects results. If a project has complex structure, lots of generated code, mixed languages, or unignored build artifacts, the index may become noisy. Before using it seriously, check &lt;code&gt;.gitignore&lt;/code&gt;, project layout, and indexing scope.&lt;/p&gt;
&lt;p&gt;Third, MCP configuration and agent instructions matter. The README also warns that CodeGraph helps only when it is queried properly. If an agent ignores it and still reads many files directly, pre-indexing becomes extra overhead.&lt;/p&gt;
&lt;p&gt;Fourth, even though it is local, permissions still matter. The installer writes agent configuration and permission lists. In team environments, review those configurations centrally.&lt;/p&gt;
&lt;h2 id=&#34;summary&#34;&gt;Summary
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;CodeGraph&lt;/code&gt; can be understood simply: it gives AI agents a local map of the codebase. It does not make the model smarter; it helps the model get less lost.&lt;/p&gt;
&lt;p&gt;When tools like Claude Code, Codex CLI, and Cursor face large repositories, the expensive part is often exploration. CodeGraph uses pre-indexed symbol relationships, call graphs, route graphs, and full-text search to handle &amp;ldquo;where is the code?&amp;rdquo; earlier, leaving more budget for understanding and editing.&lt;/p&gt;
&lt;p&gt;If you already use AI coding tools in real projects and often see the agent read many files without finding the point, CodeGraph is worth trying. It represents an important direction for AI coding tools: not only stronger models, but better local code context for those models.&lt;/p&gt;
&lt;p&gt;References:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GitHub project: &lt;a class=&#34;link&#34; href=&#34;https://github.com/colbymchenry/codegraph&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/colbymchenry/codegraph&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Claude Code has a plugin marketplace now: what you can install, how to install it, and what to watch out for</title>
        <link>https://knightli.com/en/2026/05/23/claude-plugins-official-claude-code-plugin-directory/</link>
        <pubDate>Sat, 23 May 2026 19:03:30 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/23/claude-plugins-official-claude-code-plugin-directory/</guid>
        <description>&lt;p&gt;&lt;code&gt;anthropics/claude-plugins-official&lt;/code&gt; is the official Claude Code plugin directory managed by Anthropic. It is not just a normal code repository. It is a marketplace that Claude Code&amp;rsquo;s plugin system can use directly, collecting Claude Code plugins maintained or curated by Anthropic.&lt;/p&gt;
&lt;p&gt;This repository matters because Claude Code is moving from &amp;ldquo;an AI coding command-line tool&amp;rdquo; toward &amp;ldquo;an extensible development environment.&amp;rdquo; Plugins can package Skills, Agents, Hooks, MCP servers, LSP servers, background monitors, and default settings so teams and communities can distribute them in a consistent way.&lt;/p&gt;
&lt;h2 id=&#34;what-is-this-repository&#34;&gt;What is this repository?
&lt;/h2&gt;&lt;p&gt;The README describes it directly: it is a curated directory of high-quality Claude Code plugins.&lt;/p&gt;
&lt;p&gt;The directory is mainly split into two parts:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;/plugins&lt;/code&gt;: plugins developed and maintained internally by Anthropic.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/external_plugins&lt;/code&gt;: third-party plugins from partners and the community.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In other words, it contains both official capabilities and curated external ecosystem entries. For regular users, the direct value is that plugins can be discovered and installed through Claude Code&amp;rsquo;s &lt;code&gt;/plugin&lt;/code&gt; system. For developers, it is a useful window into Claude Code&amp;rsquo;s plugin format and ecosystem direction.&lt;/p&gt;
&lt;h2 id=&#34;how-to-install-plugins&#34;&gt;How to install plugins
&lt;/h2&gt;&lt;p&gt;The README gives a simple installation command. You can install directly through Claude Code&amp;rsquo;s plugin system:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/plugin install {plugin-name}@claude-plugins-official
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;You can also open the plugin discovery entry inside Claude Code:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/plugin &amp;gt; Discover
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;The key part is &lt;code&gt;@claude-plugins-official&lt;/code&gt;, which refers to the official plugin marketplace. According to the Claude Code documentation, &lt;code&gt;claude-plugins-official&lt;/code&gt; is the official marketplace maintained by Anthropic and is available by default in Claude Code installations.&lt;/p&gt;
&lt;h2 id=&#34;what-does-a-plugin-look-like&#34;&gt;What does a plugin look like?
&lt;/h2&gt;&lt;p&gt;The repository README shows a standard plugin structure:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;plugin-name/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── .claude-plugin/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   └── plugin.json
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── .mcp.json
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── commands/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── agents/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── skills/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;└── README.md
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;.claude-plugin/plugin.json&lt;/code&gt; is the metadata file, usually declaring the plugin name, description, version, author, and related fields. Other directories are optional and depend on what the plugin provides:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;skills/&lt;/code&gt;: instructions for skills Claude can invoke automatically.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;commands/&lt;/code&gt;: slash commands.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;agents/&lt;/code&gt;: custom agent definitions.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;hooks/&lt;/code&gt;: event-triggered logic.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.mcp.json&lt;/code&gt;: MCP server configuration.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.lsp.json&lt;/code&gt;: language server configuration.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;monitors/&lt;/code&gt;: background monitor configuration.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;settings.json&lt;/code&gt;: default settings shipped with the plugin.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This means a Claude Code plugin is not one single kind of extension. It is a packaging format. A plugin can be a tiny command, or it can be an entire workflow for a specific stack.&lt;/p&gt;
&lt;h2 id=&#34;what-directions-are-already-in-the-official-directory&#34;&gt;What directions are already in the official directory?
&lt;/h2&gt;&lt;p&gt;The &lt;code&gt;/plugins&lt;/code&gt; directory already covers many development scenarios, including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;LSP plugins: &lt;code&gt;typescript-lsp&lt;/code&gt;, &lt;code&gt;pyright-lsp&lt;/code&gt;, &lt;code&gt;rust-analyzer-lsp&lt;/code&gt;, &lt;code&gt;gopls-lsp&lt;/code&gt;, &lt;code&gt;clangd-lsp&lt;/code&gt;, &lt;code&gt;csharp-lsp&lt;/code&gt;, &lt;code&gt;jdtls-lsp&lt;/code&gt;, &lt;code&gt;kotlin-lsp&lt;/code&gt;, &lt;code&gt;lua-lsp&lt;/code&gt;, &lt;code&gt;php-lsp&lt;/code&gt;, &lt;code&gt;ruby-lsp&lt;/code&gt;, &lt;code&gt;swift-lsp&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Programming workflows: &lt;code&gt;code-review&lt;/code&gt;, &lt;code&gt;feature-dev&lt;/code&gt;, &lt;code&gt;code-modernization&lt;/code&gt;, &lt;code&gt;code-simplifier&lt;/code&gt;, &lt;code&gt;commit-commands&lt;/code&gt;, &lt;code&gt;pr-review-toolkit&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Claude Code configuration and plugin development: &lt;code&gt;claude-code-setup&lt;/code&gt;, &lt;code&gt;claude-md-management&lt;/code&gt;, &lt;code&gt;plugin-dev&lt;/code&gt;, &lt;code&gt;skill-creator&lt;/code&gt;, &lt;code&gt;mcp-server-dev&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Output styles and specialized capabilities: &lt;code&gt;explanatory-output-style&lt;/code&gt;, &lt;code&gt;learning-output-style&lt;/code&gt;, &lt;code&gt;security-guidance&lt;/code&gt;, &lt;code&gt;session-report&lt;/code&gt;, &lt;code&gt;math-olympiad&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The &lt;code&gt;/external_plugins&lt;/code&gt; directory points toward more third-party tools and services, such as &lt;code&gt;github&lt;/code&gt;, &lt;code&gt;gitlab&lt;/code&gt;, &lt;code&gt;linear&lt;/code&gt;, &lt;code&gt;asana&lt;/code&gt;, &lt;code&gt;firebase&lt;/code&gt;, &lt;code&gt;playwright&lt;/code&gt;, &lt;code&gt;terraform&lt;/code&gt;, &lt;code&gt;context7&lt;/code&gt;, &lt;code&gt;serena&lt;/code&gt;, &lt;code&gt;telegram&lt;/code&gt;, and &lt;code&gt;discord&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Together, these plugins suggest a trend: Claude Code does not only want to edit files. It also wants to connect with code intelligence, project management, cloud services, testing, infrastructure, and team collaboration tools.&lt;/p&gt;
&lt;h2 id=&#34;why-the-plugin-system-matters&#34;&gt;Why the plugin system matters
&lt;/h2&gt;&lt;p&gt;Previously, many Claude Code customizations could live inside a project&amp;rsquo;s &lt;code&gt;.claude/&lt;/code&gt; directory, such as commands, agents, skills, or hooks. That works for personal workflows or one project, but it is not ideal for reuse across projects or consistent team distribution.&lt;/p&gt;
&lt;p&gt;Plugins solve the reuse and distribution problem:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The same configuration can be installed across multiple projects.&lt;/li&gt;
&lt;li&gt;Commands and skills are namespaced, reducing conflicts.&lt;/li&gt;
&lt;li&gt;Plugins can be published and updated through a marketplace.&lt;/li&gt;
&lt;li&gt;Teams can package internal best practices as standard plugins.&lt;/li&gt;
&lt;li&gt;The community can maintain extensions for specific frameworks, languages, or services.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This resembles VS Code extensions, JetBrains plugins, or browser extensions. Once a tool has a stable plugin ecosystem, it is no longer just a single product; it starts becoming a platform.&lt;/p&gt;
&lt;h2 id=&#34;what-does-it-mean-for-developers&#34;&gt;What does it mean for developers?
&lt;/h2&gt;&lt;p&gt;If you are only a Claude Code user, the most practical use of this repository is finding plugins. For example, if you need LSP support for TypeScript, Python, Rust, or Go, you can first check whether the official directory already has the corresponding plugin. If you need PR review, commit helpers, or code modernization workflows, the official plugins are also a good starting point.&lt;/p&gt;
&lt;p&gt;If you develop plugins, this repository is more like a reference library. You can study its directory layout, &lt;code&gt;plugin.json&lt;/code&gt; style, README structure, and how Anthropic combines skills, agents, MCP, LSP, and hooks.&lt;/p&gt;
&lt;p&gt;The Claude Code documentation also gives a clear guideline: use &lt;code&gt;.claude/&lt;/code&gt; for single-project customization, but turn it into a plugin when you want to share it with a team, reuse it across projects, version releases, or distribute it through a marketplace.&lt;/p&gt;
&lt;h2 id=&#34;security-boundaries-matter&#34;&gt;Security boundaries matter
&lt;/h2&gt;&lt;p&gt;The repository README opens with an important warning: make sure you trust a plugin before installing, updating, or using it. The reason is simple. A plugin may include MCP servers, files, scripts, or other software. Anthropic maintaining the directory does not mean every plugin will behave exactly as expected in your local environment.&lt;/p&gt;
&lt;p&gt;In practice, it is worth doing at least a few checks:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Read the plugin homepage and README before installing.&lt;/li&gt;
&lt;li&gt;Check whether it includes &lt;code&gt;.mcp.json&lt;/code&gt;, hooks, executable scripts, or background monitors.&lt;/li&gt;
&lt;li&gt;Be extra careful with plugins that access accounts, code repositories, chat tools, or cloud services.&lt;/li&gt;
&lt;li&gt;Test plugins in a sandbox or test repository before enabling them in important projects.&lt;/li&gt;
&lt;li&gt;In team environments, review plugin sources and versions centrally.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;AI coding plugins often have much higher privileges than ordinary editor themes. They may read project files, call external services, start local commands, or affect commit and deployment flows. Treat the trust boundary more strictly than &amp;ldquo;installing a small tool.&amp;rdquo;&lt;/p&gt;
&lt;h2 id=&#34;relationship-with-the-community-marketplace&#34;&gt;Relationship with the community marketplace
&lt;/h2&gt;&lt;p&gt;The Claude Code documentation says Anthropic maintains two public plugin marketplaces:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;claude-plugins-official&lt;/code&gt;: a curated set of plugins maintained by Anthropic.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;claude-community&lt;/code&gt;: a community plugin directory where third-party submissions go through review.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;They have different roles. Community plugins can enter the review pipeline through submission forms. The official directory is curated separately by Anthropic, with no public application process. In short, &lt;code&gt;claude-plugins-official&lt;/code&gt; is closer to an official curated directory, while &lt;code&gt;claude-community&lt;/code&gt; is the open community directory.&lt;/p&gt;
&lt;h2 id=&#34;summary&#34;&gt;Summary
&lt;/h2&gt;&lt;p&gt;The significance of &lt;code&gt;anthropics/claude-plugins-official&lt;/code&gt; is not merely that another GitHub repository exists. It shows Claude Code&amp;rsquo;s extension mechanism becoming platform-like: Skills, Agents, Hooks, MCP, LSP, background monitors, and default settings can now be packaged, installed, updated, and distributed.&lt;/p&gt;
&lt;p&gt;For individual developers, the official plugin directory can lower the cost of configuring Claude Code. For teams, it offers a way to standardize internal workflows. For plugin developers, it shows the plugin structure and ecosystem direction Anthropic is endorsing.&lt;/p&gt;
&lt;p&gt;The next thing to watch is not just any single plugin, but whether the Claude Code plugin ecosystem forms stable layers: official curated plugins, community plugins, private team marketplaces, and specialized extensions for mainstream languages, frameworks, and SaaS services. If that path works, Claude Code will look more and more like a programmable AI development platform, not just a command-line assistant.&lt;/p&gt;
&lt;p&gt;References:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GitHub project: &lt;a class=&#34;link&#34; href=&#34;https://github.com/anthropics/claude-plugins-official&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/anthropics/claude-plugins-official&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Claude Code plugin documentation: &lt;a class=&#34;link&#34; href=&#34;https://code.claude.com/docs/en/plugins&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://code.claude.com/docs/en/plugins&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Graphify Solves Claude Code&#39;s Biggest Limitation: Turning a Codebase into an AI-Queryable Knowledge Graph</title>
        <link>https://knightli.com/en/2026/05/21/safishamsi-graphify-ai-code-knowledge-graph/</link>
        <pubDate>Thu, 21 May 2026 08:02:32 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/21/safishamsi-graphify-ai-code-knowledge-graph/</guid>
        <description>&lt;p&gt;&lt;code&gt;safishamsi/graphify&lt;/code&gt; is a knowledge graph tool for AI coding assistants. Its goal is direct: take the code, docs, SQL schemas, scripts, papers, images, video, and audio inside a project folder, turn them into a queryable knowledge graph, and stop AI assistants from relying only on &lt;code&gt;grep&lt;/code&gt;, full-file reading, or ad hoc search to understand a project.&lt;/p&gt;
&lt;p&gt;Project link: &lt;a class=&#34;link&#34; href=&#34;https://github.com/safishamsi/graphify&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;safishamsi/graphify&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;At the time of writing, the GitHub page shows about 50.2k stars and 5.4k forks, with an MIT license. The README describes it like this: type &lt;code&gt;/graphify&lt;/code&gt; inside your AI coding assistant, and it maps the entire project into a queryable knowledge graph.&lt;/p&gt;
&lt;h2 id=&#34;the-core-problem-it-solves&#34;&gt;The Core Problem It Solves
&lt;/h2&gt;&lt;p&gt;AI coding assistants are becoming stronger, but in real codebases they still frequently run into several problems:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;They do not know how key modules connect.&lt;/li&gt;
&lt;li&gt;They read many files but do not form an overall architecture map.&lt;/li&gt;
&lt;li&gt;Search finds text, but not upstream and downstream dependencies.&lt;/li&gt;
&lt;li&gt;Code, database schemas, docs, and infrastructure configuration are scattered across different places.&lt;/li&gt;
&lt;li&gt;In team collaboration, each person may have a different mental model of the project structure.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Graphify tries to add a &amp;ldquo;memory layer&amp;rdquo; to the project. It connects code entities, documentation concepts, database tables, configuration, design notes, and cross-file relationships so the AI assistant can query the graph instead of scanning files from scratch every time.&lt;/p&gt;
&lt;h2 id=&#34;minimal-usage&#34;&gt;Minimal Usage
&lt;/h2&gt;&lt;p&gt;Graphify&amp;rsquo;s minimal workflow is simple. After installation, type this inside your AI coding assistant:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/graphify .
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;In PowerShell, the leading &lt;code&gt;/&lt;/code&gt; is treated as a path separator, so on Windows PowerShell use:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;graphify .
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;After running, it generates a &lt;code&gt;graphify-out/&lt;/code&gt; directory with three core files:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;graphify-out/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── graph.html
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── GRAPH_REPORT.md
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;└── graph.json
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;These files serve different purposes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;graph.html&lt;/code&gt;: an interactive graph you can open in a browser, with clickable nodes, filters, and search.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GRAPH_REPORT.md&lt;/code&gt;: highlights, key concepts, surprising connections, and suggested questions.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;graph.json&lt;/code&gt;: the full graph, which can be queried later without rereading all files.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To generate a more readable architecture page with Mermaid call-flow diagrams, run:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;graphify &lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; callflow-html
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;installation-and-platform-support&#34;&gt;Installation and Platform Support
&lt;/h2&gt;&lt;p&gt;Graphify&amp;rsquo;s PyPI package name is &lt;code&gt;graphifyy&lt;/code&gt;, with a double &lt;code&gt;y&lt;/code&gt;. The README specifically warns that other &lt;code&gt;graphify*&lt;/code&gt; packages on PyPI are not affiliated with the project, although the CLI command is still &lt;code&gt;graphify&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The recommended installation method is:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;uv tool install graphifyy
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Alternatives:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pipx install graphifyy
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install graphifyy
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Then register it with your AI assistant:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;graphify install
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;The project supports many platforms, including Claude Code, Codex, OpenCode, GitHub Copilot CLI, VS Code Copilot Chat, Aider, Cursor, Gemini CLI, Kimi Code, Kiro, and Google Antigravity. Different platforms can use different install commands, for example:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;graphify install --platform codex
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;graphify install --platform gemini
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;graphify cursor install
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;graphify antigravity install
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Codex users also need to add this under &lt;code&gt;[features]&lt;/code&gt; in &lt;code&gt;~/.codex/config.toml&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-toml&#34; data-lang=&#34;toml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;multi_agent&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;The README also notes that Codex uses &lt;code&gt;$graphify&lt;/code&gt;, not &lt;code&gt;/graphify&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;what-files-it-handles&#34;&gt;What Files It Handles
&lt;/h2&gt;&lt;p&gt;Graphify supports a wide range of input types.&lt;/p&gt;
&lt;p&gt;For code, it supports 31 languages, including Python, TypeScript, JavaScript, Go, Rust, Java, C/C++, Ruby, C#, Kotlin, Scala, PHP, Swift, Lua, Zig, PowerShell, SQL, Shell, JSON, and more.&lt;/p&gt;
&lt;p&gt;For documents, it supports:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;.md&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.mdx&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.qmd&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.html&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.txt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.rst&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.yaml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.yml&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Optional dependencies extend it further:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install &lt;span class=&#34;s2&#34;&gt;&amp;#34;graphifyy[pdf]&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install &lt;span class=&#34;s2&#34;&gt;&amp;#34;graphifyy[office]&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install &lt;span class=&#34;s2&#34;&gt;&amp;#34;graphifyy[video]&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install &lt;span class=&#34;s2&#34;&gt;&amp;#34;graphifyy[mcp]&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install &lt;span class=&#34;s2&#34;&gt;&amp;#34;graphifyy[neo4j]&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install &lt;span class=&#34;s2&#34;&gt;&amp;#34;graphifyy[sql]&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install &lt;span class=&#34;s2&#34;&gt;&amp;#34;graphifyy[all]&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Here, &lt;code&gt;pdf&lt;/code&gt; is for PDF extraction, &lt;code&gt;office&lt;/code&gt; for &lt;code&gt;.docx&lt;/code&gt; and &lt;code&gt;.xlsx&lt;/code&gt;, &lt;code&gt;video&lt;/code&gt; for video and audio transcription, &lt;code&gt;mcp&lt;/code&gt; for an MCP stdio server, &lt;code&gt;neo4j&lt;/code&gt; for pushing to Neo4j, and &lt;code&gt;sql&lt;/code&gt; for SQL schema extraction.&lt;/p&gt;
&lt;h2 id=&#34;why-the-report-matters&#34;&gt;Why the Report Matters
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;GRAPH_REPORT.md&lt;/code&gt; is not a normal summary. It extracts relationships inside the project that are especially useful for AI assistants.&lt;/p&gt;
&lt;p&gt;The README mentions report contents such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;God nodes&lt;/code&gt;: the most-connected core concepts in the project.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Surprising connections&lt;/code&gt;: unexpected links across files or modules.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;The why&lt;/code&gt;: design rationale extracted from comments, docstrings, and design docs.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Suggested questions&lt;/code&gt;: questions the graph is particularly well suited to answer.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Confidence tags&lt;/code&gt;: relationships are labeled &lt;code&gt;EXTRACTED&lt;/code&gt;, &lt;code&gt;INFERRED&lt;/code&gt;, or &lt;code&gt;AMBIGUOUS&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is important. Normal search only tells you &amp;ldquo;where this word appears.&amp;rdquo; A graph can answer &amp;ldquo;which modules, configs, tables, and docs this concept is connected to.&amp;rdquo; For large codebases, that is closer to architecture understanding than simple full-text search.&lt;/p&gt;
&lt;h2 id=&#34;common-commands&#34;&gt;Common Commands
&lt;/h2&gt;&lt;p&gt;Common Graphify commands include:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;9
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/graphify .
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/graphify ./docs --update
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/graphify . --cluster-only
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/graphify . --no-viz
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/graphify . --wiki
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;graphify &lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; callflow-html
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/graphify query &lt;span class=&#34;s2&#34;&gt;&amp;#34;what connects auth to the database?&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/graphify path &lt;span class=&#34;s2&#34;&gt;&amp;#34;UserService&amp;#34;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;DatabasePool&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/graphify explain &lt;span class=&#34;s2&#34;&gt;&amp;#34;RateLimiter&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;You can also add a paper or video to the graph:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/graphify add https://arxiv.org/abs/1706.03762
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/graphify add &amp;lt;youtube-url&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;For PR-assisted analysis:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;graphify prs
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;graphify prs &lt;span class=&#34;m&#34;&gt;42&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;graphify prs --triage
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;graphify prs --conflicts
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;These commands fit code review scenarios: identify which graph communities a PR affects, whether it risks conflicts with other PRs, and which review queues deserve priority.&lt;/p&gt;
&lt;h2 id=&#34;mcp-neo4j-and-ci&#34;&gt;MCP, Neo4j, and CI
&lt;/h2&gt;&lt;p&gt;Graphify is not only an HTML graph generator. It can also expose the graph to AI assistants for repeated tool use.&lt;/p&gt;
&lt;p&gt;For example, start an MCP server:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python -m graphify.serve graphify-out/graph.json
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;The MCP server provides capabilities such as &lt;code&gt;query_graph&lt;/code&gt;, &lt;code&gt;get_node&lt;/code&gt;, &lt;code&gt;get_neighbors&lt;/code&gt;, &lt;code&gt;shortest_path&lt;/code&gt;, &lt;code&gt;list_prs&lt;/code&gt;, &lt;code&gt;get_pr_impact&lt;/code&gt;, and &lt;code&gt;triage_prs&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;It also supports Neo4j export or push:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/graphify ./raw --neo4j
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/graphify ./raw --neo4j-push bolt://localhost:7687
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;For team collaboration, the README suggests committing &lt;code&gt;graphify-out/&lt;/code&gt; so everyone on the team starts with the same project map. You can also run:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;graphify hook install
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;This rebuilds the graph after each git commit and sets up a merge driver so &lt;code&gt;graph.json&lt;/code&gt; does not get left with conflict markers when multiple people commit in parallel.&lt;/p&gt;
&lt;h2 id=&#34;privacy-and-cost&#34;&gt;Privacy and Cost
&lt;/h2&gt;&lt;p&gt;Graphify&amp;rsquo;s README is fairly clear about privacy boundaries.&lt;/p&gt;
&lt;p&gt;Code files are parsed locally through tree-sitter and do not trigger API calls. Video and audio can be transcribed locally with faster-whisper. Docs, PDFs, and images used for semantic extraction go through your AI assistant&amp;rsquo;s model API.&lt;/p&gt;
&lt;p&gt;For headless &lt;code&gt;graphify extract&lt;/code&gt;, you may need these environment variables:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ANTHROPIC_API_KEY
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;GEMINI_API_KEY
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;GOOGLE_API_KEY
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;OPENAI_API_KEY
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;DEEPSEEK_API_KEY
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;MOONSHOT_API_KEY
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;OLLAMA_BASE_URL
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Local Ollama, AWS Bedrock, and Claude Code CLI can also be used as backends. The README also states that the project has no telemetry, usage tracking, or analytics.&lt;/p&gt;
&lt;p&gt;In practice, remember that local code parsing does not mean everything stays offline. When docs, PDFs, images, or cloud models are involved, you still need to consider the backend, API keys, enterprise compliance, and data boundaries.&lt;/p&gt;
&lt;h2 id=&#34;suitable-scenarios&#34;&gt;Suitable Scenarios
&lt;/h2&gt;&lt;p&gt;Graphify is suitable for several types of users:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Developers who want Claude Code, Codex, Cursor, and Gemini CLI to better understand project structure.&lt;/li&gt;
&lt;li&gt;People who need to quickly understand a large unfamiliar codebase.&lt;/li&gt;
&lt;li&gt;Teams that need to analyze code, SQL schemas, docs, and configuration together.&lt;/li&gt;
&lt;li&gt;People doing architecture review, PR review, or refactor impact analysis.&lt;/li&gt;
&lt;li&gt;Teams that want to expose project knowledge as an MCP tool for Agents.&lt;/li&gt;
&lt;li&gt;Technical leads who want to keep a &amp;ldquo;project map&amp;rdquo; for the team.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It is not necessary for every project. For small scripts, one-off demos, or very simple repositories, normal search and README files may be enough. Graphify&amp;rsquo;s value shows up more clearly in projects with many modules, many docs, team collaboration, and frequent AI assistant involvement.&lt;/p&gt;
&lt;h2 id=&#34;summary&#34;&gt;Summary
&lt;/h2&gt;&lt;p&gt;Graphify matters because it moves AI coding assistants from &amp;ldquo;temporarily reading files&amp;rdquo; toward &amp;ldquo;a long-lived, queryable project knowledge graph.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;For developers, it does not replace the IDE, search, or LSP. It adds a structured memory layer for AI assistants: which modules matter, which concepts are tightly connected, which docs explain design rationale, and which communities a PR may affect. As Codex, Claude Code, Gemini CLI, Antigravity, and similar Agent tools become more common, this kind of project graph layer will become increasingly useful.&lt;/p&gt;
&lt;p&gt;References:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/safishamsi/graphify&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;GitHub: safishamsi/graphify&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Open Design Explained: Turning Claude Code and Codex into AI Design Tools</title>
        <link>https://knightli.com/en/2026/05/18/open-design-open-source-claude-design-alternative/</link>
        <pubDate>Mon, 18 May 2026 18:57:16 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/18/open-design-open-source-claude-design-alternative/</guid>
        <description>&lt;p&gt;Open Design is an open-source AI design project from nexu-io. Its positioning is local-first and open-source, as an alternative direction to Claude Design and Figma.&lt;/p&gt;
&lt;p&gt;The problem it targets is clear: Claude Design showed that large models can generate design artifacts directly, but if this capability only exists inside a closed, cloud-only, single-model product, users cannot easily self-host, connect their own agents, swap models, build private design systems, or put outputs into a local workflow.&lt;/p&gt;
&lt;p&gt;Open Design does not try to build a new foundation model. Instead, it connects the coding-agent CLIs already installed on your computer into a design workspace. Claude Code, Codex, Cursor Agent, Gemini CLI, OpenCode, Qwen, Copilot CLI, Kimi, DeepSeek TUI, and similar tools can become its design engine.&lt;/p&gt;
&lt;h2 id=&#34;what-is-open-design&#34;&gt;What is Open Design?
&lt;/h2&gt;&lt;p&gt;Open Design can be understood as a combination of three parts:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A Web UI for chat, preview, project management, and export.&lt;/li&gt;
&lt;li&gt;A local daemon that schedules agents, manages files, stores projects, and provides APIs.&lt;/li&gt;
&lt;li&gt;A set of Skills, Design Systems, and templates that guide agents toward design-quality artifacts instead of generic AI pages.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;After the user enters a request, Open Design does more than pass a sentence to a model. It first asks the user to refine the design brief, choose the scenario and direction, then injects project metadata, the active design system, Skill files, templates, and checklists into the agent&amp;rsquo;s context. The agent reads and writes files inside a real project folder and produces an artifact that can be previewed in a sandboxed iframe.&lt;/p&gt;
&lt;p&gt;This makes it closer to an AI design workflow than a one-shot webpage generator.&lt;/p&gt;
&lt;h2 id=&#34;why-it-differs-from-ordinary-ai-webpage-generation&#34;&gt;Why it differs from ordinary AI webpage generation
&lt;/h2&gt;&lt;p&gt;Many AI tools can generate an HTML page. Open Design&amp;rsquo;s focus is not &amp;ldquo;make the model write a page,&amp;rdquo; but &amp;ldquo;make the model follow a design workflow to deliver artifacts that can be previewed, exported, and iterated.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;It emphasizes several design choices:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ask questions before generating. A new design brief starts with an interactive question form to lock down audience, tone, brand context, constraints, and visual direction.&lt;/li&gt;
&lt;li&gt;Skills are files, not black-box plugins. Each Skill is made of &lt;code&gt;SKILL.md&lt;/code&gt;, &lt;code&gt;assets/&lt;/code&gt;, and &lt;code&gt;references/&lt;/code&gt;, so it can be read, replaced, and extended.&lt;/li&gt;
&lt;li&gt;Design Systems are Markdown, not fixed theme JSON. Color, typography, spacing, components, motion, brand voice, and anti-patterns can be written into &lt;code&gt;DESIGN.md&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The agent works in a real project directory. It can read templates, write files, generate images, and output &lt;code&gt;.pptx&lt;/code&gt;, &lt;code&gt;.pdf&lt;/code&gt;, &lt;code&gt;.zip&lt;/code&gt;, and other files.&lt;/li&gt;
&lt;li&gt;Artifacts are previewed in a sandboxed iframe, reducing the risk of directly executing uncontrolled code.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The goal is to make AI behave more like a design collaborator with rules, assets, and checklists.&lt;/p&gt;
&lt;h2 id=&#34;which-agents-does-it-support&#34;&gt;Which agents does it support?
&lt;/h2&gt;&lt;p&gt;One highlight of Open Design is that it treats agents as the runtime instead of locking into one model vendor.&lt;/p&gt;
&lt;p&gt;The README lists support for Claude Code, Codex CLI, Devin for Terminal, Cursor Agent, Gemini CLI, OpenCode, Qwen Code, Qoder CLI, GitHub Copilot CLI, Hermes, Kimi, Pi, Kiro, Kilo, Mistral Vibe, DeepSeek TUI, and more. It detects these CLIs from &lt;code&gt;PATH&lt;/code&gt; and lets users switch between them.&lt;/p&gt;
&lt;p&gt;If no local CLI is available, it can also use an OpenAI-compatible BYOK proxy. Users provide &lt;code&gt;baseUrl&lt;/code&gt;, &lt;code&gt;apiKey&lt;/code&gt;, and model name, and the daemon normalizes streaming output into the same chat stream.&lt;/p&gt;
&lt;p&gt;This design brings several benefits:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It does not lock users into one model.&lt;/li&gt;
&lt;li&gt;It can reuse agents users have already installed and configured.&lt;/li&gt;
&lt;li&gt;Local file reads and writes are managed by the daemon, making the permission boundary clearer.&lt;/li&gt;
&lt;li&gt;For enterprises and advanced users, it is easier to connect custom models and API providers.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;skills-and-design-systems-are-the-core-assets&#34;&gt;Skills and Design Systems are the core assets
&lt;/h2&gt;&lt;p&gt;Open Design bundles many Skills and Design Systems. The README says the built-in Skills cover web prototypes, SaaS landing pages, dashboards, mobile apps, gamified apps, social carousels, magazine posters, decks, weekly updates, finance reports, HR onboarding, invoices, kanban boards, OKRs, and more.&lt;/p&gt;
&lt;p&gt;Design Systems provide brand-grade visual constraints for the agent. The repository description mentions sources such as Linear, Stripe, Vercel, Airbnb, Tesla, Notion, Apple, Anthropic, Cursor, Supabase, Figma, Xiaohongshu, and others.&lt;/p&gt;
&lt;p&gt;The relationship is simple:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Skill decides what kind of artifact should be delivered.&lt;/li&gt;
&lt;li&gt;Design System decides what brand style the artifact should follow.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Without these two layers, AI can easily produce generic pages that look familiar but lack judgment. With Skills and Design Systems, the model has clearer task boundaries, visual references, and review rules.&lt;/p&gt;
&lt;h2 id=&#34;what-can-it-generate&#34;&gt;What can it generate?
&lt;/h2&gt;&lt;p&gt;Open Design is not limited to web prototypes.&lt;/p&gt;
&lt;p&gt;According to the README, it covers web, desktop, mobile prototypes, slides, images, videos, HyperFrames, and more. It also supports export formats such as HTML, PDF, PPTX, ZIP, and Markdown. Media generation is included in the same design loop, covering posters, avatars, infographics, illustrated maps, short videos, and HTML-to-MP4 motion graphics.&lt;/p&gt;
&lt;p&gt;This gives it a wide range of use cases:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Startup teams can create pitch decks quickly.&lt;/li&gt;
&lt;li&gt;Product teams can generate landing pages or functional prototypes.&lt;/li&gt;
&lt;li&gt;Operations teams can create campaign pages, social media images, and weekly reports.&lt;/li&gt;
&lt;li&gt;Designers can use it for moodboards, visual directions, and first-pass layouts.&lt;/li&gt;
&lt;li&gt;Developers can turn requirements into runnable frontend artifacts.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Its value is not just generating one page, but bringing multiple content forms into the same agent workflow.&lt;/p&gt;
&lt;h2 id=&#34;what-local-first-means&#34;&gt;What local-first means
&lt;/h2&gt;&lt;p&gt;Open Design emphasizes local-first. It does not hand everything to a remote SaaS backend. Instead, it runs a local daemon and project workspace.&lt;/p&gt;
&lt;p&gt;The architecture described in the README roughly looks like this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The frontend uses Next.js, React, and TypeScript.&lt;/li&gt;
&lt;li&gt;The local daemon uses Node, Express, SQLite, and SSE.&lt;/li&gt;
&lt;li&gt;Projects, sessions, messages, tabs, and templates are stored in local SQLite and &lt;code&gt;.od/projects/&amp;lt;id&amp;gt;/&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Agents are started through &lt;code&gt;child_process.spawn&lt;/code&gt; and read/write inside project artifact folders.&lt;/li&gt;
&lt;li&gt;Preview is rendered through a sandboxed iframe.&lt;/li&gt;
&lt;li&gt;Export includes HTML, PDF, PPTX, ZIP, and Markdown.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This structure is better for users who want design outputs to stay on their machine, local agents to be connected, API keys to remain under their control, and private workspaces to be maintained.&lt;/p&gt;
&lt;p&gt;However, local-first does not mean fully offline. Actual generation still depends on the agent and model you use. If you use a cloud model API, content still goes to that provider. A more accurate description is that Open Design brings workspace, scheduling, files, and preview back to local control, while leaving the model layer to the user.&lt;/p&gt;
&lt;h2 id=&#34;relationship-with-claude-design-and-figma&#34;&gt;Relationship with Claude Design and Figma
&lt;/h2&gt;&lt;p&gt;Open Design explicitly describes itself as an open-source alternative direction to Claude Design and Figma, but it is not a traditional Figma clone.&lt;/p&gt;
&lt;p&gt;Figma is a professional tool for manual design editing, collaboration, and delivery. Open Design is more agent-native: users drive agents through natural language, forms, Skills, and design systems to produce runnable artifacts.&lt;/p&gt;
&lt;p&gt;It combines several ideas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Claude Design&amp;rsquo;s artifact-first experience.&lt;/li&gt;
&lt;li&gt;Figma&amp;rsquo;s design-system awareness.&lt;/li&gt;
&lt;li&gt;File reading, writing, and execution from agents such as Claude Code and Codex.&lt;/li&gt;
&lt;li&gt;Local daemon project management and sandboxed preview.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So it may not replace the full professional design workflow, but it is well suited as a fast path from idea to previewable prototype.&lt;/p&gt;
&lt;h2 id=&#34;who-is-it-for&#34;&gt;Who is it for?
&lt;/h2&gt;&lt;p&gt;Open Design is better suited for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Developers already using Claude Code, Codex, Cursor, Gemini CLI, and similar agents.&lt;/li&gt;
&lt;li&gt;Users who want AI design outputs managed inside local project folders.&lt;/li&gt;
&lt;li&gt;Startup teams that need web prototypes, decks, posters, and marketing assets quickly.&lt;/li&gt;
&lt;li&gt;Advanced users who want to customize Skills, Design Systems, and prompt stacks.&lt;/li&gt;
&lt;li&gt;Teams that do not want to be locked into a single model or cloud product.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It is less suitable for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Lightweight users who only want to open a webpage, type one sentence, and download an image.&lt;/li&gt;
&lt;li&gt;Users who do not want to touch Node, pnpm, daemons, CLIs, or local configuration.&lt;/li&gt;
&lt;li&gt;Professional Figma workflows that need mature collaboration, design review, and vector editing.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In short, Open Design is more of a tool for agent users and technical design teams than a lightweight design SaaS for everyone.&lt;/p&gt;
&lt;h2 id=&#34;things-to-watch&#34;&gt;Things to watch
&lt;/h2&gt;&lt;p&gt;The README marks the project as &lt;code&gt;0.8.0-preview&lt;/code&gt; and notes that it is still evolving quickly. That energy is valuable, but it also means APIs, data directories, desktop migration, Skills structure, and export flows may change.&lt;/p&gt;
&lt;p&gt;Before using it seriously:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Do not treat it as a fully stable enterprise design platform.&lt;/li&gt;
&lt;li&gt;Try the workflow with test projects before importing important materials.&lt;/li&gt;
&lt;li&gt;Back up &lt;code&gt;.od/&lt;/code&gt; before migration, and make sure the daemon and desktop app are stopped.&lt;/li&gt;
&lt;li&gt;When using BYOK, pay attention to API keys, proxy addresses, and local private-network access risks.&lt;/li&gt;
&lt;li&gt;Review generated designs manually, especially for brand, copyright, copy, and visual consistency.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The benefit of an open-source project is that it can be inspected, modified, and contributed to. The cost is that you need to accept some engineering friction.&lt;/p&gt;
&lt;h2 id=&#34;summary&#34;&gt;Summary
&lt;/h2&gt;&lt;p&gt;The interesting part of Open Design is not just that it is an open-source Claude Design alternative. What matters is how it organizes Agent CLIs, Skills, Design Systems, a local daemon, and sandboxed preview into one design workflow.&lt;/p&gt;
&lt;p&gt;It pushes design generation from a single prompt toward a more structured process: ask questions, choose direction, load a design system, read the Skill, write real files, preview the artifact, then export the result.&lt;/p&gt;
&lt;p&gt;If you already use Claude Code, Codex, or Cursor for coding work, Open Design is worth watching. It represents a new product shape: AI is not only drawing one picture for you, but working inside a local project space, following design systems and task skills to generate design artifacts that can keep evolving.&lt;/p&gt;
&lt;h2 id=&#34;references&#34;&gt;References
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/nexu-io/open-design&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;nexu-io/open-design GitHub repository&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Claude Code Token-Saving Guide: How Models, MCP, CLAUDE.md, and Skills Affect Cache</title>
        <link>https://knightli.com/en/2026/05/18/claude-code-prompt-cache-token-optimization/</link>
        <pubDate>Mon, 18 May 2026 18:30:24 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/18/claude-code-prompt-cache-token-optimization/</guid>
        <description>&lt;p&gt;In long Claude Code tasks, Prompt Cache hit rate directly affects cost and speed. Many users know that caching can save tokens, but not which actions make the cache suddenly miss.&lt;/p&gt;
&lt;p&gt;The simplest mental model is a left-to-right context chain:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;tools -&amp;gt; system -&amp;gt; CLAUDE.md / skills -&amp;gt; messages
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;The farther left something sits, the more stable it should be and the larger the cache benefit. If a left-side section changes, everything after it may need to be recalculated. If a right-side section changes, the impact is smaller.&lt;/p&gt;
&lt;p&gt;So optimizing Prompt Cache in Claude Code is not guesswork. The rule is simple: before a task begins, prepare the model, MCP servers, Skills, &lt;code&gt;CLAUDE.md&lt;/code&gt;, and other base context. Once the task starts, change as little of that fixed context as possible.&lt;/p&gt;
&lt;h2 id=&#34;prompt-cache-does-not-cache-plain-text&#34;&gt;Prompt Cache does not cache plain text
&lt;/h2&gt;&lt;p&gt;Prompt Cache is not just a string cache for prompts. In Transformer inference, what matters is the Key/Value state calculated by attention layers from the prefix context, usually called KV cache.&lt;/p&gt;
&lt;p&gt;That means two things:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If the prefix stays stable, part of the previous computation can be reused.&lt;/li&gt;
&lt;li&gt;If the model, tool definitions, system prompt, or prefix messages change, old cache entries may no longer match.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Anthropic&amp;rsquo;s documentation summarizes the invalidation hierarchy as &lt;code&gt;tools -&amp;gt; system -&amp;gt; messages&lt;/code&gt;. Changes to tool definitions can invalidate the whole cache; system changes affect system and messages; message changes mainly affect message cache.&lt;/p&gt;
&lt;p&gt;Claude Code adds more context sources such as &lt;code&gt;CLAUDE.md&lt;/code&gt;, Skills, MCP, plugins, and subagents, so it is easier to accidentally break cache reuse.&lt;/p&gt;
&lt;h2 id=&#34;cache-killer-1-switching-models-mid-task&#34;&gt;Cache killer 1: switching models mid-task
&lt;/h2&gt;&lt;p&gt;Switching models is one of the most expensive changes.&lt;/p&gt;
&lt;p&gt;Prompt Cache is isolated by model. Opus, Sonnet, and Haiku have different architectures and weights, so the KV cache calculated from the same text is not interchangeable. If you build a long context in Opus and then switch to Sonnet, Sonnet cannot reuse Opus&amp;rsquo;s cache.&lt;/p&gt;
&lt;p&gt;This creates a counterintuitive result: switching models mid-task to save money may make the previous cache useless. Context that could have been read at cache-read price may need to be written and computed again.&lt;/p&gt;
&lt;p&gt;A steadier pattern is:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Keep the main conversation on one model.&lt;/li&gt;
&lt;li&gt;Use a subagent for side tasks that can run on a cheaper model.&lt;/li&gt;
&lt;li&gt;Let the side agent search, explore, or summarize, then hand a concise result back to the main conversation.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This keeps the long main-context prefix stable and improves cache hit consistency.&lt;/p&gt;
&lt;h2 id=&#34;cache-killer-2-adding-mcp-or-reloading-plugins-mid-task&#34;&gt;Cache killer 2: adding MCP or reloading plugins mid-task
&lt;/h2&gt;&lt;p&gt;MCP provides tools to Claude Code. When you add an MCP server, the tool list changes, and tool definitions sit at the far left of the context chain.&lt;/p&gt;
&lt;p&gt;From a Prompt Cache perspective, when the tool list changes, the system and messages that follow may need to be recalculated. If you use many MCP servers, the tool definitions themselves can be large, so the cost of invalidation becomes obvious.&lt;/p&gt;
&lt;p&gt;One detail matters: Claude Code usually reads MCP configuration at session startup. Changing config mid-session may not affect the current session immediately. The dangerous moments are restart, resume, plugin reload, or anything that rebuilds the tool list.&lt;/p&gt;
&lt;p&gt;Recommended practice:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Install required MCP servers before starting a long task.&lt;/li&gt;
&lt;li&gt;Avoid discovering missing tools halfway through and then reloading.&lt;/li&gt;
&lt;li&gt;Reduce default-enabled MCP servers when possible.&lt;/li&gt;
&lt;li&gt;Do not keep rarely used MCP servers always enabled.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Stable tool definitions are the foundation of stable Prompt Cache hits.&lt;/p&gt;
&lt;h2 id=&#34;cache-killer-3-editing-claudemd-mid-session&#34;&gt;Cache killer 3: editing CLAUDE.md mid-session
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; is Claude Code&amp;rsquo;s project memory file. It is useful for build commands, test commands, architecture conventions, code style, and project-specific constraints.&lt;/p&gt;
&lt;p&gt;It is helpful, but it also enters the context. Claude&amp;rsquo;s help documentation explains that &lt;code&gt;CLAUDE.md&lt;/code&gt; is read at session start and delivered as a user message. It also benefits from Anthropic Prompt Cache: the first request pays full input price, while later requests can hit the lower cache-read price if the cache is still valid.&lt;/p&gt;
&lt;p&gt;The catch is that &lt;code&gt;CLAUDE.md&lt;/code&gt; is content-addressed. Once the file changes, the old cache no longer matches.&lt;/p&gt;
&lt;p&gt;So avoid frequently editing &lt;code&gt;CLAUDE.md&lt;/code&gt; during a long task. Better practices:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Check whether &lt;code&gt;CLAUDE.md&lt;/code&gt; is sufficient before the task starts.&lt;/li&gt;
&lt;li&gt;Put stable rules in the file and temporary instructions in the current conversation.&lt;/li&gt;
&lt;li&gt;Do not edit long-term memory for one-off instructions.&lt;/li&gt;
&lt;li&gt;If you must change it, treat the next stage as a new session or new phase.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; should be stable project guidance, not a scratchpad that changes every round.&lt;/p&gt;
&lt;h2 id=&#34;cache-killer-4-installing-or-updating-skills-mid-task&#34;&gt;Cache killer 4: installing or updating Skills mid-task
&lt;/h2&gt;&lt;p&gt;Skills are also part of the context. Installing a new Skill, updating a Skill, or changing the Skill list changes what gets injected into the session.&lt;/p&gt;
&lt;p&gt;These changes often do not fully take effect until reload, resume, or a new session. Once messages are rebuilt, old cache entries may no longer match.&lt;/p&gt;
&lt;p&gt;The same advice applies:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Decide which Skills are needed before starting.&lt;/li&gt;
&lt;li&gt;Keep the Skill set stable for the same kind of task.&lt;/li&gt;
&lt;li&gt;Avoid installing Skills in the middle of a long task.&lt;/li&gt;
&lt;li&gt;If you install a new Skill, treat it as the beginning of a new stage.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For repeatable workflows such as content production, review, deployment, and translation, keeping a fixed Skill set helps keep the context structure stable.&lt;/p&gt;
&lt;h2 id=&#34;cache-killer-5-idle-time-exceeding-ttl&#34;&gt;Cache killer 5: idle time exceeding TTL
&lt;/h2&gt;&lt;p&gt;Prompt Cache does not last forever. A common default TTL is on the order of minutes, and Claude Code-related documentation often refers to roughly a five-minute cache window. After TTL expires, even the same request may need to rebuild the cache.&lt;/p&gt;
&lt;p&gt;This explains a common feeling in long tasks: everything was cheap and fast, then after a coffee break the token cost jumps again.&lt;/p&gt;
&lt;p&gt;Long tasks hit this easily. You may review Claude Code output, inspect files, run tests, or think about the next step. Five minutes can disappear quickly.&lt;/p&gt;
&lt;p&gt;If your environment supports it, you can request a one-hour Prompt Cache TTL before long tasks:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;ENABLE_PROMPT_CACHING_1H&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;In Windows PowerShell:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$env:ENABLE_PROMPT_CACHING_1H&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;1&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;One-hour cache writes usually cost more than five-minute cache writes. It is not always worth it for short tasks, but for large codebases, long conversations, and complex multi-step development, it may be cheaper than repeated cache expiration.&lt;/p&gt;
&lt;h2 id=&#34;a-token-saving-claude-code-workflow&#34;&gt;A token-saving Claude Code workflow
&lt;/h2&gt;&lt;p&gt;A steadier long-task setup looks like this:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Choose the model before the task starts and avoid frequent switching.&lt;/li&gt;
&lt;li&gt;Enable the MCP servers you need and disable the ones you do not.&lt;/li&gt;
&lt;li&gt;Keep &lt;code&gt;CLAUDE.md&lt;/code&gt; short, stable, and focused on durable rules.&lt;/li&gt;
&lt;li&gt;Prepare the Skills needed for this task in advance.&lt;/li&gt;
&lt;li&gt;For complex tasks, consider one-hour TTL.&lt;/li&gt;
&lt;li&gt;Split the task into phases, but keep context structure stable within each phase.&lt;/li&gt;
&lt;li&gt;Use subagents or separate sessions for side exploration instead of disturbing the main conversation.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The goal is not to prevent every cache miss. It is to avoid the high-cost misses that are easy to overlook.&lt;/p&gt;
&lt;h2 id=&#34;a-simple-rule-of-thumb&#34;&gt;A simple rule of thumb
&lt;/h2&gt;&lt;p&gt;Ask one question:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Does this operation change the model, tool definitions, system context, or fixed messages near the start of the session?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;If yes, it probably affects Prompt Cache. The farther left it is in the context chain, the greater the impact.&lt;/p&gt;
&lt;p&gt;Common operations:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Switch model: high risk, model caches are isolated.&lt;/li&gt;
&lt;li&gt;Add MCP or reload plugins: high risk, tool list changes.&lt;/li&gt;
&lt;li&gt;Edit &lt;code&gt;CLAUDE.md&lt;/code&gt;: medium-high risk, project memory changes.&lt;/li&gt;
&lt;li&gt;Install Skills: medium-high risk, injected context changes.&lt;/li&gt;
&lt;li&gt;Continue normal conversation: low risk, mostly appends messages.&lt;/li&gt;
&lt;li&gt;Idle past TTL: high risk, server-side cache expires.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;summary&#34;&gt;Summary
&lt;/h2&gt;&lt;p&gt;Prompt Cache optimization in Claude Code is about keeping the session prefix stable.&lt;/p&gt;
&lt;p&gt;Do not switch models casually. Do not install MCP servers and Skills halfway through. Do not use &lt;code&gt;CLAUDE.md&lt;/code&gt; as a temporary scratchpad. For complex tasks, consider a longer TTL. Once these basics are stable, token cost and response speed become much more predictable.&lt;/p&gt;
&lt;p&gt;The most practical sentence is: configure before you start, change less after you start.&lt;/p&gt;
&lt;h2 id=&#34;references&#34;&gt;References
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-use-with-prompt-caching&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Anthropic: Tool use with prompt caching&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://support.claude.com/en/articles/14553240-give-claude-context-claude-md-and-better-prompts&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Claude Help Center: CLAUDE.md and prompt caching&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://code.claude.com/docs/en/mcp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Claude Code Docs: Connect Claude Code to tools via MCP&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Anthropic Founder’s Playbook Explained: How Claude Helps Startup Teams Move Faster</title>
        <link>https://knightli.com/en/2026/05/18/claude-founders-playbook-ai-startup/</link>
        <pubDate>Mon, 18 May 2026 18:02:58 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/18/claude-founders-playbook-ai-startup/</guid>
        <description>&lt;p&gt;Anthropic published The Founder’s Playbook on the official Claude blog, aimed at founders. Its core question is direct: how can an AI-native startup move faster from insight to product, launch, and scale?&lt;/p&gt;
&lt;p&gt;The playbook is not simply a feature list for Claude. It breaks the startup journey into four stages: Idea, MVP, Launch, and Scale. The point is not to let AI replace founders&amp;rsquo; judgment, but to hand repetitive work such as market research, copy drafts, code scaffolding, operations workflows, and sales materials to Claude first, so founders can spend more time on judgment, taste, trade-offs, and trust.&lt;/p&gt;
&lt;h2 id=&#34;what-this-playbook-is-about&#34;&gt;What this playbook is about
&lt;/h2&gt;&lt;p&gt;AI startups increasingly face a kind of compression race: product cycles are shorter, competitors are more numerous, and users expect speed and quality at the same time. Work that once required a multi-person team can now often be drafted by AI first, then reviewed, corrected, and advanced by the founding team.&lt;/p&gt;
&lt;p&gt;Anthropic&amp;rsquo;s framework is clear: do not try to make the entire company &amp;ldquo;AI-powered&amp;rdquo; on day one. Instead, find one process that is time-consuming, repetitive, and low in creative density. Let Claude generate the first draft, script, research summary, or execution checklist. Founders remain responsible for defining goals, calibrating direction, judging quality, and connecting useful output to real business work.&lt;/p&gt;
&lt;h2 id=&#34;stage-1-idea&#34;&gt;Stage 1: Idea
&lt;/h2&gt;&lt;p&gt;The Idea stage is not about coming up with a cool concept. It is about validating whether the idea deserves further investment.&lt;/p&gt;
&lt;p&gt;Claude can help founders at this stage by mapping markets, summarizing user pain points, comparing competitor positioning, proposing possible wedges, and turning vague ideas into clearer value propositions.&lt;/p&gt;
&lt;p&gt;But the most important part is still human judgment. AI can help you see more possibilities faster, but it cannot take responsibility for whether a market truly has strong demand. Founders still need to talk to real users, observe whether they are willing to change existing workflows, and see whether they are willing to pay.&lt;/p&gt;
&lt;h2 id=&#34;stage-2-mvp&#34;&gt;Stage 2: MVP
&lt;/h2&gt;&lt;p&gt;The MVP stage is where Claude Code can be especially useful.&lt;/p&gt;
&lt;p&gt;For small teams, the scarcest resource is often not ideas, but the speed of turning ideas into something users can try. Claude Code can help generate scaffolding, write scripts, fill in components, check edge cases, and produce technical plan notes, helping teams get to a testable version faster.&lt;/p&gt;
&lt;p&gt;The key is not asking AI to write a perfect product in one pass. It is reducing the friction from zero to first version. Founders and engineers still need to review architecture, security, data handling, and user experience, but they do not need to spend as much time on mechanical first drafts.&lt;/p&gt;
&lt;h2 id=&#34;stage-3-launch&#34;&gt;Stage 3: Launch
&lt;/h2&gt;&lt;p&gt;The Launch stage tests narrative, distribution, and feedback speed.&lt;/p&gt;
&lt;p&gt;Many startup teams underestimate how complex a launch can be: website copy, product demos, emails, social media content, user interviews, sales scripts, investor updates. Every item needs to clearly explain why this product is needed now.&lt;/p&gt;
&lt;p&gt;Claude can act as a high-frequency collaborator here: generating different positioning variants, rewriting introductions for different user groups, simulating user questions, organizing the launch rhythm, and turning early feedback into the next round of product and market actions.&lt;/p&gt;
&lt;h2 id=&#34;stage-4-scale&#34;&gt;Stage 4: Scale
&lt;/h2&gt;&lt;p&gt;The Scale stage shifts the focus from &amp;ldquo;building it&amp;rdquo; to &amp;ldquo;growing repeatably.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Once a company has stable users and revenue, the founding team gets pulled into operations, sales, support, data analysis, and internal coordination. Agent-like capabilities such as Claude Cowork are better suited to more complete tasks: conducting market research, designing campaigns, organizing fundraising strategy, summarizing growth metrics, or turning an operations process into repeatable steps.&lt;/p&gt;
&lt;p&gt;This is also where the difference between AI-native companies and traditional software companies begins to appear. The real change is not simply that employees use AI tools. It is that company processes are designed around AI collaboration from the beginning: which tasks require humans to define standards, which tasks should be drafted by AI first, which outputs must be reviewed, and which workflows can become reusable templates.&lt;/p&gt;
&lt;h2 id=&#34;what-claude-code-claude-cowork-and-chat-are-best-for&#34;&gt;What Claude Code, Claude Cowork, and Chat are best for
&lt;/h2&gt;&lt;p&gt;Based on the official blog post, Anthropic wants founders to think about Claude across three kinds of use cases.&lt;/p&gt;
&lt;p&gt;Claude Code is more engineering-oriented. It is suited for writing code, generating scripts, analyzing edge cases, producing component specs, and drafting technical documentation. It helps move ideas toward something that can run.&lt;/p&gt;
&lt;p&gt;Claude Cowork is closer to a delegatable work agent. It fits tasks that require continued execution, such as market research, campaign design, fundraising strategy, and operations analysis. It helps push a relatively complete business task through a first pass.&lt;/p&gt;
&lt;p&gt;Claude Chat is better suited for founder judgment moments: thinking through go-to-market strategy, stress-testing product positioning, comparing roadmap priorities, and refining key narratives. It is not an execution machine, but a thinking partner that can support rapid iteration.&lt;/p&gt;
&lt;h2 id=&#34;what-is-actually-useful-for-startup-teams&#34;&gt;What is actually useful for startup teams
&lt;/h2&gt;&lt;p&gt;The value of this playbook is not that it tells founders &amp;ldquo;AI is important.&amp;rdquo; That is no longer new.&lt;/p&gt;
&lt;p&gt;Its more useful contribution is shifting AI use from scattered tool calls into a company-building method. Each stage has different bottlenecks, and each bottleneck can be broken into parts where AI can participate.&lt;/p&gt;
&lt;p&gt;At the Idea stage, AI expands the search space. At the MVP stage, it compresses implementation time. At the Launch stage, it accelerates messaging and distribution experiments. At the Scale stage, it helps turn processes into repeatable workflows.&lt;/p&gt;
&lt;p&gt;This logic is especially important for small teams. Small teams do not have enough people to cover every function, but they can use AI to create a first version of a capability, then spend limited human energy on the parts that most require judgment and relationship building.&lt;/p&gt;
&lt;h2 id=&#34;pitfalls-to-watch-for&#34;&gt;Pitfalls to watch for
&lt;/h2&gt;&lt;p&gt;The first pitfall is treating AI-generated output as a conclusion. Market research, competitor analysis, user personas, and growth strategies all need to be validated against real data and user feedback.&lt;/p&gt;
&lt;p&gt;The second pitfall is underestimating review cost. AI can significantly reduce the cost of first drafts, but code quality, legal risk, brand expression, commercial promises, and security issues still need human accountability.&lt;/p&gt;
&lt;p&gt;The third pitfall is automating too early. A process that has not yet worked manually should not be handed to an agent for automatic execution. A steadier approach is to let AI participate in one small part of the workflow, observe output quality, and then gradually expand the scope.&lt;/p&gt;
&lt;h2 id=&#34;summary&#34;&gt;Summary
&lt;/h2&gt;&lt;p&gt;The signal from Anthropic&amp;rsquo;s Founder’s Playbook is clear: the advantage of an AI-native startup is not merely that it can use AI to write code. It is that from day one, AI becomes a collaboration layer across product, engineering, marketing, sales, and operations.&lt;/p&gt;
&lt;p&gt;For founders, the most practical starting point is not building a grand AI workflow. It is choosing one task that consumes too much time, repeats too often, and slows progress the most, then letting Claude produce the first version. Real competitiveness comes from human founders&amp;rsquo; control over direction, quality, and trust, and from whether the team can embed this collaboration pattern into everyday work.&lt;/p&gt;
&lt;h2 id=&#34;references&#34;&gt;References
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://claude.com/blog/the-founders-playbook&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;The founder’s playbook for the age of AI&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>easy-vibe: A Learning Map for Vibe Coding Beginners</title>
        <link>https://knightli.com/en/2026/05/16/easy-vibe-vibe-coding-learning-map/</link>
        <pubDate>Sat, 16 May 2026 22:44:43 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/16/easy-vibe-vibe-coding-learning-map/</guid>
        <description>&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/datawhalechina/easy-vibe&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;easy-vibe&lt;/a&gt; is an open source Vibe Coding learning project from Datawhale. It is not aimed at developers who are already fluent with AI coding tools. It is aimed at students, product managers, designers, operators, indie developers, and technical hobbyists who are just starting with Vibe Coding.&lt;/p&gt;
&lt;p&gt;The value of this project is not that it lists another batch of AI tools. It turns &amp;ldquo;how to start building projects with AI&amp;rdquo; into a learning path that is easier to understand. For many beginners, the hard part is not knowing that Claude Code, Cursor, MCP, or Agents exist. The hard part is knowing what to learn first, how to practice, and when to move into more advanced tools.&lt;/p&gt;
&lt;h2 id=&#34;beginners-need-a-path-most&#34;&gt;Beginners Need a Path Most
&lt;/h2&gt;&lt;p&gt;Vibe Coding has become popular in recent years, but it is not very friendly to beginners.&lt;/p&gt;
&lt;p&gt;On the surface, as long as you can describe a requirement, you can ask AI to write code. In reality, as soon as the task becomes slightly more complex, problems appear: the requirement is unclear, the model edits the wrong file, the project structure is confusing, errors are hard to handle, dependencies fail to install, prompts become messier, and the workflow falls back to &amp;ldquo;copy code into a chat box&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;So getting started with Vibe Coding cannot only mean learning &amp;ldquo;how to write prompts&amp;rdquo;. It needs to solve several things:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;How to split an idea into executable tasks;&lt;/li&gt;
&lt;li&gt;How to let AI understand a project structure;&lt;/li&gt;
&lt;li&gt;How to read code generated by the model;&lt;/li&gt;
&lt;li&gt;How to handle errors and iterate;&lt;/li&gt;
&lt;li&gt;How to use the terminal and local development environment;&lt;/li&gt;
&lt;li&gt;How to move from web chat to real AI coding tools.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is where easy-vibe matters: it tries to organize these topics into a learning route, instead of leaving beginners lost among tools, tutorials, and terminology.&lt;/p&gt;
&lt;h2 id=&#34;it-is-a-roadmap-not-a-single-tutorial&#34;&gt;It Is a Roadmap, Not a Single Tutorial
&lt;/h2&gt;&lt;p&gt;According to the project description, easy-vibe covers basic tutorials, interactive exercises, visual content, RAG, terminal tools, AI coding tools, and more advanced topics such as Claude Code, MCP, Skills, and Agent Teams.&lt;/p&gt;
&lt;p&gt;This structure is suitable for beginners because AI coding is not a single skill. It is a combination of abilities:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Describing requirements;&lt;/li&gt;
&lt;li&gt;Splitting tasks;&lt;/li&gt;
&lt;li&gt;Reading projects;&lt;/li&gt;
&lt;li&gt;Asking the model to edit code;&lt;/li&gt;
&lt;li&gt;Running and verifying results;&lt;/li&gt;
&lt;li&gt;Iterating based on errors;&lt;/li&gt;
&lt;li&gt;Turning repeated workflows into tools or skills.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If you only learn one tool, it is easy to be constrained by that tool&amp;rsquo;s interface. Switch models, editors, or CLIs, and the workflow becomes unclear again. A roadmap helps build the working method first, then places tools where they belong.&lt;/p&gt;
&lt;h2 id=&#34;especially-useful-for-non-programmers&#34;&gt;Especially Useful for Non-Programmers
&lt;/h2&gt;&lt;p&gt;The biggest appeal of Vibe Coding is that it lets non-professional programmers build prototypes.&lt;/p&gt;
&lt;p&gt;Product managers can turn product ideas into interactive demos. Designers can validate interaction logic. Operators can write internal tools. Students can quickly build course projects. Founders can validate demand early. These people do not necessarily need to become full-time engineers in the traditional sense, but they do need a method for &amp;ldquo;letting AI help me turn ideas into working things&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;This is also why easy-vibe fits the Chinese community. Many Chinese users already know AI can write code, but they still lack systematic beginner materials. Development environment, prompts, project structure, debugging methods, and Agent tools are easier to learn when explained clearly in Chinese and paired with exercises.&lt;/p&gt;
&lt;p&gt;For these users, the most important thing is not to learn a complex framework immediately. It is to complete a full loop first: propose a requirement, generate a project, run it, find problems, keep modifying, and finally get a usable version.&lt;/p&gt;
&lt;h2 id=&#34;the-advanced-part-moves-toward-real-ai-development-workflows&#34;&gt;The Advanced Part Moves Toward Real AI Development Workflows
&lt;/h2&gt;&lt;p&gt;The Claude Code, MCP, Skills, and Agent Teams mentioned in easy-vibe are no longer just beginner concepts.&lt;/p&gt;
&lt;p&gt;Claude Code represents terminal coding Agents: the model can enter a local project, read files, edit code, and run commands. MCP solves tool and data source integration, so the model is not trapped in a chat box. Skills preserve reusable workflows, such as fixed project generation, document organization, test checks, or content production processes. Agent Teams further split tasks across multiple agents.&lt;/p&gt;
&lt;p&gt;These topics may feel distant for beginners, but they are worth understanding early. The direction of Vibe Coding is already clear: from &amp;ldquo;let AI write a piece of code&amp;rdquo; to &amp;ldquo;let AI participate in a complete project workflow&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;If a learning route stops at prompts, it will quickly fall behind tool evolution. On the other hand, if every advanced concept is thrown at beginners immediately, they will not know where to start. The useful part of easy-vibe is that it places these topics on a gradual upgrade path.&lt;/p&gt;
&lt;h2 id=&#34;two-mistakes-to-avoid&#34;&gt;Two Mistakes to Avoid
&lt;/h2&gt;&lt;p&gt;The first mistake is thinking that Vibe Coding means you can ignore code entirely.&lt;/p&gt;
&lt;p&gt;AI can generate a lot, but the user still needs to judge whether the result is correct. At minimum, you need to understand the project structure, know how to run it, and roughly know where an error is happening. Even if you do not write complex code, you still need basic engineering common sense.&lt;/p&gt;
&lt;p&gt;The second mistake is thinking that more advanced tools are always better.&lt;/p&gt;
&lt;p&gt;Beginners do not necessarily need Claude Code, MCP, or multiple Agents at the start. A better order is to first build a feedback loop with simple projects, then gradually introduce the terminal, version control, testing, tool calling, and automated workflows. Tools should match task complexity; otherwise they look powerful but have no clear use.&lt;/p&gt;
&lt;h2 id=&#34;how-to-use-it&#34;&gt;How to Use It
&lt;/h2&gt;&lt;p&gt;If you are just starting with Vibe Coding, you can use easy-vibe as a learning checklist.&lt;/p&gt;
&lt;p&gt;Start with basic concepts and simple exercises. Do not rush to chase every tool. Build a small project, such as a personal homepage, data dashboard, form tool, automation script, or knowledge base demo. During the process, observe where AI helps and where you still need to confirm things yourself.&lt;/p&gt;
&lt;p&gt;Once you can complete small projects consistently, move into more complex topics:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Use terminal tools to work with local projects;&lt;/li&gt;
&lt;li&gt;Use Git to manage each change;&lt;/li&gt;
&lt;li&gt;Use RAG to connect your own materials;&lt;/li&gt;
&lt;li&gt;Use MCP to connect external tools;&lt;/li&gt;
&lt;li&gt;Use Skills to solidify repeated workflows;&lt;/li&gt;
&lt;li&gt;Use Agent Teams to split complex tasks.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Learning Vibe Coding this way is not just learning to ask AI. It is learning to put AI into your own workflow.&lt;/p&gt;
&lt;h2 id=&#34;conclusion&#34;&gt;Conclusion
&lt;/h2&gt;&lt;p&gt;easy-vibe is best seen as a Chinese learning map for Vibe Coding. It organizes scattered AI coding concepts, tools, and exercises into a route that helps beginners move from &amp;ldquo;I heard AI can write code&amp;rdquo; to &amp;ldquo;I can build a project with AI&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;The real value of Vibe Coding is not that it lets people skip all learning. It lowers the threshold from idea to prototype. You still need to understand requirements, organize tasks, verify results, and control risks. But many repetitive, tedious, and blocking steps can be handled with AI assistance.&lt;/p&gt;
&lt;p&gt;If you want a systematic entry point into AI coding, without getting trapped immediately in tool names and complex engineering setup, easy-vibe is a good place to start.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Claude Code &#43; Ollama Local Deployment Guide: Build a Free AI Coding Assistant with CC Switch</title>
        <link>https://knightli.com/en/2026/05/15/claude-code-ollama-cc-switch-local-agent/</link>
        <pubDate>Fri, 15 May 2026 23:27:50 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/15/claude-code-ollama-cc-switch-local-agent/</guid>
        <description>&lt;p&gt;&lt;code&gt;Claude Code&lt;/code&gt; has become a popular AI coding assistant recently. Its appeal is not just that it can chat about code, but that it can read a project, modify files, run commands, install dependencies, and keep fixing errors in an agent-like workflow.&lt;/p&gt;
&lt;p&gt;The hard part is cost. Once a project grows, long context and repeated agent turns can burn through API quota quickly. If you just want to experiment, refactor small utilities, generate scripts, or work on a private local project, it is natural to ask: can Claude Code&amp;rsquo;s workflow be kept while the model runs locally?&lt;/p&gt;
&lt;p&gt;The key tool in this setup is &lt;code&gt;CC Switch&lt;/code&gt;. It lets Claude Code connect to the local &lt;code&gt;Ollama&lt;/code&gt; service through an OpenAI-compatible API endpoint, so requests can be forwarded to a local model instead of the official Claude API.&lt;/p&gt;
&lt;h2 id=&#34;what-this-setup-solves&#34;&gt;What This Setup Solves
&lt;/h2&gt;&lt;p&gt;You can think of the whole setup as:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Claude Code desktop
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;+ CC Switch API forwarding layer
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;+ Ollama local model
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Claude Code is still responsible for the coding workflow and project operations. CC Switch handles model provider configuration and API compatibility. Ollama runs the model locally.&lt;/p&gt;
&lt;p&gt;This does not make a local model suddenly become Claude. Its real value is that it makes Claude Code&amp;rsquo;s agent workflow usable in lower-cost, offline, and private local scenarios.&lt;/p&gt;
&lt;h2 id=&#34;basic-preparation&#34;&gt;Basic Preparation
&lt;/h2&gt;&lt;p&gt;Before you start, prepare these pieces:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Install &lt;code&gt;Git&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Install &lt;code&gt;Ollama&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Pull a local model suitable for coding.&lt;/li&gt;
&lt;li&gt;Install &lt;code&gt;CC Switch&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Have Claude Code available on your machine.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;For the model side, you can start with coding-oriented models, such as Qwen Coder, DeepSeek Coder, or other models with decent tool-calling and code generation behavior. The larger the model, the better the result may be, but memory and GPU pressure will also rise.&lt;/p&gt;
&lt;p&gt;If your machine only has limited memory, start with a smaller model first. Confirm that the workflow runs smoothly before trying a larger one.&lt;/p&gt;
&lt;h2 id=&#34;key-cc-switch-configuration&#34;&gt;Key CC Switch Configuration
&lt;/h2&gt;&lt;p&gt;After Ollama starts, its default local API address is usually:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;http://127.0.0.1:11434/v1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;In CC Switch, choose an OpenAI-compatible provider type, commonly:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;OpenAI Chat Completions
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Then point the base URL to Ollama&amp;rsquo;s local address.&lt;/p&gt;
&lt;p&gt;For the API key field, local Ollama normally does not need a real key, but many tools still require an environment variable or placeholder. You can use:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ANTHROPIC_API_KEY
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;or another placeholder variable accepted by your local setup.&lt;/p&gt;
&lt;p&gt;One configuration item is worth special attention:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;#34;inferenceModels&amp;#34;=&amp;#34;[\&amp;#34;haiku\&amp;#34;,\&amp;#34;sonnet\&amp;#34;,\&amp;#34;opus\&amp;#34;]&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;This means mapping Claude Code&amp;rsquo;s expected model roles to the local provider. In practice, you need to bind &lt;code&gt;haiku&lt;/code&gt;, &lt;code&gt;sonnet&lt;/code&gt;, and &lt;code&gt;opus&lt;/code&gt; to the model names exposed by Ollama or CC Switch. If this mapping is wrong, Claude Code may fail to call the model or may keep falling back to an unexpected configuration.&lt;/p&gt;
&lt;h2 id=&#34;where-claude-code-is-strong&#34;&gt;Where Claude Code Is Strong
&lt;/h2&gt;&lt;p&gt;Claude Code&amp;rsquo;s biggest advantage is not raw completion. It is the full coding workflow:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;reading and understanding project structure;&lt;/li&gt;
&lt;li&gt;locating related files based on a task;&lt;/li&gt;
&lt;li&gt;editing code directly;&lt;/li&gt;
&lt;li&gt;running commands and tests;&lt;/li&gt;
&lt;li&gt;observing errors and iterating;&lt;/li&gt;
&lt;li&gt;completing multi-step tasks in one session.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is why many people want to keep Claude Code even when switching to a local model. A normal chat UI can generate code snippets, but it does not naturally operate inside a repository. Claude Code is closer to an executable development assistant.&lt;/p&gt;
&lt;h2 id=&#34;what-role-ollama-plays-here&#34;&gt;What Role Ollama Plays Here
&lt;/h2&gt;&lt;p&gt;Ollama is responsible for local model runtime and management. It handles model downloading, loading, and local inference.&lt;/p&gt;
&lt;p&gt;The advantage is clear: requests stay on your machine, repeated use does not create API bills, and you can use it when the network is limited. For private code, this is also easier to accept than sending every context window to a cloud model.&lt;/p&gt;
&lt;p&gt;The trade-off is also clear. Local models depend heavily on your hardware and on model quality. A smaller model can handle simple edits, explanations, and script generation, but it may struggle with large cross-file refactors or subtle architectural decisions.&lt;/p&gt;
&lt;h2 id=&#34;where-the-experience-has-boundaries&#34;&gt;Where The Experience Has Boundaries
&lt;/h2&gt;&lt;p&gt;This setup should not be treated as a full replacement for Claude&amp;rsquo;s strongest cloud models.&lt;/p&gt;
&lt;p&gt;You may run into these issues:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;weaker long-context understanding;&lt;/li&gt;
&lt;li&gt;unstable tool-calling behavior in complex tasks;&lt;/li&gt;
&lt;li&gt;slower inference on CPU-only machines;&lt;/li&gt;
&lt;li&gt;more hallucinated file paths or APIs;&lt;/li&gt;
&lt;li&gt;less reliable multi-round planning;&lt;/li&gt;
&lt;li&gt;lower success rate on large repository refactors.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So the better expectation is: use it as a free local development assistant, not as a perfect substitute for a top-tier cloud model.&lt;/p&gt;
&lt;h2 id=&#34;multimodal-compatibility-is-still-unstable&#34;&gt;Multimodal Compatibility Is Still Unstable
&lt;/h2&gt;&lt;p&gt;Some users want Claude Code to handle screenshots, UI images, diagrams, or other multimodal inputs. This part depends on the local model and the forwarding layer.&lt;/p&gt;
&lt;p&gt;If the selected Ollama model does not support vision, or CC Switch does not translate the request format correctly, multimodal features may fail. Even with a vision model, behavior may differ from Claude&amp;rsquo;s official API.&lt;/p&gt;
&lt;p&gt;For now, this setup is more suitable for text and code workflows. Treat multimodal support as experimental.&lt;/p&gt;
&lt;h2 id=&#34;who-should-try-it&#34;&gt;Who Should Try It
&lt;/h2&gt;&lt;p&gt;This setup is suitable for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;developers who want to try Claude Code&amp;rsquo;s workflow at low cost;&lt;/li&gt;
&lt;li&gt;users who frequently write scripts, small tools, and automation snippets;&lt;/li&gt;
&lt;li&gt;teams that want to keep code on local machines;&lt;/li&gt;
&lt;li&gt;learners who want an AI coding assistant without constant API spend;&lt;/li&gt;
&lt;li&gt;people testing different local coding models.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It is less suitable if you rely heavily on long context, large monorepos, strict code review quality, or complex full-project refactors.&lt;/p&gt;
&lt;h2 id=&#34;usage-advice&#34;&gt;Usage Advice
&lt;/h2&gt;&lt;p&gt;Start with small tasks.&lt;/p&gt;
&lt;p&gt;For example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;explain a single file;&lt;/li&gt;
&lt;li&gt;refactor a small function;&lt;/li&gt;
&lt;li&gt;generate a shell script;&lt;/li&gt;
&lt;li&gt;fix a simple error;&lt;/li&gt;
&lt;li&gt;add a small feature;&lt;/li&gt;
&lt;li&gt;write unit tests for a narrow module.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;After each change, run tests or at least review the diff yourself. A local model can be useful, but you should not blindly accept every generated edit.&lt;/p&gt;
&lt;p&gt;If the model keeps losing context, reduce the task scope. Instead of asking it to &amp;ldquo;refactor the whole project&amp;rdquo;, ask it to &amp;ldquo;refactor this function&amp;rdquo; or &amp;ldquo;add validation in this file&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;summary&#34;&gt;Summary
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Claude Code + CC Switch + Ollama&lt;/code&gt; is an interesting combination. It keeps Claude Code&amp;rsquo;s agent-style development workflow while moving inference to a local model.&lt;/p&gt;
&lt;p&gt;Its biggest strengths are lower cost, local privacy, and a smooth development workflow. Its limits are also obvious: model quality, hardware performance, long context, and tool-calling stability all affect the final experience.&lt;/p&gt;
&lt;p&gt;If you already use Ollama and want a more practical local AI coding workflow, this setup is worth trying. Just remember to start small, verify every change, and treat the local model as an assistant rather than an automatic engineer.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Superpowers: a skills framework that pulls coding agents back into engineering process</title>
        <link>https://knightli.com/en/2026/05/15/obra-superpowers-agentic-skills-framework/</link>
        <pubDate>Fri, 15 May 2026 08:53:17 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/15/obra-superpowers-agentic-skills-framework/</guid>
        <description>&lt;p&gt;&lt;code&gt;obra/superpowers&lt;/code&gt; is both a skills framework for coding agents and a software development methodology. Its goal is not to add another universal prompt, but to make agents follow a process: clarify goals, produce a design, write a plan, implement through TDD, then review and finish.&lt;/p&gt;
&lt;p&gt;Project: &lt;a class=&#34;link&#34; href=&#34;https://github.com/obra/superpowers&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/obra/superpowers&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;At the time of writing, the GitHub API shows more than 190,000 stars, an MIT license, and recent activity. The README describes it plainly: &lt;code&gt;An agentic skills framework &amp;amp; software development methodology that works.&lt;/code&gt;&lt;/p&gt;
&lt;h2 id=&#34;what-problem-it-solves&#34;&gt;What problem it solves
&lt;/h2&gt;&lt;p&gt;Many AI coding tools are not weak at writing code; they are too eager to write code.&lt;/p&gt;
&lt;p&gt;A user says something vague, the agent edits files, and the result looks finished while boundaries, tests, and architecture remain unclear. Small tasks may survive this. Complex projects turn it into rework and technical debt.&lt;/p&gt;
&lt;p&gt;Superpowers makes the agent enter a workflow before touching code:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;When the user wants to build something, ask about the goal first.&lt;/li&gt;
&lt;li&gt;Turn the conversation into a spec and confirm it in sections.&lt;/li&gt;
&lt;li&gt;After design approval, write an implementation plan.&lt;/li&gt;
&lt;li&gt;After the user says &amp;ldquo;go&amp;rdquo;, begin implementation.&lt;/li&gt;
&lt;li&gt;During implementation, emphasize TDD, YAGNI, DRY, and code review.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This is not new software engineering. It is important because fast agents need stronger guardrails.&lt;/p&gt;
&lt;h2 id=&#34;supported-tools&#34;&gt;Supported tools
&lt;/h2&gt;&lt;p&gt;Superpowers is not tied to a single agent. The README lists installation paths for Claude Code, Codex CLI, Codex App, Factory Droid, Gemini CLI, OpenCode, Cursor, and GitHub Copilot CLI.&lt;/p&gt;
&lt;p&gt;That makes it more like a workflow layer across harnesses than a model-specific trick.&lt;/p&gt;
&lt;h2 id=&#34;the-base-workflow&#34;&gt;The base workflow
&lt;/h2&gt;&lt;p&gt;The base workflow has several stages.&lt;/p&gt;
&lt;p&gt;First is &lt;code&gt;brainstorming&lt;/code&gt;. Before implementation, the agent turns rough ideas into an executable design and confirms it with the user.&lt;/p&gt;
&lt;p&gt;Second is &lt;code&gt;using-git-worktrees&lt;/code&gt;. After design approval, it creates an isolated worktree and branch, then checks that install and test baselines are clean.&lt;/p&gt;
&lt;p&gt;Third is &lt;code&gt;writing-plans&lt;/code&gt;. It decomposes design into small tasks with paths, code scopes, and validation steps. The plan should be clear enough for someone without context to execute.&lt;/p&gt;
&lt;p&gt;Fourth is execution. &lt;code&gt;subagent-driven-development&lt;/code&gt; can dispatch tasks to subagents, while &lt;code&gt;executing-plans&lt;/code&gt; runs them in batches. Each task should be reviewable and verifiable.&lt;/p&gt;
&lt;p&gt;Fifth is &lt;code&gt;test-driven-development&lt;/code&gt;: true RED-GREEN-REFACTOR. Write a failing test, confirm failure, implement minimally, confirm pass, refactor.&lt;/p&gt;
&lt;p&gt;Sixth is &lt;code&gt;requesting-code-review&lt;/code&gt;. Reviews happen between tasks; critical findings block progress.&lt;/p&gt;
&lt;p&gt;Finally, &lt;code&gt;finishing-a-development-branch&lt;/code&gt; validates tests and offers choices such as merge, PR, keep, or discard the worktree.&lt;/p&gt;
&lt;h2 id=&#34;what-is-in-the-skills-library&#34;&gt;What is in the skills library
&lt;/h2&gt;&lt;p&gt;The skills library can be grouped by purpose.&lt;/p&gt;
&lt;p&gt;Testing centers on &lt;code&gt;test-driven-development&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Debugging includes &lt;code&gt;systematic-debugging&lt;/code&gt; and &lt;code&gt;verification-before-completion&lt;/code&gt;. They focus on reproduction, minimization, hypotheses, validation, and not claiming completion before verification.&lt;/p&gt;
&lt;p&gt;Collaboration skills include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;brainstorming&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;writing-plans&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;executing-plans&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;dispatching-parallel-agents&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;requesting-code-review&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;receiving-code-review&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;using-git-worktrees&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;finishing-a-development-branch&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;subagent-driven-development&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Meta skills include &lt;code&gt;writing-skills&lt;/code&gt; and &lt;code&gt;using-superpowers&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Together they give the agent engineering habits: when to ask, when to plan, when to test, and when to stop for review.&lt;/p&gt;
&lt;h2 id=&#34;how-it-differs-from-a-prompt&#34;&gt;How it differs from a prompt
&lt;/h2&gt;&lt;p&gt;A normal prompt often piles rules into one system message: do not over-edit, think first, test, explain, be concise. As rules accumulate, complex tasks make the model forget or ignore some of them.&lt;/p&gt;
&lt;p&gt;Superpowers splits rules into phase-specific workflow modules. Each skill is shorter and focused. The agent knows the current phase, complex processes become checkable, and teams can turn their own practices into reusable skills.&lt;/p&gt;
&lt;p&gt;The lesson is not just &amp;ldquo;use a smarter model&amp;rdquo;. Give the model a repeatable way to work.&lt;/p&gt;
&lt;h2 id=&#34;who-should-use-it&#34;&gt;Who should use it
&lt;/h2&gt;&lt;p&gt;Superpowers is most useful for developers already using coding agents on real projects, especially when:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The task spans multiple files.&lt;/li&gt;
&lt;li&gt;The agent should design before implementation.&lt;/li&gt;
&lt;li&gt;TDD or validation matters.&lt;/li&gt;
&lt;li&gt;Multiple branches or worktrees are common.&lt;/li&gt;
&lt;li&gt;Subagents can help with implementation or review.&lt;/li&gt;
&lt;li&gt;A team wants to encode its workflow as skills.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For a one-line config change, it may feel heavy. For multi-step development, the constraints are valuable.&lt;/p&gt;
&lt;h2 id=&#34;notes-before-using-it&#34;&gt;Notes before using it
&lt;/h2&gt;&lt;p&gt;Do not treat it as full autopilot. It gives the agent process, but humans still own requirements, tradeoffs, and final acceptance.&lt;/p&gt;
&lt;p&gt;TDD and review add upfront cost. For small tasks they may slow things down; for complex tasks they reduce rework.&lt;/p&gt;
&lt;p&gt;Parallel subagents are not always better. They work when boundaries and write scopes are clear. If the requirement is still fuzzy, parallelism only multiplies confusion.&lt;/p&gt;
&lt;p&gt;Teams must maintain skill quality. Outdated processes, vague instructions, and conflicting rules can also hurt agents.&lt;/p&gt;
&lt;h2 id=&#34;summary&#34;&gt;Summary
&lt;/h2&gt;&lt;p&gt;Superpowers is valuable because it pulls coding agents away from &amp;ldquo;receive request, edit code&amp;rdquo; and back into software engineering process.&lt;/p&gt;
&lt;p&gt;AI coding often lacks not generation speed, but clarification, planning, verification, review, and closure. The stronger the model becomes, the less these steps should be skipped.&lt;/p&gt;
&lt;p&gt;If you use Codex, Claude Code, Cursor, or Gemini CLI on real projects, Superpowers is worth studying. Even if you do not install it, its skill decomposition is a good reference for designing your own agent workflow.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Reject Vibe Coding: Matt Pocock&#39;s skills repo adds engineering constraints to AI coding</title>
        <link>https://knightli.com/en/2026/05/15/matt-pocock-skills-ai-engineering-workflow/</link>
        <pubDate>Fri, 15 May 2026 08:46:23 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/15/matt-pocock-skills-ai-engineering-workflow/</guid>
        <description>&lt;p&gt;The faster AI writes code, the faster a project can lose control. The real question is not whether a model can generate functions, but whether it understands the requirement, follows the team&amp;rsquo;s language, and makes small changes inside the existing architecture.&lt;/p&gt;
&lt;p&gt;Matt Pocock&amp;rsquo;s &lt;code&gt;mattpocock/skills&lt;/code&gt; repository points in the opposite direction of casual vibe coding: do not let AI take over the whole development process. Put it inside mature software engineering constraints.&lt;/p&gt;
&lt;p&gt;Project: &lt;a class=&#34;link&#34; href=&#34;https://github.com/mattpocock/skills&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/mattpocock/skills&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This is not about one magic prompt. It is a set of composable agent skills that turn requirement clarification, domain modeling, TDD, debugging, and architecture review into AI-friendly workflows.&lt;/p&gt;
&lt;h2 id=&#34;solve-alignment-failure-first&#34;&gt;Solve alignment failure first
&lt;/h2&gt;&lt;p&gt;The most common failure in AI coding is assuming the model understood the request when it merely guessed from a vague sentence.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;grill-me&lt;/code&gt; flips the interaction. Before writing code, the agent acts like a demanding reviewer and keeps asking about branches, boundaries, and unresolved decisions.&lt;/p&gt;
&lt;p&gt;If you ask for a login page, it should first ask:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;How should password reset work?&lt;/li&gt;
&lt;li&gt;Should third-party login be supported?&lt;/li&gt;
&lt;li&gt;What should failed-login errors look like?&lt;/li&gt;
&lt;li&gt;Are account lockout, CAPTCHA, or risk controls in scope?&lt;/li&gt;
&lt;li&gt;Where should the user go after success?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This feels slower, but it prevents expensive rework later. The cheaper code generation becomes, the more costly unclear requirements become.&lt;/p&gt;
&lt;h2 id=&#34;write-domain-language-into-context&#34;&gt;Write domain language into context
&lt;/h2&gt;&lt;p&gt;Another common problem is generic vocabulary. The model does not know the team&amp;rsquo;s business terms, so names and documents drift.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;grill-with-docs&lt;/code&gt; asks questions while also checking &lt;code&gt;CONTEXT.md&lt;/code&gt;, ADRs, and domain docs. Once terms and decisions are confirmed, they can be written back into shared context.&lt;/p&gt;
&lt;p&gt;This is close to the &amp;ldquo;ubiquitous language&amp;rdquo; idea in domain-driven design. If a team says customer instead of user, or transaction instead of order, the model should inherit that language.&lt;/p&gt;
&lt;p&gt;Context documents are valuable because they reduce guessing.&lt;/p&gt;
&lt;h2 id=&#34;use-tdd-to-slow-down-generation&#34;&gt;Use TDD to slow down generation
&lt;/h2&gt;&lt;p&gt;AI is risky because it is fast. Bad code used to take time to write; now hundreds of lines can appear in seconds. The problem is not speed itself, but lack of feedback loops.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;tdd&lt;/code&gt; skill brings back red-green-refactor:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Write a failing test for one behavior.&lt;/li&gt;
&lt;li&gt;Implement only enough code to pass.&lt;/li&gt;
&lt;li&gt;Refactor.&lt;/li&gt;
&lt;li&gt;Continue with the next vertical slice.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The key is one behavior at a time. AI executes, while humans keep control of direction and boundaries.&lt;/p&gt;
&lt;h2 id=&#34;debug-through-a-loop&#34;&gt;Debug through a loop
&lt;/h2&gt;&lt;p&gt;When facing a bug, many agents guess and patch repeatedly until the code becomes messier.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;diagnose&lt;/code&gt; asks the agent to build a feedback loop:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Reproduce the issue&lt;/li&gt;
&lt;li&gt;Minimize the case&lt;/li&gt;
&lt;li&gt;Form a hypothesis&lt;/li&gt;
&lt;li&gt;Add observations or logs&lt;/li&gt;
&lt;li&gt;Fix the cause&lt;/li&gt;
&lt;li&gt;Add a regression test&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This process is old, but it matters even more with AI. The model is good at trying things; the loop keeps it close to the root cause.&lt;/p&gt;
&lt;h2 id=&#34;review-architecture-regularly&#34;&gt;Review architecture regularly
&lt;/h2&gt;&lt;p&gt;A task passing tests does not mean the codebase is healthier. Repeated AI patches can blur module boundaries, make interfaces more complex, and make tests harder to write.&lt;/p&gt;
&lt;p&gt;Skills such as &lt;code&gt;improve-codebase-architecture&lt;/code&gt; ask the agent to step back and inspect the whole codebase:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Are responsibilities mixing across modules?&lt;/li&gt;
&lt;li&gt;Which interfaces are too complex?&lt;/li&gt;
&lt;li&gt;Which paths are hard to test?&lt;/li&gt;
&lt;li&gt;Which names conflict with domain language?&lt;/li&gt;
&lt;li&gt;Which duplicate logic should be merged?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is not automatic large-scale refactoring. It is structured observation and suggested direction; humans still decide whether and how far to change.&lt;/p&gt;
&lt;h2 id=&#34;what-really-needs-limiting-is-freedom&#34;&gt;What really needs limiting is freedom
&lt;/h2&gt;&lt;p&gt;The core idea is simple: AI coding is not about letting the model improvise freely. It is about giving it clear goals, context, tests, and stopping conditions.&lt;/p&gt;
&lt;p&gt;Humans define the problem, architecture, tradeoffs, and acceptance criteria. AI generates code, fills in tests, repeats edits, and handles local refactors. Used well, AI amplifies capability; used poorly, it amplifies confusion.&lt;/p&gt;
&lt;p&gt;Software engineering fundamentals did not become obsolete because AI improved. Requirement clarity, domain language, TDD, diagnosis, and architecture review are becoming more important.&lt;/p&gt;
&lt;p&gt;More people will be able to write code. The gap will be between people who can put AI inside a maintainable, verifiable, evolving engineering system and those who cannot.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>What is cc-haha? A project that turns Claude Code into a desktop workbench</title>
        <link>https://knightli.com/en/2026/05/14/cc-haha-claude-code-desktop-workbench/</link>
        <pubDate>Thu, 14 May 2026 22:38:04 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/14/cc-haha-claude-code-desktop-workbench/</guid>
        <description>&lt;p&gt;&lt;code&gt;cc-haha&lt;/code&gt; is a project built around a modified Claude Code workflow. Its full repository name is &lt;code&gt;NanmiCoder/cc-haha&lt;/code&gt;. The project page says plainly that it is based on Claude Code source code leaked from the Anthropic npm registry on &lt;code&gt;2026-03-31&lt;/code&gt;, and that its current main form is a desktop Claude Code workbench.&lt;/p&gt;
&lt;p&gt;Project URL: &lt;a class=&#34;link&#34; href=&#34;https://github.com/NanmiCoder/cc-haha&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/NanmiCoder/cc-haha&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;There are two important points in that description.&lt;/p&gt;
&lt;p&gt;First, it is not Anthropic&amp;rsquo;s official Claude Code. The README also states that the original source code copyright belongs to Anthropic and that the project is only for learning and research.&lt;/p&gt;
&lt;p&gt;Second, its focus is no longer just &amp;ldquo;run a Claude Code CLI locally.&amp;rdquo; Judging from the README and the latest release, &lt;code&gt;cc-haha&lt;/code&gt; is more like a desktop app that brings Claude Code sessions, projects, permissions, diffs, Computer Use, remote access, and model provider configuration into one place.&lt;/p&gt;
&lt;h2 id=&#34;what-problem-is-it-trying-to-solve&#34;&gt;What problem is it trying to solve?
&lt;/h2&gt;&lt;p&gt;Claude Code is originally terminal-oriented. Sessions, command execution, permission prompts, file edits, and context switching all happen in the terminal. That works for people who are comfortable with CLI tools, but long-term use exposes a few rough edges:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Multiple projects and sessions are hard to manage side by side.&lt;/li&gt;
&lt;li&gt;To see what files the AI changed, you often need to switch to Git or an editor.&lt;/li&gt;
&lt;li&gt;Permission approvals, command execution, and file diffs are spread across different surfaces.&lt;/li&gt;
&lt;li&gt;Remote viewing from a phone or another device requires extra setup.&lt;/li&gt;
&lt;li&gt;Connecting non-Anthropic models requires dealing with protocol compatibility.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;cc-haha&lt;/code&gt; tries to package these pieces into a graphical workbench. It is not just a skin for Claude Code; it moves session management and local development flow control into the desktop app.&lt;/p&gt;
&lt;h2 id=&#34;desktop-workbench-from-terminal-to-control-center&#34;&gt;Desktop workbench: from terminal to control center
&lt;/h2&gt;&lt;p&gt;According to the README, the &lt;code&gt;cc-haha&lt;/code&gt; desktop app brings these capabilities into a macOS / Windows app:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Multi-session workbench: manage tasks with tabs, project switching, terminal entry points, and session history.&lt;/li&gt;
&lt;li&gt;Branch / Worktree launch: choose a repository branch for a new session and decide whether to use the current worktree or an isolated Worktree.&lt;/li&gt;
&lt;li&gt;Right-side code changes panel: view modified files, added and removed lines, and workspace status while chatting.&lt;/li&gt;
&lt;li&gt;Visualized code edits: inspect AI edits, diffs, and execution steps.&lt;/li&gt;
&lt;li&gt;Permission and approval flow: review dangerous commands, tool calls, and AI questions in the desktop app.&lt;/li&gt;
&lt;li&gt;Multiple model providers: supports Anthropic-compatible APIs, third-party models, WebSearch fallback, and local configuration.&lt;/li&gt;
&lt;li&gt;H5 remote access: use a one-time token to connect to the current desktop session from a phone or another device.&lt;/li&gt;
&lt;li&gt;IM integration: use Telegram, Feishu, WeChat, or DingTalk to chat remotely, switch projects, and approve permissions.&lt;/li&gt;
&lt;li&gt;Scheduled tasks and token usage: create scheduled tasks and view local token usage trends.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These features make it closer to an &amp;ldquo;AI coding workbench&amp;rdquo; than a simple command-line replacement. It tries to put the common surfaces of AI coding into one place: chat, file changes, permissions, projects, remote access, and model configuration.&lt;/p&gt;
&lt;h2 id=&#34;installation-and-startup&#34;&gt;Installation and startup
&lt;/h2&gt;&lt;p&gt;Most users should download the desktop installer from Releases.&lt;/p&gt;
&lt;p&gt;The README describes the desktop install flow as:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Go to GitHub Releases and download the macOS or Windows installer.&lt;/li&gt;
&lt;li&gt;On first launch, configure the model provider, API key, and default model in the desktop settings.&lt;/li&gt;
&lt;li&gt;If macOS says the app cannot be opened, follow the installation guide to handle Gatekeeper permissions.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The latest release page shows that &lt;code&gt;v0.2.6&lt;/code&gt; was published on &lt;code&gt;2026-05-13&lt;/code&gt;. That version mainly focuses on restoring secure H5 mobile access, desktop session management, file mention search, and desktop UX polish.&lt;/p&gt;
&lt;p&gt;If you want to start the CLI from source, the README provides:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bun install
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cp .env.example .env
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./bin/claude-haha
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;That path is better for people who want to debug the lower-level CLI, server, or build their own changes. For normal use, the desktop app is more direct.&lt;/p&gt;
&lt;h2 id=&#34;what-changed-in-v026&#34;&gt;What changed in v0.2.6
&lt;/h2&gt;&lt;p&gt;The main point of &lt;code&gt;v0.2.6&lt;/code&gt; is that H5/LAN access was pulled back from a temporary open state into an explicit enablement and token pairing model.&lt;/p&gt;
&lt;p&gt;Notable changes include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;H5/LAN access must be explicitly enabled locally.&lt;/li&gt;
&lt;li&gt;QR links carry a one-time visible token.&lt;/li&gt;
&lt;li&gt;Remote APIs, proxies, and WebSockets are no longer exposed without protection.&lt;/li&gt;
&lt;li&gt;Settings now has a separate H5 Access page.&lt;/li&gt;
&lt;li&gt;The desktop sidebar gained batch management for selecting and deleting sessions.&lt;/li&gt;
&lt;li&gt;Desktop file mention search became git-first, respects ignore rules, and reduces noise from &lt;code&gt;node_modules&lt;/code&gt; and build output.&lt;/li&gt;
&lt;li&gt;A pure white theme was added, and bugs such as long URLs breaking chat layout and draft leakage across tabs were fixed.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This shows the project has moved beyond &amp;ldquo;it runs&amp;rdquo; and is now filling in the safety boundaries and daily UX details that a desktop product needs.&lt;/p&gt;
&lt;p&gt;The H5 access part deserves special care. The author explicitly notes in the release that H5 is a browser access entry for individuals or trusted teams, not a public multi-tenant login system. In practice, it should not be treated as an internet-facing SaaS admin console.&lt;/p&gt;
&lt;h2 id=&#34;computer-use-letting-the-agent-operate-the-desktop&#34;&gt;Computer Use: letting the Agent operate the desktop
&lt;/h2&gt;&lt;p&gt;Another important selling point of &lt;code&gt;cc-haha&lt;/code&gt; is Computer Use.&lt;/p&gt;
&lt;p&gt;The project docs say this feature is a heavily modified version of the Computer Use implementation in the leaked Claude Code source. The official implementation depends on Anthropic&amp;rsquo;s private native modules, such as &lt;code&gt;@ant/computer-use-swift&lt;/code&gt; and &lt;code&gt;@ant/computer-use-input&lt;/code&gt;, which are not publicly available. &lt;code&gt;cc-haha&lt;/code&gt; replaces the low-level operation layer with a Python bridge using public libraries such as &lt;code&gt;pyautogui&lt;/code&gt;, &lt;code&gt;mss&lt;/code&gt;, and &lt;code&gt;pyobjc&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Computer Use supports operations such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Screenshot: &lt;code&gt;screenshot&lt;/code&gt;, &lt;code&gt;zoom&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Mouse: click, drag, move, scroll, and read cursor position&lt;/li&gt;
&lt;li&gt;Keyboard: type text, press keys, hold keys&lt;/li&gt;
&lt;li&gt;Applications: open applications, switch displays&lt;/li&gt;
&lt;li&gt;Permissions: request app access, list granted applications&lt;/li&gt;
&lt;li&gt;Clipboard: read and write clipboard content&lt;/li&gt;
&lt;li&gt;Other: wait, batch operations&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Its workflow is a &amp;ldquo;screenshot - analyze - act&amp;rdquo; loop:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The model receives a user request.&lt;/li&gt;
&lt;li&gt;It calls &lt;code&gt;screenshot&lt;/code&gt; to capture the screen.&lt;/li&gt;
&lt;li&gt;The model uses vision to identify buttons, input fields, and coordinates.&lt;/li&gt;
&lt;li&gt;It calls click, typing, or application tools.&lt;/li&gt;
&lt;li&gt;It screenshots again to confirm the result, then continues.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;From the docs, the fully supported platform is mainly macOS, including Apple Silicon and Intel. Windows / Linux are theoretically possible, but the &lt;code&gt;pyobjc&lt;/code&gt; app-management parts need platform-specific replacements and are not fully adapted yet.&lt;/p&gt;
&lt;p&gt;Runtime requirements include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Bun &amp;gt;= 1.1.0&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Python &amp;gt;= 3.8&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;macOS Accessibility permission&lt;/li&gt;
&lt;li&gt;macOS Screen Recording permission&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This kind of feature is powerful, but it also raises permission risk. When letting AI operate desktop apps, it is better to authorize only the applications that are clearly needed and avoid leaving sensitive content open in unrelated windows.&lt;/p&gt;
&lt;h2 id=&#34;multi-model-access-through-an-anthropic-compatible-layer&#34;&gt;Multi-model access through an Anthropic-compatible layer
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;cc-haha&lt;/code&gt; still communicates using the Anthropic Messages API protocol. The project docs recommend using LiteLLM as a protocol conversion proxy.&lt;/p&gt;
&lt;p&gt;The basic structure is:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude-code-haha ──Anthropic协议──▶ LiteLLM Proxy ──OpenAI协议──▶ 目标模型 API
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;In other words, &lt;code&gt;cc-haha&lt;/code&gt; sends Anthropic Messages API requests, LiteLLM converts them to formats such as OpenAI Chat Completions, and then forwards them to OpenAI, DeepSeek, Ollama, or other model services.&lt;/p&gt;
&lt;p&gt;The LiteLLM install command in the docs is:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install &lt;span class=&#34;s1&#34;&gt;&amp;#39;litellm[proxy]&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Then you can configure OpenAI, DeepSeek, Ollama, and other models in &lt;code&gt;litellm_config.yaml&lt;/code&gt;. After the proxy starts, set these values in &lt;code&gt;.env&lt;/code&gt; or &lt;code&gt;~/.claude/settings.json&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;9
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ANTHROPIC_AUTH_TOKEN&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;sk-anything
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ANTHROPIC_BASE_URL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;http://localhost:4000
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ANTHROPIC_MODEL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;gpt-4o
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ANTHROPIC_DEFAULT_SONNET_MODEL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;gpt-4o
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ANTHROPIC_DEFAULT_HAIKU_MODEL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;gpt-4o
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ANTHROPIC_DEFAULT_OPUS_MODEL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;gpt-4o
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;API_TIMEOUT_MS&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;3000000&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;DISABLE_TELEMETRY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;There are a few practical caveats:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;drop_params: true&lt;/code&gt; is important, because Anthropic parameters such as &lt;code&gt;thinking&lt;/code&gt; and &lt;code&gt;cache_control&lt;/code&gt; do not exist in the OpenAI API.&lt;/li&gt;
&lt;li&gt;Extended Thinking is an Anthropic-specific feature and is unavailable with third-party models.&lt;/li&gt;
&lt;li&gt;Prompt Caching will not work in the Anthropic-native way.&lt;/li&gt;
&lt;li&gt;Tool calls must be converted from Anthropic &lt;code&gt;tool_use&lt;/code&gt; to OpenAI function calling, so complex tool use may have compatibility issues.&lt;/li&gt;
&lt;li&gt;Small local Ollama models may not handle this tool-heavy workflow reliably.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So multi-model access can work, but that does not mean every model will feel the same. &lt;code&gt;cc-haha&lt;/code&gt; still demands strong tool use, code understanding, and long-context ability from the model.&lt;/p&gt;
&lt;h2 id=&#34;who-is-it-for&#34;&gt;Who is it for?
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;cc-haha&lt;/code&gt; is better suited for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;People already familiar with Claude Code who want desktop session management.&lt;/li&gt;
&lt;li&gt;Users who often work across multiple repositories, branches, and AI sessions.&lt;/li&gt;
&lt;li&gt;People who want to inspect AI file changes, diffs, and workspace status in a side panel.&lt;/li&gt;
&lt;li&gt;Users who want to experiment with Computer Use and let an Agent operate desktop apps.&lt;/li&gt;
&lt;li&gt;People who want to connect OpenAI, DeepSeek, Ollama, or other models through an Anthropic-compatible protocol.&lt;/li&gt;
&lt;li&gt;Users who need phone or IM-based remote viewing and permission approval.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It is less suitable for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Users who only want the stable official Claude Code experience.&lt;/li&gt;
&lt;li&gt;People who cannot accept the leaked-source background and copyright uncertainty.&lt;/li&gt;
&lt;li&gt;Users who do not want to grant high system permissions to local tools.&lt;/li&gt;
&lt;li&gt;Teams that need enterprise compliance, auditability, and official support.&lt;/li&gt;
&lt;li&gt;Users unfamiliar with API keys, proxies, model compatibility, and local service configuration.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;risks-and-boundaries&#34;&gt;Risks and boundaries
&lt;/h2&gt;&lt;p&gt;This article cannot only talk about features. It also has to talk about risk.&lt;/p&gt;
&lt;p&gt;The origin of &lt;code&gt;cc-haha&lt;/code&gt; means it is not an ordinary community reimplementation. The README clearly states that it is based on leaked Claude Code source code and that the original source belongs to Anthropic. This creates uncertainty around copyright, compliance, and long-term maintenance.&lt;/p&gt;
&lt;p&gt;Computer Use, H5 remote access, IM integration, and local permission approval are also high-permission capabilities. The more convenient they are, the more clearly boundaries need to be defined:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Do not expose H5 access on untrusted networks.&lt;/li&gt;
&lt;li&gt;Do not treat the token as a long-term public login credential.&lt;/li&gt;
&lt;li&gt;Do not grant the Agent access to unrelated sensitive applications.&lt;/li&gt;
&lt;li&gt;Do not casually use it in production or company compliance environments.&lt;/li&gt;
&lt;li&gt;Do not expose third-party model proxy settings or API keys in public repositories.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If your goal is to study AI coding tool architecture, desktop workflows, and Computer Use implementation, it is a useful reference. If you want to put it into a long-term production workflow, evaluate legal, permission, security, and maintenance risks first.&lt;/p&gt;
&lt;h2 id=&#34;summary&#34;&gt;Summary
&lt;/h2&gt;&lt;p&gt;The most interesting thing about &lt;code&gt;cc-haha&lt;/code&gt; is not whether it can replicate Claude Code. It is that it pushes Claude Code-style AI coding tools toward a desktop workbench form.&lt;/p&gt;
&lt;p&gt;Sessions, projects, Worktree, diffs, permissions, remote access, Computer Use, model providers, scheduled tasks, and token usage are all brought into one desktop experience. That suggests the next step for AI coding tools is not only stronger models, but also a more complete workflow interface.&lt;/p&gt;
&lt;p&gt;But its boundaries are also clear: it is not an official Anthropic product, it has a sensitive source-code background, and its high-permission features require caution. A better way to view it is as a project for observing where AI coding tools may evolve, not as a careless replacement for official Claude Code.&lt;/p&gt;
&lt;h2 id=&#34;references&#34;&gt;References
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;GitHub repository: &lt;a class=&#34;link&#34; href=&#34;https://github.com/NanmiCoder/cc-haha&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/NanmiCoder/cc-haha&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Latest release: &lt;a class=&#34;link&#34; href=&#34;https://github.com/NanmiCoder/cc-haha/releases/tag/v0.2.6&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/NanmiCoder/cc-haha/releases/tag/v0.2.6&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Computer Use documentation: &lt;a class=&#34;link&#34; href=&#34;https://github.com/NanmiCoder/cc-haha/blob/main/docs/computer-use.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/NanmiCoder/cc-haha/blob/main/docs/computer-use.md&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Third-party model documentation: &lt;a class=&#34;link&#34; href=&#34;https://github.com/NanmiCoder/cc-haha/blob/main/docs/guide/third-party-models.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/NanmiCoder/cc-haha/blob/main/docs/guide/third-party-models.md&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Codex /goal vs Claude Code /goal: running long tasks until they are done</title>
        <link>https://knightli.com/en/2026/05/14/codex-goal-vs-claude-code-goal/</link>
        <pubDate>Thu, 14 May 2026 22:25:31 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/14/codex-goal-vs-claude-code-goal/</guid>
        <description>&lt;p&gt;&lt;code&gt;/goal&lt;/code&gt; is becoming an important command in AI coding tools.&lt;/p&gt;
&lt;p&gt;It is not about making the model write a few more lines of code. It solves a more practical problem: when a task has clear completion conditions, can the agent keep going until those conditions are met, instead of stopping after every turn and waiting for the user to say &amp;ldquo;continue&amp;rdquo;?&lt;/p&gt;
&lt;p&gt;Codex CLI has already added an experimental &lt;code&gt;/goal&lt;/code&gt; command in its official docs. Claude Code has also published its own &lt;code&gt;/goal&lt;/code&gt; documentation, describing it as an automation capability that can keep working across multiple turns. The names are the same, but the product direction is not exactly the same.&lt;/p&gt;
&lt;h2 id=&#34;what-problem-does-goal-solve&#34;&gt;What problem does &lt;code&gt;/goal&lt;/code&gt; solve?
&lt;/h2&gt;&lt;p&gt;Ordinary AI coding conversations usually work as a one-turn-at-a-time loop:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The user describes a task.&lt;/li&gt;
&lt;li&gt;The agent analyzes, edits code, and runs tests.&lt;/li&gt;
&lt;li&gt;The agent reports the result.&lt;/li&gt;
&lt;li&gt;The user decides what to do next.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;That workflow is fine for short tasks. But for migrations, refactors, test fixes, or issue backlog cleanup, it gets fragmented. The agent may move forward a little, then stop and wait for you to type &amp;ldquo;continue&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;/goal&lt;/code&gt; changes the question from &amp;ldquo;what should you do next?&amp;rdquo; to &amp;ldquo;what final state counts as done?&amp;rdquo; For example:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/goal 完成登录模块迁移，所有 auth 测试通过，lint 无报错
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;This kind of target naturally fits long tasks because it has a clear endpoint: tests pass, the build succeeds, files are split, a queue is empty, or acceptance criteria are satisfied.&lt;/p&gt;
&lt;h2 id=&#34;codex-goal-experimental-and-attached-to-the-current-thread&#34;&gt;Codex &lt;code&gt;/goal&lt;/code&gt;: experimental and attached to the current thread
&lt;/h2&gt;&lt;p&gt;OpenAI&amp;rsquo;s Codex CLI documentation marks &lt;code&gt;/goal&lt;/code&gt; as experimental. It is not a stable default capability and requires &lt;code&gt;features.goals&lt;/code&gt; to be enabled first.&lt;/p&gt;
&lt;p&gt;There are two ways to enable it:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/experimental
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Or add this to &lt;code&gt;config.toml&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-toml&#34; data-lang=&#34;toml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;features&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;goals&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Once enabled, you can use it like this:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/goal Finish the migration and keep tests green
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Common commands include:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/goal
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/goal pause
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/goal resume
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/goal clear
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;According to OpenAI&amp;rsquo;s docs, Codex attaches the goal to the current active thread and keeps tracking that target while a larger task continues.&lt;/p&gt;
&lt;p&gt;One detail matters here: the official wording for Codex &lt;code&gt;/goal&lt;/code&gt; is restrained. It emphasizes setting an experimental goal for long-running work and attaching the goal to the current thread, but it does not describe, in the same level of detail as Claude Code&amp;rsquo;s docs, an independent evaluator that automatically checks every turn and starts the next one. So for now, it is better to treat Codex &lt;code&gt;/goal&lt;/code&gt; as an experimental long-task goal mechanism, not a fully stable unattended execution mode.&lt;/p&gt;
&lt;h2 id=&#34;claude-code-goal-multi-turn-execution-driven-by-completion-conditions&#34;&gt;Claude Code &lt;code&gt;/goal&lt;/code&gt;: multi-turn execution driven by completion conditions
&lt;/h2&gt;&lt;p&gt;Claude Code&amp;rsquo;s &lt;code&gt;/goal&lt;/code&gt; documentation is more explicit: after the user sets a completion condition, Claude keeps working across turns until that condition is met.&lt;/p&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/goal all tests in test/auth pass and the lint step is clean
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Claude Code&amp;rsquo;s mechanism is roughly:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;After the current turn finishes, control is not immediately returned to the user.&lt;/li&gt;
&lt;li&gt;A small, fast model checks whether the goal condition has already been met.&lt;/li&gt;
&lt;li&gt;If it has not been met, Claude automatically starts the next turn.&lt;/li&gt;
&lt;li&gt;If it has been met, the goal is cleared automatically and the completion status is recorded in the transcript.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This makes Claude Code&amp;rsquo;s &lt;code&gt;/goal&lt;/code&gt; more like &amp;ldquo;auto-continue until the completion condition is satisfied.&amp;rdquo; It does not merely pin a target to the conversation; it gives an independent evaluation step the decision of whether to continue.&lt;/p&gt;
&lt;p&gt;Claude Code also supports checking status directly:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/goal
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;The status shows the goal condition, elapsed time, evaluated turn count, token usage, and the evaluator&amp;rsquo;s latest reason.&lt;/p&gt;
&lt;p&gt;To stop early, use:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/goal clear
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;stop&lt;/code&gt;, &lt;code&gt;off&lt;/code&gt;, &lt;code&gt;reset&lt;/code&gt;, &lt;code&gt;none&lt;/code&gt;, and &lt;code&gt;cancel&lt;/code&gt; also work as clearing aliases. After a goal is enabled, if the session is interrupted and later resumed with &lt;code&gt;--resume&lt;/code&gt; or &lt;code&gt;--continue&lt;/code&gt;, an active goal can be restored. However, elapsed time, turn count, and token baselines are recalculated.&lt;/p&gt;
&lt;h2 id=&#34;the-biggest-difference&#34;&gt;The biggest difference
&lt;/h2&gt;&lt;p&gt;Both Codex and Claude Code are pushing AI coding from single-turn answers toward long-running task execution, but their &lt;code&gt;/goal&lt;/code&gt; commands have different positioning.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Comparison&lt;/th&gt;
          &lt;th&gt;Codex CLI &lt;code&gt;/goal&lt;/code&gt;&lt;/th&gt;
          &lt;th&gt;Claude Code &lt;code&gt;/goal&lt;/code&gt;&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Status&lt;/td&gt;
          &lt;td&gt;experimental&lt;/td&gt;
          &lt;td&gt;documented on a dedicated official page&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Enablement&lt;/td&gt;
          &lt;td&gt;requires &lt;code&gt;features.goals&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;usable directly in a trusted workspace&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Goal scope&lt;/td&gt;
          &lt;td&gt;current active thread&lt;/td&gt;
          &lt;td&gt;current session&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Common operations&lt;/td&gt;
          &lt;td&gt;set / view / pause / resume / clear&lt;/td&gt;
          &lt;td&gt;set / view / clear&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Automatic evaluation&lt;/td&gt;
          &lt;td&gt;docs emphasize attachment and tracking&lt;/td&gt;
          &lt;td&gt;docs explicitly describe evaluator checks after each turn&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Auto-continuation&lt;/td&gt;
          &lt;td&gt;official wording is restrained&lt;/td&gt;
          &lt;td&gt;starts the next turn automatically when conditions are unmet&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Best fit&lt;/td&gt;
          &lt;td&gt;keeping a long-term target in a Codex task&lt;/td&gt;
          &lt;td&gt;letting Claude Code keep moving toward completion conditions&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;In short, Codex &lt;code&gt;/goal&lt;/code&gt; is closer to &amp;ldquo;attach an experimental long-term target to the current thread.&amp;rdquo; Claude Code &lt;code&gt;/goal&lt;/code&gt; is closer to &amp;ldquo;set a verifiable stop condition for the current session and let it keep working until satisfied.&amp;rdquo;&lt;/p&gt;
&lt;h2 id=&#34;how-to-write-a-good-goal&#34;&gt;How to write a good &lt;code&gt;/goal&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;Whichever tool you use, &lt;code&gt;/goal&lt;/code&gt; is not a good place for vague wishes.&lt;/p&gt;
&lt;p&gt;Not a great goal:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/goal 把项目优化一下
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;A better goal:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/goal 将 payment 模块迁移到新 API，npm test -- payment 退出码为 0，git diff 只包含 payment 相关文件
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;A good goal usually includes three things:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;A clear completed state.&lt;/li&gt;
&lt;li&gt;An executable validation method.&lt;/li&gt;
&lt;li&gt;Boundaries that must be respected.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If the goal is large, add a stop condition:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/goal 修复 eslint 报错，npm run lint 退出码为 0；如果超过 20 轮仍未完成，停止并总结剩余问题
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;This matters. The stronger &lt;code&gt;/goal&lt;/code&gt; becomes, the more it needs boundaries. Otherwise, the agent may modify too many files, run too long, consume too many tokens, or keep pushing forward on a question that should have been paused for human input.&lt;/p&gt;
&lt;h2 id=&#34;when-goal-is-a-good-fit&#34;&gt;When &lt;code&gt;/goal&lt;/code&gt; is a good fit
&lt;/h2&gt;&lt;p&gt;Good fits:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Test fixes: until specific tests pass.&lt;/li&gt;
&lt;li&gt;Code migrations: until all call sites are updated and compilation succeeds.&lt;/li&gt;
&lt;li&gt;Batch cleanup: until a class of lint or type errors is reduced to zero.&lt;/li&gt;
&lt;li&gt;Documentation completion: until all specified modules have documentation.&lt;/li&gt;
&lt;li&gt;Issue queue handling: until every issue under a tag is handled or clearly classified.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Poor fits:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The requirement itself is still unclear.&lt;/li&gt;
&lt;li&gt;The task needs frequent product judgment.&lt;/li&gt;
&lt;li&gt;It involves high-risk deletion, data migration, or permission changes.&lt;/li&gt;
&lt;li&gt;Acceptance can only be judged subjectively.&lt;/li&gt;
&lt;li&gt;The task spans many unrelated modules.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A practical rule: if you can write &amp;ldquo;which command to run, what result to see, and which files must not be touched,&amp;rdquo; it is a good candidate for &lt;code&gt;/goal&lt;/code&gt;. If you can only write &amp;ldquo;make this better,&amp;rdquo; ordinary conversation, plan mode, or human review is still safer.&lt;/p&gt;
&lt;h2 id=&#34;what-this-means-for-ai-coding-tools&#34;&gt;What this means for AI coding tools
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;/goal&lt;/code&gt; points to a clear direction: AI coding tools are moving from interactive assistants toward continuously executable work units.&lt;/p&gt;
&lt;p&gt;In the past, using an agent often meant staying nearby. If it got stuck, you prompted it. If tests finished, you told it to continue. If errors appeared, you issued another command. &lt;code&gt;/goal&lt;/code&gt; compresses that interaction into a completion condition and lets the agent decide what the next turn should do.&lt;/p&gt;
&lt;p&gt;But this also raises the bar for users. Writing prompts is no longer just describing a task; it also means defining acceptance criteria, validation commands, modification boundaries, and stop rules. In other words, the user&amp;rsquo;s job shifts from &amp;ldquo;keep telling it to continue&amp;rdquo; to &amp;ldquo;define what done means.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;The fact that both Codex and Claude Code have reached &lt;code&gt;/goal&lt;/code&gt; shows that long-running agents are no longer only for background tasks or cloud queues. Local terminal coding tools now also need stronger autonomous progress.&lt;/p&gt;
&lt;h2 id=&#34;summary&#34;&gt;Summary
&lt;/h2&gt;&lt;p&gt;Codex CLI and Claude Code both have &lt;code&gt;/goal&lt;/code&gt;, but at this stage they should not be treated as the same feature.&lt;/p&gt;
&lt;p&gt;Codex &lt;code&gt;/goal&lt;/code&gt; is still experimental, requires &lt;code&gt;features.goals&lt;/code&gt;, and is better understood as a way to maintain a long-term target in the current Codex thread. Claude Code &lt;code&gt;/goal&lt;/code&gt; more explicitly connects completion conditions with auto-continuation, using an independent evaluator to decide whether to keep going.&lt;/p&gt;
&lt;p&gt;For everyday development, this kind of command is best for engineering tasks with clear acceptance criteria. It does not replace product judgment or code review, but it can reduce the repetitive &amp;ldquo;continue,&amp;rdquo; &amp;ldquo;run it again,&amp;rdquo; and &amp;ldquo;fix until tests pass&amp;rdquo; loop inside long tasks.&lt;/p&gt;
&lt;p&gt;The real skill is not memorizing the command. It is learning how to write tasks as clear, verifiable, stoppable goals.&lt;/p&gt;
&lt;h2 id=&#34;references&#34;&gt;References
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;OpenAI Codex CLI Slash Commands: &lt;a class=&#34;link&#34; href=&#34;https://developers.openai.com/codex/cli/slash-commands&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://developers.openai.com/codex/cli/slash-commands&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Claude Code Goal documentation: &lt;a class=&#34;link&#34; href=&#34;https://code.claude.com/docs/en/goal&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://code.claude.com/docs/en/goal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Why DeepSeek Became the Cost-Saving Key in This Round of AI Coding Tools</title>
        <link>https://knightli.com/en/2026/05/11/deepseek-ai-coding-cost-saving/</link>
        <pubDate>Mon, 11 May 2026 04:59:00 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/11/deepseek-ai-coding-cost-saving/</guid>
        <description>&lt;p&gt;In this round of AI coding tool competition, the surface battle is about model capability, plugin ecosystems, and agent automation. But once you actually use these tools, the first wall you hit is cost.&lt;/p&gt;
&lt;p&gt;Claude Code, Codex, OpenClaw, and Superpowers are all useful, but they share one trait: once a task becomes complex, they eat tokens aggressively. They need to read the project, build a plan, call tools, summarize context, repeatedly check results, and sometimes launch multiple subtasks. The smarter the model and the more automated the workflow, the easier it is for the bill to quietly grow.&lt;/p&gt;
&lt;p&gt;That is why DeepSeek has become important in this cycle. Not merely because it can write code, but because its long context and cache pricing happen to hit the most expensive part of AI coding tools.&lt;/p&gt;
&lt;h2 id=&#34;why-agent-tools-burn-so-many-tokens&#34;&gt;Why Agent Tools Burn So Many Tokens
&lt;/h2&gt;&lt;p&gt;Traditional chat-style coding assistants usually work in question-and-answer mode. You ask how to write a function, and the model returns a code snippet. This still costs tokens, but it is relatively controllable.&lt;/p&gt;
&lt;p&gt;Agent tools are different. They do not just answer questions. They enter the project like a temporary engineer:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;scan directories and key files;&lt;/li&gt;
&lt;li&gt;understand the requirement and existing architecture;&lt;/li&gt;
&lt;li&gt;make a plan;&lt;/li&gt;
&lt;li&gt;modify files;&lt;/li&gt;
&lt;li&gt;run commands or tests;&lt;/li&gt;
&lt;li&gt;keep fixing based on errors;&lt;/li&gt;
&lt;li&gt;summarize what changed at the end.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;During this process, the model repeatedly reads the same context. Project descriptions, code snippets, tool outputs, conversation history, plans, and error logs all get placed back into the context. Once the task is a little complex, hundreds of thousands of tokens can disappear quickly.&lt;/p&gt;
&lt;p&gt;If you add more aggressive plugins, the cost becomes even more obvious. Some OpenCode or Claude Code enhancement tools may organize a whole agent team by default. You only wanted to change a small feature, but it may still start planning, review, execution, and retrospective steps. The task may look more &amp;ldquo;intelligent&amp;rdquo;, but the token count keeps climbing.&lt;/p&gt;
&lt;h2 id=&#34;the-advantage-of-superpowers-is-on-demand-activation&#34;&gt;The Advantage of Superpowers Is On-Demand Activation
&lt;/h2&gt;&lt;p&gt;One advantage of tools like Superpowers is that they do not force a full agent workflow onto every task.&lt;/p&gt;
&lt;p&gt;Most of the time, you can still let Claude Code, OpenCode, or Codex work in their normal mode. Only when you explicitly call a skill, such as brainstorming, planning, executing a plan, or doing a retrospective, does it enter a heavier automation flow.&lt;/p&gt;
&lt;p&gt;That matters for cost.&lt;/p&gt;
&lt;p&gt;AI coding should not use heavy artillery for every task. Changing one config line, checking one error, or writing a small script can be handled through ordinary conversation. Only complex refactors, cross-file changes, long-document processing, and multi-round validation deserve a full agent workflow.&lt;/p&gt;
&lt;p&gt;The stronger the tool, the more you need to control when it triggers. Otherwise, more automation simply means more waste.&lt;/p&gt;
&lt;h2 id=&#34;deepseeks-key-advantage-is-cheap-cache-hits&#34;&gt;DeepSeek&amp;rsquo;s Key Advantage Is Cheap Cache Hits
&lt;/h2&gt;&lt;p&gt;One important reason DeepSeek fits these agent tools is its low cache-hit cost.&lt;/p&gt;
&lt;p&gt;AI coding tasks contain a lot of repeated prefixes: project background, system prompts, tool instructions, file content, and earlier conversation turns often appear again in later requests. If the model service supports prompt caching, those repeated parts become much cheaper after a cache hit.&lt;/p&gt;
&lt;p&gt;For many models, a cache hit is only somewhat cheaper than a miss, perhaps around one third of the original price. DeepSeek&amp;rsquo;s advantage is that the gap after a cache hit can be much larger. For long-context, multi-round agent workflows that repeatedly read the same project, this gap shows up directly on the bill.&lt;/p&gt;
&lt;p&gt;In other words, DeepSeek is not necessarily the strongest answer on every single turn. But in scenarios with long tasks, many rounds, and repeated context reads, its cost structure is unusually suitable for AI coding.&lt;/p&gt;
&lt;h2 id=&#34;long-context-makes-claude-code-more-useful&#34;&gt;Long Context Makes Claude Code More Useful
&lt;/h2&gt;&lt;p&gt;When Claude Code or similar tools are connected to DeepSeek V4, another clear advantage is long context.&lt;/p&gt;
&lt;p&gt;AI coding tools fear insufficient context. Once context runs short, compression becomes frequent. Once compression becomes frequent, previously read details may be lost. The model may start forgetting the project structure, constraints, or why a certain file was changed, and quality declines afterward.&lt;/p&gt;
&lt;p&gt;DeepSeek V4&amp;rsquo;s long-context capability makes it better suited for code repositories, document batch processing, subtitle translation, and site article cleanup. Especially when connected to tools like Claude Code or OpenClaw, the right configuration can delay context compression and preserve more project detail.&lt;/p&gt;
&lt;p&gt;That is why some tasks feel &amp;ldquo;durable&amp;rdquo; when run on DeepSeek. It may not be dazzling at every step, but it can tolerate long-running, low-cost, repeated calls.&lt;/p&gt;
&lt;h2 id=&#34;how-to-split-work-between-v4-pro-and-v4-flash&#34;&gt;How to Split Work Between V4 Pro and V4 Flash
&lt;/h2&gt;&lt;p&gt;DeepSeek V4 Pro and V4 Flash should not be mixed casually.&lt;/p&gt;
&lt;p&gt;For simple tasks, &lt;code&gt;DeepSeek V4 Flash&lt;/code&gt; is usually a better fit. It is fast and cheap, and is often enough for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;subtitle translation;&lt;/li&gt;
&lt;li&gt;document cleanup;&lt;/li&gt;
&lt;li&gt;ordinary script generation;&lt;/li&gt;
&lt;li&gt;small code edits;&lt;/li&gt;
&lt;li&gt;lightweight OpenClaw tasks;&lt;/li&gt;
&lt;li&gt;simple site content processing.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For complex tasks, consider &lt;code&gt;DeepSeek V4 Pro&lt;/code&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;large-scale refactoring;&lt;/li&gt;
&lt;li&gt;multi-module code understanding;&lt;/li&gt;
&lt;li&gt;complex reasoning;&lt;/li&gt;
&lt;li&gt;long-chain agent tasks;&lt;/li&gt;
&lt;li&gt;high-risk code changes;&lt;/li&gt;
&lt;li&gt;engineering tasks that require stronger planning.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Many people want to attach the strongest model immediately, but that is often uneconomical. The practical way to use AI coding tools is to layer tasks: let the cheaper model handle a large amount of routine work, and reserve the expensive model for key decision points.&lt;/p&gt;
&lt;h2 id=&#34;minimax-doubao-and-deepseek-occupy-different-positions&#34;&gt;MiniMax, Doubao, and DeepSeek Occupy Different Positions
&lt;/h2&gt;&lt;p&gt;Among domestic models and plans, MiniMax, Doubao, Kimi, and DeepSeek each have their own place.&lt;/p&gt;
&lt;p&gt;MiniMax&amp;rsquo;s advantage is generous quota, low price, and broad functionality. It may not be the smartest coding model, but it is cost-effective for translation, lightweight cleanup, and batch processing. For example, batch subtitle processing, format conversion, and simple proofreading are good fits for MiniMax-style plans.&lt;/p&gt;
&lt;p&gt;Doubao&amp;rsquo;s advantage is a broader tool ecosystem: image, video, search, TTS, possible STT, and embedding can be connected together. It feels more like a comprehensive toolbox.&lt;/p&gt;
&lt;p&gt;DeepSeek&amp;rsquo;s position is clearer: text, code, long context, and low-cost caching. It lacks a complete image generation, voice, and video ecosystem, and its weaknesses are obvious. But in AI coding and long-text agent workflows, its strengths are long enough to matter.&lt;/p&gt;
&lt;p&gt;So this is not about one tool replacing another. It is about splitting the task and using each tool where it fits.&lt;/p&gt;
&lt;h2 id=&#34;saving-money-is-not-just-choosing-a-cheap-model&#34;&gt;Saving Money Is Not Just Choosing a Cheap Model
&lt;/h2&gt;&lt;p&gt;Saving money in AI coding does not mean simply switching every request to the cheapest model.&lt;/p&gt;
&lt;p&gt;The effective methods are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Do not start a heavy agent for simple tasks.&lt;/li&gt;
&lt;li&gt;Do not use Pro when Flash is enough.&lt;/li&gt;
&lt;li&gt;Use cache as much as possible for long tasks.&lt;/li&gt;
&lt;li&gt;Keep repeated context stable, so meaningless changes do not break cache hits.&lt;/li&gt;
&lt;li&gt;Let a cheaper model draft and batch-process first, then use a stronger model for key reviews.&lt;/li&gt;
&lt;li&gt;Tell the agent clearly not to repeat facts or summarize the same point again and again.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The last point matters more than it looks. AI tools are prone to verbosity, and verbosity is not only a reading problem; it is also a cost problem. Putting &amp;ldquo;describe each fact once and state each opinion once&amp;rdquo; into the prompt can improve both article quality and token consumption.&lt;/p&gt;
&lt;h2 id=&#34;what-ai-coding-workflows-deepseek-fits-best&#34;&gt;What AI Coding Workflows DeepSeek Fits Best
&lt;/h2&gt;&lt;p&gt;DeepSeek is best suited for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;reading long code repositories;&lt;/li&gt;
&lt;li&gt;lightweight multi-file edits;&lt;/li&gt;
&lt;li&gt;batch document cleanup;&lt;/li&gt;
&lt;li&gt;batch subtitle translation;&lt;/li&gt;
&lt;li&gt;Hugo article cleanup;&lt;/li&gt;
&lt;li&gt;agent plan execution;&lt;/li&gt;
&lt;li&gt;low-cost automation with lots of repeated context.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It is not the best fit for every task. If you need especially strong frontend taste, complex product judgment, or cross-modal creation, you may still need Claude, GPT, Gemini, Doubao, or other tools.&lt;/p&gt;
&lt;p&gt;But whenever a task is long-text, long-context, repeated-call, and cost-sensitive, DeepSeek can easily become the first choice.&lt;/p&gt;
&lt;h2 id=&#34;summary&#34;&gt;Summary
&lt;/h2&gt;&lt;p&gt;In this round of AI coding tools, DeepSeek&amp;rsquo;s value is not just that a domestic model can write code. Its real value is that it addresses the most practical pain point of agent tools: long tasks are too expensive.&lt;/p&gt;
&lt;p&gt;Tools like Claude Code, OpenClaw, and Superpowers make the development process increasingly automated, but behind that automation are massive context reads and multi-round calls. Whoever can lower this part of the cost can make AI coding go from &amp;ldquo;fun once in a while&amp;rdquo; to &amp;ldquo;affordable every day&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;DeepSeek&amp;rsquo;s long context, low cache cost, and layered use of V4 Flash / V4 Pro put it in exactly that position.&lt;/p&gt;
&lt;p&gt;The real cost-saving key in this cycle is not avoiding good models. It is combining good models, cheap models, cache, and agent workflows properly. Once you understand that bill, AI coding tools can become real productivity rather than a beautiful but expensive toy.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>How to Choose AI Coding Plans: Convenience for Light Users, Flexibility for Heavy Users</title>
        <link>https://knightli.com/en/2026/05/10/ai-coding-plan-selection/</link>
        <pubDate>Sun, 10 May 2026 08:20:58 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/10/ai-coding-plan-selection/</guid>
        <description>&lt;p&gt;AI coding plans have changed quickly over the past six months. Many tools have shifted from message-style pricing to usage-based pricing, generous low-cost tiers have become tighter, and some overseas services have added stricter identity checks, regional limits, and usage rules.&lt;/p&gt;
&lt;p&gt;For developers, the question is no longer just which model is strongest. It is also about how much to spend every month, whether the quota is enough, whether the tool feels comfortable to use, and whether you can switch smoothly when a provider suddenly raises prices or changes the rules.&lt;/p&gt;
&lt;p&gt;A practical conclusion is this: light users should buy convenience, mid-level users should buy value, and heavy users should buy flexibility. The heavier your usage, the less you should bind models and tools together in a single plan.&lt;/p&gt;
&lt;h2 id=&#34;four-things-to-evaluate-before-choosing-a-plan&#34;&gt;Four things to evaluate before choosing a plan
&lt;/h2&gt;&lt;p&gt;In the past, people usually looked at three things when choosing an AI coding plan:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Whether the model was strong enough.&lt;/li&gt;
&lt;li&gt;Whether the response speed was stable.&lt;/li&gt;
&lt;li&gt;Whether the usage quota was sufficient.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Now there is a fourth factor: whether the model and the tool can be separated.&lt;/p&gt;
&lt;p&gt;The model provides reasoning ability, while the tool provides context management, file editing, agent orchestration, and workflow experience. Both matter, but they are better not fully tied together. For example, if you like Claude models, you can buy an official plan or connect the API to another tool. If you like a certain editor or agent environment, it is better if it can connect to different models instead of only its own.&lt;/p&gt;
&lt;p&gt;The value here is not complexity for its own sake. It is risk reduction. AI coding is one of the fastest-changing segments in the industry. A plan that feels generous today may switch pricing in two months, and a tool that feels good today may become worse after the next model integration change. Separating models from tools gives you room to move.&lt;/p&gt;
&lt;h2 id=&#34;overseas-plans-are-getting-tighter&#34;&gt;Overseas plans are getting tighter
&lt;/h2&gt;&lt;p&gt;Tools such as GitHub Copilot, Cursor, Windsurf, and Claude Code are still the primary choices for many users, but the trend is clear: cheap plans with unusually high quotas are becoming harder to sustain, and usage-based billing is becoming more common.&lt;/p&gt;
&lt;p&gt;Once services like GitHub Copilot lean more heavily on usage-based billing, the room for plan-based arbitrage becomes much smaller. For light users, these products are still convenient. But for people who frequently use agents, long context, and complex code tasks, actual consumption starts to look much closer to real API cost.&lt;/p&gt;
&lt;p&gt;Cursor and Windsurf essentially package model capability into an IDE experience. Their strength is convenience and a mature editor workflow. Their weakness is tighter tool lock-in. Once you become dependent on their proprietary agents, indexing, and automation flow, migration costs can rise quickly.&lt;/p&gt;
&lt;p&gt;Claude Code remains attractive in terms of experience and ecosystem attention, but overseas subscriptions, identity verification, regional restrictions, and the safety of relay services are all risks that users in China have to factor in. Third-party relay services may mix models, be unstable, expose user data, or even disappear entirely, which makes them hard to treat as long-term infrastructure for important work.&lt;/p&gt;
&lt;h2 id=&#34;the-strengths-and-limits-of-domestic-plans&#34;&gt;The strengths and limits of domestic plans
&lt;/h2&gt;&lt;p&gt;One advantage of domestic AI coding plans is that many of them are offered through APIs, which means they are less tightly bound to a specific tool. You can connect them to OpenCode, Cline, Continue, your own scripts, or internal agents.&lt;/p&gt;
&lt;p&gt;The weakness is also clear: if you want model strength, high speed, and generous quota all at once, very few plans can deliver everything together.&lt;/p&gt;
&lt;p&gt;GLM models are strong within the domestic model landscape, but throughput during peak hours may not be stable, which can make heavy tasks feel slow. Kimi is capable, but pricing and quota rules still need ongoing attention, especially whether backend quota is transparent. Models like MiniMax are friendlier in speed and allowance, which makes them suitable for light day-to-day tasks, batch jobs, and simpler coding help, though they may sit a tier lower on harder engineering reasoning. DeepSeek can be highly cost-effective when a new model is still in its promotional pricing period, but once that ends, you have to evaluate it again under normal pricing.&lt;/p&gt;
&lt;p&gt;That is why domestic options are often better used as a model pool: different tasks use different models, instead of betting everything on one model and one plan.&lt;/p&gt;
&lt;h2 id=&#34;light-users-choose-what-feels-convenient-and-do-not-overbuild&#34;&gt;Light users: choose what feels convenient and do not overbuild
&lt;/h2&gt;&lt;p&gt;If you only ask AI to tweak scripts, patch documentation, explain errors, or generate small tools once or twice a week, you probably do not need a complicated setup.&lt;/p&gt;
&lt;p&gt;For this kind of user, convenience matters most. Cursor, Windsurf, Trae, CodeBuddy, Tongyi Lingma, GitHub Copilot, and similar tools are all worth trying. The goal is not the absolute lowest unit cost. The goal is low friction: something stable inside your editor, decent completions, and easy recovery when it makes a mistake.&lt;/p&gt;
&lt;p&gt;Light users usually should not spend too much time building multi-layer API setups, relays, and proxy chains just to save a little money. The time cost, account risk, and debugging overhead are often more expensive than the subscription fee you save.&lt;/p&gt;
&lt;h2 id=&#34;mid-level-users-focus-on-value-but-also-on-portability&#34;&gt;Mid-level users: focus on value, but also on portability
&lt;/h2&gt;&lt;p&gt;If you use AI every day for coding, project edits, test generation, and document work, then quota and actual consumption start to matter much more.&lt;/p&gt;
&lt;p&gt;For this kind of user, it makes sense to separate the main tool from backup models. For example, one convenient IDE plan can handle daily editing, while a multi-tool API or aggregator plan can be used for longer-context and more complex agent tasks.&lt;/p&gt;
&lt;p&gt;Three things matter most at this stage:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Whether it supports third-party tool integration.&lt;/li&gt;
&lt;li&gt;Whether token or quota consumption is visible and understandable.&lt;/li&gt;
&lt;li&gt;Whether overage means throttling, downgrade, shutdown, or pure usage-based billing.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If a plan looks cheap but can only be used inside its own tool, you need to count migration cost as part of the real price. If a plan costs more but can plug into multiple tools, it may be the better long-term choice.&lt;/p&gt;
&lt;h2 id=&#34;heavy-users-do-not-lock-models-and-tools-together&#34;&gt;Heavy users: do not lock models and tools together
&lt;/h2&gt;&lt;p&gt;For heavy users, flexibility is the core requirement.&lt;/p&gt;
&lt;p&gt;When a person or team uses AI agents intensively every day, consumption grows very quickly. Repository search, long-context edits, multi-round debugging, and automated test repair can all multiply token use. Once you rely on a single plan, three problems show up easily:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The quota suddenly becomes too small.&lt;/li&gt;
&lt;li&gt;The pricing rule suddenly changes.&lt;/li&gt;
&lt;li&gt;A tool or model becomes temporarily unavailable.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;A more stable approach is to prepare a layered setup: one primary agent tool, one or more replaceable model endpoints, one low-cost model for simple work, and one high-capability model for harder tasks. Small routine work should not always go to the most expensive model, and critical work should not rely only on the cheapest model either.&lt;/p&gt;
&lt;p&gt;For heavy users, the ability for tools to connect to any model and for models to connect to any tool matters more than saving a few dozen dollars per month. The real expense is not the subscription itself. It is the cost of being locked into one ecosystem and having to rebuild your workflow later.&lt;/p&gt;
&lt;h2 id=&#34;a-more-stable-combination-strategy&#34;&gt;A more stable combination strategy
&lt;/h2&gt;&lt;p&gt;A relatively steady way to structure your setup looks like this:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Use a low-cost model for light tasks such as code explanations, small scripts, formatting, and simple documents.&lt;/li&gt;
&lt;li&gt;Use a value-oriented model for mid-level tasks such as standard feature work, test completion, and refactor suggestions.&lt;/li&gt;
&lt;li&gt;Use a stronger model for difficult tasks such as architecture changes, cross-file fixes, hard bugs, and long-context reasoning.&lt;/li&gt;
&lt;li&gt;Keep the tool layer open by choosing tools that can connect to APIs, export configuration, and switch models.&lt;/li&gt;
&lt;li&gt;Maintain a backup path so that when a main plan changes rules, you can switch quickly to another model or tool.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This may not be the absolute cheapest setup, but it is much more resilient. AI coding prices and quotas will keep changing. The thing worth investing in for the long term is a portable workflow, not a short-term deal that only looks unusually generous for a while.&lt;/p&gt;
&lt;h2 id=&#34;summary&#34;&gt;Summary
&lt;/h2&gt;&lt;p&gt;AI coding plans should not be judged by monthly price alone. Light users should keep things simple and choose a convenient tool. Mid-level users should start paying attention to quota, consumption, and portability. Heavy users should decouple models from tools and avoid being trapped in one ecosystem.&lt;/p&gt;
&lt;p&gt;The most useful thing to remember is that plans will change, models will change, and tools will change too. Keeping the choice in your own hands is the most important form of cost control in long-term AI coding work.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Claude Code Limits Doubled: Anthropic Uses SpaceX Compute Expansion to Ease Usage Constraints</title>
        <link>https://knightli.com/en/2026/05/09/anthropic-claude-code-higher-limits-spacex-compute/</link>
        <pubDate>Sat, 09 May 2026 10:59:48 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/09/anthropic-claude-code-higher-limits-spacex-compute/</guid>
        <description>&lt;p&gt;On May 6, 2026, Anthropic announced higher usage limits for Claude Code and the Claude API, along with a new compute partnership with SpaceX. For everyday users, the most direct change is more usable capacity for Claude Code. For developers and enterprises, the larger point is that Claude&amp;rsquo;s inference capacity is still expanding.&lt;/p&gt;
&lt;p&gt;The announcement has two parts:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Higher limits for Claude Code and the Claude API.&lt;/li&gt;
&lt;li&gt;New compute capacity from SpaceX data centers.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;what-changed-for-claude-code-limits&#34;&gt;What changed for Claude Code limits
&lt;/h2&gt;&lt;p&gt;Anthropic says the following three changes took effect on the day of the announcement:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Claude Code&amp;rsquo;s five-hour rate limit doubled for Pro, Max, Team, and seat-based Enterprise plans.&lt;/li&gt;
&lt;li&gt;Peak-hour limit reductions for Pro and Max Claude Code accounts were removed.&lt;/li&gt;
&lt;li&gt;Claude Opus API rate limits were significantly increased.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;In practical terms, if you often use Claude Code for long coding sessions, repository analysis, refactoring, debugging, or agent workflows, this change may reduce the number of times a task stops before it is finished.&lt;/p&gt;
&lt;p&gt;That does not mean unlimited usage. Claude Code is still affected by subscription plan, usage pattern, model, task length, context size, and platform policy. But Anthropic has clearly expanded the usable room compared with the previous limits.&lt;/p&gt;
&lt;h2 id=&#34;why-compute-affects-the-claude-code-experience&#34;&gt;Why compute affects the Claude Code experience
&lt;/h2&gt;&lt;p&gt;Tools like Claude Code consume more resources than ordinary chat. A single coding task can involve:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Reading many files.&lt;/li&gt;
&lt;li&gt;Long-context analysis.&lt;/li&gt;
&lt;li&gt;Multiple tool calls.&lt;/li&gt;
&lt;li&gt;Generating, editing, and checking code.&lt;/li&gt;
&lt;li&gt;Repeatedly running tests or explaining errors.&lt;/li&gt;
&lt;li&gt;Using Opus for difficult reasoning.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Behind those actions are not only tokens, but also inference capacity, concurrency, and scheduling resources. Users see limits, queues, or slower peak-hour behavior; the platform sees pressure between compute supply and demand.&lt;/p&gt;
&lt;p&gt;So Anthropic putting limit increases and a compute partnership in the same announcement is meaningful. It is saying that improving Claude Code is not just a plan-setting change, but also depends on more backend inference capacity.&lt;/p&gt;
&lt;h2 id=&#34;what-the-spacex-partnership-adds&#34;&gt;What the SpaceX partnership adds
&lt;/h2&gt;&lt;p&gt;Anthropic says it has signed an agreement with SpaceX to use the full compute capacity of SpaceX&amp;rsquo;s Colossus 1 data center. The announced capacity is over 300 megawatts, corresponding to more than 220,000 NVIDIA GPUs, and will be made available to Anthropic within a month.&lt;/p&gt;
&lt;p&gt;This added capacity is expected to directly improve available capacity for Claude Pro and Claude Max subscribers.&lt;/p&gt;
&lt;p&gt;Anthropic also says it is interested in future work with SpaceX on orbital AI compute. That is more of a long-term direction, not the same thing as the Claude Code limit increase users can feel immediately.&lt;/p&gt;
&lt;h2 id=&#34;anthropics-compute-footprint-is-getting-larger&#34;&gt;Anthropic&amp;rsquo;s compute footprint is getting larger
&lt;/h2&gt;&lt;p&gt;SpaceX is only one part of Anthropic&amp;rsquo;s recent compute expansion. The company also lists other partnerships:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Up to 5GW with Amazon, including nearly 1GW of new capacity planned to come online by the end of 2026.&lt;/li&gt;
&lt;li&gt;5GW with Google and Broadcom, expected to come online starting in 2027.&lt;/li&gt;
&lt;li&gt;A strategic partnership with Microsoft and NVIDIA, including $30 billion of Azure capacity.&lt;/li&gt;
&lt;li&gt;A $50 billion U.S. AI infrastructure investment with Fluidstack.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Anthropic also notes that Claude training and inference will use multiple types of AI hardware, including AWS Trainium, Google TPUs, and NVIDIA GPUs.&lt;/p&gt;
&lt;p&gt;The trend is clear: competition among leading model companies is not only about model names, benchmarks, and product features. It is also about power, data centers, GPUs, TPUs, networking, and global deployment capacity.&lt;/p&gt;
&lt;h2 id=&#34;practical-impact-for-claude-code-users&#34;&gt;Practical impact for Claude Code users
&lt;/h2&gt;&lt;p&gt;For developers, the most important change is the doubled five-hour Claude Code limit. It affects scenarios such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Reading large repositories.&lt;/li&gt;
&lt;li&gt;Multi-file refactoring.&lt;/li&gt;
&lt;li&gt;Bug investigation and test fixing.&lt;/li&gt;
&lt;li&gt;Code migration and dependency upgrades.&lt;/li&gt;
&lt;li&gt;Long-running agentic coding tasks.&lt;/li&gt;
&lt;li&gt;Multiple people using Claude Code in Team or Enterprise plans.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A common Claude Code problem has been reaching the limit while a task is still in progress. Higher limits make it easier for an agent to complete a full task instead of stopping halfway.&lt;/p&gt;
&lt;p&gt;For Pro and Max users, removing peak-hour limit reductions is also important. It means the experience may become more stable during busy periods, with less disruption from temporary tightening.&lt;/p&gt;
&lt;h2 id=&#34;what-it-means-for-api-users&#34;&gt;What it means for API users
&lt;/h2&gt;&lt;p&gt;The announcement also says Claude Opus API rate limits have increased significantly. For teams using Opus for difficult tasks, that usually means:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Higher concurrency.&lt;/li&gt;
&lt;li&gt;Fewer 429 rate-limit errors.&lt;/li&gt;
&lt;li&gt;Easier support for batch workloads.&lt;/li&gt;
&lt;li&gt;Better fit for long-context, complex reasoning, and agent workflows.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Actual limits still vary by account, organization, model, and plan. Before production deployment, teams should still check their Anthropic Console, rate limit documentation, and error logs.&lt;/p&gt;
&lt;h2 id=&#34;enterprise-and-regional-deployment-matter-more&#34;&gt;Enterprise and regional deployment matter more
&lt;/h2&gt;&lt;p&gt;Anthropic also notes that regulated industries such as finance, healthcare, and government increasingly need regional infrastructure to satisfy compliance and data residency requirements. Part of its capacity expansion will therefore be outside the United States, especially for inference capacity in Asia and Europe.&lt;/p&gt;
&lt;p&gt;This matters for enterprise customers. Once large model applications enter core business workflows, the questions are not only whether the model is good enough. They also include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Whether data stays in the required region.&lt;/li&gt;
&lt;li&gt;Whether industry compliance requirements are met.&lt;/li&gt;
&lt;li&gt;Whether peak-hour capacity is stable.&lt;/li&gt;
&lt;li&gt;Whether team-level and organization-level concurrency are supported.&lt;/li&gt;
&lt;li&gt;Whether audit, permission, and security controls are available.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;From that perspective, compute expansion is not just performance news. It can shape enterprise procurement and deployment decisions.&lt;/p&gt;
&lt;h2 id=&#34;summary&#34;&gt;Summary
&lt;/h2&gt;&lt;p&gt;Anthropic&amp;rsquo;s message is direct: Claude Code and Claude API usage constraints are being relaxed because new compute capacity is coming online.&lt;/p&gt;
&lt;p&gt;For everyday Claude Code users, the most important points are the doubled five-hour limit and the removal of peak-hour reductions for Pro and Max. For API and enterprise users, the main points are higher Opus rate limits and Anthropic&amp;rsquo;s longer-term compute partnerships with SpaceX, Amazon, Google, Microsoft, NVIDIA, and Fluidstack.&lt;/p&gt;
&lt;p&gt;AI tools are increasingly infrastructure services. Model quality matters, but stable capacity, regional compliance, limit policy, and cost control also shape the user experience.&lt;/p&gt;
&lt;p&gt;Reference:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.anthropic.com/news/higher-limits-spacex&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Anthropic: Higher usage limits for Claude and a compute deal with SpaceX&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>What to Do if Your Claude Account Is Suspended: Claude Code Limits and Appeal Guide</title>
        <link>https://knightli.com/en/2026/05/09/claude-account-suspension-code-limit-guide/</link>
        <pubDate>Sat, 09 May 2026 10:32:12 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/09/claude-account-suspension-code-limit-guide/</guid>
        <description>&lt;p&gt;When a Claude or Claude Code account is suddenly limited, suspended right after payment, loses Pro access, or shows lower-than-expected usage capacity, many users naturally look for quick explanations. The important point is that this should not be treated as a simple &amp;ldquo;change IP&amp;rdquo; or &amp;ldquo;create another account&amp;rdquo; technical problem. Account risk systems usually combine signals such as region, payment, device, login behavior, usage content, automation, and sharing patterns.&lt;/p&gt;
&lt;p&gt;A safer way to handle the issue is to first identify what kind of problem you actually have: normal quota limit, payment or subscription mismatch, Claude Code authorization issue, or an account-level action because Anthropic believes usage violated its policies or terms.&lt;/p&gt;
&lt;h2 id=&#34;first-distinguish-three-situations&#34;&gt;First, distinguish three situations
&lt;/h2&gt;&lt;p&gt;The first category is normal usage limits. Claude Pro, Max, Team, API, and Claude Code have different quota models. Peak-hour use, long context, coding tasks, and agent workflows may consume limits faster. Seeing &amp;ldquo;limit reached&amp;rdquo; does not necessarily mean your account is banned.&lt;/p&gt;
&lt;p&gt;The second category is subscription or authorization trouble. For example, payment may have succeeded but access has not refreshed, a mobile subscription may not match the web account, Claude Code may not be logged in correctly, or an old &lt;code&gt;ANTHROPIC_API_KEY&lt;/code&gt; may remain in your environment. Start by checking billing, login state, and client configuration.&lt;/p&gt;
&lt;p&gt;The third category is account suspension or termination. Typical signs include emails mentioning suspension, disabled account, or termination, or a login page that says the account is unavailable. In this case, do not repeatedly switch devices, networks, and accounts to try again. That may make the risk signals more complicated.&lt;/p&gt;
&lt;h2 id=&#34;common-triggers&#34;&gt;Common triggers
&lt;/h2&gt;&lt;p&gt;Anthropic&amp;rsquo;s help and privacy documentation mention common risk areas such as violations of the Usage Policy, account creation or use from unsupported regions, terms violations, repeated violations, unusual access, and abuse.&lt;/p&gt;
&lt;p&gt;In practice, risky patterns include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Account registration, login region, and payment region do not match.&lt;/li&gt;
&lt;li&gt;Long-term use of datacenter proxies, shared proxies, or frequent IP switching.&lt;/li&gt;
&lt;li&gt;Multiple people sharing one personal account.&lt;/li&gt;
&lt;li&gt;Frequent logins from many devices or regions in a short time.&lt;/li&gt;
&lt;li&gt;Automated high-frequency access to Claude.ai.&lt;/li&gt;
&lt;li&gt;Treating Claude Code as a shared service or resale entry point.&lt;/li&gt;
&lt;li&gt;Requesting content that clearly violates Anthropic&amp;rsquo;s policies.&lt;/li&gt;
&lt;li&gt;Conflicts among payment method, billing address, and account region.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The key is not that any single signal always causes suspension. The risk increases when multiple abnormal signals appear together.&lt;/p&gt;
&lt;h2 id=&#34;do-not-solve-it-by-evading-risk-controls&#34;&gt;Do not solve it by evading risk controls
&lt;/h2&gt;&lt;p&gt;Online advice often suggests &amp;ldquo;stable usage solutions&amp;rdquo; such as fingerprint browsers, device fingerprint reset, deleting local folders, changing environments, aligning time zone and language, or registering with a new email. Some of this is ordinary troubleshooting, but some is clearly aimed at evading platform risk controls.&lt;/p&gt;
&lt;p&gt;Do not treat &amp;ldquo;bypassing risk control&amp;rdquo; as the solution. Reasons are simple:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It may violate the terms of service.&lt;/li&gt;
&lt;li&gt;It may add more account risk signals.&lt;/li&gt;
&lt;li&gt;It does not solve root causes such as payment, region, or policy violations.&lt;/li&gt;
&lt;li&gt;For team or business use, it makes later appeals harder to explain.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If your goal is long-term stable use of Claude, the right direction is not disguise. It is making account information, region, payment, device, and usage real, consistent, and explainable.&lt;/p&gt;
&lt;h2 id=&#34;troubleshooting-claude-code-limits&#34;&gt;Troubleshooting Claude Code limits
&lt;/h2&gt;&lt;p&gt;Claude Code users can start with:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude --version
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude auth status
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;If you use an API key, confirm that the environment variable points to the right account:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$ANTHROPIC_API_KEY&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;In Windows PowerShell:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo &lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$env:ANTHROPIC_API_KEY&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;If you have used web login, OAuth, API keys, third-party clients, or different terminals, standardize the authentication method first. One tool may still be using old credentials.&lt;/p&gt;
&lt;p&gt;Also distinguish two cases:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Claude Code reached its usage limit: usually a quota or subscription issue.&lt;/li&gt;
&lt;li&gt;The account or organization is disabled: usually an account, organization, payment, or policy risk issue.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For the first, wait for quota refresh or adjust the plan. For the second, keep screenshots and emails, then use official support or appeal channels.&lt;/p&gt;
&lt;h2 id=&#34;compliant-stability-tips&#34;&gt;Compliant stability tips
&lt;/h2&gt;&lt;p&gt;To reduce the chance of account problems, start with the basics:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Use a normal account in a supported country or region.&lt;/li&gt;
&lt;li&gt;Keep login region, payment method, and billing information consistent when possible.&lt;/li&gt;
&lt;li&gt;Avoid sharing a personal account among multiple people.&lt;/li&gt;
&lt;li&gt;Do not use a personal Pro/Max account as a team API pool.&lt;/li&gt;
&lt;li&gt;Avoid frequent changes of IP, device, and browser environment.&lt;/li&gt;
&lt;li&gt;Do not use unknown third-party Claude clients.&lt;/li&gt;
&lt;li&gt;Avoid high-frequency automation against Claude.ai&amp;rsquo;s web interface.&lt;/li&gt;
&lt;li&gt;For business or team use, prefer Team, Enterprise, or API plans.&lt;/li&gt;
&lt;li&gt;Read Anthropic&amp;rsquo;s Usage Policy and avoid restricted use cases.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you genuinely need to use Claude on multiple devices, log in normally. Do not keep clearing environments, changing fingerprints, or switching proxies. Excessive environment manipulation can itself look abnormal.&lt;/p&gt;
&lt;h2 id=&#34;what-to-do-after-suspension&#34;&gt;What to do after suspension
&lt;/h2&gt;&lt;p&gt;If the account is already suspended, handle it in this order:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Check emails from Anthropic or Claude and confirm the stated reason or message type.&lt;/li&gt;
&lt;li&gt;Stop creating new accounts, changing networks, and retrying from more devices.&lt;/li&gt;
&lt;li&gt;Collect account email, subscription order, payment proof, and recent usage context.&lt;/li&gt;
&lt;li&gt;If you believe it is a mistake, submit an appeal or contact support through official channels.&lt;/li&gt;
&lt;li&gt;Explain the real usage scenario. Do not invent region, identity, or purpose.&lt;/li&gt;
&lt;li&gt;If payment is involved, ask separately about refund or subscription handling.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;When appealing, be specific. Mention whether you used Claude Code, switched devices, used a VPN, shared with a team, or connected third-party tools. The platform needs to identify the source of risk. A vague &amp;ldquo;I did nothing&amp;rdquo; usually does not help much.&lt;/p&gt;
&lt;h2 id=&#34;claims-to-treat-carefully&#34;&gt;Claims to treat carefully
&lt;/h2&gt;&lt;p&gt;Some posts or videos claim that &amp;ldquo;fixed fingerprints prevent bans&amp;rdquo;, &amp;ldquo;one browser prevents suspension completely&amp;rdquo;, &amp;ldquo;deleting one directory resets device identity&amp;rdquo;, or &amp;ldquo;matching IP, time zone, and language solves everything&amp;rdquo;. Do not accept these claims uncritically.&lt;/p&gt;
&lt;p&gt;Platform risk systems are usually multidimensional. They do not only look at browser fingerprint or IP. Account history, payment information, region policy, content, access frequency, automation patterns, client version, and API calling behavior may all matter. Single-signal disguise is not long-term stability and may create more inconsistencies.&lt;/p&gt;
&lt;p&gt;More importantly, many so-called anti-ban solutions are actually selling tools or services. What users really need is to identify the risk source, use the service compliantly, and preserve appeal evidence, not rely on third-party environment wrappers for account safety.&lt;/p&gt;
&lt;h2 id=&#34;summary&#34;&gt;Summary
&lt;/h2&gt;&lt;p&gt;Claude account suspension or Claude Code limitation is not always caused by one thing. It may be quota, subscription, authorization, or a combined risk signal involving region, payment, device, sharing, automation, or policy-sensitive content.&lt;/p&gt;
&lt;p&gt;The key to long-term stable use of Claude is not bypassing risk controls. It is compliant usage, consistent account information, stable access patterns, and formal plans for team use. If an account is suspended, stop manipulating the environment, preserve evidence, and use official appeal and support channels.&lt;/p&gt;
&lt;p&gt;References:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.anthropic.com/supported-countries&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Anthropic: Supported countries and regions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://support.claude.com/en/articles/8241253-i-ve-received-a-warning-that-my-usage-violates-the-acceptable-use-policy-what-should-i-do-differently&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Claude Help Center: Safeguards warnings and appeals&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://privacy.claude.com/en/articles/11186740-does-claude-use-my-location&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Anthropic Privacy Center: Does Claude use my location?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://support.anthropic.com/en/articles/12005017-using-agents-according-to-our-usage-policy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Anthropic Help Center: Using agents according to our Usage Policy&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>From PPT to Prototypes: Use Cases for Guizang PPT Skill and Huashu Design</title>
        <link>https://knightli.com/en/2026/05/09/guizang-ppt-skill-huashu-design-agent-skills/</link>
        <pubDate>Sat, 09 May 2026 08:34:23 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/09/guizang-ppt-skill-huashu-design-agent-skills/</guid>
        <description>&lt;p&gt;Two design-oriented Agent Skills made by Chinese developers are worth looking at side by side: &lt;a class=&#34;link&#34; href=&#34;https://github.com/op7418/guizang-ppt-skill&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;guizang-ppt-skill&lt;/a&gt; by Guizang, and &lt;a class=&#34;link&#34; href=&#34;https://github.com/alchaincyf/huashu-design&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;huashu-design&lt;/a&gt; by Huashu.&lt;/p&gt;
&lt;p&gt;They are not “design tools” in the traditional sense. Instead, they turn a design process, aesthetic preferences, checklists, and engineering templates into Skills that an Agent can execute. You are not opening a UI and slowly dragging elements around. You hand the requirement to an Agent such as Claude Code, Codex, or Cursor, and let it generate HTML, PPT, animation, or prototypes through a fixed workflow.&lt;/p&gt;
&lt;p&gt;The value of these projects is not that they let AI improvise. It is that they turn “how to make this not look bad” into a repeatable process.&lt;/p&gt;
&lt;h2 id=&#34;guizang-ppt-skill-focused-on-magazine-style-web-ppt&#34;&gt;guizang-ppt-skill: focused on magazine-style web PPT
&lt;/h2&gt;&lt;p&gt;Guizang&amp;rsquo;s &lt;code&gt;guizang-ppt-skill&lt;/code&gt; has a clear positioning: it generates single-file HTML, horizontally paged PPTs with a visual baseline of “digital magazine x e-ink.” It feels more like a layout system prepared for talks than a general-purpose design framework.&lt;/p&gt;
&lt;p&gt;The repository README lists these core capabilities:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Single-file HTML output, with no build step or server required. Open it directly in a browser.&lt;/li&gt;
&lt;li&gt;Horizontal page navigation, with support for keyboard, mouse wheel, touch swipes, bottom dots, and an ESC index.&lt;/li&gt;
&lt;li&gt;5 preset theme palettes, including Ink Classic, Indigo Porcelain, Forest Ink, Kraft Paper, and Dune.&lt;/li&gt;
&lt;li&gt;10 page layouts, including opening cover, section divider, big-number data poster, text-left-image-right, image grid, Pipeline, suspense question, large quote, Before/After comparison, and mixed text-image layout.&lt;/li&gt;
&lt;li&gt;Built-in templates, component notes, layout skeletons, theme configuration, and quality checklists.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It is suitable for offline sharing, internal industry talks, private salons, AI product launches, demo days, and presentation decks with a strong personal style. It is less suited to large tables, training courseware, or multi-person collaborative editing.&lt;/p&gt;
&lt;p&gt;This project makes a good tradeoff: it does not try to cover every design scenario, but narrows itself to “magazine-style PPT.” Theme colors are chosen from presets, and layouts have clear skeletons. That actually reduces the chance of the Agent drifting off course.&lt;/p&gt;
&lt;p&gt;If you often need to turn opinions, industry observations, or product launch content into a presentation deck, it can be highly practical.&lt;/p&gt;
&lt;p&gt;The install command is straightforward:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npx skills add https://github.com/op7418/guizang-ppt-skill --skill guizang-ppt-skill
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;huashu-design-a-fuller-html-native-design-workflow&#34;&gt;huashu-design: a fuller HTML-native design workflow
&lt;/h2&gt;&lt;p&gt;Huashu&amp;rsquo;s &lt;code&gt;huashu-design&lt;/code&gt; has broader coverage. Its goal is not just to make PPTs, but to treat HTML as a native design canvas and let an Agent produce deliverable design assets.&lt;/p&gt;
&lt;p&gt;The repository README lists these capabilities:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Clickable App or Web prototypes.&lt;/li&gt;
&lt;li&gt;HTML slides, plus editable PPTX export.&lt;/li&gt;
&lt;li&gt;Product launch animations, MP4, GIF, and versions with music.&lt;/li&gt;
&lt;li&gt;Multiple design directions shown side by side for comparison.&lt;/li&gt;
&lt;li&gt;Infographics, data visualizations, and PDF, PNG, SVG export.&lt;/li&gt;
&lt;li&gt;5-dimensional expert review, covering philosophical consistency, visual hierarchy, execution craft, functionality, and innovation.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Its core idea is to let the Agent understand the brand and assets first, then produce high-fidelity design. The project emphasizes a Core Asset Protocol: when dealing with a specific brand, first confirm the logo, product images, UI screenshots, color palette, fonts, and brand guidelines instead of guessing from memory.&lt;/p&gt;
&lt;p&gt;This matters. Many AI-generated designs look “like design,” but they do not look like a real product or brand. &lt;code&gt;huashu-design&lt;/code&gt; tries to solve that problem up front: find real assets first, then design.&lt;/p&gt;
&lt;p&gt;The install command is:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npx skills add alchaincyf/huashu-design
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;It is better suited to people who want to complete a fuller design delivery from the terminal: product prototypes, launch animations, presentations, infographics, and design reviews can all be handled inside one Agent workflow.&lt;/p&gt;
&lt;h2 id=&#34;the-biggest-difference-between-the-two&#34;&gt;The biggest difference between the two
&lt;/h2&gt;&lt;p&gt;In simple terms, &lt;code&gt;guizang-ppt-skill&lt;/code&gt; is a narrower and steadier presentation deck generator; &lt;code&gt;huashu-design&lt;/code&gt; is a broader and more complete HTML-native design system.&lt;/p&gt;
&lt;p&gt;If you only look at PPT:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;guizang-ppt-skill&lt;/code&gt; emphasizes magazine feel, rhythm, layout, and single-file browser presentations.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;huashu-design&lt;/code&gt; emphasizes general design capability, editable PPTX, brand assets, export paths, and review workflows.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you look at overall design capability:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;guizang-ppt-skill&lt;/code&gt; has clearer boundaries and is suitable for quickly making a stylish horizontal presentation.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;huashu-design&lt;/code&gt; is more comprehensive and is suitable for breaking a product or brand design task into prototypes, animations, slides, and infographics.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These two projects also represent two different ways to write Skills. The former is like a highly constrained set of templates and aesthetic rules. The latter is like a workflow manual for a small design team.&lt;/p&gt;
&lt;h2 id=&#34;why-this-kind-of-skill-matters&#34;&gt;Why this kind of Skill matters
&lt;/h2&gt;&lt;p&gt;A common problem with Agents is that they “can do it, but not consistently.” The same request may produce a strong result once, then drift into purple gradients, rounded cards, fake icons, and a pile of fancy-sounding empty copy the next time.&lt;/p&gt;
&lt;p&gt;Skills are a way to add stability. They lock down things such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Reusable templates.&lt;/li&gt;
&lt;li&gt;Executable checklists.&lt;/li&gt;
&lt;li&gt;Clear aesthetic preferences.&lt;/li&gt;
&lt;li&gt;Rules for avoiding common mistakes.&lt;/li&gt;
&lt;li&gt;Output formats and validation flows.&lt;/li&gt;
&lt;li&gt;When to ask questions and when to start directly.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is far more reliable than simply writing “please make it look more premium.”&lt;/p&gt;
&lt;p&gt;This is especially true for design tasks. Aesthetics cannot be reproduced reliably by a single prompt. What really helps is process: confirm assets first, decide the direction, build the structure, work on the visuals, then inspect the output. When this process is written as a Skill, the Agent becomes more like a collaborative executor rather than a one-shot image generator.&lt;/p&gt;
&lt;h2 id=&#34;usage-recommendations&#34;&gt;Usage recommendations
&lt;/h2&gt;&lt;p&gt;If you just want to turn a topic into an offline talk or sharing deck, try &lt;code&gt;guizang-ppt-skill&lt;/code&gt; first. Its output boundary is narrow, and single-file HTML is also easy to distribute and preview.&lt;/p&gt;
&lt;p&gt;If you want an Agent to take on a more complete design task, such as App prototypes, launch animations, branded slides, exportable PPTX, or infographics, look at &lt;code&gt;huashu-design&lt;/code&gt; first. Its workflow is longer and better suited to tasks that need multiple rounds of iteration and exported deliverables.&lt;/p&gt;
&lt;p&gt;If you are already writing your own Codex or Claude Code Skill, both projects are worth studying:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;To learn “how to make a narrow scenario stable,” look at &lt;code&gt;guizang-ppt-skill&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;To learn “how to break a complex workflow into executable protocols,” look at &lt;code&gt;huashu-design&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;summary&#34;&gt;Summary
&lt;/h2&gt;&lt;p&gt;What Guizang and Huashu have in common is that both turn “design capability” from a one-time prompt into a repeatable process.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;guizang-ppt-skill&lt;/code&gt; focuses on magazine-style HTML PPT and works well for highly stylized presentations. &lt;code&gt;huashu-design&lt;/code&gt; focuses on an HTML-native design system covering prototypes, animations, slides, infographics, and reviews. The problem they solve is not “can AI generate design,” but “can AI generate deliverable design through a stable method.”&lt;/p&gt;
&lt;p&gt;This may become an important type of open-source project in the Agent tooling ecosystem: not just code templates, but packaged human experience, aesthetics, and working methods as Skills.&lt;/p&gt;
&lt;p&gt;Reference links:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/op7418/guizang-ppt-skill&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;op7418/guizang-ppt-skill&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/alchaincyf/huashu-design&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;alchaincyf/huashu-design&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Codex vs Claude Code: How to Choose Between Two Subagent Designs</title>
        <link>https://knightli.com/en/2026/05/08/codex-vs-claude-code-subagent-design/</link>
        <pubDate>Fri, 08 May 2026 14:14:01 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/08/codex-vs-claude-code-subagent-design/</guid>
        <description>&lt;p&gt;AI coding tools are paying more attention to subagents. This is not just feature chasing. A single agent eventually hits limits when it has to handle real engineering work.&lt;/p&gt;
&lt;p&gt;If one agent reads code, checks logs, edits implementation, runs tests, analyzes failures, and summarizes results at the same time, the main context quickly becomes noisy. Search results, command output, test logs, and intermediate reasoning get mixed together. Later decisions become less reliable. Work also becomes hard to parallelize: exploration, implementation, verification, and review all sit on one main thread.&lt;/p&gt;
&lt;p&gt;The purpose of subagents is to reduce that pressure. The main session stops doing everything from start to finish and becomes more like a coordinator: define goals, assign work, receive results, and merge them into the final answer. A subagent handles a local piece of work, such as exploration, implementation, verification, or review, and returns a compressed conclusion.&lt;/p&gt;
&lt;p&gt;So a subagent is not “another copy of me.” It is a way to split tangled engineering work into clearer roles.&lt;/p&gt;
&lt;h2 id=&#34;shared-foundations&#34;&gt;Shared Foundations
&lt;/h2&gt;&lt;p&gt;A mature subagent system usually needs four foundations:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Context isolation.&lt;/li&gt;
&lt;li&gt;Role specialization.&lt;/li&gt;
&lt;li&gt;Project and user-level configuration.&lt;/li&gt;
&lt;li&gt;Tool and permission boundaries.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Context isolation comes first. Real repositories produce a lot of intermediate material: dozens of search hits, hundreds of test log lines, noisy command output. If all of that is poured into the main session, the main thread gets confused. A subagent can digest that local process and bring back only the signals that matter.&lt;/p&gt;
&lt;p&gt;Role specialization is just as important. Multi-agent does not mean opening several identical models. Exploration roles should search, read, and summarize. Implementation roles should focus on local code changes. Verification roles should run checks, identify risks, and report clearly.&lt;/p&gt;
&lt;p&gt;Tool and permission boundaries determine whether the system can be used safely. A subagent should not automatically inherit every capability of the main session. A read-only explorer does not need write access. A verifier may not need to change implementation. Background tasks and isolated worktrees need visible boundaries.&lt;/p&gt;
&lt;p&gt;Codex and Claude Code share these concerns, but they take different routes.&lt;/p&gt;
&lt;h2 id=&#34;codex-explicit-delegation&#34;&gt;Codex: Explicit Delegation
&lt;/h2&gt;&lt;p&gt;Codex’s subagent design feels restrained.&lt;/p&gt;
&lt;p&gt;It gives you a controlled, lightweight delegation mechanism around the current main session. When to delegate, who receives the task, and when results are collected are all explicit decisions. The control flow stays in the current task.&lt;/p&gt;
&lt;p&gt;Its traits are clear:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The main session explicitly delegates subwork.&lt;/li&gt;
&lt;li&gt;The role set stays small.&lt;/li&gt;
&lt;li&gt;The main session knows which agent is doing what.&lt;/li&gt;
&lt;li&gt;Results return to the main line for final judgment.&lt;/li&gt;
&lt;li&gt;Collaboration boundaries are transparent.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This works well for teams that care about manual orchestration, predictability, and execution determinism. You can ask an explorer to inspect a call chain, ask a worker to make a bounded change, then let the main session merge the result and decide whether to test further.&lt;/p&gt;
&lt;p&gt;The tradeoff is that orchestration pressure still sits with the main session. The main thread must decide when to split work, how to split it, who should take it, and how to merge the result. For lightweight collaboration this is pleasant; for long-running engineering workflows it can become tiring.&lt;/p&gt;
&lt;h2 id=&#34;claude-code-agents-as-workstations&#34;&gt;Claude Code: Agents as Workstations
&lt;/h2&gt;&lt;p&gt;Claude Code takes a more platform-like route.&lt;/p&gt;
&lt;p&gt;It treats agents as describable, selectable, configurable, memorable, isolated, and background-capable objects. A subagent is not just a helper in a conversation. It is closer to a workstation in an engineering system.&lt;/p&gt;
&lt;p&gt;The system can expose agent lists, use cases, descriptions, and tool boundaries to the model, allowing the model to decide which role should handle a turn. That makes delegation more automatic.&lt;/p&gt;
&lt;p&gt;Several capabilities define this direction.&lt;/p&gt;
&lt;p&gt;First, a role system. Explorer, planner, general-purpose, and verifier roles can carry usage descriptions, tool restrictions, default models, and runtime conditions. A read-only explorer can be prevented from editing files. A planner can focus on architecture. A verifier can focus on checks.&lt;/p&gt;
&lt;p&gt;Second, inheritance and overrides. A subagent is not completely free. It inherits the larger boundary of the main session by default, but can adjust local behavior within allowed rules. The main session defines the big boundary; the agent performs local assembly inside it.&lt;/p&gt;
&lt;p&gt;Third, memory. Memory is not just “remember a few things.” It can have scope. User memory is like long-term preference. Project memory is repository background. Local memory is environment-specific state. This lets some agents avoid relearning the project from scratch.&lt;/p&gt;
&lt;p&gt;Fourth, background work and worktree isolation. Some verification tasks can keep running in the background, while the main thread continues. When stronger isolation is needed, an agent can work in a separate worktree, keeping the project connected but the operation space separated.&lt;/p&gt;
&lt;p&gt;Fifth, plugin ecosystem. If agents are first-class objects, you have to think about distribution, installation, priority, override rules, and safety. Plugin agents can enter the system, but high-risk fields such as permission mode, hooks, and MCP servers should remain guarded.&lt;/p&gt;
&lt;p&gt;This makes Claude Code feel more like an agent runtime than a one-session collaboration tool.&lt;/p&gt;
&lt;h2 id=&#34;the-difference&#34;&gt;The Difference
&lt;/h2&gt;&lt;p&gt;Codex is closer to a controlled delegation tool:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Explicit delegation.&lt;/li&gt;
&lt;li&gt;Lightweight role set.&lt;/li&gt;
&lt;li&gt;Clean control flow.&lt;/li&gt;
&lt;li&gt;Subtasks centered on the current session.&lt;/li&gt;
&lt;li&gt;Good for deterministic, human-orchestrated work.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Claude Code is closer to an engineering workstation system:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Agents are formally modeled.&lt;/li&gt;
&lt;li&gt;Roles are more systematic.&lt;/li&gt;
&lt;li&gt;Memory, background execution, isolation, and plugins are part of the runtime.&lt;/li&gt;
&lt;li&gt;The model can help choose roles.&lt;/li&gt;
&lt;li&gt;Good for long-term projects and platform-like workflows.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The real question is not which one has more features. It is whether you want a subagent to be “a helper I explicitly call” or “a long-lived workstation in the system.”&lt;/p&gt;
&lt;h2 id=&#34;how-to-choose&#34;&gt;How to Choose
&lt;/h2&gt;&lt;p&gt;Choose the Codex style if you value explicit control, lightweight delegation, and safe parallelism inside the current session. It is good for code review, small changes, clearly scoped implementation tasks, and workflows where a human wants to keep the rhythm.&lt;/p&gt;
&lt;p&gt;Choose the Claude Code style if you want systematic roles, long-term memory, background execution, worktree isolation, plugin extension, and a more complete agent runtime.&lt;/p&gt;
&lt;p&gt;Ask two questions:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Are you comfortable with the model choosing who should do the work?&lt;/li&gt;
&lt;li&gt;Do you need a fuller agent runtime?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If the first question makes you uncomfortable, explicit delegation is likely better. If the second answer is yes, a platform-like workstation system may fit better.&lt;/p&gt;
&lt;h2 id=&#34;practical-advice&#34;&gt;Practical Advice
&lt;/h2&gt;&lt;p&gt;Do not treat subagents as “more models means stronger.” Better practice is:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Give every role a clear task boundary.&lt;/li&gt;
&lt;li&gt;Limit the tools each role can use.&lt;/li&gt;
&lt;li&gt;Ask subagents to return conclusions, not raw logs.&lt;/li&gt;
&lt;li&gt;Keep final decisions in the main session.&lt;/li&gt;
&lt;li&gt;Make background tasks and worktree isolation visible.&lt;/li&gt;
&lt;li&gt;Set clear safety boundaries for plugin agents.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The value of subagents is not quantity. It is clean division of labor, cleaner context, and more stable main-thread decisions.&lt;/p&gt;
&lt;h2 id=&#34;summary&#34;&gt;Summary
&lt;/h2&gt;&lt;p&gt;Codex and Claude Code solve the same problem: one agent cannot comfortably carry all real engineering work. Both recognize the importance of context isolation, role specialization, permissions, and local summarization.&lt;/p&gt;
&lt;p&gt;Codex is more restrained, emphasizing explicit delegation and main-session control. Claude Code is more systematic, treating agents as configurable, memorable, isolated, background-capable workstations that can also enter a plugin ecosystem.&lt;/p&gt;
&lt;p&gt;The choice is not which brand wins. It is whether your workflow needs a controlled collaboration tool or a full agent runtime.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>9Router: Connect Claude Code, Codex, and Cursor to One AI Router</title>
        <link>https://knightli.com/en/2026/05/08/9router-ai-coding-router-token-saver/</link>
        <pubDate>Fri, 08 May 2026 13:41:15 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/08/9router-ai-coding-router-token-saver/</guid>
        <description>&lt;p&gt;9Router is a local router for AI coding tools. It lets Claude Code, Codex, Cursor, Cline, Copilot, OpenCode, OpenClaw, and similar tools connect to one OpenAI-compatible endpoint, then routes requests to different models and providers.&lt;/p&gt;
&lt;p&gt;It is not trying to be another chat client. It sits between your AI coding tools and model providers, solving a few practical problems: incompatible API formats, manual provider switching, fast token burn from tool output, interrupted work when quotas run out, and messy multi-account configuration.&lt;/p&gt;
&lt;p&gt;According to the project README, 9Router supports 40+ providers and 100+ models. It includes RTK Token Saver, automatic fallback, quota tracking, multi-account rotation, format translation, and request logging. The project is written in JavaScript and uses Node.js, Next.js, React, Tailwind CSS, and LowDB. It is licensed under MIT.&lt;/p&gt;
&lt;h2 id=&#34;what-it-is-good-for&#34;&gt;What It Is Good For
&lt;/h2&gt;&lt;p&gt;9Router is most useful when you use multiple AI coding tools and multiple model sources at the same time.&lt;/p&gt;
&lt;p&gt;Examples:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Claude Code uses a subscription account.&lt;/li&gt;
&lt;li&gt;Codex or Cursor needs a custom OpenAI endpoint.&lt;/li&gt;
&lt;li&gt;Cline, Continue, or RooCode needs an OpenAI-compatible API.&lt;/li&gt;
&lt;li&gt;Free providers are used for experiments.&lt;/li&gt;
&lt;li&gt;GLM, MiniMax, or Kimi is used as a cheaper backup.&lt;/li&gt;
&lt;li&gt;High-quality models are reserved for difficult tasks.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Without 9Router, these settings are scattered across many tools. Each tool needs its own endpoint, API key, model name, and fallback plan. 9Router centralizes that into one local routing layer.&lt;/p&gt;
&lt;p&gt;Default local API:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;http://localhost:20128/v1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Dashboard:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;http://localhost:20128/dashboard
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;quick-install&#34;&gt;Quick Install
&lt;/h2&gt;&lt;p&gt;For local use, npm is the simplest path:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install -g 9router
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;9router
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;The dashboard opens locally, and the README uses &lt;code&gt;20128&lt;/code&gt; as the default port.&lt;/p&gt;
&lt;p&gt;Run from source:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/decolua/9router.git
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; 9router
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cp .env.example .env
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;PORT&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;20128&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;NEXT_PUBLIC_BASE_URL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;http://localhost:20128 npm run dev
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Production mode:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm run build
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;PORT&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;20128&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;HOSTNAME&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;0.0.0.0 &lt;span class=&#34;nv&#34;&gt;NEXT_PUBLIC_BASE_URL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;http://localhost:20128 npm run start
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;The npm package requires Node.js &lt;code&gt;&amp;gt;=18.0.0&lt;/code&gt;. For VPS or Docker deployment, configure &lt;code&gt;JWT_SECRET&lt;/code&gt;, &lt;code&gt;INITIAL_PASSWORD&lt;/code&gt;, &lt;code&gt;DATA_DIR&lt;/code&gt;, and &lt;code&gt;API_KEY_SECRET&lt;/code&gt; instead of exposing defaults.&lt;/p&gt;
&lt;h2 id=&#34;connect-coding-tools&#34;&gt;Connect Coding Tools
&lt;/h2&gt;&lt;p&gt;9Router exposes an OpenAI-compatible API, so most tools that support custom OpenAI endpoints can connect to it.&lt;/p&gt;
&lt;p&gt;Typical configuration:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Base URL: http://localhost:20128/v1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;API Key: copied from the 9Router dashboard
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Model: a model name or combo name configured in 9Router
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;For Codex CLI:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;OPENAI_BASE_URL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;http://localhost:20128&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;OPENAI_API_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;your-9router-api-key&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;codex &lt;span class=&#34;s2&#34;&gt;&amp;#34;your prompt&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;For Cline, Continue, or RooCode, choose &lt;code&gt;OpenAI Compatible&lt;/code&gt; and set:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Base URL: http://localhost:20128/v1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;API Key: your-9router-api-key
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Model: cc/claude-opus-4-7
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Model names depend on connected providers. The README shows prefixes such as &lt;code&gt;cc/&lt;/code&gt;, &lt;code&gt;cx/&lt;/code&gt;, &lt;code&gt;gh/&lt;/code&gt;, &lt;code&gt;glm/&lt;/code&gt;, &lt;code&gt;minimax/&lt;/code&gt;, &lt;code&gt;kr/&lt;/code&gt;, and &lt;code&gt;vertex/&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;rtk-token-saver&#34;&gt;RTK Token Saver
&lt;/h2&gt;&lt;p&gt;AI coding tools often burn tokens fastest on tool outputs:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git diff&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;git status&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;grep&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;find&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ls&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tree&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;logs&lt;/li&gt;
&lt;li&gt;long file lists&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;9Router includes RTK Token Saver, which compresses these outputs before they are sent to the model. The project says this can save 20%-40% input tokens in many requests.&lt;/p&gt;
&lt;p&gt;The value is that you do not need to change tools or models. The routing layer removes waste before the request reaches the provider. Still, for critical logs or complete file content, test the behavior first and make sure answer quality does not drop.&lt;/p&gt;
&lt;h2 id=&#34;automatic-fallback&#34;&gt;Automatic Fallback
&lt;/h2&gt;&lt;p&gt;9Router can arrange models in priority order:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;1. Subscription model
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;2. Cheap API
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;3. Free provider
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;When the first tier is rate-limited, out of quota, or failing, it can switch to the next one. This reduces manual switching and keeps coding sessions from stopping suddenly.&lt;/p&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;1. cc/claude-opus-4-7
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;2. glm/glm-5.1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;3. kr/claude-sonnet-4.5
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Fallback changes output consistency. Different models have different style and reasoning quality. For large refactors, protocols, migrations, or other consistency-sensitive work, prefer a fixed model and switch manually only when needed.&lt;/p&gt;
&lt;h2 id=&#34;be-careful-with-free-providers&#34;&gt;Be Careful with Free Providers
&lt;/h2&gt;&lt;p&gt;The README highlights Kiro, OpenCode Free, Vertex, and also notes that some old free tiers have changed or are no longer recommended.&lt;/p&gt;
&lt;p&gt;Always confirm provider policy at the time of use:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Is it really free?&lt;/li&gt;
&lt;li&gt;Is it region-limited?&lt;/li&gt;
&lt;li&gt;Is third-party tool access allowed?&lt;/li&gt;
&lt;li&gt;Can it trigger bans or rate limits?&lt;/li&gt;
&lt;li&gt;Does the free quota expire?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;9Router manages routing, not upstream terms. Be especially careful when using personal subscriptions, OAuth tokens, or free quotas with automated tools.&lt;/p&gt;
&lt;h2 id=&#34;local-deployment-advice&#34;&gt;Local Deployment Advice
&lt;/h2&gt;&lt;p&gt;For personal use, bind to &lt;code&gt;localhost&lt;/code&gt;. Local tools can reach it, but the internet cannot.&lt;/p&gt;
&lt;p&gt;For VPS or LAN deployment:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Change the default login password.&lt;/li&gt;
&lt;li&gt;Set a strong &lt;code&gt;JWT_SECRET&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Set &lt;code&gt;API_KEY_SECRET&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Put authentication in front of the dashboard.&lt;/li&gt;
&lt;li&gt;Do not expose the dashboard directly to the public internet.&lt;/li&gt;
&lt;li&gt;Require Bearer API keys for &lt;code&gt;/v1/*&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Back up &lt;code&gt;DATA_DIR&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Docker example:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run -d &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --name 9router &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -p 20128:20128 &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --env-file ./.env &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -v 9router-data:/app/data &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -v 9router-usage:/root/.9router &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  9router
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Start locally first, verify providers, combos, logs, and model names, then decide whether server deployment is worth it.&lt;/p&gt;
&lt;h2 id=&#34;who-should-use-it&#34;&gt;Who Should Use It
&lt;/h2&gt;&lt;p&gt;9Router is a good fit if you use multiple AI coding tools, multiple providers, subscription plus free or cheap tiers, and want a central fallback policy. It is less useful if you only use one model and one tool.&lt;/p&gt;
&lt;p&gt;Its real value is turning scattered model access into a configurable local routing layer.&lt;/p&gt;
&lt;h2 id=&#34;summary&#34;&gt;Summary
&lt;/h2&gt;&lt;p&gt;9Router is a local gateway for AI coding tools. It lets Claude Code, Codex, Cursor, Cline, and similar tools talk to &lt;code&gt;http://localhost:20128/v1&lt;/code&gt;, while it handles model selection, format translation, token compression, quota tracking, and fallback.&lt;/p&gt;
&lt;p&gt;It is best for heavy AI coding users who already switch between providers. Start with one tool and one provider, then add accounts and combos gradually.&lt;/p&gt;
&lt;h2 id=&#34;references&#34;&gt;References
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/decolua/9router&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;9Router GitHub repository&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://9router.com&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;9Router website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.npmjs.com/package/9router&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;9Router npm package&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>24 Claude Code Tips: Plan Mode, Rewind, CLAUDE.md, Skills, Agents, and Plugins</title>
        <link>https://knightli.com/en/2026/05/08/claude-code-24-tips-plan-rewind-skills-agents/</link>
        <pubDate>Fri, 08 May 2026 08:54:14 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/08/claude-code-24-tips-plan-rewind-skills-agents/</guid>
        <description>&lt;p&gt;Claude Code is not just a chat box. It is closer to a coding Agent that can enter a project directory, read and write files, run commands, and maintain context.&lt;/p&gt;
&lt;p&gt;If you only throw a requirement at it and wait for code, problems appear quickly: unclear plans, repeated permission prompts, growing context, unsatisfactory output, no clear rollback path, and no persistent place for project rules.&lt;/p&gt;
&lt;p&gt;Here is a set of common operations for developers getting started with Claude Code.&lt;/p&gt;
&lt;h2 id=&#34;start-inside-the-project-directory&#34;&gt;Start Inside the Project Directory
&lt;/h2&gt;&lt;p&gt;Claude Code works best when launched inside the project directory, not from a random terminal location.&lt;/p&gt;
&lt;p&gt;Create a folder as the project directory, enter it, open a command line, and start Claude Code:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;When first entering a project, if Claude Code asks whether to trust the current folder, confirm before continuing. This lets it read files, create files, and run later operations around the current project.&lt;/p&gt;
&lt;p&gt;A simple practice task is to ask it to create a photographer portfolio website. The task is visual enough to inspect, and it also lets you practice file generation, command execution, rewind, and later refactoring.&lt;/p&gt;
&lt;h2 id=&#34;use-plan-mode-first&#34;&gt;Use Plan Mode First
&lt;/h2&gt;&lt;p&gt;For more complex tasks, Claude Code may enter plan mode. Plan mode is meant to discuss requirements and break down steps before you approve execution.&lt;/p&gt;
&lt;p&gt;After it writes a plan, you usually see options like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Approve the plan and automatically allow future edit tools.&lt;/li&gt;
&lt;li&gt;Approve the plan, but require manual approval for later edits.&lt;/li&gt;
&lt;li&gt;Pause and continue discussing the plan with Claude Code.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If the task is clear, approve and continue. If it is not clear yet, ask it to refine the plan, such as page style, tech stack, directory structure, interactions, and acceptance criteria.&lt;/p&gt;
&lt;p&gt;Plan mode reduces rework. If an Agent starts directly, it may quickly generate many files; if the direction is wrong, later changes can get messy.&lt;/p&gt;
&lt;h2 id=&#34;switch-modes-with-shift--tab&#34;&gt;Switch Modes With Shift + Tab
&lt;/h2&gt;&lt;p&gt;In Claude Code, &lt;code&gt;Shift + Tab&lt;/code&gt; can switch between working modes. A common use is entering plan mode or switching into an auto-approve-edit mode.&lt;/p&gt;
&lt;p&gt;Suggested habits:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;New projects, new features, major changes: start in plan mode.&lt;/li&gt;
&lt;li&gt;Small edits and clear fixes: execute directly.&lt;/li&gt;
&lt;li&gt;Deletion, bulk replacement, dependency installation: keep manual approval.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In plan mode, Claude Code may ask project-detail questions. Use arrow keys to choose and Enter to confirm. After submitting feedback, it updates the plan.&lt;/p&gt;
&lt;h2 id=&#34;do-not-open-all-permissions-blindly&#34;&gt;Do Not Open All Permissions Blindly
&lt;/h2&gt;&lt;p&gt;When Claude Code runs commands, edits files, or starts programs, it may request permission.&lt;/p&gt;
&lt;p&gt;Common choices include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Allow only this time.&lt;/li&gt;
&lt;li&gt;Allow this command type for the current session.&lt;/li&gt;
&lt;li&gt;Reject or pause.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For local preview, dev server startup, or file inspection, approve as needed. But do not permanently use a mode that auto-approves all permissions just to save clicks.&lt;/p&gt;
&lt;p&gt;Full automation is only suitable when the task is low-risk, clearly understood, and the project already has Git backups. For daily use, keep human approval for deletion, overwriting folders, dependency installation, networking, commits, and scripts.&lt;/p&gt;
&lt;h2 id=&#34;run-local-commands-in-terminal-mode&#34;&gt;Run Local Commands in Terminal Mode
&lt;/h2&gt;&lt;p&gt;Claude Code can enter a terminal-command mode to run local commands.&lt;/p&gt;
&lt;p&gt;For example, after generating a page, you can open an HTML file with:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;start index.html
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;start&lt;/code&gt; is a Windows command for opening a file, followed by the filename. This is faster than finding the file manually.&lt;/p&gt;
&lt;p&gt;Terminal mode is useful for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Opening generated pages.&lt;/li&gt;
&lt;li&gt;Listing directory contents.&lt;/li&gt;
&lt;li&gt;Starting local development servers.&lt;/li&gt;
&lt;li&gt;Running tests or builds.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Still, be careful with high-risk commands such as recursive deletion, moving directories, bulk overwrites, and system environment changes.&lt;/p&gt;
&lt;h2 id=&#34;rewind-when-the-result-goes-wrong&#34;&gt;Rewind When the Result Goes Wrong
&lt;/h2&gt;&lt;p&gt;If the page or code produced by Claude Code is not what you want, and each correction makes it worse, rewind early.&lt;/p&gt;
&lt;p&gt;Rewind can return code or conversation to a previous point. Common options include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Rewind both code and conversation.&lt;/li&gt;
&lt;li&gt;Rewind only conversation.&lt;/li&gt;
&lt;li&gt;Rewind only code.&lt;/li&gt;
&lt;li&gt;Compress earlier content into a summary.&lt;/li&gt;
&lt;li&gt;Cancel.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When the direction is clearly wrong, it is usually better to rewind both code and conversation. That returns context and files to a cleaner state together.&lt;/p&gt;
&lt;p&gt;Note that Claude Code rewind usually only covers files it created or changed through built-in tools. Files created through external commands may not be fully rewindable. Important projects should still use Git.&lt;/p&gt;
&lt;h2 id=&#34;write-long-prompts-in-an-editor&#34;&gt;Write Long Prompts in an Editor
&lt;/h2&gt;&lt;p&gt;Do not squeeze complex requirements into one input line.&lt;/p&gt;
&lt;p&gt;If the system supports editing a long prompt in a text editor, open the editor, write the requirement clearly, save it, and then send it to Claude Code.&lt;/p&gt;
&lt;p&gt;Long prompts should include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The goal.&lt;/li&gt;
&lt;li&gt;The tech stack.&lt;/li&gt;
&lt;li&gt;What not to do.&lt;/li&gt;
&lt;li&gt;Which files must be kept.&lt;/li&gt;
&lt;li&gt;How to verify completion.&lt;/li&gt;
&lt;li&gt;Page or feature acceptance criteria.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For example, if you want Claude Code to refactor a plain HTML page into a more modern stack, do not just say &amp;ldquo;refactor it.&amp;rdquo; Explain component structure, visual preservation, responsive layout, and ask it to run a build check.&lt;/p&gt;
&lt;h2 id=&#34;restore-sessions-after-exit&#34;&gt;Restore Sessions After Exit
&lt;/h2&gt;&lt;p&gt;If you need to quit Claude Code midway, exit normally. Later, return to the same project directory and start again:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;If previous records do not appear directly, use history-related commands to view and load recent sessions.&lt;/p&gt;
&lt;p&gt;This is useful for continuing interrupted work. But do not treat session history as the only memory. Project rules, tech stack, common commands, and notes should live in project files.&lt;/p&gt;
&lt;h2 id=&#34;use-claudemd-for-project-rules&#34;&gt;Use CLAUDE.md for Project Rules
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; is an important memory file for Claude Code. It usually sits at the project root and tells Claude Code project rules, tech stack, directory structure, and collaboration constraints.&lt;/p&gt;
&lt;p&gt;You can ask Claude Code to initialize it:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/init
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; is good for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Project goals.&lt;/li&gt;
&lt;li&gt;Tech stack.&lt;/li&gt;
&lt;li&gt;Common start, test, and build commands.&lt;/li&gt;
&lt;li&gt;Directory notes.&lt;/li&gt;
&lt;li&gt;Code style.&lt;/li&gt;
&lt;li&gt;Forbidden actions.&lt;/li&gt;
&lt;li&gt;Commit and deployment rules.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;During each conversation, Claude Code can use these rules as part of the context. Think of it as a project manual.&lt;/p&gt;
&lt;p&gt;A simple test is to add a clear rule into &lt;code&gt;CLAUDE.md&lt;/code&gt;, then ask Claude Code something. If its answer follows the rule, it has read the project memory.&lt;/p&gt;
&lt;h2 id=&#34;reference-files-with-&#34;&gt;Reference Files With @
&lt;/h2&gt;&lt;p&gt;Typing &lt;code&gt;@&lt;/code&gt; in the input box lets you select files or Agents and add them to the current context.&lt;/p&gt;
&lt;p&gt;This is useful when you want Claude Code to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Read a config file.&lt;/li&gt;
&lt;li&gt;Modify a specific page.&lt;/li&gt;
&lt;li&gt;Continue based on &lt;code&gt;CLAUDE.md&lt;/code&gt; or another document.&lt;/li&gt;
&lt;li&gt;Only inspect a specific file instead of guessing the whole project.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Compared with copying file contents into the input box, &lt;code&gt;@&lt;/code&gt; references are clearer and less error-prone.&lt;/p&gt;
&lt;h2 id=&#34;view-and-compress-context&#34;&gt;View and Compress Context
&lt;/h2&gt;&lt;p&gt;After a long conversation, context grows. When it gets too long, the model may slow down or start ignoring earlier details.&lt;/p&gt;
&lt;p&gt;Use:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/context
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;If context is long, compress history:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/compact
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;If the result is still poor, consider clearing the current context:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/clear
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;After clearing, Claude Code can still understand part of the project through files, &lt;code&gt;CLAUDE.md&lt;/code&gt;, and the current directory, but it will not keep the full conversation history.&lt;/p&gt;
&lt;p&gt;A practical habit: start a new chat after a task is done, write project rules into &lt;code&gt;CLAUDE.md&lt;/code&gt;, and do not let temporary discussion grow forever in one chat.&lt;/p&gt;
&lt;h2 id=&#34;skills-turn-repeated-work-into-instructions&#34;&gt;Skills: Turn Repeated Work Into Instructions
&lt;/h2&gt;&lt;p&gt;Skills are reusable task instructions for Claude Code. They are not one-off prompts, but packaged workflows.&lt;/p&gt;
&lt;p&gt;For example, if you often generate weekly reports, create a weekly-report Skill that defines:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Required input.&lt;/li&gt;
&lt;li&gt;Output format.&lt;/li&gt;
&lt;li&gt;Tone and structure.&lt;/li&gt;
&lt;li&gt;What must be preserved.&lt;/li&gt;
&lt;li&gt;What must not be invented.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Skills usually contain &lt;code&gt;name&lt;/code&gt;, &lt;code&gt;description&lt;/code&gt;, and detailed instructions. Once installed in the global Skills directory, Claude Code can recognize and load them for related tasks.&lt;/p&gt;
&lt;p&gt;Good Skill candidates include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Weekly reports.&lt;/li&gt;
&lt;li&gt;Code review templates.&lt;/li&gt;
&lt;li&gt;Document cleanup.&lt;/li&gt;
&lt;li&gt;Image batch processing.&lt;/li&gt;
&lt;li&gt;Fixed-format articles.&lt;/li&gt;
&lt;li&gt;Project initialization flows.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you repeatedly copy the same prompt, consider turning it into a Skill.&lt;/p&gt;
&lt;h2 id=&#34;agents-delegate-subtasks-to-independent-helpers&#34;&gt;Agents: Delegate Subtasks to Independent Helpers
&lt;/h2&gt;&lt;p&gt;Agents are different from Skills.&lt;/p&gt;
&lt;p&gt;A Skill is more like an instruction manual. An Agent is more like an independent helper that can work outside the main conversation and return results.&lt;/p&gt;
&lt;p&gt;The value of Agents is context isolation. For code inspection, you can create a read-only Agent that only reads the project and outputs a report, without modifying files. This avoids polluting the main conversation and lowers risk.&lt;/p&gt;
&lt;p&gt;When creating an Agent, consider:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Project-level or user-level Agent.&lt;/li&gt;
&lt;li&gt;Whether Claude Code should generate the config.&lt;/li&gt;
&lt;li&gt;Which tools are allowed.&lt;/li&gt;
&lt;li&gt;Which model to use.&lt;/li&gt;
&lt;li&gt;Whether memory should be saved.&lt;/li&gt;
&lt;li&gt;Whether the Agent prompt is clear enough.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For code-audit Agents, give read-only permissions first. Let it output a report, then decide in the main conversation whether to change code.&lt;/p&gt;
&lt;h2 id=&#34;plugins-package-skills-agents-mcp-and-hooks&#34;&gt;Plugins: Package Skills, Agents, MCP, and Hooks
&lt;/h2&gt;&lt;p&gt;Plugins are more complete capability packages. They may include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Skills&lt;/li&gt;
&lt;li&gt;Agents&lt;/li&gt;
&lt;li&gt;MCP&lt;/li&gt;
&lt;li&gt;Hooks&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Compared with installing one Skill, a plugin is better for a full capability set. For example, a frontend design plugin may package visual rules, layout habits, component preferences, and related Agents together.&lt;/p&gt;
&lt;p&gt;When installing a plugin, you may choose:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Install to the user directory, effective for all projects.&lt;/li&gt;
&lt;li&gt;Install to the project directory, shareable with the project.&lt;/li&gt;
&lt;li&gt;Install to a local project directory, effective only on your computer.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Use the user directory for personal common capabilities, the project directory for team conventions, and local project install for temporary testing.&lt;/p&gt;
&lt;h2 id=&#34;plugins-can-improve-specific-tasks&#34;&gt;Plugins Can Improve Specific Tasks
&lt;/h2&gt;&lt;p&gt;For frontend page generation, plugins can be more stable than raw prompts.&lt;/p&gt;
&lt;p&gt;For example, for &amp;ldquo;make a photographer portfolio website,&amp;rdquo; a plain prompt may generate an acceptable page. If you explicitly use a frontend design plugin, the structure, visual hierarchy, spacing, colors, and overall finish are often better.&lt;/p&gt;
&lt;p&gt;This does not mean plugins replace human taste. A better workflow is to let the plugin generate a stronger first draft, then refine details manually.&lt;/p&gt;
&lt;h2 id=&#34;a-more-stable-claude-code-workflow&#34;&gt;A More Stable Claude Code Workflow
&lt;/h2&gt;&lt;p&gt;Putting these tips together gives a steadier workflow:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Start &lt;code&gt;claude&lt;/code&gt; inside the project directory.&lt;/li&gt;
&lt;li&gt;Discuss requirements in plan mode first.&lt;/li&gt;
&lt;li&gt;Confirm tech stack and acceptance criteria before approving the plan.&lt;/li&gt;
&lt;li&gt;Keep manual approval for high-risk actions.&lt;/li&gt;
&lt;li&gt;Use terminal mode for local preview and tests.&lt;/li&gt;
&lt;li&gt;Rewind early when the result goes off track.&lt;/li&gt;
&lt;li&gt;Write project rules into &lt;code&gt;CLAUDE.md&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Check and compress context during long chats.&lt;/li&gt;
&lt;li&gt;Turn repeated workflows into Skills.&lt;/li&gt;
&lt;li&gt;Delegate inspection, research, and analysis to read-only Agents.&lt;/li&gt;
&lt;li&gt;Use plugins for domain-specific tasks.&lt;/li&gt;
&lt;li&gt;Always keep Git checkpoints for important projects.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This is much more stable than simply sending one requirement and waiting for generation.&lt;/p&gt;
&lt;h2 id=&#34;summary&#34;&gt;Summary
&lt;/h2&gt;&lt;p&gt;Claude Code efficiency does not come only from model capability. It also comes from workflow control.&lt;/p&gt;
&lt;p&gt;Plan mode sets direction, permission approval controls risk, rewind reduces rework, &lt;code&gt;CLAUDE.md&lt;/code&gt; stores project rules, &lt;code&gt;/context&lt;/code&gt;, &lt;code&gt;/compact&lt;/code&gt;, and &lt;code&gt;/clear&lt;/code&gt; manage context, Skills reuse fixed workflows, Agents isolate complex subtasks, and plugins package complete capabilities.&lt;/p&gt;
&lt;p&gt;The best way to use Claude Code is to let it move tasks forward inside clear boundaries, not to hand the entire project to it at once.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>opencode, Claude Code, and Codex: What&#39;s the Difference? A Guide to Open Source AI Coding Tools</title>
        <link>https://knightli.com/en/2026/05/08/opencode-open-source-ai-coding-agent/</link>
        <pubDate>Fri, 08 May 2026 08:33:37 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/08/opencode-open-source-ai-coding-agent/</guid>
        <description>&lt;p&gt;&lt;code&gt;opencode&lt;/code&gt; is an open source AI Coding Agent from anomalyco. Its positioning is straightforward: give developers a programmable, extensible coding assistant in the terminal that can connect to multiple model providers.&lt;/p&gt;
&lt;p&gt;If you compare it with &lt;code&gt;Claude Code&lt;/code&gt; and &lt;code&gt;Codex&lt;/code&gt;, all three solve the same broad problem: bringing AI into real codebases so it can understand context, edit files, run commands, and execute tests. But their product directions are different.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;opencode&lt;/code&gt; emphasizes open source, multi-model support, and a terminal TUI. &lt;code&gt;Claude Code&lt;/code&gt; emphasizes Anthropic&amp;rsquo;s model ecosystem and local engineering collaboration. &lt;code&gt;Codex&lt;/code&gt; is OpenAI&amp;rsquo;s AI coding agent, available through the terminal, IDEs, the Codex app, and cloud tasks.&lt;/p&gt;
&lt;h2 id=&#34;who-opencode-is-for&#34;&gt;Who opencode Is For
&lt;/h2&gt;&lt;p&gt;opencode is a better fit for these kinds of developers:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;People who want to complete code changes, project analysis, and engineering tasks in the terminal.&lt;/li&gt;
&lt;li&gt;People who do not want their AI Coding Agent tied to a single model provider.&lt;/li&gt;
&lt;li&gt;People who prefer open source tools and want to audit, extend, or build on top of them.&lt;/li&gt;
&lt;li&gt;People already comfortable with Neovim, TUIs, and command-line workflows.&lt;/li&gt;
&lt;li&gt;People who want to eventually drive the same coding agent remotely through a desktop app, mobile app, or other clients.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Its point is not to create another chat window, but to put AI coding capability inside the terminal and project directories developers already use.&lt;/p&gt;
&lt;h2 id=&#34;installation&#34;&gt;Installation
&lt;/h2&gt;&lt;p&gt;The official README provides several installation methods.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Direct install&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -fsSL https://opencode.ai/install &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; bash
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# npm&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm i -g opencode-ai@latest
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Windows&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;scoop install opencode
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;choco install opencode
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# macOS and Linux&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;brew install anomalyco/tap/opencode
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;brew install opencode
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Arch Linux&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo pacman -S opencode
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;paru -S opencode-bin
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Other methods&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;mise use -g opencode
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nix run nixpkgs#opencode
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;The official README also recommends removing versions older than 0.1.x before installing to avoid problems caused by older remnants.&lt;/p&gt;
&lt;p&gt;The installation script chooses the installation directory by priority:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;$OPENCODE_INSTALL_DIR&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$XDG_BIN_DIR&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$HOME/bin&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$HOME/.opencode/bin&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If you need to specify a path, use:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;OPENCODE_INSTALL_DIR&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;/usr/local/bin curl -fsSL https://opencode.ai/install &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; bash
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;XDG_BIN_DIR&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$HOME&lt;/span&gt;/.local/bin curl -fsSL https://opencode.ai/install &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; bash
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;the-desktop-app-is-still-beta&#34;&gt;The Desktop App Is Still Beta
&lt;/h2&gt;&lt;p&gt;In addition to the command-line tool, opencode also provides a desktop app, currently marked as Beta. It can be downloaded from GitHub Releases or &lt;code&gt;opencode.ai/download&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The desktop app covers these platforms:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Platform&lt;/th&gt;
          &lt;th&gt;File&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;macOS Apple Silicon&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;opencode-desktop-mac-arm64.dmg&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;macOS Intel&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;opencode-desktop-mac-x64.dmg&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Windows&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;opencode-desktop-windows-x64.exe&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Linux&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;.deb&lt;/code&gt;, &lt;code&gt;.rpm&lt;/code&gt;, or &lt;code&gt;.AppImage&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;macOS and Windows users can also install the desktop app through package managers.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# macOS&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;brew install --cask opencode-desktop
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Windows&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;scoop bucket add extras
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;scoop install extras/opencode-desktop
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;two-built-in-agent-modes&#34;&gt;Two Built-In Agent Modes
&lt;/h2&gt;&lt;p&gt;opencode includes two built-in Agents, switchable with the &lt;code&gt;Tab&lt;/code&gt; key.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;build&lt;/code&gt; is the default mode. It has full development permissions and is suitable for editing code directly, running commands, and moving engineering tasks forward.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;plan&lt;/code&gt; is read-only mode. It is better for analyzing unfamiliar codebases, understanding project structure, and planning changes. It denies file edits by default and asks before running bash commands.&lt;/p&gt;
&lt;p&gt;opencode also includes a &lt;code&gt;general&lt;/code&gt; subagent for complex searches and multi-step tasks. Users can invoke it by typing &lt;code&gt;@general&lt;/code&gt; in a message.&lt;/p&gt;
&lt;p&gt;This design is practical: use &lt;code&gt;plan&lt;/code&gt; to understand the project before acting, then switch to &lt;code&gt;build&lt;/code&gt; when code needs to change. For large repositories, separating read and write permissions helps reduce mistakes.&lt;/p&gt;
&lt;h2 id=&#34;what-is-codex&#34;&gt;What Is Codex?
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Codex&lt;/code&gt; is OpenAI&amp;rsquo;s AI coding agent for helping developers write code, review code, fix bugs, and ship engineering tasks.&lt;/p&gt;
&lt;p&gt;Unlike a simple code completion tool, Codex is closer to an Agent that can operate on a codebase. It can pair with you in local tools, and it can also take delegated tasks in the cloud. OpenAI&amp;rsquo;s official materials describe Codex as available through multiple surfaces, including CLI, IDEs, the Codex app, and ChatGPT/Codex cloud workflows.&lt;/p&gt;
&lt;p&gt;For developers, Codex has several important traits:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It can read codebases, edit files, run commands, and execute tests.&lt;/li&gt;
&lt;li&gt;It supports multiple interfaces, including terminal, IDE, app, and cloud.&lt;/li&gt;
&lt;li&gt;It fits bug fixing, feature work, refactoring, migrations, code review, and test generation.&lt;/li&gt;
&lt;li&gt;It is more closely tied to OpenAI accounts, models, and the Codex product ecosystem.&lt;/li&gt;
&lt;li&gt;Cloud tasks are useful for running multiple well-scoped engineering tasks in parallel.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If opencode is more like an open terminal agent framework, Codex is more like a full AI coding workbench from OpenAI: local pairing, cloud delegation, and longer engineering workflows for teams.&lt;/p&gt;
&lt;h2 id=&#34;core-differences&#34;&gt;Core Differences
&lt;/h2&gt;&lt;p&gt;opencode, Claude Code, and Codex are all AI coding tools, but the choice becomes clearer if you look at these dimensions.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Tool&lt;/th&gt;
          &lt;th&gt;Core Positioning&lt;/th&gt;
          &lt;th&gt;Main Advantages&lt;/th&gt;
          &lt;th&gt;Best Fit&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;opencode&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Open source AI Coding Agent&lt;/td&gt;
          &lt;td&gt;Open source, multi-model, TUI, client/server architecture&lt;/td&gt;
          &lt;td&gt;Developers who want an open toolchain, replaceable models, and a terminal-first workflow&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Claude Code&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Anthropic&amp;rsquo;s command-line coding tool&lt;/td&gt;
          &lt;td&gt;Claude model experience, code understanding, long context, engineering task collaboration&lt;/td&gt;
          &lt;td&gt;Developers already using the Claude/Anthropic ecosystem who want to work on local code tasks&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Codex&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;OpenAI&amp;rsquo;s AI coding agent&lt;/td&gt;
          &lt;td&gt;CLI, IDE, Codex app, cloud tasks, multi-Agent workflows&lt;/td&gt;
          &lt;td&gt;Teams already using ChatGPT/OpenAI who want both local pairing and cloud delegation&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;In short, opencode is about openness and replaceability, Claude Code is about the Claude ecosystem and local engineering agents, and Codex is about the OpenAI ecosystem and multi-surface collaboration.&lt;/p&gt;
&lt;h2 id=&#34;how-it-differs-from-claude-code&#34;&gt;How It Differs From Claude Code
&lt;/h2&gt;&lt;p&gt;opencode&amp;rsquo;s official FAQ directly compares it with Claude Code. The two are similar in capability, but the main differences are these.&lt;/p&gt;
&lt;p&gt;First, opencode is a 100% open source project, hosted on GitHub and released under the MIT license.&lt;/p&gt;
&lt;p&gt;Second, opencode is not tied to a single model provider. It recommends models provided through OpenCode Zen, but it can also work with Claude, OpenAI, Google, or local models. For developers, this means that when model cost, capability, or availability changes, you are not locked into one platform.&lt;/p&gt;
&lt;p&gt;Third, opencode includes optional LSP support. For code completion, navigation, diagnostics, and project understanding, LSP is a very important foundation.&lt;/p&gt;
&lt;p&gt;Fourth, opencode emphasizes TUI. It is built by Neovim users and the creators of terminal.shop, so the product focus is clearly on the terminal experience.&lt;/p&gt;
&lt;p&gt;Fifth, opencode uses a client/server architecture. That means opencode can run on your computer while being controlled in the future by a TUI, desktop app, mobile app, or other clients. The TUI is only one possible frontend.&lt;/p&gt;
&lt;h2 id=&#34;when-to-choose-opencode-claude-code-or-codex&#34;&gt;When to Choose opencode, Claude Code, or Codex
&lt;/h2&gt;&lt;p&gt;If you already use Claude Code or Codex, opencode does not have to replace them immediately. A better way to think about it is that opencode provides an open, model-replaceable, terminal-first option.&lt;/p&gt;
&lt;p&gt;Consider opencode first when:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You want your AI coding tool to be as open source as possible.&lt;/li&gt;
&lt;li&gt;You do not want your workflow tied to one model provider.&lt;/li&gt;
&lt;li&gt;You want to test Claude, OpenAI, Google, or local models with the same tool.&lt;/li&gt;
&lt;li&gt;You like TUI workflows and do not want a desktop or web app to interrupt your main workflow.&lt;/li&gt;
&lt;li&gt;You care about the remote-control potential of a client/server architecture.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Consider Claude Code first when:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You mainly use Claude models.&lt;/li&gt;
&lt;li&gt;You care about long context, code understanding, and complex engineering task collaboration.&lt;/li&gt;
&lt;li&gt;You want to keep moving edits, tests, and refactors forward in a local repository.&lt;/li&gt;
&lt;li&gt;You trust Anthropic&amp;rsquo;s default Claude Code product experience.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Consider Codex first when:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You already use ChatGPT or the OpenAI account ecosystem.&lt;/li&gt;
&lt;li&gt;You want one coding agent across terminal, IDE, desktop app, and cloud tasks.&lt;/li&gt;
&lt;li&gt;You want to delegate well-scoped bug fixes, feature work, migrations, or test generation to the cloud in parallel.&lt;/li&gt;
&lt;li&gt;You need code review, background tasks, team collaboration, and multi-Agent workflows.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you care more about an official end-to-end experience, default model configuration, enterprise management, and ready-made integrations, Claude Code or Codex may be easier. If you care more about control, openness, and being provider-agnostic, opencode is worth watching.&lt;/p&gt;
&lt;h2 id=&#34;things-to-note&#34;&gt;Things to Note
&lt;/h2&gt;&lt;p&gt;opencode, Claude Code, and Codex are all moving quickly. GitHub releases, installation commands, desktop app file names, model availability, and plan access can all change. Before installing or choosing a tool, check the official README, documentation, and release pages.&lt;/p&gt;
&lt;p&gt;Also, opencode&amp;rsquo;s desktop app is still marked as Beta, so it should not be treated as the default stable production tool. For everyday engineering tasks, the terminal version is still the main entry point.&lt;/p&gt;
&lt;p&gt;From a tooling trend perspective, opencode represents the open-toolchain direction for AI Coding Agents: replaceable models, replaceable clients, and an open core agent capability. Codex and Claude Code are closer to model companies turning coding agents into complete product surfaces. For developers, both directions will likely coexist for a long time.&lt;/p&gt;
&lt;h2 id=&#34;references&#34;&gt;References
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;opencode GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/anomalyco/opencode&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/anomalyco/opencode&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;opencode official site: &lt;a class=&#34;link&#34; href=&#34;https://opencode.ai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://opencode.ai&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;opencode docs: &lt;a class=&#34;link&#34; href=&#34;https://opencode.ai/docs&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://opencode.ai/docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;opencode Releases: &lt;a class=&#34;link&#34; href=&#34;https://github.com/anomalyco/opencode/releases&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/anomalyco/opencode/releases&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;OpenAI Codex: &lt;a class=&#34;link&#34; href=&#34;https://openai.com/codex/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://openai.com/codex/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Using Codex with your ChatGPT plan: &lt;a class=&#34;link&#34; href=&#34;https://help.openai.com/en/articles/11369540-codex-in-chatgpt&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://help.openai.com/en/articles/11369540-codex-in-chatgpt&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;OpenAI Codex CLI Getting Started: &lt;a class=&#34;link&#34; href=&#34;https://help.openai.com/en/articles/11096431-openai-codex-ci-getting-started&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://help.openai.com/en/articles/11096431-openai-codex-ci-getting-started&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Claude Opus 4.7, Sonnet 4.6, and Haiku 4.5: Differences and Model Selection Guide</title>
        <link>https://knightli.com/en/2026/05/08/anthropic-claude-model-lineup/</link>
        <pubDate>Fri, 08 May 2026 08:19:03 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/08/anthropic-claude-model-lineup/</guid>
        <description>&lt;p&gt;Anthropic&amp;rsquo;s core large language models mainly evolve through the &lt;code&gt;Claude&lt;/code&gt; series. As of May 2026, Claude&amp;rsquo;s mainstream product line has entered the 4.x stage, while still following a three-tier structure: &lt;code&gt;Opus&lt;/code&gt; is for maximum capability, &lt;code&gt;Sonnet&lt;/code&gt; balances performance and cost, and &lt;code&gt;Haiku&lt;/code&gt; focuses on speed and cost effectiveness.&lt;/p&gt;
&lt;p&gt;If you only want a quick rule of thumb, remember this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;For the most complex and demanding reasoning and agentic coding: start with &lt;code&gt;Claude Opus 4.7&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;For most development, writing, analysis, and enterprise API scenarios: &lt;code&gt;Claude Sonnet 4.6&lt;/code&gt; is the safest starting point.&lt;/li&gt;
&lt;li&gt;For high-concurrency, low-latency, cost-sensitive tasks: consider &lt;code&gt;Claude Haiku 4.5&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;current-mainstream-models&#34;&gt;Current Mainstream Models
&lt;/h2&gt;&lt;p&gt;According to Anthropic&amp;rsquo;s official model documentation, the current Claude mainstream models can be understood this way.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Model&lt;/th&gt;
          &lt;th&gt;Positioning&lt;/th&gt;
          &lt;th&gt;Suitable Scenarios&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Claude Opus 4.7&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;The strongest generally available model, built for complex reasoning and agentic coding&lt;/td&gt;
          &lt;td&gt;Large codebase refactoring, multi-step tasks, complex strategy analysis, work that requires stronger consistency&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Claude Sonnet 4.6&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;The balance point between speed, capability, and cost, with a 1 million token context window&lt;/td&gt;
          &lt;td&gt;Code generation, long-document analysis, enterprise knowledge work, Agent development, everyday high-quality production tasks&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Claude Haiku 4.5&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;The fastest and lower-cost small-model tier, while still retaining capabilities close to frontier models&lt;/td&gt;
          &lt;td&gt;Real-time chat, customer support, batch classification, simple code collaboration, high-concurrency API calls&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;There are two naming details worth noting.&lt;/p&gt;
&lt;p&gt;First, the official name is &lt;code&gt;Claude Haiku 4.5&lt;/code&gt;, not &lt;code&gt;Claude 4.5 Haiku&lt;/code&gt;. Second, &lt;code&gt;Claude Mythos Preview&lt;/code&gt; is not a mainstream available model for regular users or developers. It is a controlled research preview related to Project Glasswing, mainly aimed at defensive cybersecurity workflows, and should not be mixed into regular Claude model selection.&lt;/p&gt;
&lt;h2 id=&#34;opus-for-the-hardest-problems&#34;&gt;Opus: For the Hardest Problems
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Opus&lt;/code&gt; is the tier Anthropic uses for its strongest models. The point of &lt;code&gt;Claude Opus 4.7&lt;/code&gt; is not being cheap or the fastest option, but being better suited to complex, multi-step tasks that require repeated verification.&lt;/p&gt;
&lt;p&gt;It is better suited to these situations:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Large code changes across many files.&lt;/li&gt;
&lt;li&gt;Complex system refactoring and architectural reasoning.&lt;/li&gt;
&lt;li&gt;Long-chain Agent tasks.&lt;/li&gt;
&lt;li&gt;Work requiring stronger visual understanding, document understanding, and multi-turn planning.&lt;/li&gt;
&lt;li&gt;Enterprise analysis tasks where mistakes are costly.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If the cost of a single failed task is high, or you want the model to spend more time understanding context before acting, &lt;code&gt;Opus&lt;/code&gt; is usually more worth trying.&lt;/p&gt;
&lt;h2 id=&#34;sonnet-the-default-starting-point-for-most-people&#34;&gt;Sonnet: The Default Starting Point for Most People
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Claude Sonnet 4.6&lt;/code&gt; is better suited as the default entry point. Its positioning is not &amp;ldquo;a lower-end Opus,&amp;rdquo; but rather a way to put sufficiently strong reasoning, coding, visual understanding, long context, and agent planning into a more controllable cost and speed profile.&lt;/p&gt;
&lt;p&gt;For developers, the value of &lt;code&gt;Sonnet 4.6&lt;/code&gt; mainly comes from three points:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;It can handle very long context, making it suitable for codebases, contracts, reports, or multiple documents.&lt;/li&gt;
&lt;li&gt;It is easier to use as a regular model in Claude Code, API, and enterprise scenarios.&lt;/li&gt;
&lt;li&gt;It costs less than Opus, making it more suitable for high-frequency use.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If you do not know which Claude model to start with, &lt;code&gt;Claude Sonnet 4.6&lt;/code&gt; is usually the right beginning. Switch to &lt;code&gt;Opus&lt;/code&gt; only when the task clearly needs stronger capability.&lt;/p&gt;
&lt;h2 id=&#34;haiku-when-fast-and-affordable-matter-more&#34;&gt;Haiku: When Fast and Affordable Matter More
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Claude Haiku 4.5&lt;/code&gt; is the small-model tier, but it should not simply be understood as a &amp;ldquo;weak model.&amp;rdquo; Anthropic positions it as fast and low cost while retaining capabilities close to frontier models.&lt;/p&gt;
&lt;p&gt;It fits these scenarios:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Real-time chat and customer support bots.&lt;/li&gt;
&lt;li&gt;Large-scale short-text classification.&lt;/li&gt;
&lt;li&gt;Low-latency API calls.&lt;/li&gt;
&lt;li&gt;Simple code edits and rapid prototypes.&lt;/li&gt;
&lt;li&gt;Subtask execution in multi-Agent workflows.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If the task itself is clear, the context is not complex, and throughput matters, &lt;code&gt;Haiku&lt;/code&gt; is often more reasonable than blindly using a larger model.&lt;/p&gt;
&lt;h2 id=&#34;claudes-tool-capabilities&#34;&gt;Claude&amp;rsquo;s Tool Capabilities
&lt;/h2&gt;&lt;p&gt;The Claude series is not just a set of chat models. Anthropic now places model capabilities inside multiple products and developer tools.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Claude Code&lt;/code&gt; is a command-line coding tool for developers. It can read codebases, edit files, run commands, and execute tests, making it suitable for sustained engineering work. Its experience depends heavily on the model&amp;rsquo;s code understanding, context management, and tool-calling stability.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Computer Use&lt;/code&gt; lets the model operate a desktop environment through screenshots, mouse actions, and keyboard input. It still needs to be used carefully, and the official documentation emphasizes running it in an isolated environment to avoid mistakes or security risks.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Artifacts&lt;/code&gt; is more of a Claude app-side experience. It can place code, page prototypes, charts, or document outputs into the interface for preview and iteration. It is not a standalone model, but part of the Claude product experience.&lt;/p&gt;
&lt;p&gt;As for terms like &amp;ldquo;Managed Agents&amp;rdquo; or &amp;ldquo;self-evolving Agents,&amp;rdquo; be careful when writing about them. Anthropic is indeed strengthening Agent SDK, Claude Code, long context, tool use, and enterprise workflows, but it should not be described as already having uncontrolled self-evolution capability.&lt;/p&gt;
&lt;h2 id=&#34;access-options&#34;&gt;Access Options
&lt;/h2&gt;&lt;p&gt;Regular users can use Claude through the &lt;code&gt;Claude.ai&lt;/code&gt; web app or mobile apps. Different plans affect available models, usage limits, and features.&lt;/p&gt;
&lt;p&gt;Developers usually have several access options:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Anthropic Console and Claude API.&lt;/li&gt;
&lt;li&gt;Amazon Bedrock.&lt;/li&gt;
&lt;li&gt;Google Cloud Vertex AI.&lt;/li&gt;
&lt;li&gt;Microsoft Foundry.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Specific available models, context windows, pricing, and regional support can change. Before development, it is best to rely on Anthropic&amp;rsquo;s official model documentation and the relevant cloud platform pages.&lt;/p&gt;
&lt;h2 id=&#34;how-to-choose&#34;&gt;How to Choose
&lt;/h2&gt;&lt;p&gt;In actual use, you do not need to chase the strongest model from the beginning. A better approach is to tier model choice by task cost.&lt;/p&gt;
&lt;p&gt;For everyday writing, code generation, long-document analysis, knowledge organization, and most Agent prototypes, start with &lt;code&gt;Claude Sonnet 4.6&lt;/code&gt;. It is usually the best starting point for cost effectiveness and general capability.&lt;/p&gt;
&lt;p&gt;If the task requires stronger complex reasoning, cross-file engineering changes, long-chain planning, or higher reliability, switch to &lt;code&gt;Claude Opus 4.7&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;If the task is simple, high-volume, and latency-sensitive, such as classification, summarization, customer support, or batch processing, put &lt;code&gt;Claude Haiku 4.5&lt;/code&gt; on the shortlist.&lt;/p&gt;
&lt;p&gt;Claude&amp;rsquo;s model line is not simply &amp;ldquo;new versions replacing old versions.&amp;rdquo; It is a toolbox layered by task difficulty, speed, and cost. Choosing the right model matters more than blindly using the most expensive one.&lt;/p&gt;
&lt;h2 id=&#34;references&#34;&gt;References
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Anthropic Models Overview: &lt;a class=&#34;link&#34; href=&#34;https://platform.claude.com/docs/en/about-claude/models/overview&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://platform.claude.com/docs/en/about-claude/models/overview&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Introducing Claude Opus 4.7: &lt;a class=&#34;link&#34; href=&#34;https://www.anthropic.com/news/claude-opus-4-7&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.anthropic.com/news/claude-opus-4-7&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Introducing Claude Sonnet 4.6: &lt;a class=&#34;link&#34; href=&#34;https://www.anthropic.com/news/claude-sonnet-4-6&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.anthropic.com/news/claude-sonnet-4-6&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Introducing Claude Haiku 4.5: &lt;a class=&#34;link&#34; href=&#34;https://www.anthropic.com/news/claude-haiku-4-5&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.anthropic.com/news/claude-haiku-4-5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Anthropic Computer Use Tool: &lt;a class=&#34;link&#34; href=&#34;https://docs.anthropic.com/en/docs/build-with-claude/computer-use&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://docs.anthropic.com/en/docs/build-with-claude/computer-use&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>How ChatGPT, Claude Code, and Gemini memory mechanisms differ</title>
        <link>https://knightli.com/en/2026/05/07/chatgpt-claude-code-gemini-memory-comparison/</link>
        <pubDate>Thu, 07 May 2026 14:47:17 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/07/chatgpt-claude-code-gemini-memory-comparison/</guid>
        <description>&lt;p&gt;&amp;ldquo;Memory&amp;rdquo; is becoming increasingly important in AI products. It marks the shift from one-off conversations to long-term collaboration: you do not need to reintroduce your background, repeat your preferences, or ask the model to understand the same project again and again.&lt;/p&gt;
&lt;p&gt;But memory does not mean the same thing in every product. &lt;code&gt;ChatGPT&lt;/code&gt;, &lt;code&gt;Claude Code&lt;/code&gt;, and &lt;code&gt;Gemini&lt;/code&gt; all try to help AI remember longer, but their goals, storage locations, transparency, and use cases are very different.&lt;/p&gt;
&lt;p&gt;As of May 7, 2026, they can be roughly understood as three types:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ChatGPT is more like personal assistant memory.&lt;/li&gt;
&lt;li&gt;Claude Code is more like engineering project memory.&lt;/li&gt;
&lt;li&gt;Gemini is more like Google ecosystem context.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;chatgpt-long-term-preferences-around-the-person&#34;&gt;ChatGPT: long-term preferences around the person
&lt;/h2&gt;&lt;p&gt;ChatGPT memory is mainly designed for personal collaboration. It cares about who you are, what you prefer, and what you work on over time.&lt;/p&gt;
&lt;p&gt;OpenAI currently separates ChatGPT memory into &lt;code&gt;saved memories&lt;/code&gt; and &lt;code&gt;chat history&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;saved memories&lt;/code&gt; are important pieces of information ChatGPT stores, such as your name, preferences, goals, common tech stack, and writing habits. You can explicitly ask it to remember something, and it may also save information from conversation when it thinks it will be useful later.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;chat history&lt;/code&gt; lets ChatGPT reference past conversations when answering. It does not mean every chat becomes a permanent memory. Instead, ChatGPT can search past conversations for relevant context when needed.&lt;/p&gt;
&lt;p&gt;So ChatGPT&amp;rsquo;s core logic is: understand the same user across sessions.&lt;/p&gt;
&lt;p&gt;Typical examples include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;ldquo;Keep code examples concise for me.&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&amp;ldquo;I mainly use Python and TypeScript.&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&amp;ldquo;I am writing a Hugo blog about AI tools.&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&amp;ldquo;I prefer conclusions first, then details.&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These memories are not bound to one project. They follow the account and the user&amp;rsquo;s working habits.&lt;/p&gt;
&lt;h2 id=&#34;memory-sources-making-personalization-more-visible&#34;&gt;Memory Sources: making personalization more visible
&lt;/h2&gt;&lt;p&gt;OpenAI emphasized &lt;code&gt;Memory sources&lt;/code&gt; in its May 2026 update.&lt;/p&gt;
&lt;p&gt;The purpose is not to add another type of memory, but to show users what sources ChatGPT referenced when personalizing a response. According to OpenAI help documents, Memory Sources may show:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Past chats.&lt;/li&gt;
&lt;li&gt;Saved memories.&lt;/li&gt;
&lt;li&gt;Custom instructions.&lt;/li&gt;
&lt;li&gt;Files in the file library.&lt;/li&gt;
&lt;li&gt;Emails from connected Gmail.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Files and Gmail visibility depend on plan, region, and connection status. OpenAI also states that Memory sources may not show every factor that influenced a response, but they help users understand and manage personalization.&lt;/p&gt;
&lt;p&gt;This matters. The more AI can &amp;ldquo;remember you,&amp;rdquo; the more users need to know what it used to answer. Otherwise personalization becomes a black box: it seems to know you, but you do not know why.&lt;/p&gt;
&lt;p&gt;ChatGPT&amp;rsquo;s advantage is cross-session, cross-topic understanding of personal preferences. The risk is that memories can become outdated, or users may forget an old memory is still affecting answers. It is worth periodically cleaning saved memories and old chats.&lt;/p&gt;
&lt;h2 id=&#34;claude-code-around-codebases-and-engineering-rules&#34;&gt;Claude Code: around codebases and engineering rules
&lt;/h2&gt;&lt;p&gt;Claude Code memory is more engineering-oriented. It cares less about a user&amp;rsquo;s everyday preferences and more about how this codebase should be changed.&lt;/p&gt;
&lt;p&gt;Claude Code has two memory mechanisms that are easy to confuse:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Explicit project memory: &lt;code&gt;CLAUDE.md&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Automatic project memory: Auto Memory.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; is the most basic and stable project memory file. It can live at the project root or inside subdirectories. Claude Code reads these files as project instructions and operating rules.&lt;/p&gt;
&lt;p&gt;Good content for &lt;code&gt;CLAUDE.md&lt;/code&gt; includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Common build, test, and lint commands.&lt;/li&gt;
&lt;li&gt;Code style and naming rules.&lt;/li&gt;
&lt;li&gt;Project architecture notes.&lt;/li&gt;
&lt;li&gt;Module boundaries and risky areas.&lt;/li&gt;
&lt;li&gt;Team conventions and commit workflow.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If &lt;code&gt;CLAUDE.md&lt;/code&gt; is stored in the repository, it can be committed to Git and shared as a team agent guide. This is completely different from ChatGPT&amp;rsquo;s cloud-based personal memory.&lt;/p&gt;
&lt;h2 id=&#34;claude-code-auto-memory-accumulating-project-experience&#34;&gt;Claude Code Auto Memory: accumulating project experience
&lt;/h2&gt;&lt;p&gt;Claude Code also has &lt;code&gt;Auto Memory&lt;/code&gt;. Its goal is to let Claude automatically accumulate project knowledge across sessions without requiring users to write every note manually.&lt;/p&gt;
&lt;p&gt;According to Claude Code documentation, Auto Memory lets Claude save notes while working, such as build commands, debugging discoveries, architecture notes, code style preferences, and workflow habits. It does not save every session, but judges what may be useful later.&lt;/p&gt;
&lt;p&gt;One common misconception is that Auto Memory writes by default to &lt;code&gt;.claude/memory.md&lt;/code&gt; in the project root. Official documentation says each project has its own memory directory under the user&amp;rsquo;s home directory, with a path like:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;~/.claude/projects/&amp;lt;project&amp;gt;/memory/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;MEMORY.md&lt;/code&gt; loads the first 200 lines or 25KB at the start of each conversation, while detailed content may be split into other topic files. Auto Memory files are local Markdown files, and users can view, edit, or delete them through &lt;code&gt;/memory&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;This makes Claude Code memory more like a local project knowledge base. It is closer to the codebase than ChatGPT&amp;rsquo;s personal memory, and more dynamic than a plain &lt;code&gt;CLAUDE.md&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;But Auto Memory is local to the machine. It does not naturally follow the repository to other machines or cloud environments. For team-shared stable rules, put them in the repository&amp;rsquo;s &lt;code&gt;CLAUDE.md&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;gemini-around-google-ecosystem-context&#34;&gt;Gemini: around Google ecosystem context
&lt;/h2&gt;&lt;p&gt;Gemini&amp;rsquo;s memory logic is different again.&lt;/p&gt;
&lt;p&gt;Gemini also supports saved information and past-chat references. Google help documents say users can save information about life, work, or preferences, and Gemini can reference past chats before answering. When it uses this information, the response may show sources such as &lt;code&gt;Your saved info&lt;/code&gt; or &lt;code&gt;Previous chats&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;But Gemini&amp;rsquo;s differentiation is not only &amp;ldquo;saving a few preferences.&amp;rdquo; It is Google ecosystem integration.&lt;/p&gt;
&lt;p&gt;With user authorization and feature availability, Gemini can access context from connected Google apps such as Gmail, Google Drive, Docs, and Sheets. Its advantage is not making users teach it every item manually, but turning existing Google account data into searchable work context.&lt;/p&gt;
&lt;p&gt;A typical difference:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ChatGPT remembers: &amp;ldquo;I have been repairing an LTO tape drive recently.&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Gemini may find the purchase confirmation email in Gmail or read repair notes from Drive.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This does not mean Gemini can unconditionally read all Google data. It depends on account type, region, permissions, connected apps, Keep Activity settings, and product availability. Enterprise and school accounts may also be controlled by Google Workspace administrators.&lt;/p&gt;
&lt;p&gt;More accurately, Gemini memory is a combination of saved info, past chats, and connected Google ecosystem data.&lt;/p&gt;
&lt;h2 id=&#34;core-differences&#34;&gt;Core differences
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Dimension&lt;/th&gt;
          &lt;th&gt;ChatGPT&lt;/th&gt;
          &lt;th&gt;Claude Code&lt;/th&gt;
          &lt;th&gt;Gemini&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Core object&lt;/td&gt;
          &lt;td&gt;Person and preferences&lt;/td&gt;
          &lt;td&gt;Project and codebase&lt;/td&gt;
          &lt;td&gt;Google account and ecosystem data&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Typical memory&lt;/td&gt;
          &lt;td&gt;Preferences, background, long-term goals&lt;/td&gt;
          &lt;td&gt;Architecture, commands, conventions, debugging experience&lt;/td&gt;
          &lt;td&gt;Saved info, past chats, Gmail/Drive/Docs context&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Storage form&lt;/td&gt;
          &lt;td&gt;Memory and chat context in OpenAI account&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt;, &lt;code&gt;MEMORY.md&lt;/code&gt;, local Markdown files&lt;/td&gt;
          &lt;td&gt;Google account activity, saved info, connected app data&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Transparency&lt;/td&gt;
          &lt;td&gt;Memory sources show part of the source&lt;/td&gt;
          &lt;td&gt;Markdown files can be opened and edited&lt;/td&gt;
          &lt;td&gt;Managed through source prompts, Gemini Apps Activity, and Google settings&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Cross-project ability&lt;/td&gt;
          &lt;td&gt;Strong, follows user account&lt;/td&gt;
          &lt;td&gt;Weak, mainly follows project or local project memory&lt;/td&gt;
          &lt;td&gt;Strong, depends on Google data and permissions&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Team sharing&lt;/td&gt;
          &lt;td&gt;Not suitable for direct sharing&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; can be shared through Git&lt;/td&gt;
          &lt;td&gt;Mainly depends on Workspace and permissions&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Best for&lt;/td&gt;
          &lt;td&gt;Personal preferences and long-term assistant behavior&lt;/td&gt;
          &lt;td&gt;Long-term coding projects and agent collaboration&lt;/td&gt;
          &lt;td&gt;Google Workspace retrieval and cross-tool work&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;how-to-choose&#34;&gt;How to choose
&lt;/h2&gt;&lt;p&gt;If you want AI to remember who you are, what style you prefer, and how you usually work, ChatGPT memory is more suitable.&lt;/p&gt;
&lt;p&gt;It is good for saving personal preferences such as writing style, tech stack, answer format, professional background, and long-term project direction. Its focus is reducing self-introduction cost so each new conversation can start faster.&lt;/p&gt;
&lt;p&gt;If you want AI to remember how a codebase should be changed, which commands work, and which traps to avoid, Claude Code is more suitable.&lt;/p&gt;
&lt;p&gt;Put stable rules into &lt;code&gt;CLAUDE.md&lt;/code&gt; for team sharing. Let Auto Memory assist with dynamic experience. Important decisions should still be organized into documentation or &lt;code&gt;CLAUDE.md&lt;/code&gt;, not left only in local automatic memory.&lt;/p&gt;
&lt;p&gt;If most of your materials live in Gmail, Drive, Docs, and Sheets, Gemini&amp;rsquo;s ecosystem context has an advantage.&lt;/p&gt;
&lt;p&gt;It is useful for finding old emails, organizing Drive documents, and connecting calendar and office materials. The key to using Gemini is not repeatedly reminding it in chat, but making sure the relevant app connections, permissions, and activity settings are correct.&lt;/p&gt;
&lt;h2 id=&#34;a-practical-division-of-labor&#34;&gt;A practical division of labor
&lt;/h2&gt;&lt;p&gt;You can divide them like this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ChatGPT remembers general personal preferences.&lt;/li&gt;
&lt;li&gt;Claude Code remembers engineering knowledge for a repository.&lt;/li&gt;
&lt;li&gt;Gemini retrieves materials from your Google ecosystem.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In other words, ChatGPT is like a personal secretary, Claude Code is like a senior engineer inside the project, and Gemini is like an indexer for your Google account.&lt;/p&gt;
&lt;p&gt;There is no absolute winner. They have different goals.&lt;/p&gt;
&lt;p&gt;The biggest mistake is mixing them together. Personal preferences do not always belong in project memory; project architecture does not always belong in cloud personal memory; and Google ecosystem retrieval does not mean the model has truly understood you long-term.&lt;/p&gt;
&lt;h2 id=&#34;short-take&#34;&gt;Short Take
&lt;/h2&gt;&lt;p&gt;The next stage of AI memory is not simply &amp;ldquo;remember more.&amp;rdquo; Memory needs layers, visibility, and control.&lt;/p&gt;
&lt;p&gt;ChatGPT focuses on cross-session personalization. Claude Code focuses on code project continuity. Gemini focuses on Google ecosystem context. Good long-term AI collaboration does not put all information into one black box; it keeps different kinds of memory in the right places.&lt;/p&gt;
&lt;p&gt;Put personal preferences in personal memory, engineering rules in the codebase, and historical materials in the original document and email systems. AI&amp;rsquo;s job is to call the right context when needed, not mix everything into one pile.&lt;/p&gt;
&lt;h2 id=&#34;links&#34;&gt;Links
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;OpenAI Memory FAQ: &lt;a class=&#34;link&#34; href=&#34;https://help.openai.com/en/articles/8590148-memory-faq&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://help.openai.com/en/articles/8590148-memory-faq&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;ChatGPT Release Notes: &lt;a class=&#34;link&#34; href=&#34;https://help.openai.com/en/articles/6825453-chatgpt-release-notes&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://help.openai.com/en/articles/6825453-chatgpt-release-notes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Claude Code Memory: &lt;a class=&#34;link&#34; href=&#34;https://code.claude.com/docs/en/memory&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://code.claude.com/docs/en/memory&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Gemini Saved info: &lt;a class=&#34;link&#34; href=&#34;https://support.google.com/gemini/answer/15637730&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://support.google.com/gemini/answer/15637730&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Gemini Apps Privacy Hub: &lt;a class=&#34;link&#34; href=&#34;https://support.google.com/gemini/answer/13594961&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://support.google.com/gemini/answer/13594961&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Anthropic raises Claude usage limits and expands compute with SpaceX</title>
        <link>https://knightli.com/en/2026/05/07/anthropic-higher-limits-spacex-compute/</link>
        <pubDate>Thu, 07 May 2026 14:26:14 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/07/anthropic-higher-limits-spacex-compute/</guid>
        <description>&lt;p&gt;Anthropic announced on May 6, 2026 that it is raising some Claude Code and Claude API usage limits, while also disclosing a new compute partnership with SpaceX.&lt;/p&gt;
&lt;p&gt;On the surface, this is about &amp;ldquo;more quota.&amp;rdquo; The more important signal is that model companies are tying product experience, subscription tiers, API rate limits, and infrastructure supply together. For heavy users, compute is not abstract. It determines whether they can run more Claude Code tasks, wait less, and call Opus models more reliably.&lt;/p&gt;
&lt;h2 id=&#34;how-claude-code-and-api-limits-are-changing&#34;&gt;How Claude Code and API limits are changing
&lt;/h2&gt;&lt;p&gt;Anthropic announced three changes, all effective from the day of the announcement.&lt;/p&gt;
&lt;p&gt;First, Claude Code&amp;rsquo;s five-hour usage limits are being doubled for Pro, Max, Team, and seat-based Enterprise plans.&lt;/p&gt;
&lt;p&gt;This matters directly for heavy Claude Code users. In the past, continuous code reading, editing, and task execution could quickly run into the five-hour limit. Doubling the limit allows more sustained development work in the same working window.&lt;/p&gt;
&lt;p&gt;Second, Pro and Max accounts will no longer see reduced Claude Code limits during peak hours.&lt;/p&gt;
&lt;p&gt;This is more important than the number itself. The most frustrating part of many AI tools is not the normal quota, but sudden slowdowns or unstable limits during busy periods. Removing peak-hour reductions shows Anthropic wants paid users to have a more predictable experience even when demand is high.&lt;/p&gt;
&lt;p&gt;Third, Anthropic is considerably raising API rate limits for Claude Opus models. The original article presents the detailed numbers in an image table; the core point is that Opus API capacity is being raised meaningfully.&lt;/p&gt;
&lt;p&gt;For developers, Opus is the more expensive, heavier, and more capable model. Higher Opus API limits suggest Anthropic wants more companies and developers to put Opus into real business workflows, not just use Claude in a chat interface.&lt;/p&gt;
&lt;h2 id=&#34;the-weight-of-the-spacex-compute-deal&#34;&gt;The weight of the SpaceX compute deal
&lt;/h2&gt;&lt;p&gt;The higher limits are backed by new compute supply.&lt;/p&gt;
&lt;p&gt;Anthropic says it has signed an agreement with SpaceX to use all compute capacity at SpaceX&amp;rsquo;s Colossus 1 data center. The partnership will provide more than 300 megawatts of new capacity within a month, corresponding to more than 220,000 NVIDIA GPUs.&lt;/p&gt;
&lt;p&gt;Those numbers say two things.&lt;/p&gt;
&lt;p&gt;First, compute is still a bottleneck for frontier model companies. Model capability, context length, tool use, coding agents, multimodality, and enterprise use cases all consume large amounts of inference resources. The more users and complex tasks a platform supports, the more stable large-scale GPU supply it needs.&lt;/p&gt;
&lt;p&gt;Second, AI infrastructure competition has entered a massive scale phase. In the past, attention focused more on model rankings, product features, and pricing. Now, whoever can secure power, facilities, networking, and GPUs faster has a better chance of turning model capability into a stable product.&lt;/p&gt;
&lt;p&gt;Anthropic also says the SpaceX capacity will directly improve capacity for Claude Pro and Claude Max subscribers. In other words, this is not just training infrastructure; it also supports user-facing inference.&lt;/p&gt;
&lt;h2 id=&#34;anthropics-compute-map&#34;&gt;Anthropic&amp;rsquo;s compute map
&lt;/h2&gt;&lt;p&gt;SpaceX is not Anthropic&amp;rsquo;s only compute partner.&lt;/p&gt;
&lt;p&gt;The announcement also points to several previously announced infrastructure arrangements:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;An up to 5GW agreement with Amazon, including nearly 1GW of new capacity by the end of 2026.&lt;/li&gt;
&lt;li&gt;A 5GW agreement with Google and Broadcom, expected to begin coming online in 2027.&lt;/li&gt;
&lt;li&gt;A strategic partnership with Microsoft and NVIDIA that includes $30 billion of Azure capacity.&lt;/li&gt;
&lt;li&gt;A $50 billion investment in American AI infrastructure with Fluidstack.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The common thread is that Anthropic is not binding itself to one hardware stack or one cloud platform. The original article explicitly says Claude is trained and run on AWS Trainium, Google TPUs, and NVIDIA GPUs.&lt;/p&gt;
&lt;p&gt;This multi-supplier strategy is practical. It is hard for one cloud provider to satisfy frontier training and large-scale inference demand over the long term. A multi-platform approach increases engineering complexity, but reduces supply chain and capacity risk.&lt;/p&gt;
&lt;h2 id=&#34;why-usage-limits-are-really-a-compute-issue&#34;&gt;Why usage limits are really a compute issue
&lt;/h2&gt;&lt;p&gt;AI product &amp;ldquo;limits&amp;rdquo; are not just membership copy. They map to real costs.&lt;/p&gt;
&lt;p&gt;Every time Claude Code reads a repository, generates a patch, or runs a long task, it consumes inference resources. API users who put Opus into support, financial analysis, code review, document processing, or agent workflows create sustained demand. For the platform, loosening limits means having more reliable compute behind the scenes.&lt;/p&gt;
&lt;p&gt;So the logic of this announcement is clear: first explain that users get higher limits, then explain why those limits can now be raised. The new SpaceX capacity, along with existing Amazon, Google, Microsoft, NVIDIA, and Fluidstack partnerships, supports heavier usage.&lt;/p&gt;
&lt;p&gt;This also explains why AI products increasingly emphasize tiering. Free, Pro, Max, Team, and Enterprise users consume compute differently and pay differently. Model companies have to realign quotas, priority, model access, and infrastructure costs.&lt;/p&gt;
&lt;h2 id=&#34;the-signal-from-orbital-ai-compute&#34;&gt;The signal from orbital AI compute
&lt;/h2&gt;&lt;p&gt;The announcement includes one futuristic detail: Anthropic says it has also expressed interest in partnering with SpaceX to develop multiple gigawatts of orbital AI compute capacity.&lt;/p&gt;
&lt;p&gt;That does not mean orbital data centers are becoming a product immediately. A safer reading is that frontier AI companies are already thinking beyond ground-based data centers for future compute supply.&lt;/p&gt;
&lt;p&gt;AI data centers are constrained by power, land, cooling, networking, and regulation. As training and inference demand grows, the industry will explore more infrastructure forms. Orbital compute may sound distant, but its appearance in an official Anthropic announcement is itself a signal: the imagination around compute competition is expanding.&lt;/p&gt;
&lt;h2 id=&#34;international-expansion-and-compliance&#34;&gt;International expansion and compliance
&lt;/h2&gt;&lt;p&gt;Anthropic also says enterprise customers, especially in regulated sectors such as finance, healthcare, and government, increasingly need in-region infrastructure for compliance and data residency.&lt;/p&gt;
&lt;p&gt;That means model companies cannot build all infrastructure in the United States. Enterprise AI has to handle regional compliance, data residency, supply chain security, power costs, and relationships with local communities. Anthropic says its collaboration with Amazon already includes additional inference in Asia and Europe.&lt;/p&gt;
&lt;p&gt;It also says it will be intentional about adding capacity in democratic countries whose legal and regulatory frameworks support large-scale investment and secure supply chains, while exploring ways to extend its US data center electricity-price commitment to other jurisdictions.&lt;/p&gt;
&lt;p&gt;This shows that AI infrastructure is not just a technical issue. It is increasingly an energy, manufacturing, and geopolitical economic issue.&lt;/p&gt;
&lt;h2 id=&#34;short-take&#34;&gt;Short Take
&lt;/h2&gt;&lt;p&gt;Anthropic&amp;rsquo;s announcement can be summarized simply: Claude limits are going up because new large-scale compute is coming online.&lt;/p&gt;
&lt;p&gt;For users, the near-term effects are higher Claude Code five-hour limits, fewer peak-hour reductions for Pro and Max, and more Opus API room. For the industry, the bigger point is that model competition is expanding from &amp;ldquo;whose model is stronger&amp;rdquo; to &amp;ldquo;who can continuously secure enough stable and compliant compute.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Future AI product experience may differ not only because of model parameters and product design, but also because of infrastructure capacity. Whoever can organize power, GPUs, data centers, cloud partnerships, and regional compliance has a better chance of turning frontier models into long-term services.&lt;/p&gt;
&lt;h2 id=&#34;links&#34;&gt;Links
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Anthropic announcement: &lt;a class=&#34;link&#34; href=&#34;https://www.anthropic.com/news/higher-limits-spacex&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.anthropic.com/news/higher-limits-spacex&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>CC Switch: A desktop tool for managing Claude Code, Codex, Gemini CLI, and OpenClaw in one place</title>
        <link>https://knightli.com/en/2026/05/06/cc-switch-ai-cli-manager/</link>
        <pubDate>Wed, 06 May 2026 09:03:08 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/06/cc-switch-ai-cli-manager/</guid>
        <description>&lt;p&gt;&lt;code&gt;CC Switch&lt;/code&gt; is a desktop management tool for heavy AI coding users. The problem it tries to solve is straightforward: many people now use &lt;code&gt;Claude Code&lt;/code&gt;, &lt;code&gt;Codex&lt;/code&gt;, &lt;code&gt;Gemini CLI&lt;/code&gt;, &lt;code&gt;OpenCode&lt;/code&gt;, and &lt;code&gt;OpenClaw&lt;/code&gt; at the same time, but each tool has its own configuration format, Provider syntax, MCP setup, and Skills management method.&lt;/p&gt;
&lt;p&gt;When you only use one tool, manually editing configuration files is still tolerable. Once several tools are mixed together, plus official accounts, third-party APIs, relay services, local models, and shared team configuration, editing JSON, TOML, and &lt;code&gt;.env&lt;/code&gt; files by hand quickly becomes tedious.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;CC Switch&lt;/code&gt; is positioned as a way to pull these scattered configurations into one cross-platform desktop app.&lt;/p&gt;
&lt;h2 id=&#34;what-problem-does-it-solve&#34;&gt;What problem does it solve
&lt;/h2&gt;&lt;p&gt;Modern AI coding tools increasingly feel like &amp;ldquo;development colleagues inside the command line&amp;rdquo;, but their ecosystems are still not fully unified.&lt;/p&gt;
&lt;p&gt;Common pain points include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Claude Code, Codex, Gemini CLI, OpenCode, and OpenClaw all use different configuration formats.&lt;/li&gt;
&lt;li&gt;Switching API Providers requires repeated configuration-file edits.&lt;/li&gt;
&lt;li&gt;MCP servers are configured repeatedly across different tools.&lt;/li&gt;
&lt;li&gt;Prompt files such as &lt;code&gt;CLAUDE.md&lt;/code&gt;, &lt;code&gt;AGENTS.md&lt;/code&gt;, and &lt;code&gt;GEMINI.md&lt;/code&gt; are hard to maintain consistently.&lt;/li&gt;
&lt;li&gt;Skills installation, sync, backup, and removal lack a single central entry point.&lt;/li&gt;
&lt;li&gt;Switching between multiple accounts, relays, and model services can easily become confusing.&lt;/li&gt;
&lt;li&gt;Once a manually edited configuration file breaks, troubleshooting is costly.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The idea behind &lt;code&gt;CC Switch&lt;/code&gt; is to stop forcing users to remember every tool&amp;rsquo;s configuration details, and instead use one unified interface to manage Providers, MCP, Prompts, Skills, Sessions, and proxies.&lt;/p&gt;
&lt;h2 id=&#34;supported-tools&#34;&gt;Supported tools
&lt;/h2&gt;&lt;p&gt;The README lists five core supported targets:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Claude Code&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Codex&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Gemini CLI&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;OpenCode&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;OpenClaw&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These tools are similar in positioning: all center on AI coding, Agent workflows, and command-line collaboration. But their configuration systems differ, and the value of &lt;code&gt;CC Switch&lt;/code&gt; lies in wrapping those differences.&lt;/p&gt;
&lt;p&gt;For people who often compare different AI coding tools, this is much easier than manually opening configuration files every time.&lt;/p&gt;
&lt;h2 id=&#34;provider-management&#34;&gt;Provider management
&lt;/h2&gt;&lt;p&gt;The first layer of &lt;code&gt;CC Switch&lt;/code&gt; is Provider management.&lt;/p&gt;
&lt;p&gt;It includes more than 50 Provider presets. The README mentions directions such as AWS Bedrock, NVIDIA NIM, and various community relays. Users can copy an API key, import it with one click, and then switch from the interface.&lt;/p&gt;
&lt;p&gt;The practical points include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add Providers with one click.&lt;/li&gt;
&lt;li&gt;Reorder Providers by dragging.&lt;/li&gt;
&lt;li&gt;Quickly switch from the system tray.&lt;/li&gt;
&lt;li&gt;Import and export Providers.&lt;/li&gt;
&lt;li&gt;Sync some common Providers across multiple apps.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For many people, this feature alone is already attractive. In daily AI coding work, the problem is often not &amp;ldquo;I do not know how to use the model&amp;rdquo;, but &amp;ldquo;which tool, endpoint, and account should this key use today&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;local-proxy-and-failover&#34;&gt;Local proxy and failover
&lt;/h2&gt;&lt;p&gt;Besides writing configuration files, &lt;code&gt;CC Switch&lt;/code&gt; also provides a local proxy mode.&lt;/p&gt;
&lt;p&gt;The focus of this capability is:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Hot-switching Providers.&lt;/li&gt;
&lt;li&gt;Format conversion.&lt;/li&gt;
&lt;li&gt;Automatic failover.&lt;/li&gt;
&lt;li&gt;Circuit breakers.&lt;/li&gt;
&lt;li&gt;Provider health checks.&lt;/li&gt;
&lt;li&gt;Request correction.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In simple terms, it does not only write configuration into target tools. It can also add a local proxy layer in the middle, so different tools access model services through the proxy.&lt;/p&gt;
&lt;p&gt;This is useful for users with multiple Providers: if one service is down, switch to another; if one model is expensive, move to a cheaper one; if a request format is incompatible, adapt it through the proxy layer.&lt;/p&gt;
&lt;h2 id=&#34;mcp-prompts-and-skills&#34;&gt;MCP, Prompts, and Skills
&lt;/h2&gt;&lt;p&gt;The second important layer of &lt;code&gt;CC Switch&lt;/code&gt; is unified management for MCP, Prompts, and Skills.&lt;/p&gt;
&lt;h3 id=&#34;mcp&#34;&gt;MCP
&lt;/h3&gt;&lt;p&gt;It provides a unified MCP panel for managing MCP servers across multiple apps, with support for bidirectional sync and Deep Link import.&lt;/p&gt;
&lt;p&gt;This is practical for users already working with MCP. Once there are many MCP servers, configuration easily becomes scattered across different clients. A unified panel reduces duplicate configuration and makes migration easier.&lt;/p&gt;
&lt;h3 id=&#34;prompts&#34;&gt;Prompts
&lt;/h3&gt;&lt;p&gt;The Prompts section supports Markdown editing and can sync corresponding files across different tools, such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;AGENTS.md&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GEMINI.md&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These files are essentially project manuals for Agents. Unified management makes it easier to maintain team rules, project conventions, and global prompts.&lt;/p&gt;
&lt;h3 id=&#34;skills&#34;&gt;Skills
&lt;/h3&gt;&lt;p&gt;Skills can be installed with one click from GitHub repositories or ZIP files. Custom repository management, symbolic links, and file copying are also supported.&lt;/p&gt;
&lt;p&gt;If you use tools such as Claude Code, Codex, and OpenClaw at the same time, Skills can easily turn into scattered files across different directories. &lt;code&gt;CC Switch&lt;/code&gt; centralizes them and reduces maintenance cost.&lt;/p&gt;
&lt;h2 id=&#34;sessions-and-workspace&#34;&gt;Sessions and workspace
&lt;/h2&gt;&lt;p&gt;The README also mentions Session Manager and Workspace features.&lt;/p&gt;
&lt;p&gt;It can browse, search, and restore session history from multiple apps. For people who use AI coding tools over a long period, session management is genuinely important: many valuable contexts, debugging trails, and solution comparisons are buried in old conversations.&lt;/p&gt;
&lt;p&gt;It also provides a Workspace editor for OpenClaw, allowing users to edit agent files such as &lt;code&gt;AGENTS.md&lt;/code&gt; and &lt;code&gt;SOUL.md&lt;/code&gt; with Markdown preview.&lt;/p&gt;
&lt;p&gt;This shows that &lt;code&gt;CC Switch&lt;/code&gt; is not just a small &amp;ldquo;key switching&amp;rdquo; utility. It is expanding toward an AI Agent workstation.&lt;/p&gt;
&lt;h2 id=&#34;cloud-sync-and-data-storage&#34;&gt;Cloud sync and data storage
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;CC Switch&lt;/code&gt; supports syncing Provider data through Dropbox, OneDrive, iCloud, NAS, or WebDAV.&lt;/p&gt;
&lt;p&gt;Local data storage is also clearly defined:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Database: &lt;code&gt;~/.cc-switch/cc-switch.db&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Local settings: &lt;code&gt;~/.cc-switch/settings.json&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Automatic backups: &lt;code&gt;~/.cc-switch/backups/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Skills: &lt;code&gt;~/.cc-switch/skills/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Skill backups: &lt;code&gt;~/.cc-switch/skill-backups/&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It uses SQLite as the main data source and emphasizes atomic writes and automatic backups, with the goal of avoiding configuration-file corruption during switching or writing.&lt;/p&gt;
&lt;p&gt;This design matters for heavy users. If the configuration management tool itself writes a bad configuration, every AI coding tool can be affected.&lt;/p&gt;
&lt;h2 id=&#34;installation&#34;&gt;Installation
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;CC Switch&lt;/code&gt; is a cross-platform desktop app built on Tauri 2.&lt;/p&gt;
&lt;p&gt;The approximate system requirements are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Windows: Windows 10 or later&lt;/li&gt;
&lt;li&gt;macOS: macOS 12 Monterey or later&lt;/li&gt;
&lt;li&gt;Linux: Ubuntu 22.04+, Debian 11+, Fedora 34+, and other mainstream distributions&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Windows users can download the &lt;code&gt;.msi&lt;/code&gt; installer or a portable compressed package.&lt;/p&gt;
&lt;p&gt;macOS users can install it with Homebrew:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;brew tap farion1231/ccswitch
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;brew install --cask cc-switch
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;To update:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;brew upgrade --cask cc-switch
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Linux users can choose &lt;code&gt;.deb&lt;/code&gt;, &lt;code&gt;.rpm&lt;/code&gt;, or AppImage. Arch Linux users can also install it through &lt;code&gt;paru -S cc-switch-bin&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;As of May 6, 2026, the repository page shows the latest release as &lt;code&gt;CC Switch v3.14.1&lt;/code&gt;, published on April 23, 2026.&lt;/p&gt;
&lt;h2 id=&#34;tech-stack&#34;&gt;Tech stack
&lt;/h2&gt;&lt;p&gt;Judging from the repository structure, &lt;code&gt;CC Switch&lt;/code&gt; is a typical Tauri desktop app:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Frontend: React 18, TypeScript, Vite, TailwindCSS, TanStack Query, shadcn/ui&lt;/li&gt;
&lt;li&gt;Backend: Tauri 2, Rust, SQLite, Tokio&lt;/li&gt;
&lt;li&gt;Testing: Vitest, MSW, Testing Library&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Core design patterns include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SQLite as the Single Source of Truth.&lt;/li&gt;
&lt;li&gt;JSON for device-level local settings.&lt;/li&gt;
&lt;li&gt;Writing into target tools&amp;rsquo; live config during switching.&lt;/li&gt;
&lt;li&gt;Filling current Provider edits back from live config.&lt;/li&gt;
&lt;li&gt;Atomic writes using temporary files plus rename.&lt;/li&gt;
&lt;li&gt;Locked database connections to avoid concurrent write issues.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This architecture suggests the project is not a simple script, but a desktop tool designed for long-term use.&lt;/p&gt;
&lt;h2 id=&#34;who-it-is-for&#34;&gt;Who it is for
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;CC Switch&lt;/code&gt; suits these users:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;People who use Claude Code, Codex, Gemini CLI, OpenCode, and OpenClaw together.&lt;/li&gt;
&lt;li&gt;People who frequently switch between official accounts, third-party relays, local models, or team Providers.&lt;/li&gt;
&lt;li&gt;Users already making heavy use of MCP.&lt;/li&gt;
&lt;li&gt;Teams that want to maintain &lt;code&gt;CLAUDE.md&lt;/code&gt;, &lt;code&gt;AGENTS.md&lt;/code&gt;, and &lt;code&gt;GEMINI.md&lt;/code&gt; in one place.&lt;/li&gt;
&lt;li&gt;Users who often install, test, and migrate Skills.&lt;/li&gt;
&lt;li&gt;People who want to view session history and usage across different tools.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you only use one AI coding tool, rely on official login, and rarely touch Providers, MCP, or Skills, its value may not be obvious.&lt;/p&gt;
&lt;p&gt;But if you have already entered a &amp;ldquo;many tools, many accounts, many Providers, many projects&amp;rdquo; state, it can remove a lot of repetitive configuration work.&lt;/p&gt;
&lt;h2 id=&#34;what-to-watch-out-for&#34;&gt;What to watch out for
&lt;/h2&gt;&lt;p&gt;Tools like this are convenient, but they also need clear boundaries.&lt;/p&gt;
&lt;p&gt;First, it manages configuration for multiple AI CLIs, so users should be sure they trust the tool and its write logic.&lt;/p&gt;
&lt;p&gt;Second, API keys, relay endpoints, and MCP servers are all sensitive configuration. Before enabling cloud sync, make sure the sync folder and WebDAV service are secure and trustworthy.&lt;/p&gt;
&lt;p&gt;Third, after switching Providers, most tools still need the terminal or CLI to be restarted before changes take effect. The README mentions that Claude Code supports hot-switching Provider data, but other tools usually still require a restart.&lt;/p&gt;
&lt;p&gt;Fourth, when switching back to official login, it is better to add the official provider according to the project instructions and then rerun the corresponding tool&amp;rsquo;s login flow.&lt;/p&gt;
&lt;h2 id=&#34;summary&#34;&gt;Summary
&lt;/h2&gt;&lt;p&gt;The value of &lt;code&gt;CC Switch&lt;/code&gt; is not that it creates yet another AI coding tool. Its value is that it acknowledges a reality: the AI coding ecosystem has entered a stage where multiple tools coexist.&lt;/p&gt;
&lt;p&gt;Claude Code, Codex, Gemini CLI, OpenCode, and OpenClaw each have their own configuration systems, while MCP, Skills, Prompts, and Providers are expanding quickly. Continuing to edit configuration files by hand will eventually become a burden.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;CC Switch&lt;/code&gt; pulls these pieces into one desktop app, making it easier to switch Providers, sync MCP, manage Skills, maintain prompt files, and view sessions. For heavy AI coding users, tools like this may move from &amp;ldquo;optional utility&amp;rdquo; to &amp;ldquo;daily infrastructure&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;references&#34;&gt;References
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/farion1231/cc-switch&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;farion1231/cc-switch&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>What Happened in Claude Code&#39;s HERMES.md Billing Incident</title>
        <link>https://knightli.com/en/2026/05/02/claude-code-hermes-md-billing-incident/</link>
        <pubDate>Sat, 02 May 2026 11:19:23 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/02/claude-code-hermes-md-billing-incident/</guid>
        <description>&lt;p&gt;Claude Code recently had a typical billing incident: a user only started the CLI and had not made an explicit request, yet a large local &lt;code&gt;HERMES.md&lt;/code&gt; file was read and generated a significant charge.&lt;/p&gt;
&lt;p&gt;This is worth looking at because it exposes a new risk in AI coding tools. Once a tool automatically reads context, local files can become real token cost.&lt;/p&gt;
&lt;h2 id=&#34;what-happened&#34;&gt;What Happened
&lt;/h2&gt;&lt;p&gt;The public issue shows that the user had a large &lt;code&gt;HERMES.md&lt;/code&gt; file in the working directory. When Claude Code started, the CLI scanned and loaded project context. The problem was that this file was automatically included in context and counted toward API usage.&lt;/p&gt;
&lt;p&gt;The user did not explicitly ask the model to process that file, but billing had already happened. The harder part is that this can occur during initialization or context preparation, so users may not immediately realize that cost is being generated.&lt;/p&gt;
&lt;p&gt;Anthropic later replied in the issue that it would refund the abnormal charge and provide extra credits. That confirms the problem was acknowledged and handled, but it also reminds users that &amp;ldquo;automatic context&amp;rdquo; in an AI CLI is not free.&lt;/p&gt;
&lt;h2 id=&#34;why-hermesmd-triggered-it&#34;&gt;Why HERMES.md Triggered It
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;HERMES.md&lt;/code&gt; itself is not the point. It could be any large file: logs, exported documents, test data, database dumps, generated reports.&lt;/p&gt;
&lt;p&gt;The real issue is the combination of three things:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Claude Code automatically reads project context.&lt;/li&gt;
&lt;li&gt;The file being read may be large.&lt;/li&gt;
&lt;li&gt;Context tokens enter the billing path.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If a file is large enough, even being pulled in &amp;ldquo;incidentally&amp;rdquo; can create noticeable cost. For token-based models, stronger automation needs clearer boundaries.&lt;/p&gt;
&lt;h2 id=&#34;this-is-not-an-ordinary-bug&#34;&gt;This Is Not an Ordinary Bug
&lt;/h2&gt;&lt;p&gt;An ordinary CLI bug may mean a failed command, wrong output, or broken feature. A billing bug is more sensitive because it affects the user&amp;rsquo;s bill directly.&lt;/p&gt;
&lt;p&gt;For AI coding tools, the billing boundary can be blurry:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;System prompts consume tokens.&lt;/li&gt;
&lt;li&gt;Project rules consume tokens.&lt;/li&gt;
&lt;li&gt;Automatically read files consume tokens.&lt;/li&gt;
&lt;li&gt;Tool call results consume tokens.&lt;/li&gt;
&lt;li&gt;Retries, compression, and summaries can keep consuming tokens.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Users may see only &amp;ldquo;starting the tool&amp;rdquo; or &amp;ldquo;one chat,&amp;rdquo; while the background may already have sent multiple requests with a large amount of context.&lt;/p&gt;
&lt;h2 id=&#34;how-users-can-reduce-risk&#34;&gt;How Users Can Reduce Risk
&lt;/h2&gt;&lt;p&gt;If you use Claude Code, Codex, Cline, or similar AI coding tools, start with a few habits:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Do not put large files directly in the project root.&lt;/li&gt;
&lt;li&gt;Add logs, exported data, build outputs, and temporary files to ignore rules.&lt;/li&gt;
&lt;li&gt;Check whether the tool supports &lt;code&gt;.ignore&lt;/code&gt;, context exclusion, or file allowlists.&lt;/li&gt;
&lt;li&gt;Enable budget alerts or usage limits.&lt;/li&gt;
&lt;li&gt;Test in a small directory before running in a large repository.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If a repository must keep large files, explicitly tell the tool not to read them. Project rules can also say: do not proactively read logs, dumps, datasets, archives, or large Markdown files.&lt;/p&gt;
&lt;h2 id=&#34;what-tool-vendors-should-improve&#34;&gt;What Tool Vendors Should Improve
&lt;/h2&gt;&lt;p&gt;This cannot rely only on user caution. Tools should provide hard boundaries.&lt;/p&gt;
&lt;p&gt;Better designs include:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Initialization should not silently bill for large files.&lt;/li&gt;
&lt;li&gt;Reading very large files automatically should require confirmation.&lt;/li&gt;
&lt;li&gt;The CLI should show estimated tokens and cost range for the request.&lt;/li&gt;
&lt;li&gt;Common large files and generated directories should be ignored by default.&lt;/li&gt;
&lt;li&gt;Abnormal token spikes should have protective thresholds.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The more AI coding tools behave like autonomous agents, the more transparent their costs need to be. Otherwise users cannot judge how much a single operation will cost.&lt;/p&gt;
&lt;h2 id=&#34;summary&#34;&gt;Summary
&lt;/h2&gt;&lt;p&gt;The Claude Code &lt;code&gt;HERMES.md&lt;/code&gt; billing incident is essentially a conflict between automatic context and usage-based billing.&lt;/p&gt;
&lt;p&gt;For users, the key is to control project context: do not expose large files to AI tools by default, and set budget and usage limits. For tool vendors, automatic file reading needs visible cost prompts and protective mechanisms.&lt;/p&gt;
&lt;p&gt;References:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/anthropics/claude-code/issues/53262&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/anthropics/claude-code/issues/53262&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.anthropic.com/en/docs/claude-code/costs&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://docs.anthropic.com/en/docs/claude-code/costs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.anthropic.com/pricing&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.anthropic.com/pricing&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>How DeepSeek V4 Price Cuts Rewrite the Cost Model for AI Agents</title>
        <link>https://knightli.com/en/2026/05/01/deepseek-v4-price-cuts-ai-agent-economics/</link>
        <pubDate>Fri, 01 May 2026 19:47:47 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/01/deepseek-v4-price-cuts-ai-agent-economics/</guid>
        <description>&lt;p&gt;DeepSeek V4 did not arrive with an especially loud launch.
There was no major event, nor a benchmark story that instantly crushed every competitor.
But a few days later, the part that truly affects the industry became visible: repeated price cuts.&lt;/p&gt;
&lt;p&gt;The point of this change is not that &amp;ldquo;the model got a little stronger&amp;rdquo;, but that &amp;ldquo;usage cost has been pushed into another tier&amp;rdquo;.
When token prices become low enough that an ordinary Agent task can finish for a few cents or a couple of yuan, the business logic behind many Coding Plans and Token Plans needs to be reconsidered.&lt;/p&gt;
&lt;h2 id=&#34;launch-day-was-not-explosive&#34;&gt;Launch Day Was Not Explosive
&lt;/h2&gt;&lt;p&gt;The first wave of feedback to DeepSeek V4 was not especially heated.
Many people expected it to deliver the kind of shock R1 did: across-the-board benchmark leadership, validation of domestic compute, and simultaneous breakthroughs in multimodal and Agent capabilities.
After the actual release, however, it looked more like a steady upgrade.&lt;/p&gt;
&lt;p&gt;V4 Pro is indeed a strong model, especially in coding, math, long context, and agentic coding.
But it is not the kind of product that instantly makes every peer model look outdated.
So on launch day, the discussion felt a little awkward: people wanted to praise it, but it was hard to find a sufficiently explosive angle.&lt;/p&gt;
&lt;p&gt;The real turning point was not launch day, but the price adjustments that followed.&lt;/p&gt;
&lt;h2 id=&#34;successive-price-cuts-are-the-key&#34;&gt;Successive Price Cuts Are the Key
&lt;/h2&gt;&lt;p&gt;After DeepSeek V4 was released, prices started to move downward.
According to DeepSeek&amp;rsquo;s official pricing page and the information summarized in the source article, the rough prices at that time were:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;DeepSeek V4 Flash: about 1 yuan per 1 million input tokens; about 0.02 yuan per 1 million tokens after a cache hit;&lt;/li&gt;
&lt;li&gt;DeepSeek V4 Pro: about 3 yuan per 1 million input tokens; about 0.025 yuan per 1 million tokens after a cache hit;&lt;/li&gt;
&lt;li&gt;the cache-hit input price across the model family dropped to one tenth of the launch price;&lt;/li&gt;
&lt;li&gt;V4 Pro was once in a 75% discount period, extended until May 31, 2026 at 23:59.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The API prices in US dollars make the difference easier to see:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Model&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Cached input&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Non-cached input&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Output&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Context&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;deepseek-v4-flash&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.0028 / 1M tokens&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.14 / 1M tokens&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.28 / 1M tokens&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1M&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;deepseek-v4-pro&lt;/code&gt; promotional price&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.003625 / 1M tokens&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.435 / 1M tokens&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.87 / 1M tokens&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1M&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;deepseek-v4-pro&lt;/code&gt; regular price&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.0145 / 1M tokens&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$1.74 / 1M tokens&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$3.48 / 1M tokens&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1M&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Two details matter here.&lt;/p&gt;
&lt;p&gt;First, V4 Pro&amp;rsquo;s $0.435 / $0.87 is a promotional price, not the long-term regular price.
In DeepSeek&amp;rsquo;s official notes, this 75% discount was extended until May 31, 2026 at 15:59 UTC.&lt;/p&gt;
&lt;p&gt;Second, cache-hit pricing is the key variable in the Agent cost model.
Flash&amp;rsquo;s cached input price is as low as $0.0028 / 1M tokens, while Pro&amp;rsquo;s promotional cached input price is $0.003625 / 1M tokens.
That means repeated project context, tool definitions, system prompts, and historical summaries no longer need to be charged at the full input price.&lt;/p&gt;
&lt;p&gt;The most important thing about this pricing is that it makes the token cost of many tasks &amp;ldquo;insensitive&amp;rdquo;.
In the past, developers worried that one Agent task would consume a large amount of context, repeatedly read and write code, and call tools frequently.
Now, as long as the cache hit rate is high enough, the cost can be pushed very low.&lt;/p&gt;
&lt;h2 id=&#34;price-comparison-with-gpt-and-claude&#34;&gt;Price Comparison With GPT and Claude
&lt;/h2&gt;&lt;p&gt;DeepSeek&amp;rsquo;s own prices alone do not fully convey the gap.
The contrast becomes much clearer when placed next to common closed-source models from the same period.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Model&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Input&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Cached input&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Output&lt;/th&gt;
          &lt;th&gt;Best fit&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;deepseek-v4-flash&lt;/code&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.14 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.0028 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.28 / M&lt;/td&gt;
          &lt;td&gt;High-frequency Agents, routine coding, batch tasks&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;deepseek-v4-pro&lt;/code&gt; promotional price&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.435 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.003625 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.87 / M&lt;/td&gt;
          &lt;td&gt;Complex coding, planning, fact checking&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;deepseek-v4-pro&lt;/code&gt; regular price&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$1.74 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.0145 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$3.48 / M&lt;/td&gt;
          &lt;td&gt;Pro cost baseline after the promotion&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GPT-5.5&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$5 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.50 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$30 / M&lt;/td&gt;
          &lt;td&gt;High-quality complex tasks, general reasoning&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GPT-5.4&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$2.50 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.25 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$15 / M&lt;/td&gt;
          &lt;td&gt;Mid-range choice for programming and professional tasks&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GPT-5.4 mini&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.75 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.075 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$4.50 / M&lt;/td&gt;
          &lt;td&gt;Lower-cost general and subtask model&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Claude Opus 4.7&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$5 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.50 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$25 / M&lt;/td&gt;
          &lt;td&gt;High-quality writing, complex reasoning, long tasks&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Claude Sonnet 4.6&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$3 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.30 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$15 / M&lt;/td&gt;
          &lt;td&gt;Programming, Agents, general work&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Claude Haiku 4.5&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$1 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$0.10 / M&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$5 / M&lt;/td&gt;
          &lt;td&gt;Lightweight tasks, summarization, classification&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The most striking number in this table is output price.
Agents do not only read context; they also keep generating plans, patches, explanations, logs, and next actions.
If there is a lot of output, DeepSeek V4 Pro&amp;rsquo;s promotional $0.87 / M becomes dramatically cheaper than GPT-5.5&amp;rsquo;s $30 / M or Claude Sonnet 4.6&amp;rsquo;s $15 / M.&lt;/p&gt;
&lt;p&gt;Even at V4 Pro&amp;rsquo;s regular output price of $3.48 / M, it is still clearly below GPT-5.4, GPT-5.5, and Claude Sonnet / Opus.
If the task can be handled by Flash, the output price drops further to $0.28 / M.&lt;/p&gt;
&lt;p&gt;The cached input gap is even more extreme.
DeepSeek V4 Flash&amp;rsquo;s cached input price is $0.0028 / M, while GPT-5.5 and Claude Opus 4.7 are both $0.50 / M.
These are not in the same order of magnitude.
For Agents that repeatedly read the same code repository, this gap matters more than it does in ordinary chat.&lt;/p&gt;
&lt;h2 id=&#34;why-agent-tasks-are-especially-affected&#34;&gt;Why Agent Tasks Are Especially Affected
&lt;/h2&gt;&lt;p&gt;AI Agents are different from ordinary chat.
Ordinary chat is usually a question-and-answer flow with relatively limited input context.
Agent tasks repeatedly read project files, generate plans, call tools, inspect results, and then modify code again.&lt;/p&gt;
&lt;p&gt;These tasks have two traits:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;large token consumption;&lt;/li&gt;
&lt;li&gt;lots of repeated context.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The second point is crucial.
In a code project, the model repeatedly reads the same files, directory structure, error logs, and modification results.
If the platform supports cache hits, the cost of repeated input drops sharply.&lt;/p&gt;
&lt;p&gt;The source article mentioned a real experience: connecting DeepSeek V4 Pro and Flash to a Claude Code-like tool, asking it to pull a prompt repository and turn it into a local search site.
The task was completed, with a total cost of roughly a little over 0.8 yuan, and Pro reached a cache hit rate of 98.7%.&lt;/p&gt;
&lt;p&gt;This example illustrates a practical issue: the more an Agent task resembles &amp;ldquo;repeated work around the same project&amp;rdquo;, the more valuable cache hits become.
If generating a website, fixing a bug, or changing a frontend costs only a few cents to a few yuan, subscription plans become less attractive.&lt;/p&gt;
&lt;p&gt;We can estimate the gap with a simplified task.
Assume one coding agent task includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;500,000 input tokens, of which 80% can hit cache;&lt;/li&gt;
&lt;li&gt;50,000 output tokens;&lt;/li&gt;
&lt;li&gt;no tool calls, search costs, or platform markup included, only model token cost.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The rough costs are:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Model&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Estimated cost&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;DeepSeek V4 Flash&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;about $0.03&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;DeepSeek V4 Pro promotional price&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;about $0.09&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;DeepSeek V4 Pro regular price&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;about $0.36&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GPT-5.4 mini&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;about $0.30&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GPT-5.4&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;about $1.01&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GPT-5.5&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;about $1.75&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Claude Sonnet 4.6&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;about $1.11&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Claude Opus 4.7&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;about $1.65&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;This estimate does not mean DeepSeek is better for every task.
Model quality, tool-call stability, long-context retrieval ability, coding style, and factual reliability all need separate evaluation.
But from a cost perspective, DeepSeek V4 pushes the marginal cost of &amp;ldquo;letting the Agent run a few more rounds&amp;rdquo; very low.
That will encourage developers to design longer workflows, more frequent self-checks, and more candidate solutions instead of worrying about the token bill every time.&lt;/p&gt;
&lt;h2 id=&#34;the-difference-between-coding-plans-and-token-plans&#34;&gt;The Difference Between Coding Plans and Token Plans
&lt;/h2&gt;&lt;p&gt;Many AI products now offer two types of plans: Coding Plans and Token Plans.&lt;/p&gt;
&lt;p&gt;The rough difference is:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Coding Plans are usually mainly for programming;&lt;/li&gt;
&lt;li&gt;Token Plans usually cover more capabilities, such as STT, TTS, image generation, search, embedding, and RAG;&lt;/li&gt;
&lt;li&gt;STT means speech to text;&lt;/li&gt;
&lt;li&gt;TTS means text to speech;&lt;/li&gt;
&lt;li&gt;Coding Plans often restrict users to programming scenarios, while other capabilities still require separate purchases.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;From a business perspective, a Coding Plan is more like a buffet.
Users pay a fixed fee in advance, while the vendor bets that most people will not use up the quota.
Some users consume more, others consume less, and the platform can still make money on average.&lt;/p&gt;
&lt;p&gt;But if pay-as-you-go token prices are low enough, users start calculating: why do I have to buy a plan?
If the real monthly usage cost is only a few yuan or a dozen yuan, a 40-yuan or 200-yuan plan may no longer be worthwhile.&lt;/p&gt;
&lt;h2 id=&#34;why-price-cuts-challenge-the-subscription-model&#34;&gt;Why Price Cuts Challenge the Subscription Model
&lt;/h2&gt;&lt;p&gt;Subscription plans rely on one premise: users feel that each individual use is expensive, or they do not want to calculate the cost of every call.
When token prices are high, a plan feels reassuring.
When token prices are almost negligible, pay-as-you-go becomes more natural.&lt;/p&gt;
&lt;p&gt;DeepSeek V4&amp;rsquo;s price cut effectively reveals the underlying cost:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Agent tasks can be very cheap;&lt;/li&gt;
&lt;li&gt;long context is not necessarily too expensive to use;&lt;/li&gt;
&lt;li&gt;cache hits can reduce cost significantly;&lt;/li&gt;
&lt;li&gt;ordinary developers do not necessarily need a fixed subscription;&lt;/li&gt;
&lt;li&gt;the model entry point can shift from a &amp;ldquo;plan platform&amp;rdquo; to a &amp;ldquo;low-cost API&amp;rdquo;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This will make platforms built around Coding Plans uncomfortable.
If users find pay-as-you-go calls cheaper and freer, they have less reason to be locked into one platform&amp;rsquo;s subscription.&lt;/p&gt;
&lt;h2 id=&#34;how-to-choose-between-flash-and-pro&#34;&gt;How to Choose Between Flash and Pro
&lt;/h2&gt;&lt;p&gt;A practical way to use DeepSeek V4 is to split work between Flash and Pro.&lt;/p&gt;
&lt;p&gt;Flash is suitable for high-frequency, lightweight, repeatable tasks:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;fixing bugs;&lt;/li&gt;
&lt;li&gt;writing frontend code;&lt;/li&gt;
&lt;li&gt;writing scripts;&lt;/li&gt;
&lt;li&gt;routine code understanding;&lt;/li&gt;
&lt;li&gt;processing ordinary information in long context;&lt;/li&gt;
&lt;li&gt;running large numbers of subtasks.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Flash is cheap, fast, and also supports very long context.
For everyday coding agents, many tasks do not need Pro from the start.&lt;/p&gt;
&lt;p&gt;Pro is better for complex judgment and fallback work:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;multi-round planning;&lt;/li&gt;
&lt;li&gt;complex Agent workflows;&lt;/li&gt;
&lt;li&gt;multiple function calls;&lt;/li&gt;
&lt;li&gt;fact checking;&lt;/li&gt;
&lt;li&gt;financial research;&lt;/li&gt;
&lt;li&gt;content production that requires stronger knowledge and judgment;&lt;/li&gt;
&lt;li&gt;high-risk code changes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A reasonable setup is: Flash handles volume, Pro handles fallback.
Start ordinary tasks with Flash, then switch to Pro for long-horizon planning, complex judgment, fact checking, or multi-tool collaboration.
This keeps cost under control while preserving model quality.&lt;/p&gt;
&lt;h2 id=&#34;why-deepseek-can-price-this-way&#34;&gt;Why DeepSeek Can Price This Way
&lt;/h2&gt;&lt;p&gt;DeepSeek has a different business structure from many large platforms.
It does not have e-commerce, social networking, short video, cloud computing, phones, cars, office suites, operating systems, browsers, or a large enterprise SaaS ecosystem.&lt;/p&gt;
&lt;p&gt;That means it does not need to lock users into a complete platform.
It can simply sell text model capability: use cheap text models here, and call any other capability elsewhere.&lt;/p&gt;
&lt;p&gt;Large platforms usually think differently.
If you buy their Coding Plan or Token Plan, you are pulled into their cloud, search, image generation, voice, database, and developer-tool ecosystem.
The plan is not merely selling the model; it is competing for the user entry point.&lt;/p&gt;
&lt;p&gt;DeepSeek&amp;rsquo;s approach is more direct: push text model prices down and try to become the default model entry point for Agents.
Once the default entry point is occupied, many developers and toolchains will naturally adapt around it.&lt;/p&gt;
&lt;h2 id=&#34;open-models-and-the-default-entry-point&#34;&gt;Open Models and the Default Entry Point
&lt;/h2&gt;&lt;p&gt;If DeepSeek V4 keeps an open model route, third-party cloud vendors and platforms may deploy it themselves and provide services.
For DeepSeek, that is both distribution and potential diversion.&lt;/p&gt;
&lt;p&gt;This is where a low-price official API matters.
If the official price is already low enough, other platforms will struggle to offer an obvious price advantage even if they can deploy the model.
Users will tend to use the default, cheap, stable entry point directly.&lt;/p&gt;
&lt;p&gt;This is especially true for Agent tools.
Agent tasks depend on long context, caching, tool calls, and stable throughput.
Once a model is cheap enough in these scenarios, it has a chance to become the default option.&lt;/p&gt;
&lt;h2 id=&#34;coding-plans-are-still-not-useless&#34;&gt;Coding Plans Are Still Not Useless
&lt;/h2&gt;&lt;p&gt;This does not mean Coding Plans will disappear immediately.
They still fit some users.&lt;/p&gt;
&lt;p&gt;If some users are truly heavy users who max out their quota every day, a fixed subscription may still be economical.
Just like a buffet, if nobody could ever eat enough to get their money&amp;rsquo;s worth, users would not buy it.&lt;/p&gt;
&lt;p&gt;The problem is that most users are not that kind of extremely high-frequency user.
Low-frequency users, lightweight developers, and people who occasionally write scripts or modify projects are better suited to pay-as-you-go.
After DeepSeek lowers pay-as-you-go costs, the appeal of plans weakens.&lt;/p&gt;
&lt;p&gt;The future is more likely to become a layered choice:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;heavy high-frequency users keep buying Coding Plans;&lt;/li&gt;
&lt;li&gt;ordinary users move to low-cost APIs;&lt;/li&gt;
&lt;li&gt;Agent tools automatically choose Flash / Pro according to the task;&lt;/li&gt;
&lt;li&gt;platform plans need to provide more non-model value, such as workflows, IDE integration, deployment, team management, and security auditing.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;summary&#34;&gt;Summary
&lt;/h2&gt;&lt;p&gt;DeepSeek V4 did not create its biggest impact through benchmarks.
What truly changed industry expectations was the price reduction that followed.&lt;/p&gt;
&lt;p&gt;When input tokens and cache-hit pricing are pushed very low, the cost of using AI Agents changes.
Long context, code-project analysis, and multi-round tool calls that used to look expensive may now become everyday costs of a few cents to a few yuan.&lt;/p&gt;
&lt;p&gt;This directly challenges the business logic of Coding Plans and Token Plans.
If users can pay by usage, freely combine models and tools, and keep costs low enough, they may not want to be tied to a specific platform plan.&lt;/p&gt;
&lt;p&gt;What DeepSeek V4 truly touches this time is not only the ranking of model capability, but the cost structure of AI Agents and the battle for the default entry point.&lt;/p&gt;
&lt;p&gt;References:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://api-docs.deepseek.com/quick_start/pricing/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;DeepSeek API Docs: Models &amp;amp; Pricing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://openai.com/api/pricing/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;OpenAI API Pricing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://platform.claude.com/docs/en/about-claude/pricing&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Anthropic Claude API Pricing&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>mattpocock/skills: A Practical Skill Collection for AI Coding Agents</title>
        <link>https://knightli.com/en/2026/05/01/mattpocock-skills-ai-agent-coding-workflows/</link>
        <pubDate>Fri, 01 May 2026 03:43:20 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/01/mattpocock-skills-ai-agent-coding-workflows/</guid>
        <description>&lt;p&gt;&lt;code&gt;mattpocock/skills&lt;/code&gt; is a public collection of AI coding agent skills from Matt Pocock.&lt;/p&gt;
&lt;p&gt;It is not a full application, nor a new chat client. It is a set of working skills that can be used by AI coding assistants. The idea is practical: break common AI coding problems into small skills that an Agent can call in the right task, instead of relying on one huge prompt every time.&lt;/p&gt;
&lt;p&gt;If you often use Claude Code, Codex, Cursor, or similar AI coding tools, this kind of skills collection is worth watching. What really affects the AI coding experience is often not whether the model can write code, but whether it can move through the task in your preferred working style.&lt;/p&gt;
&lt;h2 id=&#34;what-problem-it-solves&#34;&gt;What Problem It Solves
&lt;/h2&gt;&lt;p&gt;AI coding assistants are powerful, but they can easily go wrong.&lt;/p&gt;
&lt;p&gt;Common situations include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Starting code changes before understanding the requirement&lt;/li&gt;
&lt;li&gt;Modifying too many files at once&lt;/li&gt;
&lt;li&gt;Producing lots of explanation but little useful action&lt;/li&gt;
&lt;li&gt;Blindly trying things after errors&lt;/li&gt;
&lt;li&gt;Not running tests or checks in time&lt;/li&gt;
&lt;li&gt;Ignoring existing project patterns&lt;/li&gt;
&lt;li&gt;Introducing unnecessary abstractions to finish a task&lt;/li&gt;
&lt;li&gt;Writing code without truly reviewing risks afterward&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These problems are not always caused by weak model capability. Often, the workflow is not constrained well enough.&lt;/p&gt;
&lt;p&gt;The value of &lt;code&gt;mattpocock/skills&lt;/code&gt; is that it turns these common failure modes into reusable operating methods, making the Agent behave more like an experienced engineering collaborator in different scenarios.&lt;/p&gt;
&lt;h2 id=&#34;what-are-skills&#34;&gt;What Are Skills
&lt;/h2&gt;&lt;p&gt;In the AI Agent context, a skill can be understood as a reusable task instruction, working method, or professional workflow.&lt;/p&gt;
&lt;p&gt;It does not have to be a code plugin, and it does not always need to call an external service. In many cases, a skill is simply a clear set of rules:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;When to use it&lt;/li&gt;
&lt;li&gt;What to do first&lt;/li&gt;
&lt;li&gt;What not to do&lt;/li&gt;
&lt;li&gt;What output is required&lt;/li&gt;
&lt;li&gt;How to judge task completion&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is somewhat like a normal prompt template, but the granularity is closer to a task capability.&lt;/p&gt;
&lt;p&gt;Normal prompt templates are usually copied and pasted manually by the user. Skills are better as part of an agent toolbox, allowing the Agent to choose the right workflow for the task.&lt;/p&gt;
&lt;h2 id=&#34;why-small-and-composable-matters&#34;&gt;Why Small and Composable Matters
&lt;/h2&gt;&lt;p&gt;The README emphasizes that these skills are small and composable.&lt;/p&gt;
&lt;p&gt;This direction matters.&lt;/p&gt;
&lt;p&gt;If one skill tries to handle everything, it quickly becomes a new giant prompt: long, vague, and hard to maintain. The advantage of small skills is clear boundaries.&lt;/p&gt;
&lt;p&gt;For example, one skill can focus on:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Planning first&lt;/li&gt;
&lt;li&gt;Fixing TypeScript errors&lt;/li&gt;
&lt;li&gt;Running tests and fixing based on results&lt;/li&gt;
&lt;li&gt;Doing code review&lt;/li&gt;
&lt;li&gt;Summarizing project conventions&lt;/li&gt;
&lt;li&gt;Improving prompts&lt;/li&gt;
&lt;li&gt;Removing unnecessary abstractions&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These skills can be combined according to the task. A simple task may need only one skill, while a complex task can chain several together.&lt;/p&gt;
&lt;p&gt;This is closer to real engineering work. You do not use the same workflow for every problem; you choose tools according to the situation.&lt;/p&gt;
&lt;h2 id=&#34;keeping-the-engineer-in-control&#34;&gt;Keeping the Engineer in Control
&lt;/h2&gt;&lt;p&gt;One important direction of this repository is keeping the engineer in control.&lt;/p&gt;
&lt;p&gt;AI coding can easily slide into two extremes.&lt;/p&gt;
&lt;p&gt;The first is fully manual. AI only helps write a few lines of code, while all context, planning, and verification still depend on you.&lt;/p&gt;
&lt;p&gt;The second is fully hands-off. You throw a task to an Agent, let it change a lot of things, and then face a diff that is hard to review.&lt;/p&gt;
&lt;p&gt;Skills help find a more stable middle position.&lt;/p&gt;
&lt;p&gt;They let AI take on more repetitive workflow, while still constraining it with rules:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Understand the task before acting&lt;/li&gt;
&lt;li&gt;Read relevant files before editing&lt;/li&gt;
&lt;li&gt;Keep the modification scope controlled&lt;/li&gt;
&lt;li&gt;Report uncertainty&lt;/li&gt;
&lt;li&gt;Verify after changes&lt;/li&gt;
&lt;li&gt;Do not refactor unrelated code just to show off&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This does not weaken AI. It makes AI actions easier for humans to review and take over.&lt;/p&gt;
&lt;h2 id=&#34;alignment-problems&#34;&gt;Alignment Problems
&lt;/h2&gt;&lt;p&gt;The first kind of AI coding failure is often alignment failure.&lt;/p&gt;
&lt;p&gt;The user wants a very specific change, but the Agent may understand it as a larger refactor. The user only wants a bug fixed, but it changes styles along the way. The user wants existing architecture to be followed, but it introduces a new pattern.&lt;/p&gt;
&lt;p&gt;Skills can help the Agent do several things at the start of a task:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Restate the goal&lt;/li&gt;
&lt;li&gt;Identify the impact scope&lt;/li&gt;
&lt;li&gt;Recognize existing implementation patterns&lt;/li&gt;
&lt;li&gt;Provide a plan&lt;/li&gt;
&lt;li&gt;Clarify what will not be done&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This step is like an engineer’s self-check before starting work.&lt;/p&gt;
&lt;p&gt;If the Agent cannot clearly state the task boundary and starts writing code directly, it is easy for the task to drift.&lt;/p&gt;
&lt;h2 id=&#34;feedback-loop-problems&#34;&gt;Feedback Loop Problems
&lt;/h2&gt;&lt;p&gt;AI should not write code through one-shot generation alone.&lt;/p&gt;
&lt;p&gt;In real development, feedback loops matter:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Change a small piece&lt;/li&gt;
&lt;li&gt;Run tests or type checks&lt;/li&gt;
&lt;li&gt;Read the errors&lt;/li&gt;
&lt;li&gt;Fix them&lt;/li&gt;
&lt;li&gt;Verify again&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Many Agents fail because they skip the middle feedback. They change many things at once and then summarize from intuition that “it should work.”&lt;/p&gt;
&lt;p&gt;Skills can make the feedback loop explicit. For example, they can require the Agent to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Run relevant checks after modification&lt;/li&gt;
&lt;li&gt;Read error messages first if checks fail&lt;/li&gt;
&lt;li&gt;Avoid blindly changing unrelated files&lt;/li&gt;
&lt;li&gt;Re-verify after each round of fixes&lt;/li&gt;
&lt;li&gt;Report final verification results&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This makes AI coding more like real debugging and less like one-shot writing.&lt;/p&gt;
&lt;h2 id=&#34;architecture-control-problems&#34;&gt;Architecture Control Problems
&lt;/h2&gt;&lt;p&gt;AI is good at generating abstractions, and also good at over-generating abstractions.&lt;/p&gt;
&lt;p&gt;To complete a small requirement, it may create a service layer, helper functions, configuration objects, type wrappers, and adapters, making the code much more complex than the requirement itself.&lt;/p&gt;
&lt;p&gt;This is especially dangerous in large projects. AI-generated abstractions often look “professional,” but they may not match existing project style and may increase maintenance cost.&lt;/p&gt;
&lt;p&gt;Good skills remind the Agent to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Prefer existing patterns&lt;/li&gt;
&lt;li&gt;Avoid unnecessary new abstractions&lt;/li&gt;
&lt;li&gt;Avoid refactoring unrelated areas&lt;/li&gt;
&lt;li&gt;Match the change to the size of the task&lt;/li&gt;
&lt;li&gt;Understand the code before designing structure&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This reduces output that looks engineered but is actually harder to maintain.&lt;/p&gt;
&lt;h2 id=&#34;why-review-skills-matter&#34;&gt;Why Review Skills Matter
&lt;/h2&gt;&lt;p&gt;Writing code and reviewing code are different states.&lt;/p&gt;
&lt;p&gt;When an Agent writes code, it usually tends to prove that its implementation works. It may explain why the change should work, but it does not always actively look for risks.&lt;/p&gt;
&lt;p&gt;The purpose of a review skill is to switch the Agent’s role:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Find potential bugs&lt;/li&gt;
&lt;li&gt;Find behavior regressions&lt;/li&gt;
&lt;li&gt;Find missing tests&lt;/li&gt;
&lt;li&gt;Find edge cases&lt;/li&gt;
&lt;li&gt;Find increased complexity&lt;/li&gt;
&lt;li&gt;Find inconsistencies with existing conventions&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This matters for AI coding because AI generates code quickly. Without review, users can easily be overwhelmed by large diffs.&lt;/p&gt;
&lt;p&gt;A good review output should list issues first, not praise the implementation first. It should help the engineer decide whether the change can be merged.&lt;/p&gt;
&lt;h2 id=&#34;difference-from-normal-rules-files&#34;&gt;Difference from Normal Rules Files
&lt;/h2&gt;&lt;p&gt;Many AI coding tools support rules, instructions, or memory.&lt;/p&gt;
&lt;p&gt;These files usually record long-term rules, such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Project tech stack&lt;/li&gt;
&lt;li&gt;Naming conventions&lt;/li&gt;
&lt;li&gt;Test commands&lt;/li&gt;
&lt;li&gt;Directories not to modify&lt;/li&gt;
&lt;li&gt;Answer style preferences&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Skills are more focused on task workflow.&lt;/p&gt;
&lt;p&gt;Rules tell the Agent “how to behave in the long term,” while skills tell the Agent “how to execute this kind of task.”&lt;/p&gt;
&lt;p&gt;The two work best together.&lt;/p&gt;
&lt;p&gt;For example, rules can say the project uses &lt;code&gt;pnpm test&lt;/code&gt;, while a review skill requires checking test coverage after changes. Then the Agent knows not only the command, but also when to use it.&lt;/p&gt;
&lt;h2 id=&#34;suitable-scenarios&#34;&gt;Suitable Scenarios
&lt;/h2&gt;&lt;p&gt;Repositories like &lt;code&gt;mattpocock/skills&lt;/code&gt; are suitable for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Frequent use of AI coding tools&lt;/li&gt;
&lt;li&gt;Agents working on real codebases&lt;/li&gt;
&lt;li&gt;Reducing out-of-scope AI edits&lt;/li&gt;
&lt;li&gt;Making the Agent verify results more actively&lt;/li&gt;
&lt;li&gt;Turning your engineering habits into skills&lt;/li&gt;
&lt;li&gt;Learning how others design agent workflows&lt;/li&gt;
&lt;li&gt;Turning temporary prompts into a maintainable skill collection&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you only occasionally ask AI to write a small function, you may not need to maintain skills.&lt;/p&gt;
&lt;p&gt;But if you already treat AI as a long-term development partner, skills become increasingly important. They are like a reusable working method for the Agent.&lt;/p&gt;
&lt;h2 id=&#34;how-to-learn-from-this-repository&#34;&gt;How to Learn from This Repository
&lt;/h2&gt;&lt;p&gt;Even if you do not use every skill directly, you can learn several things from this repository.&lt;/p&gt;
&lt;p&gt;First, write down failure modes.&lt;/p&gt;
&lt;p&gt;Do not only complain when AI makes a mistake. Turn the patterns it often gets wrong into rules, so a skill can prevent them next time.&lt;/p&gt;
&lt;p&gt;Second, keep skills short.&lt;/p&gt;
&lt;p&gt;One skill should solve one clear problem. The shorter it is, the easier it is to call correctly and maintain.&lt;/p&gt;
&lt;p&gt;Third, make output format clear.&lt;/p&gt;
&lt;p&gt;If you want the Agent to list a plan first, execute next, and summarize verification results at the end, write that structure clearly. Vague requirements usually produce vague results.&lt;/p&gt;
&lt;p&gt;Fourth, keep human handoff points.&lt;/p&gt;
&lt;p&gt;A good skill should not let AI run too far alone. When there is uncertainty, expanded impact scope, failing tests, or a product decision, it should stop and explain the situation.&lt;/p&gt;
&lt;h2 id=&#34;notes-for-use&#34;&gt;Notes for Use
&lt;/h2&gt;&lt;p&gt;First, do not turn everything into a skill.&lt;/p&gt;
&lt;p&gt;Too many skills make the system complex, and the Agent may not know which one to choose. Start with the highest-frequency and most painful scenarios.&lt;/p&gt;
&lt;p&gt;Second, skills need iteration.&lt;/p&gt;
&lt;p&gt;The first version of a skill may not be good. Watch how AI actually executes it, then gradually delete, add, and rewrite.&lt;/p&gt;
&lt;p&gt;Third, do not let skills replace engineering judgment.&lt;/p&gt;
&lt;p&gt;Skills can improve workflow, but they cannot guarantee correct implementation. Tests, review, build checks, and human judgment still matter.&lt;/p&gt;
&lt;p&gt;Fourth, pay attention to differences between Agents.&lt;/p&gt;
&lt;p&gt;Claude Code, Codex, Cursor, and Copilot support instructions, skills, and rules differently. The same idea can be reused, but the specific format should be adjusted for each tool.&lt;/p&gt;
&lt;h2 id=&#34;reference&#34;&gt;Reference
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/mattpocock/skills&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;mattpocock/skills&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;final-thought&#34;&gt;Final Thought
&lt;/h2&gt;&lt;p&gt;What makes &lt;code&gt;mattpocock/skills&lt;/code&gt; worth watching is not one magic prompt inside it, but the practical AI coding idea it demonstrates: break engineering experience into small skills, then let the Agent combine them by scenario.&lt;/p&gt;
&lt;p&gt;As AI coding moves from occasional assistance into daily workflow, skills become important tools for constraining Agents, keeping engineers in control, and improving feedback quality.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>free-claude-code: Connecting Claude Code to OpenRouter, DeepSeek, and Local Models Through a Proxy</title>
        <link>https://knightli.com/en/2026/05/01/free-claude-code-anthropic-compatible-proxy/</link>
        <pubDate>Fri, 01 May 2026 03:41:49 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/01/free-claude-code-anthropic-compatible-proxy/</guid>
        <description>&lt;p&gt;&lt;code&gt;free-claude-code&lt;/code&gt; is an Anthropic-compatible proxy for &lt;code&gt;Claude Code&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Its idea is not to crack Claude Code, nor to provide an official free Claude service. Instead, it starts a local proxy service that looks like an Anthropic API, then forwards requests from Claude Code to other model backends. The README mentions backends such as NVIDIA NIM, OpenRouter, DeepSeek, LM Studio, llama.cpp, and Ollama.&lt;/p&gt;
&lt;p&gt;In simple terms, it solves this problem: you like the terminal experience of Claude Code, but want to send model requests to another provider or a local model.&lt;/p&gt;
&lt;h2 id=&#34;what-problem-it-solves&#34;&gt;What Problem It Solves
&lt;/h2&gt;&lt;p&gt;Claude Code has an interaction model that works well for development tasks.&lt;/p&gt;
&lt;p&gt;It can read code, edit files, run commands, and move tasks forward based on project context inside the terminal. But many users may not always want to use the same model backend:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;They want to try different models on OpenRouter&lt;/li&gt;
&lt;li&gt;They want to use models such as DeepSeek to reduce cost&lt;/li&gt;
&lt;li&gt;They want to route requests to local Ollama&lt;/li&gt;
&lt;li&gt;They want to run local models through LM Studio or llama.cpp&lt;/li&gt;
&lt;li&gt;They want one proxy entry point in the development environment&lt;/li&gt;
&lt;li&gt;They want to compare different models inside the Claude Code workflow&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;free-claude-code&lt;/code&gt; is positioned as a compatibility layer between Claude Code and these model services.&lt;/p&gt;
&lt;p&gt;Claude Code still sends requests in an Anthropic-like style, while the proxy adapts those requests to different backends.&lt;/p&gt;
&lt;h2 id=&#34;how-it-works&#34;&gt;How It Works
&lt;/h2&gt;&lt;p&gt;You can think of it as three layers:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The frontend is Claude Code&lt;/li&gt;
&lt;li&gt;The middle layer is the &lt;code&gt;free-claude-code&lt;/code&gt; proxy&lt;/li&gt;
&lt;li&gt;The backend is OpenRouter, DeepSeek, a local model, or another model service&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Claude Code believes it is accessing an Anthropic-compatible API.&lt;/p&gt;
&lt;p&gt;After the proxy receives a request, it selects a target provider according to configuration, transforms the necessary fields, and returns the response to Claude Code.&lt;/p&gt;
&lt;p&gt;The benefit of this structure is that you do not need to modify Claude Code itself, and you do not need every model service to natively support Claude Code. As long as the proxy can align the interfaces, more models can be connected to the same workflow.&lt;/p&gt;
&lt;h2 id=&#34;supported-backends&#34;&gt;Supported Backends
&lt;/h2&gt;&lt;p&gt;The README lists these directions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;NVIDIA NIM&lt;/li&gt;
&lt;li&gt;OpenRouter&lt;/li&gt;
&lt;li&gt;DeepSeek&lt;/li&gt;
&lt;li&gt;LM Studio&lt;/li&gt;
&lt;li&gt;llama.cpp&lt;/li&gt;
&lt;li&gt;Ollama&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These backends represent different usage styles.&lt;/p&gt;
&lt;p&gt;OpenRouter is more like a model aggregation entry point, useful for testing different commercial and open-source models.&lt;/p&gt;
&lt;p&gt;DeepSeek is suitable for people who care about Chinese ability, coding ability, and cost.&lt;/p&gt;
&lt;p&gt;LM Studio, llama.cpp, and Ollama are more local-model oriented. They are suitable for running models on your own machine or inside an intranet, reducing dependence on external APIs and making offline experiments easier.&lt;/p&gt;
&lt;p&gt;NVIDIA NIM is more oriented toward enterprise and GPU inference deployment scenarios.&lt;/p&gt;
&lt;h2 id=&#34;why-an-anthropic-compatible-proxy&#34;&gt;Why an Anthropic-Compatible Proxy
&lt;/h2&gt;&lt;p&gt;Claude Code was originally designed around Anthropic interfaces and model conventions.&lt;/p&gt;
&lt;p&gt;If you want to connect it to other models, the most direct problem is interface mismatch:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Request fields differ&lt;/li&gt;
&lt;li&gt;Model names differ&lt;/li&gt;
&lt;li&gt;Streaming formats differ&lt;/li&gt;
&lt;li&gt;Tool use is represented differently&lt;/li&gt;
&lt;li&gt;Error response formats differ&lt;/li&gt;
&lt;li&gt;Token and context limits differ&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is where the proxy layer is useful.&lt;/p&gt;
&lt;p&gt;It keeps the interface seen by Claude Code close to the Anthropic shape, then adapts to the backend. For users, after configuring the proxy once, they can test different models inside the same Claude Code workflow.&lt;/p&gt;
&lt;h2 id=&#34;suitable-scenarios&#34;&gt;Suitable Scenarios
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;free-claude-code&lt;/code&gt; is suitable for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Using the Claude Code terminal workflow&lt;/li&gt;
&lt;li&gt;Testing non-Anthropic models in Claude Code&lt;/li&gt;
&lt;li&gt;Reducing model calling costs&lt;/li&gt;
&lt;li&gt;Connecting Claude Code to OpenRouter&lt;/li&gt;
&lt;li&gt;Connecting to compatible model services such as DeepSeek&lt;/li&gt;
&lt;li&gt;Running local models through Ollama, LM Studio, or llama.cpp&lt;/li&gt;
&lt;li&gt;Giving a team one unified model proxy entry point&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you only use official Claude Code normally and have no special needs around providers, cost, or local deployment, you may not need this type of proxy.&lt;/p&gt;
&lt;p&gt;But if you often compare models, or want Claude Code to connect to local and third-party models, this type of tool is useful.&lt;/p&gt;
&lt;h2 id=&#34;difference-from-directly-using-openrouter-or-ollama&#34;&gt;Difference from Directly Using OpenRouter or Ollama
&lt;/h2&gt;&lt;p&gt;Using OpenRouter, Ollama, or LM Studio directly usually means chatting with a model or calling it through an API.&lt;/p&gt;
&lt;p&gt;The point of &lt;code&gt;free-claude-code&lt;/code&gt; is not to replace those services, but to connect them to the Claude Code development workflow.&lt;/p&gt;
&lt;p&gt;The difference is:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You still use the Claude Code terminal experience&lt;/li&gt;
&lt;li&gt;AI can execute tasks around a code repository&lt;/li&gt;
&lt;li&gt;The model backend can be changed to another provider&lt;/li&gt;
&lt;li&gt;Local models can enter the Claude Code workflow&lt;/li&gt;
&lt;li&gt;Configuration is centralized in the proxy layer instead of changed in each tool&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So it is more like a bridge than a new chat client.&lt;/p&gt;
&lt;h2 id=&#34;notes-about-local-models&#34;&gt;Notes About Local Models
&lt;/h2&gt;&lt;p&gt;Connecting Claude Code to local models is attractive, but there are real limitations.&lt;/p&gt;
&lt;p&gt;First, model capability differs.&lt;/p&gt;
&lt;p&gt;Claude Code tasks are usually not just chat. They include understanding code, planning modifications, editing files, and handling command output. Smaller local models may not complete these tasks reliably.&lt;/p&gt;
&lt;p&gt;Second, context window matters.&lt;/p&gt;
&lt;p&gt;Code tasks need a lot of context. If the model context is too small, it may fail to read full files, miss constraints, or lose background across multi-turn tasks.&lt;/p&gt;
&lt;p&gt;Third, tool use compatibility matters.&lt;/p&gt;
&lt;p&gt;Claude Code workflows depend on tool calls and structured behavior. Even if a backend model can chat, it may not follow tool-use protocols well.&lt;/p&gt;
&lt;p&gt;Fourth, speed and hardware matter.&lt;/p&gt;
&lt;p&gt;Local model speed depends on machine configuration, quantization, and model size. If code tasks respond too slowly, the experience drops noticeably.&lt;/p&gt;
&lt;p&gt;So local models are better for experiments, low-risk tasks, and specific scenarios. For truly complex coding tasks, choose carefully according to model capability.&lt;/p&gt;
&lt;h2 id=&#34;usage-boundaries&#34;&gt;Usage Boundaries
&lt;/h2&gt;&lt;p&gt;Projects like this are easy to misunderstand from the title, so the boundaries should be clear.&lt;/p&gt;
&lt;p&gt;First, it is not an official free Claude Code quota.&lt;/p&gt;
&lt;p&gt;It only forwards Claude Code requests to other model backends. When using OpenRouter, DeepSeek, NVIDIA NIM, or other APIs, you still need to follow the pricing, quotas, and terms of the corresponding services.&lt;/p&gt;
&lt;p&gt;Second, it is not a tool for bypassing authorization.&lt;/p&gt;
&lt;p&gt;When using any proxy tool, you should follow the licenses and terms of Claude Code, model providers, and the project itself. Do not interpret it as a way to avoid official restrictions.&lt;/p&gt;
&lt;p&gt;Third, the proxy handles your request content.&lt;/p&gt;
&lt;p&gt;Code, command output, and project context may pass through the proxy and backend services. When deploying, consider logs, keys, network boundaries, and privacy. For company code or sensitive projects, use a controlled environment.&lt;/p&gt;
&lt;p&gt;Fourth, model performance varies greatly.&lt;/p&gt;
&lt;p&gt;The same Claude Code operation may behave very differently after switching models. Do not assume every model can replace Claude.&lt;/p&gt;
&lt;h2 id=&#34;relationship-with-proxies-such-as-litellm&#34;&gt;Relationship with Proxies Such as LiteLLM
&lt;/h2&gt;&lt;p&gt;Conceptually, &lt;code&gt;free-claude-code&lt;/code&gt; belongs to the category of compatible interface proxies.&lt;/p&gt;
&lt;p&gt;The shared goal of such tools is to reduce coupling between upper-level applications and lower-level model services. The upper-level application faces a relatively unified interface, while backend providers can be switched by configuration.&lt;/p&gt;
&lt;p&gt;Different projects focus on different areas. Some are general model gateways, some focus on OpenAI-compatible APIs, and some specifically adapt tools such as Claude Code.&lt;/p&gt;
&lt;p&gt;What makes &lt;code&gt;free-claude-code&lt;/code&gt; worth noting is that it puts Claude Code directly at the center, rather than building a generic chat proxy.&lt;/p&gt;
&lt;h2 id=&#34;suitable-users&#34;&gt;Suitable Users
&lt;/h2&gt;&lt;p&gt;It is better suited to users who are comfortable tinkering:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Familiar with Claude Code&lt;/li&gt;
&lt;li&gt;Know how to configure API keys and model providers&lt;/li&gt;
&lt;li&gt;Understand proxy service startup and environment variables&lt;/li&gt;
&lt;li&gt;Can troubleshoot network, port, model name, and streaming issues&lt;/li&gt;
&lt;li&gt;Want to compare different models on coding tasks&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you only want something that works out of the box, the official configuration is usually simpler.&lt;/p&gt;
&lt;p&gt;If you are willing to set up a proxy, switch models, tune parameters, and let Claude Code enter more model environments, this project is worth studying.&lt;/p&gt;
&lt;h2 id=&#34;reference&#34;&gt;Reference
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Alishahryar1/free-claude-code&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Alishahryar1/free-claude-code&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;final-thought&#34;&gt;Final Thought
&lt;/h2&gt;&lt;p&gt;The value of &lt;code&gt;free-claude-code&lt;/code&gt; is not in the word “free,” but in the bridge it builds between Claude Code and more model backends.&lt;/p&gt;
&lt;p&gt;When you want to keep the Claude Code development experience while testing OpenRouter, DeepSeek, local models, or enterprise inference services, an Anthropic-compatible proxy like this becomes useful.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Compound Engineering Plugin: Turning AI Coding into a Plan, Execute, Review Engineering Loop</title>
        <link>https://knightli.com/en/2026/05/01/compound-engineering-plugin-ai-coding-workflow/</link>
        <pubDate>Fri, 01 May 2026 03:15:39 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/01/compound-engineering-plugin-ai-coding-workflow/</guid>
        <description>&lt;p&gt;&lt;code&gt;Compound Engineering Plugin&lt;/code&gt; is an open-source AI coding workflow plugin from Every Inc.&lt;/p&gt;
&lt;p&gt;It is not focused on “making AI write a piece of code faster.” Instead, it places AI coding inside a loop that looks more like an engineering team: plan first, implement next, review afterward, then preserve what was learned. For people who frequently use tools such as Claude Code, Codex, Cursor, and Copilot, this kind of plugin solves a workflow problem, not just a prompt problem.&lt;/p&gt;
&lt;p&gt;AI coding tools are becoming stronger, but in real projects the hardest part is often not generating code. It is making the AI continuously follow project rules, understand task boundaries, avoid repeating mistakes, and accumulate context across multiple iterations.&lt;/p&gt;
&lt;h2 id=&#34;what-problem-it-solves&#34;&gt;What Problem It Solves
&lt;/h2&gt;&lt;p&gt;Many people use AI coding assistants in a flow like this:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Describe the requirement directly&lt;/li&gt;
&lt;li&gt;Ask AI to modify the code&lt;/li&gt;
&lt;li&gt;Check whether the result runs&lt;/li&gt;
&lt;li&gt;Add more explanation after errors appear&lt;/li&gt;
&lt;li&gt;Explain the background again in the next task&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This can work for small tasks, but it easily breaks down in complex projects:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Requirements are not clarified before AI starts editing&lt;/li&gt;
&lt;li&gt;There is no systematic review after code changes&lt;/li&gt;
&lt;li&gt;Project conventions depend on repeated user reminders&lt;/li&gt;
&lt;li&gt;Similar mistakes happen again next time&lt;/li&gt;
&lt;li&gt;Multiple Agent tools lack a shared working method&lt;/li&gt;
&lt;li&gt;Experience is not turned into reusable rules&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;Compound Engineering Plugin&lt;/code&gt; is designed for this class of problems. It splits AI coding into multiple stages, so an Agent is not only executing commands but participating in a more complete engineering process.&lt;/p&gt;
&lt;h2 id=&#34;what-is-compound-engineering&#34;&gt;What Is Compound Engineering
&lt;/h2&gt;&lt;p&gt;From the project README, Compound Engineering can be understood as a method for AI-assisted software development.&lt;/p&gt;
&lt;p&gt;It emphasizes a loop:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Plan: understand the goal, split the task, confirm the path&lt;/li&gt;
&lt;li&gt;Execute: modify code according to the plan, run commands, handle problems&lt;/li&gt;
&lt;li&gt;Review: check implementation quality, risks, and test coverage&lt;/li&gt;
&lt;li&gt;Learn: preserve experience as reusable rules for future work&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This loop resembles how real engineering teams work.&lt;/p&gt;
&lt;p&gt;A reliable engineer does not receive a requirement and immediately make random changes, nor does he finish edits and hand them off without checking. He first judges the impact scope, then implements, then checks risks and test results, and finally records the traps he stepped into. AI Agents need similar constraints.&lt;/p&gt;
&lt;h2 id=&#34;why-a-plugin-is-needed&#34;&gt;Why a Plugin Is Needed
&lt;/h2&gt;&lt;p&gt;A prompt can tell AI, “Please plan before executing,” but prompts themselves are not always stable.&lt;/p&gt;
&lt;p&gt;Once a conversation becomes long and context becomes complex, the model may skip planning, ignore rules, or become overconfident in order to finish the task. The value of a plugin is that it fixes the workflow so different Agent environments can follow similar methods.&lt;/p&gt;
&lt;p&gt;This kind of plugin usually breaks a workflow into commands, rules, templates, or subflows. The user does not need to manually write the full prompt every time. Instead, a fixed entry point triggers a specific stage.&lt;/p&gt;
&lt;p&gt;For example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ask the Agent to generate a plan first&lt;/li&gt;
&lt;li&gt;Implement step by step according to the plan&lt;/li&gt;
&lt;li&gt;Trigger review after edits&lt;/li&gt;
&lt;li&gt;Return to fixing after problems are found&lt;/li&gt;
&lt;li&gt;Write useful experience into memory or rules&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This makes AI coding feel more like controlled collaboration instead of one-off chat.&lt;/p&gt;
&lt;h2 id=&#34;supported-agent-environments&#34;&gt;Supported Agent Environments
&lt;/h2&gt;&lt;p&gt;The README mentions support for multiple AI coding environments, including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Claude Code&lt;/li&gt;
&lt;li&gt;Codex&lt;/li&gt;
&lt;li&gt;Cursor&lt;/li&gt;
&lt;li&gt;GitHub Copilot&lt;/li&gt;
&lt;li&gt;Amp&lt;/li&gt;
&lt;li&gt;Factory&lt;/li&gt;
&lt;li&gt;Qwen Code&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is worth noting.&lt;/p&gt;
&lt;p&gt;Many workflow tools are tied to one client. Once you switch tools, the rules cannot be reused. &lt;code&gt;Compound Engineering Plugin&lt;/code&gt; is more like a cross-Agent engineering method, bringing similar planning, execution, and review workflows to different tools.&lt;/p&gt;
&lt;p&gt;If you use multiple AI coding assistants at the same time, this unified workflow becomes more valuable. Different tools have different capabilities, but project conventions, review habits, and task decomposition methods should remain as consistent as possible.&lt;/p&gt;
&lt;h2 id=&#34;why-the-planning-stage-matters&#34;&gt;Why the Planning Stage Matters
&lt;/h2&gt;&lt;p&gt;The value of the planning stage is to stop AI from acting too early.&lt;/p&gt;
&lt;p&gt;In complex tasks, the truly important questions are usually:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Which files need to change?&lt;/li&gt;
&lt;li&gt;Which modules may be affected?&lt;/li&gt;
&lt;li&gt;What existing pattern should be followed?&lt;/li&gt;
&lt;li&gt;Are there tests?&lt;/li&gt;
&lt;li&gt;Where are the risks?&lt;/li&gt;
&lt;li&gt;Should documents be read first?&lt;/li&gt;
&lt;li&gt;Can the task be split into smaller steps?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If an Agent starts writing code before thinking through these questions, it can easily produce an implementation that looks finished but deviates from the project structure.&lt;/p&gt;
&lt;p&gt;A plan does not need to be long. A good plan should be short, specific, and executable. Its purpose is not to create documentation, but to give the following implementation clear boundaries.&lt;/p&gt;
&lt;h2 id=&#34;what-to-avoid-in-execution&#34;&gt;What to Avoid in Execution
&lt;/h2&gt;&lt;p&gt;When AI executes coding tasks, several problems appear easily:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Refactoring unrelated code&lt;/li&gt;
&lt;li&gt;Overwriting existing user changes&lt;/li&gt;
&lt;li&gt;Only handling the happy path&lt;/li&gt;
&lt;li&gt;Ignoring error handling&lt;/li&gt;
&lt;li&gt;Not following the existing project style&lt;/li&gt;
&lt;li&gt;Not running necessary verification&lt;/li&gt;
&lt;li&gt;Blindly trying things after errors&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A workflow plugin cannot guarantee these problems will disappear, but it can reduce their probability through rules and staged constraints.&lt;/p&gt;
&lt;p&gt;For example, the execution stage can require the Agent to proceed according to the plan. When it discovers something outside the plan, it should explain the risk first. When modifying shared modules, it should add tests or at least run related verification.&lt;/p&gt;
&lt;p&gt;This is especially important in large codebases. The faster AI writes code, the more process is needed to constrain its momentum.&lt;/p&gt;
&lt;h2 id=&#34;why-review-matters&#34;&gt;Why Review Matters
&lt;/h2&gt;&lt;p&gt;Many AI coding failures are not caused by code that cannot run at all. They come from detail problems:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Edge cases are not handled&lt;/li&gt;
&lt;li&gt;State updates are inconsistent&lt;/li&gt;
&lt;li&gt;API contracts are changed quietly&lt;/li&gt;
&lt;li&gt;Tests do not cover key paths&lt;/li&gt;
&lt;li&gt;Error messages are unclear&lt;/li&gt;
&lt;li&gt;Performance or security risks are not mentioned&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The review stage switches the Agent from “author mode” to “reviewer mode.”&lt;/p&gt;
&lt;p&gt;Author mode tends to justify its own implementation. Reviewer mode should actively look for holes, regression risks, and missing tests. Separating these two stages is more reliable than asking the same response to both implement and self-review.&lt;/p&gt;
&lt;p&gt;For users, review output is also more valuable. It helps you quickly judge whether the change is ready to merge or still needs rework.&lt;/p&gt;
&lt;h2 id=&#34;the-meaning-of-learning-and-memory&#34;&gt;The Meaning of Learning and Memory
&lt;/h2&gt;&lt;p&gt;The word “Compound” in the project name suggests an important idea: engineering experience should compound.&lt;/p&gt;
&lt;p&gt;If AI fixes a mistake only for the current task and then repeats the same mistake next time, the productivity gain is limited. A better approach is to preserve useful experience:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Directory conventions in this project&lt;/li&gt;
&lt;li&gt;Debugging methods for a class of errors&lt;/li&gt;
&lt;li&gt;Test commands and notes&lt;/li&gt;
&lt;li&gt;Generated files that should not be touched&lt;/li&gt;
&lt;li&gt;Code style preferences&lt;/li&gt;
&lt;li&gt;Common implementation patterns&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These experiences can become rules, memories, documents, or templates. In later tasks, the Agent reads these accumulated notes before starting work.&lt;/p&gt;
&lt;p&gt;This is the key to moving AI coding from “one-off Q&amp;amp;A” toward “long-term collaboration.”&lt;/p&gt;
&lt;h2 id=&#34;suitable-scenarios&#34;&gt;Suitable Scenarios
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Compound Engineering Plugin&lt;/code&gt; is suitable for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Long-term use of AI Agents for coding&lt;/li&gt;
&lt;li&gt;Projects that receive many rounds of modifications&lt;/li&gt;
&lt;li&gt;Teams that want AI to plan before implementing&lt;/li&gt;
&lt;li&gt;Users who want review thinking after changes&lt;/li&gt;
&lt;li&gt;Teams that want a unified AI coding workflow&lt;/li&gt;
&lt;li&gt;People who use Claude Code, Codex, Cursor, and other tools at the same time&lt;/li&gt;
&lt;li&gt;Teams that want to turn project experience into reusable rules&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you only occasionally ask AI to write a small script, the full workflow may feel heavy.&lt;/p&gt;
&lt;p&gt;But if you treat AI coding assistants as daily development partners, the plan, execute, review, learn loop becomes clearly useful.&lt;/p&gt;
&lt;h2 id=&#34;difference-from-normal-prompt-templates&#34;&gt;Difference from Normal Prompt Templates
&lt;/h2&gt;&lt;p&gt;Normal prompt templates usually solve “how to state the task clearly.”&lt;/p&gt;
&lt;p&gt;For example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Please think step by step&lt;/li&gt;
&lt;li&gt;Please read the files first&lt;/li&gt;
&lt;li&gt;Please keep code style consistent&lt;/li&gt;
&lt;li&gt;Please run tests&lt;/li&gt;
&lt;li&gt;Please summarize the changes&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These prompts are useful, but they still rely on the user using them correctly every time.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Compound Engineering Plugin&lt;/code&gt; operates more at the workflow layer. It organizes these requirements into a repeatable process and adapts them to different Agent tools. You are not writing prompts from scratch every time; you are moving tasks through a workflow.&lt;/p&gt;
&lt;p&gt;Simply put, a prompt template is like a reminder, while a workflow plugin is like a system.&lt;/p&gt;
&lt;h2 id=&#34;notes-for-use&#34;&gt;Notes for Use
&lt;/h2&gt;&lt;p&gt;First, do not let the process become a burden.&lt;/p&gt;
&lt;p&gt;Small tasks do not always need a full plan and long review. A good workflow should adapt to task complexity: handle simple problems quickly and use the full loop for complex ones.&lt;/p&gt;
&lt;p&gt;Second, review cannot replace tests.&lt;/p&gt;
&lt;p&gt;Agent review can find many problems, but it can still miss real runtime errors. Final judgment still depends on tests, type checks, build results, and human review.&lt;/p&gt;
&lt;p&gt;Third, rules need continuous cleanup.&lt;/p&gt;
&lt;p&gt;Preserving experience is important, but rules can become noise as they accumulate. Outdated rules, duplicate rules, and temporary experience that only applied to one task should be cleaned up regularly.&lt;/p&gt;
&lt;p&gt;Fourth, cross-tool consistency does not mean everything is identical.&lt;/p&gt;
&lt;p&gt;Claude Code, Codex, Cursor, Copilot, and other tools have different capabilities and interaction models. What should be unified is the working method, not necessarily every command or configuration detail.&lt;/p&gt;
&lt;h2 id=&#34;suitable-teams&#34;&gt;Suitable Teams
&lt;/h2&gt;&lt;p&gt;If a team already allows AI Agents to modify real code, it is not enough to discuss only “which model is stronger.”&lt;/p&gt;
&lt;p&gt;The more important questions are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Does AI understand the task before editing?&lt;/li&gt;
&lt;li&gt;Does AI follow project boundaries during editing?&lt;/li&gt;
&lt;li&gt;Does AI actively review risks after editing?&lt;/li&gt;
&lt;li&gt;Can AI learn from historical mistakes?&lt;/li&gt;
&lt;li&gt;Does the team have unified Agent usage conventions?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is where projects such as &lt;code&gt;Compound Engineering Plugin&lt;/code&gt; matter. They move AI coding one step away from personal tricks and toward reusable team workflow.&lt;/p&gt;
&lt;h2 id=&#34;reference&#34;&gt;Reference
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EveryInc/compound-engineering-plugin&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;EveryInc/compound-engineering-plugin&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;final-thought&#34;&gt;Final Thought
&lt;/h2&gt;&lt;p&gt;What makes &lt;code&gt;Compound Engineering Plugin&lt;/code&gt; worth watching is not that it adds another AI coding command, but that it organizes AI coding into an engineering workflow that can improve over time.&lt;/p&gt;
&lt;p&gt;When AI Agents start participating in real projects, planning, execution, review, and experience preservation become more important than one-off code generation.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Claude Code Hooks Mastery: An Introduction to 13 Hook Lifecycle Events and Automation Control</title>
        <link>https://knightli.com/en/2026/05/01/claude-code-hooks-mastery-guide/</link>
        <pubDate>Fri, 01 May 2026 03:11:27 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/01/claude-code-hooks-mastery-guide/</guid>
        <description>&lt;p&gt;&lt;code&gt;claude-code-hooks-mastery&lt;/code&gt; is a learning project focused on &lt;code&gt;Claude Code Hooks&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;It is not just a collection of scattered scripts. It explains the Claude Code hook lifecycle, configuration methods, script patterns, and common automation scenarios in one place. For people who want Claude Code to be more controllable and more like an engineering assistant, this kind of material is worth reading.&lt;/p&gt;
&lt;p&gt;Claude Code can already read code, edit files, and run commands by default. But if you want it to automatically check permissions, block risky operations, inject project rules, run tests, or remind it of team conventions at specific moments, chat instructions alone are not stable enough. The value of hooks is that they turn “rules I need to remind the AI about every time” into executable workflow.&lt;/p&gt;
&lt;h2 id=&#34;what-problems-hooks-solve&#34;&gt;What Problems Hooks Solve
&lt;/h2&gt;&lt;p&gt;After using Claude Code for a while, common pain points include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Every new session needs the same project rules repeated&lt;/li&gt;
&lt;li&gt;You worry that it may run commands it should not run&lt;/li&gt;
&lt;li&gt;You want checks before and after file edits&lt;/li&gt;
&lt;li&gt;You want formatting, tests, or security scans before committing&lt;/li&gt;
&lt;li&gt;You want team conventions as fixed workflow instead of verbal reminders&lt;/li&gt;
&lt;li&gt;You want context before and after tool calls for logging or blocking&lt;/li&gt;
&lt;li&gt;You want complex tasks to trigger subagents or dedicated scripts&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Hooks are designed for these “automatic actions at fixed moments.”&lt;/p&gt;
&lt;p&gt;You can think of them as event hooks in the Claude Code workflow. When a session starts, a user submits a prompt, the model is about to call a tool, a tool call finishes, or an agent is about to stop, Claude Code can run the scripts you configured.&lt;/p&gt;
&lt;h2 id=&#34;the-13-hook-lifecycle-events&#34;&gt;The 13 Hook Lifecycle Events
&lt;/h2&gt;&lt;p&gt;One of the main points in the project README is that it systematically covers the 13 Claude Code hook events.&lt;/p&gt;
&lt;p&gt;These events span multiple stages, from session startup to tool calls, and from user input to agent termination. By purpose, they can be roughly grouped as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Session startup: initialize environment and inject project context&lt;/li&gt;
&lt;li&gt;User input: inspect prompts, add rules, and perform auditing&lt;/li&gt;
&lt;li&gt;Before tool calls: permission checks, command blocking, and security validation&lt;/li&gt;
&lt;li&gt;After tool calls: log results, trigger formatting, and run verification&lt;/li&gt;
&lt;li&gt;Task ending: summarize, clean up, notify, or save state&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This lifecycle design means you do not need to put every rule into one very long prompt.&lt;/p&gt;
&lt;p&gt;For example, permission control should happen before tool calls. Formatting checks are better after file edits. Project rule injection is better at session startup or after user input. Putting rules at the right hook point is usually more reliable than stuffing everything into a system prompt.&lt;/p&gt;
&lt;h2 id=&#34;where-configuration-lives&#34;&gt;Where Configuration Lives
&lt;/h2&gt;&lt;p&gt;Claude Code hooks are usually configured through settings files.&lt;/p&gt;
&lt;p&gt;Common locations include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;User-level configuration: &lt;code&gt;~/.claude/settings.json&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Project-level configuration: &lt;code&gt;.claude/settings.json&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;User-level configuration is good for personal preferences, such as general security rules, command blocking, and log paths.&lt;/p&gt;
&lt;p&gt;Project-level configuration is better for repository-specific rules, such as which tests must run, which directories cannot be edited, how generated files are handled, and which checks are required before commit.&lt;/p&gt;
&lt;p&gt;If you use Claude Code in a team, it is better to put project-level configuration into the repository. That way everyone opens the project with the same AI collaboration constraints instead of relying on personal memory.&lt;/p&gt;
&lt;h2 id=&#34;why-single-file-scripts-matter&#34;&gt;Why Single-File Scripts Matter
&lt;/h2&gt;&lt;p&gt;The project emphasizes &lt;code&gt;UV&lt;/code&gt; single-file scripts.&lt;/p&gt;
&lt;p&gt;The benefit is simple deployment. A single Python file can declare dependencies and run without maintaining a complex environment for one hook. This fits hooks well because many hooks only do one small thing:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Check whether a command is allowed&lt;/li&gt;
&lt;li&gt;Determine whether a file path is safe&lt;/li&gt;
&lt;li&gt;Read project rules and return them to Claude&lt;/li&gt;
&lt;li&gt;Scan output for sensitive information&lt;/li&gt;
&lt;li&gt;Run formatting or tests after edits&lt;/li&gt;
&lt;li&gt;Write events to logs&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The smaller a hook script is, the easier it is to maintain, and the less likely it is to become a new complicated system.&lt;/p&gt;
&lt;h2 id=&#34;what-automation-can-hooks-do&#34;&gt;What Automation Can Hooks Do
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;claude-code-hooks-mastery&lt;/code&gt; shows many directions. In real work, the most common ones are below.&lt;/p&gt;
&lt;h3 id=&#34;1-permission-and-security-control&#34;&gt;1. Permission and Security Control
&lt;/h3&gt;&lt;p&gt;This is the most direct use of hooks.&lt;/p&gt;
&lt;p&gt;Before Claude Code executes a command, a hook can inspect the command content. If it contains high-risk actions such as deletion, reset, cleanup, or overwrite, it can block execution or require manual confirmation.&lt;/p&gt;
&lt;p&gt;Similar rules can apply to file paths:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Do not modify production configuration&lt;/li&gt;
&lt;li&gt;Do not write to secret files&lt;/li&gt;
&lt;li&gt;Do not delete migration scripts&lt;/li&gt;
&lt;li&gt;Do not touch specific directories&lt;/li&gt;
&lt;li&gt;Do not run unapproved network commands&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Putting this protection before tool calls is more reliable than writing “do not perform dangerous operations” in a prompt.&lt;/p&gt;
&lt;h3 id=&#34;2-context-injection&#34;&gt;2. Context Injection
&lt;/h3&gt;&lt;p&gt;Many projects have fixed background information:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tech stack&lt;/li&gt;
&lt;li&gt;Coding conventions&lt;/li&gt;
&lt;li&gt;Test commands&lt;/li&gt;
&lt;li&gt;Branching strategy&lt;/li&gt;
&lt;li&gt;Directory structure&lt;/li&gt;
&lt;li&gt;Prohibited actions&lt;/li&gt;
&lt;li&gt;Rules for generated files&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Telling Claude Code this manually every time is annoying and easy to forget. Hooks can automatically inject necessary context at session startup or after the user submits a prompt.&lt;/p&gt;
&lt;p&gt;This is like giving Claude Code a project-level work manual. It does not replace the README or development documentation, but it helps AI enter the correct state before executing a task.&lt;/p&gt;
&lt;h3 id=&#34;3-verification-after-edits&#34;&gt;3. Verification After Edits
&lt;/h3&gt;&lt;p&gt;After Claude Code modifies files, hooks can automatically trigger checks.&lt;/p&gt;
&lt;p&gt;Common actions include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Run formatting&lt;/li&gt;
&lt;li&gt;Run lint&lt;/li&gt;
&lt;li&gt;Run unit tests&lt;/li&gt;
&lt;li&gt;Check type errors&lt;/li&gt;
&lt;li&gt;Scan generated files&lt;/li&gt;
&lt;li&gt;Validate Markdown or JSON format&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This helps reduce low-level mistakes. When AI edits multiple files, a lightweight verification pass after modification can reveal problems earlier.&lt;/p&gt;
&lt;p&gt;However, hooks should not run heavy tasks by default. Running the full test suite after every file change can make the experience slow. A better approach is to choose checks based on file type, directory, and task risk.&lt;/p&gt;
&lt;h3 id=&#34;4-team-rule-validation&#34;&gt;4. Team Rule Validation
&lt;/h3&gt;&lt;p&gt;If a team already has clear conventions, some of them can be placed in hooks.&lt;/p&gt;
&lt;p&gt;For example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Commit message format&lt;/li&gt;
&lt;li&gt;Code style rules&lt;/li&gt;
&lt;li&gt;Do not directly edit certain generated files&lt;/li&gt;
&lt;li&gt;Documentation must be updated together&lt;/li&gt;
&lt;li&gt;API changes must update tests&lt;/li&gt;
&lt;li&gt;Certain directories can only be generated by specific tools&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This makes Claude Code more like part of the team workflow rather than an unconstrained external assistant.&lt;/p&gt;
&lt;p&gt;Of course, hooks should not replace CI. They are better for local reminders and early blocking. Final validation should still belong to CI, review, and test systems.&lt;/p&gt;
&lt;h3 id=&#34;5-subagents-and-dedicated-tasks&#34;&gt;5. Subagents and Dedicated Tasks
&lt;/h3&gt;&lt;p&gt;The README also mentions subagent-related content.&lt;/p&gt;
&lt;p&gt;This type of usage is suitable for sending complex tasks into more specialized workflows. For example, the main conversation can understand the requirement, while a hook or configuration triggers dedicated checking, auditing, summarizing, or documentation tasks.&lt;/p&gt;
&lt;p&gt;For individual users, the first useful step is not complex agent orchestration. It is better to hand repetitive, clear, low-risk actions to hooks first. More complex automation can come after the rules become stable.&lt;/p&gt;
&lt;h2 id=&#34;statusline-and-output-styles&#34;&gt;Statusline and Output Styles
&lt;/h2&gt;&lt;p&gt;The project also covers statusline and output styles.&lt;/p&gt;
&lt;p&gt;This may look like a small experience detail, but it matters for long-term Claude Code usage. A statusline can show current context, task state, environment information, or hints. Output styles can make Claude Code answers fit your working habits better.&lt;/p&gt;
&lt;p&gt;If you collaborate with AI in the same terminal every day, these details affect efficiency. Good status hints reduce mistakes and help you quickly determine whether the current session is in the right project, branch, and environment.&lt;/p&gt;
&lt;h2 id=&#34;do-not-make-hooks-too-heavy&#34;&gt;Do Not Make Hooks Too Heavy
&lt;/h2&gt;&lt;p&gt;Hooks are powerful, but they are not the place to put everything.&lt;/p&gt;
&lt;p&gt;Good rules are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;High-frequency actions should be fast&lt;/li&gt;
&lt;li&gt;Security blocking should be clear&lt;/li&gt;
&lt;li&gt;Output should be short&lt;/li&gt;
&lt;li&gt;Failure reasons should be readable&lt;/li&gt;
&lt;li&gt;Scripts should have a single responsibility&lt;/li&gt;
&lt;li&gt;Heavy checks should be explicit commands or CI tasks&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If a hook takes more than ten seconds every time, users will soon want to disable it. If a hook has vague blocking rules, both Claude Code and the user will struggle to understand what to do next.&lt;/p&gt;
&lt;p&gt;Hooks are best for tasks with clear boundaries: allow or reject, add context, log events, run lightweight checks, and suggest the next step.&lt;/p&gt;
&lt;h2 id=&#34;who-should-use-it&#34;&gt;Who Should Use It
&lt;/h2&gt;&lt;p&gt;If you only occasionally ask Claude Code to edit a small piece of code, you may not need to study hooks deeply yet.&lt;/p&gt;
&lt;p&gt;But this project is useful if you:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Use Claude Code frequently&lt;/li&gt;
&lt;li&gt;Often let AI modify real project code&lt;/li&gt;
&lt;li&gt;Worry about AI running dangerous commands&lt;/li&gt;
&lt;li&gt;Want to automatically inject team rules into AI workflows&lt;/li&gt;
&lt;li&gt;Want checks to run automatically after edits&lt;/li&gt;
&lt;li&gt;Want to turn repeated reminders into configuration&lt;/li&gt;
&lt;li&gt;Are building a more stable AI coding workflow&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Hooks are especially meaningful in collaborative projects. They can turn part of team experience into scripts instead of relying on every person to remind AI manually.&lt;/p&gt;
&lt;h2 id=&#34;notes-for-use&#34;&gt;Notes for Use
&lt;/h2&gt;&lt;p&gt;First, start with security hooks.&lt;/p&gt;
&lt;p&gt;Compared with complex automation, command blocking, path protection, and sensitive file checks are easier to implement and immediately reduce risk.&lt;/p&gt;
&lt;p&gt;Second, commit project-level rules carefully.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;.claude/settings.json&lt;/code&gt; affects everyone who uses the repository. Before committing rules, make sure they do not over-restrict normal development or depend on paths that only exist on your machine.&lt;/p&gt;
&lt;p&gt;Third, keep hook output concise.&lt;/p&gt;
&lt;p&gt;Claude Code consumes this output. If it is too long, it pollutes the context. If it is too vague, it does not guide the next step. It is best to return only the necessary judgment and next recommendation.&lt;/p&gt;
&lt;p&gt;Fourth, keep hooks debuggable.&lt;/p&gt;
&lt;p&gt;When hooks increase in number, problems can come from configuration, scripts, permissions, paths, dependencies, or Claude Code itself. Clear logs make later debugging much easier.&lt;/p&gt;
&lt;h2 id=&#34;reference&#34;&gt;Reference
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/disler/claude-code-hooks-mastery&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;disler/claude-code-hooks-mastery&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;final-thought&#34;&gt;Final Thought
&lt;/h2&gt;&lt;p&gt;The value of &lt;code&gt;Claude Code Hooks&lt;/code&gt; is turning “rules I hope AI remembers every time” into workflows that actually execute.&lt;/p&gt;
&lt;p&gt;If you already use Claude Code in real projects, hooks are a key step from “a coding assistant that can chat” toward “a constrained engineering collaborator.”&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Claude-Mem: Adding Cross-Session Long-Term Memory to Claude Code</title>
        <link>https://knightli.com/en/2026/05/01/claude-mem-persistent-memory-for-claude-code/</link>
        <pubDate>Fri, 01 May 2026 03:01:02 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/01/claude-mem-persistent-memory-for-claude-code/</guid>
        <description>&lt;p&gt;&lt;code&gt;Claude-Mem&lt;/code&gt; is a persistent memory system for &lt;code&gt;Claude Code&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;It tries to solve a very specific problem: every time an AI coding assistant starts a new session, it often forgets earlier architecture decisions, past pitfalls, project preferences, and implementation context.&lt;br&gt;
If a project lasts for a long time, repeatedly explaining the same background becomes a waste of time.&lt;/p&gt;
&lt;p&gt;The idea behind &lt;code&gt;Claude-Mem&lt;/code&gt; is to compress Claude Code conversations into memories, store them in a local database and vector store, and then retrieve them later through a search tool.&lt;/p&gt;
&lt;h2 id=&#34;what-problem-does-it-solve&#34;&gt;What Problem Does It Solve?
&lt;/h2&gt;&lt;p&gt;Claude Code is good at code tasks, but session context is still limited.&lt;/p&gt;
&lt;p&gt;Common pain points include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A new session does not know what previous sessions did&lt;/li&gt;
&lt;li&gt;Project design decisions need to be explained repeatedly&lt;/li&gt;
&lt;li&gt;Problems that were already debugged are easy to repeat&lt;/li&gt;
&lt;li&gt;Long-running tasks lack continuity&lt;/li&gt;
&lt;li&gt;Project knowledge is hard to accumulate across conversations&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;Claude-Mem&lt;/code&gt; is designed around these problems.&lt;/p&gt;
&lt;p&gt;It is not simply saving chat logs. Instead, it compresses conversations into memory fragments that are easier to retrieve. When needed later, semantic search can bring the relevant context back.&lt;/p&gt;
&lt;h2 id=&#34;how-it-works&#34;&gt;How It Works
&lt;/h2&gt;&lt;p&gt;From the README design, &lt;code&gt;Claude-Mem&lt;/code&gt; mainly consists of several parts.&lt;/p&gt;
&lt;p&gt;The first part is hooks.&lt;/p&gt;
&lt;p&gt;It integrates with the Claude Code session flow and captures conversation data at the right time.&lt;/p&gt;
&lt;p&gt;The second part is a background worker.&lt;/p&gt;
&lt;p&gt;The worker processes raw conversation content into shorter, more searchable memories.&lt;/p&gt;
&lt;p&gt;The third part is local storage.&lt;/p&gt;
&lt;p&gt;The project uses &lt;code&gt;SQLite&lt;/code&gt; for structured metadata and &lt;code&gt;Chroma&lt;/code&gt; for vector indexing. This preserves basic session information while supporting semantic retrieval.&lt;/p&gt;
&lt;p&gt;The fourth part is &lt;code&gt;mem-search&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;This is the query entry point for Claude Code. When old context is needed, it can search relevant memories through this tool.&lt;/p&gt;
&lt;p&gt;The overall flow can be understood like this:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Claude Code sessions generate content&lt;/li&gt;
&lt;li&gt;Hooks capture session data&lt;/li&gt;
&lt;li&gt;The worker asynchronously compresses and organizes it&lt;/li&gt;
&lt;li&gt;Memories are written to SQLite and Chroma&lt;/li&gt;
&lt;li&gt;Later sessions retrieve them through &lt;code&gt;mem-search&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;when-is-it-useful&#34;&gt;When Is It Useful?
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Claude-Mem&lt;/code&gt; is suitable for long-running projects, not one-off small tasks.&lt;/p&gt;
&lt;p&gt;For example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A repository is developed over many days&lt;/li&gt;
&lt;li&gt;The code structure is complex and has a lot of background&lt;/li&gt;
&lt;li&gt;Project conventions, naming habits, and architecture choices need to be remembered&lt;/li&gt;
&lt;li&gt;Claude Code is often used for bug fixes, features, and documentation&lt;/li&gt;
&lt;li&gt;You want the AI to remember why something was changed earlier&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you only ask Claude Code to make a one-line change, long-term memory is not very meaningful.&lt;br&gt;
But if you treat Claude Code as a long-term collaborator, it becomes useful.&lt;/p&gt;
&lt;h2 id=&#34;installation-and-startup&#34;&gt;Installation and Startup
&lt;/h2&gt;&lt;p&gt;The README gives a direct installation flow:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install -g claude-mem
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude-mem install
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Start it with:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude-mem start
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Check status:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude-mem status
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Stop it when needed:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude-mem stop
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;The goal behind these commands is to connect the memory system as a long-running local service to the Claude Code workflow.&lt;/p&gt;
&lt;h2 id=&#34;how-to-use-mem-search&#34;&gt;How to Use &lt;code&gt;mem-search&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;mem-search&lt;/code&gt; is the key entry point for retrieving memory.&lt;/p&gt;
&lt;p&gt;It is not meant to replace ordinary search. It lets Claude Code query past conversations by meaning.&lt;/p&gt;
&lt;p&gt;For example, Claude Code can search for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Why a module was designed in a certain way&lt;/li&gt;
&lt;li&gt;How a bug was debugged earlier&lt;/li&gt;
&lt;li&gt;Naming rules agreed on in the project&lt;/li&gt;
&lt;li&gt;Technical trade-offs discussed before&lt;/li&gt;
&lt;li&gt;The background behind a refactor&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is different from simple keyword search.&lt;br&gt;
If memory compression and vector indexing work well, you can retrieve semantically related content even if you do not remember the exact wording.&lt;/p&gt;
&lt;h2 id=&#34;how-is-it-different-from-project-documentation&#34;&gt;How Is It Different from Project Documentation?
&lt;/h2&gt;&lt;p&gt;Project documentation is good for stable conclusions.&lt;/p&gt;
&lt;p&gt;For example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Architecture notes&lt;/li&gt;
&lt;li&gt;Deployment procedures&lt;/li&gt;
&lt;li&gt;API conventions&lt;/li&gt;
&lt;li&gt;Database structure&lt;/li&gt;
&lt;li&gt;Development rules&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;Claude-Mem&lt;/code&gt; is better for context created during conversations.&lt;/p&gt;
&lt;p&gt;For example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Why a plan was rejected&lt;/li&gt;
&lt;li&gt;How a temporary issue was worked around&lt;/li&gt;
&lt;li&gt;The discussion behind an implementation&lt;/li&gt;
&lt;li&gt;Project preferences not yet written into docs&lt;/li&gt;
&lt;li&gt;Task background accumulated across multiple conversations&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The two are not replacements for each other.&lt;br&gt;
A good workflow is to write stable knowledge into project docs and use the memory system to help retrieve conversational context.&lt;/p&gt;
&lt;h2 id=&#34;things-to-watch-out-for&#34;&gt;Things to Watch Out For
&lt;/h2&gt;&lt;p&gt;First, more long-term memory is not always better.&lt;/p&gt;
&lt;p&gt;If every conversation is saved without distinction, later retrieval can become noisy. The most valuable memories are project decisions, implementation background, debugging history, and long-term preferences.&lt;/p&gt;
&lt;p&gt;Second, memory cannot replace code and documentation.&lt;/p&gt;
&lt;p&gt;Old context found by AI is only a reference. Final judgment still depends on the current code, test results, and latest requirements.&lt;/p&gt;
&lt;p&gt;Third, pay attention to privacy and local data.&lt;/p&gt;
&lt;p&gt;Since it stores conversation content, you should know which projects are suitable for it and which sensitive information should not enter the conversation.&lt;/p&gt;
&lt;p&gt;Fourth, memory systems need maintenance.&lt;/p&gt;
&lt;p&gt;As a project moves forward, old memories may become outdated. If outdated context is reused incorrectly, it can mislead later tasks.&lt;/p&gt;
&lt;h2 id=&#34;why-this-kind-of-tool-matters&#34;&gt;Why This Kind of Tool Matters
&lt;/h2&gt;&lt;p&gt;AI coding tools are moving from one-off Q&amp;amp;A toward long-term collaboration.&lt;/p&gt;
&lt;p&gt;In one-off Q&amp;amp;A, the model only needs to answer the current question.&lt;br&gt;
In long-term collaboration, it needs to know project history, earlier decisions, team preferences, and pitfalls that have already been found.&lt;/p&gt;
&lt;p&gt;This is where tools like &lt;code&gt;Claude-Mem&lt;/code&gt; matter: they turn &amp;ldquo;remembering context&amp;rdquo; from a temporary chat capability into a local system that can be installed, run, and searched.&lt;/p&gt;
&lt;p&gt;For real engineering projects, this is more practical than simply making the model context window longer.&lt;br&gt;
Much information does not need to be stuffed into context all at once; it needs to be retrieved at the right time.&lt;/p&gt;
&lt;h2 id=&#34;who-should-try-it&#34;&gt;Who Should Try It?
&lt;/h2&gt;&lt;p&gt;You may want to try it if:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You use Claude Code frequently&lt;/li&gt;
&lt;li&gt;You often work on the same project across multiple days&lt;/li&gt;
&lt;li&gt;The project context is complex&lt;/li&gt;
&lt;li&gt;You repeatedly explain the same background to AI&lt;/li&gt;
&lt;li&gt;You want to preserve experience from conversations&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you only use Claude Code occasionally, or the project is small, you may not need this kind of system yet.&lt;/p&gt;
&lt;h2 id=&#34;reference&#34;&gt;Reference
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/thedotmack/claude-mem&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;thedotmack/claude-mem&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;final-thought&#34;&gt;Final Thought
&lt;/h2&gt;&lt;p&gt;The point of &lt;code&gt;Claude-Mem&lt;/code&gt; is not &amp;ldquo;saving chat logs.&amp;rdquo; It is helping Claude Code retrieve useful context in later tasks.&lt;/p&gt;
&lt;p&gt;As AI coding moves from one-off tasks to long-running project collaboration, memory systems will become increasingly important.&lt;br&gt;
They cannot replace documentation and tests, but they can reduce repeated explanations and make the AI feel more like an assistant that understands project history.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Ralph and Multi-Agent Collaboration: How to Keep AI Working Reliably Over Long Tasks</title>
        <link>https://knightli.com/en/2026/04/27/ralph-multi-agent-long-running-ai-workflows/</link>
        <pubDate>Mon, 27 Apr 2026 08:19:02 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/04/27/ralph-multi-agent-long-running-ai-workflows/</guid>
        <description>&lt;p&gt;If you have been using coding agents lately, you quickly run into a very practical question: &lt;strong&gt;AI can work, sure, but how do you keep it working for hours without drifting, forgetting requirements, or redoing the same work?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;That is the real question behind many discussions around &lt;code&gt;Ralph&lt;/code&gt; and multi-agent collaboration. The point is not simply to compare which model is stronger. The more useful question is this: &lt;strong&gt;how do you design a workflow that lets AI stay stable during long tasks?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If you break the problem down, there are usually two main routes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;Ralph&lt;/code&gt; approach: keep starting fresh sessions and connect context through the filesystem&lt;/li&gt;
&lt;li&gt;The multi-agent approach: let a lead agent coordinate while worker agents split the execution&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Put more simply, the question is not &amp;ldquo;which model is more powerful,&amp;rdquo; but &amp;ldquo;how do you organize AI so it behaves more like a small team that can keep delivering?&amp;rdquo;&lt;/p&gt;
&lt;h2 id=&#34;01-why-long-tasks-go-off-the-rails&#34;&gt;01 Why Long Tasks Go Off the Rails
&lt;/h2&gt;&lt;p&gt;In short tasks, many problems stay hidden. You give an instruction, the model reads a few files, changes a few lines, and the job is done.&lt;/p&gt;
&lt;p&gt;Once the task gets longer, the common failure modes start to pile up:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Conversations grow longer and context starts to bloat&lt;/li&gt;
&lt;li&gt;Earlier requirements get squeezed out by newer information&lt;/li&gt;
&lt;li&gt;One agent has to plan, implement, and test at the same time&lt;/li&gt;
&lt;li&gt;Without a clear acceptance step, &amp;ldquo;it is done&amp;rdquo; often just means &amp;ldquo;it says it is done&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So when AI runs for a long time, the real challenge is often not single-shot model quality. It is &lt;strong&gt;task slicing, state handoff, role separation, and feedback loops&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&#34;02-the-ralph-approach-break-long-tasks-into-short-rounds&#34;&gt;02 The Ralph Approach: Break Long Tasks into Short Rounds
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Ralph&lt;/code&gt; is a good fit when the main problem is dirty, overloaded context.&lt;/p&gt;
&lt;p&gt;Its core pattern is straightforward:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Keep launching new agent sessions in a loop&lt;/li&gt;
&lt;li&gt;Let each round handle only one small enough task&lt;/li&gt;
&lt;li&gt;Store cross-round state in files instead of forcing everything into one conversation&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The benefit is immediate: every round starts with fresh context, so the session stays more focused and is less likely to get dragged down by old history.&lt;/p&gt;
&lt;p&gt;If you have already looked at &lt;code&gt;Ralph&lt;/code&gt;-style projects, the structure will feel familiar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Current tasks live in structured files&lt;/li&gt;
&lt;li&gt;Intermediate learnings go into progress files&lt;/li&gt;
&lt;li&gt;Code changes stay in git history&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In other words, &lt;code&gt;Ralph&lt;/code&gt; does not try to make one agent remember everything forever. It externalizes memory on purpose so the session itself can stay lighter.&lt;/p&gt;
&lt;p&gt;This kind of setup works especially well when:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The work can already be split into small stories&lt;/li&gt;
&lt;li&gt;Each story can fit inside one context window&lt;/li&gt;
&lt;li&gt;The project already has tests, typecheck, or other checks&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It is a solution to the problem of &lt;strong&gt;how to keep AI moving forward one round at a time&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&#34;03-the-multi-agent-approach-split-the-work-one-agent-cannot-handle-alone&#34;&gt;03 The Multi-Agent Approach: Split the Work One Agent Cannot Handle Alone
&lt;/h2&gt;&lt;p&gt;The other route is multi-agent collaboration.&lt;/p&gt;
&lt;p&gt;In this kind of workflow design, the more promising pattern is usually this: the lead agent should not do all the work directly. Instead, it coordinates while other agents handle development, testing, checking, and acceptance.&lt;/p&gt;
&lt;p&gt;That differs from &lt;code&gt;Ralph&lt;/code&gt; in an important way:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Ralph&lt;/code&gt; feels more like serial iteration&lt;/li&gt;
&lt;li&gt;Multi-agent work feels more like parallel division of labor&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When the task naturally contains different roles, multi-agent collaboration becomes easier to use. For example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;One agent breaks down the task and writes the execution plan&lt;/li&gt;
&lt;li&gt;One agent implements the actual change&lt;/li&gt;
&lt;li&gt;One agent tests and validates the result&lt;/li&gt;
&lt;li&gt;One agent checks whether the result still matches the original goal&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The point is not to open more windows for the sake of it. The real value is role separation. Tasks that used to be piled onto one agent can now be split into clearer stages.&lt;/p&gt;
&lt;p&gt;Once the role boundaries are clear, several problems become lighter:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The person writing does not have to be the same one reviewing&lt;/li&gt;
&lt;li&gt;The testing side does not have to reconstruct the full requirement every time&lt;/li&gt;
&lt;li&gt;The lead agent is less likely to drown in implementation detail&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is a solution to the problem of &lt;strong&gt;how to make AI cooperate more like a small team&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&#34;04-the-real-key-is-not-parallelism-but-task-design&#34;&gt;04 The Real Key Is Not Parallelism, but Task Design
&lt;/h2&gt;&lt;p&gt;Whether you choose &lt;code&gt;Ralph&lt;/code&gt; or multi-agent collaboration, the easiest thing to underestimate is this: &lt;strong&gt;workflow design matters more than opening more agents.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If the task split is wrong, adding more agents only parallelizes the confusion.&lt;/p&gt;
&lt;p&gt;A more stable breakdown usually has a few traits:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;One task maps to one clear objective&lt;/li&gt;
&lt;li&gt;One role owns one category of output&lt;/li&gt;
&lt;li&gt;Every round has a clear done condition&lt;/li&gt;
&lt;li&gt;The output of one round can be consumed directly by the next&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For example, instead of giving AI one giant instruction like &amp;ldquo;build the whole feature,&amp;rdquo; a steadier structure is often:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Break out requirements and boundaries first&lt;/li&gt;
&lt;li&gt;Then split implementation&lt;/li&gt;
&lt;li&gt;Then split testing&lt;/li&gt;
&lt;li&gt;Then make acceptance its own step&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The advantage is that when something goes wrong, it becomes easier to tell whether the problem sits in understanding, implementation, testing, or delivery criteria.&lt;/p&gt;
&lt;h2 id=&#34;05-why-acceptance-matters-so-much&#34;&gt;05 Why Acceptance Matters So Much
&lt;/h2&gt;&lt;p&gt;Many AI workflows fail not because nothing happened earlier, but because the last step lacked a genuinely independent confirmation pass.&lt;/p&gt;
&lt;p&gt;In long tasks, there is often a wide gap between &amp;ldquo;a result was produced&amp;rdquo; and &amp;ldquo;the result is actually usable.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;So one especially important direction is to separate development from acceptance. Even without a complex process, it is worth asking at least these questions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Did it really complete the original task?&lt;/li&gt;
&lt;li&gt;Did it only patch the surface without fixing the root cause?&lt;/li&gt;
&lt;li&gt;Did testing cover only the happiest path?&lt;/li&gt;
&lt;li&gt;Did the upstream requirement get silently changed along the way?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Without that layer, AI can easily keep declaring success inside a long workflow.&lt;/p&gt;
&lt;h2 id=&#34;06-how-to-choose-between-the-two&#34;&gt;06 How to Choose Between the Two
&lt;/h2&gt;&lt;p&gt;If you want a fast rule of thumb:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If your main pain is context bloat and long-session drift, start with &lt;code&gt;Ralph&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;If your main pain is one agent wearing too many hats, start with multi-agent collaboration&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;More specifically:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Ralph&lt;/code&gt; fits work that is clear, granular, and easy to move forward round by round&lt;/li&gt;
&lt;li&gt;Multi-agent collaboration fits work with strong role boundaries and a need for parallelism and cross-checking&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In practice, these two approaches are not always competitors. A mature setup often combines them:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Use a &lt;code&gt;Ralph&lt;/code&gt;-style outer loop to push the larger task forward&lt;/li&gt;
&lt;li&gt;Use multi-agent collaboration inside each round for research, implementation, testing, and acceptance&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That gives you both better control over long context and better collaboration inside a single round.&lt;/p&gt;
&lt;h2 id=&#34;07-one-sentence-summary&#34;&gt;07 One-Sentence Summary
&lt;/h2&gt;&lt;p&gt;What makes these approaches worth studying is not that they recommend &lt;code&gt;Ralph&lt;/code&gt; or multi-agent collaboration in isolation. It is that they make one practical truth very clear: &lt;strong&gt;keeping AI stable over long tasks depends less on the model itself and more on whether you designed context, tasks, roles, and acceptance well.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If you are already asking &lt;code&gt;Claude Code&lt;/code&gt;, &lt;code&gt;Codex&lt;/code&gt;, or other coding agents to handle longer real-world tasks, this kind of workflow thinking is often more valuable than simply switching to a stronger model.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>What Ralph Is: Turning Claude Code and Amp into a Repeatable Autonomous Development Loop</title>
        <link>https://knightli.com/en/2026/04/27/ralph-autonomous-agent-loop-claude-code-amp/</link>
        <pubDate>Mon, 27 Apr 2026 08:08:55 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/04/27/ralph-autonomous-agent-loop-claude-code-amp/</guid>
        <description>&lt;p&gt;If you have been paying attention to long-running coding agent workflows lately, &lt;code&gt;snarktank/ralph&lt;/code&gt; is a project worth a close look. It is not another model wrapper or another chat UI. Instead, it organizes &lt;code&gt;Claude Code&lt;/code&gt; or &lt;code&gt;Amp&lt;/code&gt; into an autonomous loop that keeps running through stories in a &lt;code&gt;PRD&lt;/code&gt; until everything is done.&lt;/p&gt;
&lt;p&gt;Its core idea is simple: &lt;strong&gt;do not force the same agent to keep working inside an increasingly long and messy context. Start a brand-new AI coding session for every iteration instead.&lt;/strong&gt; That keeps context from bloating and makes task boundaries much clearer.&lt;/p&gt;
&lt;h2 id=&#34;01-what-ralph-is&#34;&gt;01 What Ralph Is
&lt;/h2&gt;&lt;p&gt;Ralph describes itself very clearly: it is an autonomous AI agent loop that repeatedly runs an AI coding tool until the items in a &lt;code&gt;PRD&lt;/code&gt; are complete.&lt;/p&gt;
&lt;p&gt;The repository currently supports two tools:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Amp CLI&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Claude Code&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Each iteration starts a fresh instance. In other words, it does not depend on one endlessly extended conversation. Instead, it keeps memory in external state:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;git history&lt;/li&gt;
&lt;li&gt;&lt;code&gt;progress.txt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;prd.json&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That detail matters a lot. When people let an agent run on large tasks, the main problem is often not that the model cannot code. It is that the session becomes heavier over time, starts losing context, forgets requirements, and repeats work. Ralph is designed almost entirely around that problem.&lt;/p&gt;
&lt;h2 id=&#34;02-how-it-works&#34;&gt;02 How It Works
&lt;/h2&gt;&lt;p&gt;Ralph&amp;rsquo;s workflow has three steps.&lt;/p&gt;
&lt;h3 id=&#34;1-write-a-prd-first&#34;&gt;1. Write a PRD first
&lt;/h3&gt;&lt;p&gt;The README suggests starting with the bundled &lt;code&gt;prd&lt;/code&gt; skill to generate a requirements document and break the feature into smaller stories.&lt;/p&gt;
&lt;h3 id=&#34;2-convert-the-prd-into-prdjson&#34;&gt;2. Convert the PRD into &lt;code&gt;prd.json&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;Then the &lt;code&gt;ralph&lt;/code&gt; skill converts the Markdown PRD into a structured &lt;code&gt;prd.json&lt;/code&gt;. That file stores the user stories and whether each one has passed.&lt;/p&gt;
&lt;h3 id=&#34;3-run-the-loop-script&#34;&gt;3. Run the loop script
&lt;/h3&gt;&lt;p&gt;The actual execution is handled by &lt;code&gt;ralph.sh&lt;/code&gt;. The commands look like this:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./scripts/ralph/ralph.sh &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;max_iterations&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./scripts/ralph/ralph.sh --tool claude &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;max_iterations&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;The default is 10 iterations. In each round, Ralph roughly does the following:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Create a branch from &lt;code&gt;branchName&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Pick the highest-priority story where &lt;code&gt;passes: false&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Implement only that story&lt;/li&gt;
&lt;li&gt;Run quality checks such as typecheck and tests&lt;/li&gt;
&lt;li&gt;Commit if the checks pass&lt;/li&gt;
&lt;li&gt;Update &lt;code&gt;prd.json&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Append learnings to &lt;code&gt;progress.txt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Continue to the next round&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;So Ralph is not trying to finish everything in one go. It compresses work into many small loops that can fit inside a single context window.&lt;/p&gt;
&lt;h2 id=&#34;03-what-makes-ralph-interesting&#34;&gt;03 What Makes Ralph Interesting
&lt;/h2&gt;&lt;h3 id=&#34;1-every-round-uses-fresh-context&#34;&gt;1. Every round uses fresh context
&lt;/h3&gt;&lt;p&gt;This is Ralph&amp;rsquo;s defining design choice. The README emphasizes that every iteration is a brand-new AI instance, and cross-iteration memory lives only in git, &lt;code&gt;progress.txt&lt;/code&gt;, and &lt;code&gt;prd.json&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;That is very different from the common pattern of keeping &lt;code&gt;Claude Code&lt;/code&gt; or another tool inside one long conversation. Once tasks get larger, that approach often slows down under its own history and gradually loses focus. Ralph accepts that no single round should remember everything, then moves memory into files instead.&lt;/p&gt;
&lt;h3 id=&#34;2-it-forces-tasks-to-stay-small&#34;&gt;2. It forces tasks to stay small
&lt;/h3&gt;&lt;p&gt;The docs explicitly say that each PRD item must be small enough to finish within one context window. Tasks like adding a filter, updating a server action, or adding a database column are about the right size. Tasks like rebuilding the whole API or creating an entire dashboard are too large.&lt;/p&gt;
&lt;p&gt;That constraint is practical. Many autonomous agent loops fail not because the loop is bad, but because the task slicing is too coarse and each round carries too much at once.&lt;/p&gt;
&lt;h3 id=&#34;3-it-preserves-learnings-not-just-code&#34;&gt;3. It preserves learnings, not just code
&lt;/h3&gt;&lt;p&gt;Beyond &lt;code&gt;progress.txt&lt;/code&gt;, the README also stresses updating &lt;code&gt;AGENTS.md&lt;/code&gt;. The reason is straightforward: future iterations and future developers will read those notes, so patterns, gotchas, and conventions discovered in each round should be written down in the project itself.&lt;/p&gt;
&lt;p&gt;Put differently, Ralph is not only trying to keep an agent coding continuously. It is also trying to help the agent build working memory about the codebase over time.&lt;/p&gt;
&lt;h2 id=&#34;04-when-it-fits-best&#34;&gt;04 When It Fits Best
&lt;/h2&gt;&lt;p&gt;Ralph is a good fit when your task looks like this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It can already be broken into a clear set of user stories&lt;/li&gt;
&lt;li&gt;The codebase has reliable feedback loops such as tests, typecheck, or CI&lt;/li&gt;
&lt;li&gt;You want the agent to keep moving forward without putting everything into one long conversation&lt;/li&gt;
&lt;li&gt;You are fine with iterative progress instead of demanding a one-shot completion&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;On the other hand, if the requirement is still vague, or the work depends on frequent discussion and constant changes of direction, Ralph may not be the first thing to reach for. It fits better once the requirements are already shaped and execution needs to be steady.&lt;/p&gt;
&lt;h2 id=&#34;05-how-it-differs-from-normal-claude-code-usage&#34;&gt;05 How It Differs from Normal Claude Code Usage
&lt;/h2&gt;&lt;p&gt;With plain &lt;code&gt;Claude Code&lt;/code&gt;, the usual pattern is simple: open a session and let it keep reading code, editing files, and running commands. That works very well for small and medium tasks, but larger tasks often hit two problems:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Context keeps growing&lt;/li&gt;
&lt;li&gt;Intermediate decisions are harder to preserve in a structured way&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ralph turns &lt;code&gt;Claude Code&lt;/code&gt; or &lt;code&gt;Amp&lt;/code&gt; into something closer to a batch executor:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The task source is &lt;code&gt;prd.json&lt;/code&gt;, not ad hoc chat instructions&lt;/li&gt;
&lt;li&gt;Each iteration recognizes only one story&lt;/li&gt;
&lt;li&gt;Completion state is written back to files&lt;/li&gt;
&lt;li&gt;Learnings go into &lt;code&gt;progress.txt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Code changes are preserved in git&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So in practice, it feels less like a new AI assistant and more like an iteration controller added on top of a coding agent.&lt;/p&gt;
&lt;h2 id=&#34;06-one-important-requirement&#34;&gt;06 One Important Requirement
&lt;/h2&gt;&lt;p&gt;Whether Ralph works well depends less on the loop itself and more on the quality of your feedback loops. The README says this very directly: without typecheck, tests, and CI, errors will compound across later iterations.&lt;/p&gt;
&lt;p&gt;For frontend tasks, the repository even recommends adding browser verification to the acceptance criteria. Without real verification, an agent can easily confuse &amp;ldquo;it looks done&amp;rdquo; with &amp;ldquo;it actually works.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;That point is important. Ralph is not magical automation. It is more like a force multiplier for the engineering discipline you already have. If your project already has clear task breakdowns and reliable checks, Ralph becomes much more useful. If those foundations are missing, the loop will only repeat the confusion.&lt;/p&gt;
&lt;h2 id=&#34;07-one-sentence-summary&#34;&gt;07 One-Sentence Summary
&lt;/h2&gt;&lt;p&gt;What makes &lt;code&gt;Ralph&lt;/code&gt; worth studying is not that it introduces a huge amount of new infrastructure. It takes a simple but useful idea and turns it into a practical workflow: &lt;strong&gt;let &lt;code&gt;Claude Code&lt;/code&gt; or &lt;code&gt;Amp&lt;/code&gt; handle one small story per round, keep focus with fresh context, and preserve continuity through &lt;code&gt;git&lt;/code&gt;, &lt;code&gt;prd.json&lt;/code&gt;, and &lt;code&gt;progress.txt&lt;/code&gt;.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If you are already using coding agents in real projects and keep getting stuck on how to push long tasks forward reliably, Ralph&amp;rsquo;s approach is well worth borrowing.&lt;/p&gt;
&lt;h2 id=&#34;references&#34;&gt;References
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;GitHub repository: &lt;a class=&#34;link&#34; href=&#34;https://github.com/snarktank/ralph&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/snarktank/ralph&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Interactive flowchart: &lt;a class=&#34;link&#34; href=&#34;https://snarktank.github.io&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://snarktank.github.io&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Claude Code&#39;s Four-Part Environment Setup: CLAUDE.md, Rules, Memory, and Hooks Explained</title>
        <link>https://knightli.com/en/2026/04/23/claude-code-claude-md-rules-memory-hooks-guide/</link>
        <pubDate>Thu, 23 Apr 2026 10:43:40 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/04/23/claude-code-claude-md-rules-memory-hooks-guide/</guid>
        <description>&lt;p&gt;If you use &lt;code&gt;Claude Code&lt;/code&gt; for a while, you quickly realize something: the model itself is important, but the environment you give it, the boundaries you define, and the rules you set matter just as much.&lt;/p&gt;
&lt;p&gt;At first, many people focus on &amp;ldquo;how should I write this prompt?&amp;rdquo; But once you really start using &lt;code&gt;Claude Code&lt;/code&gt; seriously, you care more about something else:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Does it know who you are?&lt;/li&gt;
&lt;li&gt;Does it know how you work?&lt;/li&gt;
&lt;li&gt;Does it know which rules cannot be broken?&lt;/li&gt;
&lt;li&gt;Does it know which actions require confirmation first?&lt;/li&gt;
&lt;li&gt;Can it remember these boundaries over time?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;What makes &lt;code&gt;Claude Code&lt;/code&gt; a mature tool is not just model capability. It is that there is a whole system for turning your working style into persistent structure. At a high level, that system can be divided into four layers:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Rules&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Memory&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Hooks&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This article explains all four in one pass.&lt;/p&gt;
&lt;h2 id=&#34;why-environment-setup-matters-more-than-one-off-prompts&#34;&gt;Why environment setup matters more than one-off prompts
&lt;/h2&gt;&lt;p&gt;You can think of &lt;code&gt;Claude Code&lt;/code&gt; as an assistant you hired.&lt;/p&gt;
&lt;p&gt;On day one, you would not just tell them, &amp;ldquo;help me do things.&amp;rdquo; You would give them a handbook and explain:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;who you are&lt;/li&gt;
&lt;li&gt;what communication style you prefer&lt;/li&gt;
&lt;li&gt;which actions always require confirmation&lt;/li&gt;
&lt;li&gt;which mistakes have happened before and must not happen again&lt;/li&gt;
&lt;li&gt;where the most important project documents live&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That is why, in the long run, environment setup usually matters more than a single prompt.&lt;/p&gt;
&lt;p&gt;A prompt solves &amp;ldquo;what should we do this time?&amp;rdquo; Environment setup solves &amp;ldquo;how should we work every time from now on?&amp;rdquo;&lt;/p&gt;
&lt;h2 id=&#34;layer-1-claudemd&#34;&gt;Layer 1: &lt;code&gt;CLAUDE.md&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;Start with the most basic piece. &lt;code&gt;CLAUDE.md&lt;/code&gt; is essentially just a text file.&lt;/p&gt;
&lt;p&gt;You can write instructions for Claude in it, such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;who you are&lt;/li&gt;
&lt;li&gt;what you are working on&lt;/li&gt;
&lt;li&gt;your communication preferences&lt;/li&gt;
&lt;li&gt;rules that must be followed&lt;/li&gt;
&lt;li&gt;special background for the current project&lt;/li&gt;
&lt;li&gt;where important documents or directories are&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Every time &lt;code&gt;Claude Code&lt;/code&gt; starts, this document is automatically injected into context, so the model will definitely read it.&lt;/p&gt;
&lt;p&gt;I usually think of it as a &amp;ldquo;shared understanding file&amp;rdquo;, because that is what it really is: the standing agreement between you and the model.&lt;/p&gt;
&lt;h3 id=&#34;what-belongs-in-claudemd&#34;&gt;What belongs in &lt;code&gt;CLAUDE.md&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;The best things to put in &lt;code&gt;CLAUDE.md&lt;/code&gt; are usually these kinds of information:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;identity and work background&lt;/li&gt;
&lt;li&gt;tone and output preferences&lt;/li&gt;
&lt;li&gt;global behavior rules&lt;/li&gt;
&lt;li&gt;important project background that comes up often&lt;/li&gt;
&lt;li&gt;common mistakes and how to avoid them&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;your time zone&lt;/li&gt;
&lt;li&gt;whether you allow the model to send emails or messages directly&lt;/li&gt;
&lt;li&gt;which actions count as irreversible&lt;/li&gt;
&lt;li&gt;your habits for handling documents and files&lt;/li&gt;
&lt;li&gt;security practices and boundaries around sensitive information&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;one-very-important-principle-keep-it-concise&#34;&gt;One very important principle: keep it concise
&lt;/h3&gt;&lt;p&gt;There is one especially important principle for &lt;code&gt;CLAUDE.md&lt;/code&gt;: keep it as concise as possible.&lt;/p&gt;
&lt;p&gt;The reason is simple: it gets injected into context every time.&lt;/p&gt;
&lt;p&gt;If it becomes too long, it takes up too much context space and dilutes the information that actually matters. The model is not ignoring it, but its attention becomes more spread out, so it is more likely to miss the rules you care about most.&lt;/p&gt;
&lt;p&gt;The official recommendation is usually to stay under &lt;code&gt;400&lt;/code&gt; lines.&lt;/p&gt;
&lt;p&gt;My own habit is even more conservative: I try to keep it under &lt;code&gt;200&lt;/code&gt; lines.&lt;/p&gt;
&lt;h3 id=&#34;common-scopes-for-claudemd&#34;&gt;Common scopes for &lt;code&gt;CLAUDE.md&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;In practice, &lt;code&gt;CLAUDE.md&lt;/code&gt; can exist at different levels, and those levels determine its scope. The two most common ones are:&lt;/p&gt;
&lt;h4 id=&#34;1-user-level&#34;&gt;1. User Level
&lt;/h4&gt;&lt;p&gt;This is the global level.&lt;/p&gt;
&lt;p&gt;It lives in your machine-level environment and applies to all projects you work on locally.&lt;/p&gt;
&lt;p&gt;This is a good place for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;your identity information&lt;/li&gt;
&lt;li&gt;general communication preferences&lt;/li&gt;
&lt;li&gt;habits that apply across projects&lt;/li&gt;
&lt;li&gt;global security rules&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For example, if your time zone is not the default one people often assume, but Bangkok time, that fits very well at the &lt;code&gt;user level&lt;/code&gt;, because it helps the model avoid mistakes whenever it works with dates and times later.&lt;/p&gt;
&lt;h4 id=&#34;2-project-level&#34;&gt;2. Project Level
&lt;/h4&gt;&lt;p&gt;This is the project level.&lt;/p&gt;
&lt;p&gt;It sits inside a specific project directory and only applies to that project.&lt;/p&gt;
&lt;p&gt;This is a good place for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;project-specific background&lt;/li&gt;
&lt;li&gt;rules that only make sense in this project&lt;/li&gt;
&lt;li&gt;explanations of the project&amp;rsquo;s directory structure&lt;/li&gt;
&lt;li&gt;entry points to the project&amp;rsquo;s key documents&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For example, if one project handles finance and another handles HR, the background and constraints are obviously different, so they should not live in the same global instructions.&lt;/p&gt;
&lt;h3 id=&#34;how-to-decide-which-level-to-use&#34;&gt;How to decide which level to use
&lt;/h3&gt;&lt;p&gt;The rule is actually simple:&lt;/p&gt;
&lt;p&gt;If the thing you are writing would still be true in another project, put it at the &lt;code&gt;user level&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;If it stops being true as soon as you switch projects, put it at the &lt;code&gt;project level&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;how-to-write-the-first-version&#34;&gt;How to write the first version
&lt;/h3&gt;&lt;p&gt;There are two common ways to get started:&lt;/p&gt;
&lt;h4 id=&#34;1-use-init&#34;&gt;1. Use &lt;code&gt;/init&lt;/code&gt;
&lt;/h4&gt;&lt;p&gt;You can run the slash command &lt;code&gt;/init&lt;/code&gt; directly in the terminal and let Claude scan the current project to generate a basic &lt;code&gt;CLAUDE.md&lt;/code&gt; for you.&lt;/p&gt;
&lt;h4 id=&#34;2-let-claude-help-you-organize-it&#34;&gt;2. Let Claude help you organize it
&lt;/h4&gt;&lt;p&gt;You can also ask Claude to look up how other people structure &lt;code&gt;CLAUDE.md&lt;/code&gt;, ask you some questions based on your situation, and then help you organize a version that fits you.&lt;/p&gt;
&lt;p&gt;In many cases, that is much easier than writing it from scratch yourself.&lt;/p&gt;
&lt;h3 id=&#34;one-very-practical-habit&#34;&gt;One very practical habit
&lt;/h3&gt;&lt;p&gt;As you collaborate with Claude over time, whenever you notice something that definitely needs to be remembered in the future, or something that must not go wrong again, you can ask it to write that into &lt;code&gt;CLAUDE.md&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Before doing that, though, you still want to decide:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;is this a global rule?&lt;/li&gt;
&lt;li&gt;or a rule for the current project only?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Do not dump everything into one file.&lt;/p&gt;
&lt;h2 id=&#34;layer-2-rules&#34;&gt;Layer 2: &lt;code&gt;Rules&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;Next is &lt;code&gt;Rules&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The biggest difference between it and &lt;code&gt;CLAUDE.md&lt;/code&gt; is not the file format. It is how it gets loaded.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; is read no matter what you are doing.&lt;/p&gt;
&lt;p&gt;The advantage of &lt;code&gt;Rules&lt;/code&gt; is that they can be &lt;strong&gt;loaded conditionally&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;In other words, a rule can be loaded only for certain paths, files, tools, or scenarios.&lt;/p&gt;
&lt;h3 id=&#34;why-conditional-loading-matters&#34;&gt;Why conditional loading matters
&lt;/h3&gt;&lt;p&gt;Because context space is always scarce.&lt;/p&gt;
&lt;p&gt;If every rule gets shoved into context all the time, two things happen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;the model carries more overhead&lt;/li&gt;
&lt;li&gt;truly important rules get buried&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That is the value of loading rules on demand: the model sees the right information at the right time.&lt;/p&gt;
&lt;h3 id=&#34;when-to-move-rules-from-claudemd-into-rules&#34;&gt;When to move rules from &lt;code&gt;CLAUDE.md&lt;/code&gt; into &lt;code&gt;Rules&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;Usually there are two situations:&lt;/p&gt;
&lt;h4 id=&#34;1-claudemd-has-become-too-long&#34;&gt;1. &lt;code&gt;CLAUDE.md&lt;/code&gt; has become too long
&lt;/h4&gt;&lt;p&gt;If your &lt;code&gt;CLAUDE.md&lt;/code&gt; starts going beyond &lt;code&gt;200&lt;/code&gt; lines, keeps growing, and the important content gets diluted, it is time to split some rules out.&lt;/p&gt;
&lt;h4 id=&#34;2-some-rules-only-apply-to-specific-paths&#34;&gt;2. Some rules only apply to specific paths
&lt;/h4&gt;&lt;p&gt;If you clearly know that some rules only make sense for certain kinds of files, for example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;rules that only apply to Python scripts&lt;/li&gt;
&lt;li&gt;rules that only apply to a hooks directory&lt;/li&gt;
&lt;li&gt;rules that only apply to one subproject&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;then those rules belong in &lt;code&gt;Rules&lt;/code&gt; much more naturally.&lt;/p&gt;
&lt;h3 id=&#34;where-rules-fit-best&#34;&gt;Where &lt;code&gt;Rules&lt;/code&gt; fit best
&lt;/h3&gt;&lt;p&gt;The most typical use case is &amp;ldquo;specific situation, specific path, specific file type&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;For example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;conventions that only apply when handling hook files&lt;/li&gt;
&lt;li&gt;coding rules that only matter in a certain class of scripts&lt;/li&gt;
&lt;li&gt;ways of working that only apply under one directory&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Keeping that kind of content inside &lt;code&gt;CLAUDE.md&lt;/code&gt; is usually not cost-effective.&lt;/p&gt;
&lt;h2 id=&#34;layer-3-memory&#34;&gt;Layer 3: &lt;code&gt;Memory&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;The third layer is &lt;code&gt;Memory&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Like &lt;code&gt;CLAUDE.md&lt;/code&gt; and &lt;code&gt;Rules&lt;/code&gt;, it also enters model context, but its core difference is this:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; is something you define deliberately.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Memory&lt;/code&gt; is more like notes Claude writes for itself during collaboration.&lt;/p&gt;
&lt;h3 id=&#34;what-goes-into-memory&#34;&gt;What goes into &lt;code&gt;Memory&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;When Claude judges that something is worth remembering, or should be kept for a while, it writes that information into &lt;code&gt;Memory&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Common examples include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;a way of working you corrected&lt;/li&gt;
&lt;li&gt;a newly added preference&lt;/li&gt;
&lt;li&gt;temporary state in the current project&lt;/li&gt;
&lt;li&gt;something you did not finish today and need to continue tomorrow&lt;/li&gt;
&lt;li&gt;who you have been collaborating with recently&lt;/li&gt;
&lt;li&gt;personal information or context that only came up recently&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In other words, &lt;code&gt;Memory&lt;/code&gt; is closer to dynamic knowledge than long-term policy.&lt;/p&gt;
&lt;h3 id=&#34;how-it-differs-from-the-first-two-layers&#34;&gt;How it differs from the first two layers
&lt;/h3&gt;&lt;p&gt;A simple distinction is:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; / &lt;code&gt;Rules&lt;/code&gt;: long-term, policy-like, explicit rules&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Memory&lt;/code&gt;: temporary, dynamic, newly learned context during work&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If something only matters for the next few days, or keeps changing as the project evolves, it usually belongs in &lt;code&gt;Memory&lt;/code&gt;, not in a permanent rule file.&lt;/p&gt;
&lt;h3 id=&#34;memory-can-also-be-written-manually&#34;&gt;&lt;code&gt;Memory&lt;/code&gt; can also be written manually
&lt;/h3&gt;&lt;p&gt;Even though &lt;code&gt;Memory&lt;/code&gt; can be maintained automatically, you can also explicitly tell Claude things like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;please remember what I need to do tomorrow&lt;/li&gt;
&lt;li&gt;please remember whose status I need to follow up on&lt;/li&gt;
&lt;li&gt;please remember the key milestone for this project this month&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It can write that into &lt;code&gt;Memory&lt;/code&gt; for you.&lt;/p&gt;
&lt;p&gt;You can also use the slash command &lt;code&gt;/memory&lt;/code&gt; to see what memories currently exist and edit or delete them manually.&lt;/p&gt;
&lt;p&gt;That said, I personally do not maintain it manually too often, because Claude itself can periodically reorganize these memories and clear out what has gone stale.&lt;/p&gt;
&lt;h2 id=&#34;layer-4-hooks&#34;&gt;Layer 4: &lt;code&gt;Hooks&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;The last and most advanced layer is &lt;code&gt;Hooks&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Everything before this, including &lt;code&gt;CLAUDE.md&lt;/code&gt;, &lt;code&gt;Rules&lt;/code&gt;, and &lt;code&gt;Memory&lt;/code&gt;, is still ultimately natural-language guidance.&lt;/p&gt;
&lt;p&gt;You write rules, and the model usually follows them, but it is still operating by interpreting them first and then acting.&lt;/p&gt;
&lt;p&gt;As long as the rule lives in natural language, a few problems remain:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;the model may occasionally miss it&lt;/li&gt;
&lt;li&gt;too many rules can dilute attention&lt;/li&gt;
&lt;li&gt;in some situations, the model may decide the rule is not important enough&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That is not because you wrote the rule badly. It is because natural-language rules are hard to enforce with &lt;code&gt;100%&lt;/code&gt; reliability.&lt;/p&gt;
&lt;h3 id=&#34;what-hooks-really-are&#34;&gt;What &lt;code&gt;Hooks&lt;/code&gt; really are
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;Hooks&lt;/code&gt; are no longer natural-language instructions. They are scripts.&lt;/p&gt;
&lt;p&gt;They are event-triggered, program-level enforcement logic.&lt;/p&gt;
&lt;p&gt;Once a certain event happens, that logic will run. It will not be skipped because the model decided to ignore it.&lt;/p&gt;
&lt;p&gt;That is the key value of &lt;code&gt;Hooks&lt;/code&gt;:&lt;/p&gt;
&lt;p&gt;they turn &amp;ldquo;should follow this&amp;rdquo; into &amp;ldquo;must execute this&amp;rdquo;.&lt;/p&gt;
&lt;h3 id=&#34;when-you-should-upgrade-to-hooks&#34;&gt;When you should upgrade to &lt;code&gt;Hooks&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;If you notice that a rule is already written in &lt;code&gt;CLAUDE.md&lt;/code&gt; or &lt;code&gt;Rules&lt;/code&gt;, but Claude still occasionally fails to follow it, and missing it carries real risk, then that rule should probably become a &lt;code&gt;Hook&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;In simple terms:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;low-risk behavior: use rules&lt;/li&gt;
&lt;li&gt;high-risk behavior: use &lt;code&gt;Hooks&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;the-most-typical-hooks-scenarios&#34;&gt;The most typical &lt;code&gt;Hooks&lt;/code&gt; scenarios
&lt;/h3&gt;&lt;p&gt;The most obvious examples are actions you absolutely do not want to get wrong, such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;requiring confirmation before sending an email&lt;/li&gt;
&lt;li&gt;requiring confirmation before sending Slack, Outlook, or Gmail messages&lt;/li&gt;
&lt;li&gt;intercepting dangerous file deletions&lt;/li&gt;
&lt;li&gt;blocking the outbound leak of passwords or API keys&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If those are only written as natural-language rules, the model can still make a mistake someday.&lt;/p&gt;
&lt;p&gt;If they are implemented as &lt;code&gt;Hooks&lt;/code&gt;, the event gets intercepted every time.&lt;/p&gt;
&lt;p&gt;That is a real program-level safety barrier.&lt;/p&gt;
&lt;h3 id=&#34;common-trigger-points-for-hooks&#34;&gt;Common trigger points for &lt;code&gt;Hooks&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;Hooks&lt;/code&gt; can be attached at different stages, for example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;injecting reminders at the start of a conversation&lt;/li&gt;
&lt;li&gt;checking conditions before a tool runs&lt;/li&gt;
&lt;li&gt;validating results after a tool runs&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You do not necessarily need to know the formal terminology yourself.&lt;/p&gt;
&lt;p&gt;Often, as long as you can describe the requirement clearly and ask Claude whether it should become a hook, it can help you design it.&lt;/p&gt;
&lt;p&gt;You can also use the slash command &lt;code&gt;/hook&lt;/code&gt; to inspect which hooks are currently configured.&lt;/p&gt;
&lt;h2 id=&#34;a-more-practical-way-to-get-started&#34;&gt;A more practical way to get started
&lt;/h2&gt;&lt;p&gt;If you want to connect all four layers together, I usually recommend this order:&lt;/p&gt;
&lt;h3 id=&#34;step-1-use-init-to-generate-a-basic-claudemd&#34;&gt;Step 1: use &lt;code&gt;/init&lt;/code&gt; to generate a basic &lt;code&gt;CLAUDE.md&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;Do not try to hand-write a huge complete rule document at the start.&lt;/p&gt;
&lt;p&gt;Let Claude scan the project and generate a starting point, then iterate from there.&lt;/p&gt;
&lt;h3 id=&#34;step-2-add-things-as-you-work&#34;&gt;Step 2: add things as you work
&lt;/h3&gt;&lt;p&gt;As you collaborate, whenever you notice:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;this must be remembered in the future&lt;/li&gt;
&lt;li&gt;this mistake must not happen again&lt;/li&gt;
&lt;li&gt;this preference will keep applying every time&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;then ask Claude to add it to &lt;code&gt;CLAUDE.md&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;step-3-move-things-into-rules-once-claudemd-grows&#34;&gt;Step 3: move things into &lt;code&gt;Rules&lt;/code&gt; once &lt;code&gt;CLAUDE.md&lt;/code&gt; grows
&lt;/h3&gt;&lt;p&gt;Once &lt;code&gt;CLAUDE.md&lt;/code&gt; gets longer and longer, and the model no longer reliably follows every rule, split things out:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;which rules are global?&lt;/li&gt;
&lt;li&gt;which ones only apply to certain paths?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Move the second kind into &lt;code&gt;Rules&lt;/code&gt; so they load conditionally.&lt;/p&gt;
&lt;h3 id=&#34;step-4-upgrade-high-risk-rules-into-hooks&#34;&gt;Step 4: upgrade high-risk rules into &lt;code&gt;Hooks&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;If some rules still get missed even after you wrote them down, and the cost of missing them is high, do not stay in the natural-language layer. Upgrade them into &lt;code&gt;Hooks&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;That is the point where &amp;ldquo;reminder&amp;rdquo; becomes &amp;ldquo;enforcement&amp;rdquo;.&lt;/p&gt;
&lt;h3 id=&#34;step-5-let-memory-handle-temporary-state&#34;&gt;Step 5: let &lt;code&gt;Memory&lt;/code&gt; handle temporary state
&lt;/h3&gt;&lt;p&gt;For things that expire, change frequently, or are not long-term policy, do not shove everything into &lt;code&gt;CLAUDE.md&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;It is usually cleaner to let &lt;code&gt;Memory&lt;/code&gt; hold things like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;current project progress&lt;/li&gt;
&lt;li&gt;recent collaborators&lt;/li&gt;
&lt;li&gt;newly added preferences&lt;/li&gt;
&lt;li&gt;short-term plans and to-dos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That keeps context cleaner and makes the model behave more consistently.&lt;/p&gt;
&lt;h2 id=&#34;what-each-layer-should-store&#34;&gt;What each layer should store
&lt;/h2&gt;&lt;p&gt;If you want a quick mental model, use this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt;: long-term shared understanding, global instructions, foundational project background&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Rules&lt;/code&gt;: specialized rules loaded by path or scenario&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Memory&lt;/code&gt;: dynamic knowledge, temporary state, things learned recently&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Hooks&lt;/code&gt;: program-level enforcement for high-risk actions&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;closing&#34;&gt;Closing
&lt;/h2&gt;&lt;p&gt;Many people treat &lt;code&gt;Claude Code&lt;/code&gt; as &amp;ldquo;a chat interface that can write code&amp;rdquo;. But once you use it deeply, it feels more like a long-term intelligent workstation.&lt;/p&gt;
&lt;p&gt;The key is not only how you phrase each instruction. It is whether you have given it a stable, clear, and accumulative environment.&lt;/p&gt;
&lt;p&gt;Once you build these four layers:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Rules&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Memory&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Hooks&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;the quality of collaboration between you and the model usually improves very noticeably.&lt;/p&gt;
&lt;p&gt;Because you are no longer re-explaining from scratch who you are, how you work, and what must not happen every single time. You have actually turned those things into part of the environment.&lt;/p&gt;
&lt;p&gt;That is the key step in turning a strong model into a mature tool.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Claude Code Multi-Agent Collaboration: How to Choose Between Subagents and Agent Teams</title>
        <link>https://knightli.com/en/2026/04/22/claude-code-subagents-vs-agent-teams/</link>
        <pubDate>Wed, 22 Apr 2026 21:35:52 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/04/22/claude-code-subagents-vs-agent-teams/</guid>
        <description>&lt;p&gt;When people talk about multi-agent collaboration in Claude Code, the easiest two concepts to mix up are &lt;code&gt;Subagents&lt;/code&gt; and &lt;code&gt;Agent Teams&lt;/code&gt;. They both sound like “spin up several agents to work together,” but they are meant for different kinds of work. In short, the former is better for splitting off independent tasks, while the latter is better when several agents need to collaborate around the same problem and cross-check each other over time.&lt;/p&gt;
&lt;p&gt;If you have used Skills before, this framing also helps:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A Skill defines the workflow and rules&lt;/li&gt;
&lt;li&gt;A Subagent or Agent teammate does the actual execution&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So the real question is not which one is “more advanced,” but what kind of collaboration problem you are solving.&lt;/p&gt;
&lt;h2 id=&#34;subagents-split-off-side-tasks&#34;&gt;Subagents: split off side tasks
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Subagents&lt;/code&gt; are closer to temporary worker copies launched from the current session. Each one gets its own context window, and when it finishes, it returns only a summary of the result. The main conversation stays cleaner because it does not have to absorb all the intermediate logs and output.&lt;/p&gt;
&lt;p&gt;That gives Subagents a few very practical strengths:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The main thread stays clean instead of being flooded by test logs, search results, or long output&lt;/li&gt;
&lt;li&gt;Independent research or execution tasks can run in parallel&lt;/li&gt;
&lt;li&gt;They work well for tasks where “just bring me the result” is enough&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The original article notes that Claude Code comes with three built-in kinds of Subagents:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Explore&lt;/code&gt;: read-only, useful for quickly searching a codebase&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Plan&lt;/code&gt;: read-only, useful for gathering information in the background during plan mode&lt;/li&gt;
&lt;li&gt;&lt;code&gt;General-purpose&lt;/code&gt;: can read and write, suitable for tasks that mix exploration and editing&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;custom-subagents&#34;&gt;Custom Subagents
&lt;/h3&gt;&lt;p&gt;If the built-in options are not enough, you can define your own Subagent. The mechanism is simple: write a Markdown file in one of these locations:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;.claude/agents/&lt;/code&gt;: only active in the current project&lt;/li&gt;
&lt;li&gt;&lt;code&gt;~/.claude/agents/&lt;/code&gt;: active across all your projects&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The file format looks like this:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;name: code-reviewer
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;description: Expert code review specialist. Proactively reviews code for quality, security, and maintainability. Use immediately after writing or modifying code.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;tools: Read, Grep, Glob, Bash
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;model: inherit
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;You are a senior code reviewer ensuring high standards of code quality and security.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;When invoked:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;1.&lt;/span&gt; Run git diff to see recent changes
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;2.&lt;/span&gt; Focus on modified files
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;3.&lt;/span&gt; Begin review immediately
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Review checklist:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Code is clear and readable
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Functions and variables are well-named
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; No duplicated code
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Proper error handling
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; No exposed secrets or API keys
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Input validation implemented
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Good test coverage
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Performance considerations addressed
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Provide feedback organized by priority:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Critical issues (must fix)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Warnings (should fix)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Suggestions (consider improving)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Include specific examples of how to fix issues.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;The key field here is &lt;code&gt;description&lt;/code&gt;. Claude uses it to decide when this Subagent should be called, so the more precise the description is, the more reliable the trigger tends to be.&lt;/p&gt;
&lt;p&gt;A few other common configuration fields are also worth knowing:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;tools&lt;/code&gt;: limits which tools the Subagent can use&lt;/li&gt;
&lt;li&gt;&lt;code&gt;model&lt;/code&gt;: chooses between &lt;code&gt;sonnet&lt;/code&gt;, &lt;code&gt;opus&lt;/code&gt;, &lt;code&gt;haiku&lt;/code&gt;, or &lt;code&gt;inherit&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;permissionMode&lt;/code&gt;: controls edit permissions and permission prompt behavior&lt;/li&gt;
&lt;li&gt;&lt;code&gt;memory&lt;/code&gt;: gives the Subagent a cross-conversation memory directory&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you only need a Subagent temporarily, you can also define it through the CLI:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude --agents &lt;span class=&#34;s1&#34;&gt;&amp;#39;{
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s1&#34;&gt;  &amp;#34;code-reviewer&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s1&#34;&gt;    &amp;#34;description&amp;#34;: &amp;#34;Expert code reviewer. Use proactively after code changes.&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s1&#34;&gt;    &amp;#34;prompt&amp;#34;: &amp;#34;You are a senior code reviewer. Focus on code quality, security, and best practices.&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s1&#34;&gt;    &amp;#34;tools&amp;#34;: [&amp;#34;Read&amp;#34;, &amp;#34;Grep&amp;#34;, &amp;#34;Glob&amp;#34;, &amp;#34;Bash&amp;#34;],
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s1&#34;&gt;    &amp;#34;model&amp;#34;: &amp;#34;sonnet&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s1&#34;&gt;  }
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s1&#34;&gt;}&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;when-subagents-fit-best&#34;&gt;When Subagents fit best
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;Subagents&lt;/code&gt; are usually the best fit for tasks like these:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Running tests and returning only the failure summary instead of flooding the main thread with thousands of log lines&lt;/li&gt;
&lt;li&gt;Investigating several unrelated modules in parallel&lt;/li&gt;
&lt;li&gt;Splitting “find the issue” and “fix the issue” into a simple pipeline&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For example:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-md&#34; data-lang=&#34;md&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Research the authentication, database, and API modules in parallel using separate subagents
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-md&#34; data-lang=&#34;md&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Use the code-reviewer subagent to find performance issues, then use the optimizer subagent to fix them
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;But if a task needs constant back-and-forth adjustments, shares a lot of context across stages, or concentrates changes in only one or two files, handling it directly in the main conversation is often simpler than spinning up a Subagent.&lt;/p&gt;
&lt;h2 id=&#34;agent-teams-multiple-independent-sessions-working-together&#34;&gt;Agent Teams: multiple independent sessions working together
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Agent Teams&lt;/code&gt; operate at a different level. Instead of launching worker copies inside one session, they start multiple fully independent Claude Code instances that collaborate around a shared task list and can also message one another directly.&lt;/p&gt;
&lt;p&gt;That makes an Agent Team feel more like a real small team than a simple side-task worker setup.&lt;/p&gt;
&lt;p&gt;The article notes that this is currently an experimental feature and needs to be enabled first:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;env&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;1&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Once this is added to &lt;code&gt;settings.json&lt;/code&gt;, you can ask Claude to organize a team around a specific goal. For example:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-md&#34; data-lang=&#34;md&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;I&amp;#39;m designing a CLI tool that helps developers track TODO comments across
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;their codebase. Create an agent team to explore this from different angles: one
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;teammate on UX, one on technical architecture, one playing devil&amp;#39;s advocate.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;what-an-agent-team-consists-of&#34;&gt;What an Agent Team consists of
&lt;/h3&gt;&lt;p&gt;An Agent Team mainly includes three parts:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Team lead: the main session you are using, responsible for organizing, assigning, and summarizing&lt;/li&gt;
&lt;li&gt;Teammates: multiple independent Claude Code instances&lt;/li&gt;
&lt;li&gt;Task list and Mailbox: the shared task list and communication channel&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The biggest difference from &lt;code&gt;Subagents&lt;/code&gt; is that teammates can communicate directly with one another instead of routing everything through the lead. Tasks usually move through states such as &lt;code&gt;pending&lt;/code&gt;, &lt;code&gt;in progress&lt;/code&gt;, and &lt;code&gt;completed&lt;/code&gt;, and once a teammate finishes one task, it can pick up the next one.&lt;/p&gt;
&lt;h3 id=&#34;when-agent-teams-fit-best&#34;&gt;When Agent Teams fit best
&lt;/h3&gt;&lt;p&gt;When a task needs several perspectives, active discussion, conflicting hypotheses, or parallel work across modules, &lt;code&gt;Agent Teams&lt;/code&gt; are a better fit.&lt;/p&gt;
&lt;p&gt;The article gives several representative examples:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Several reviewers inspect the same PR in parallel, each focusing on a different dimension&lt;/li&gt;
&lt;li&gt;Multiple agents investigate the same bug with competing explanations and challenge each other’s conclusions&lt;/li&gt;
&lt;li&gt;Frontend, backend, and testing move forward in parallel on different parts of the project&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For example, parallel code review:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-md&#34; data-lang=&#34;md&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create an agent team to review PR &lt;span class=&#34;ni&#34;&gt;#142&lt;/span&gt;. Spawn three reviewers:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; One focused on security implications
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; One checking performance impact
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; One validating test coverage
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Have them each review and report findings.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;And for debate-style debugging:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-md&#34; data-lang=&#34;md&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Users report the app exits after one message instead of staying connected.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Spawn 5 agent teammates to investigate different hypotheses. Have them talk to
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;each other to try to disprove each other&amp;#39;s theories, like a scientific
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;debate. Update the findings doc with whatever consensus emerges.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;The common pattern here is that you do not just want one answer. You want several agents to exchange judgments, challenge assumptions, and gradually converge on a stronger conclusion.&lt;/p&gt;
&lt;h2 id=&#34;how-to-choose-between-them&#34;&gt;How to choose between them
&lt;/h2&gt;&lt;p&gt;If you want a quick rule of thumb, use this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If you just need the result, use &lt;code&gt;Subagents&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;If the work requires discussion and cross-validation, use &lt;code&gt;Agent Teams&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Expanded a bit further, the main differences are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Communication style: &lt;code&gt;Subagents&lt;/code&gt; mainly report results back to the main session, while &lt;code&gt;Agent Teams&lt;/code&gt; members can talk directly to one another&lt;/li&gt;
&lt;li&gt;Coordination model: &lt;code&gt;Subagents&lt;/code&gt; depend more on the main conversation to orchestrate them, while &lt;code&gt;Agent Teams&lt;/code&gt; work from a shared task list that members can claim themselves&lt;/li&gt;
&lt;li&gt;Token cost: &lt;code&gt;Subagents&lt;/code&gt; are cheaper, while &lt;code&gt;Agent Teams&lt;/code&gt; cost more because each teammate is an independent instance&lt;/li&gt;
&lt;li&gt;Best-fit tasks: &lt;code&gt;Subagents&lt;/code&gt; are better for independent, result-oriented work, while &lt;code&gt;Agent Teams&lt;/code&gt; are better for discussion-heavy and cross-check-heavy work&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;practical-cautions&#34;&gt;Practical cautions
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Agent Teams&lt;/code&gt; are more powerful, but that does not mean every task deserves a full team. The article specifically calls out a few practical concerns:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;token usage is noticeably higher&lt;/li&gt;
&lt;li&gt;if multiple teammates edit the same file at once, overwrite conflicts become very likely&lt;/li&gt;
&lt;li&gt;adding too many teammates increases coordination cost without guaranteeing better results&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A safer default is usually:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;start with 3 to 5 teammates&lt;/li&gt;
&lt;li&gt;split tasks by module or file to avoid edit conflicts&lt;/li&gt;
&lt;li&gt;if the lead starts doing teammate work too early, explicitly tell it to wait for the others first&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The current experimental version also has a few limitations, such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;no support for &lt;code&gt;/resume&lt;/code&gt; and &lt;code&gt;/rewind&lt;/code&gt; for in-process teammates&lt;/li&gt;
&lt;li&gt;task status can lag and sometimes needs manual correction&lt;/li&gt;
&lt;li&gt;one lead can manage only one team at a time&lt;/li&gt;
&lt;li&gt;teammates cannot spawn child teams of their own&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;short-conclusion&#34;&gt;Short conclusion
&lt;/h2&gt;&lt;p&gt;These two features are not substitutes for one another. They solve two different collaboration problems.&lt;/p&gt;
&lt;p&gt;If your goal is “parallelize side tasks and keep the main context clean,” start with &lt;code&gt;Subagents&lt;/code&gt;. If your goal is “let several agents work like a small team, discuss, and cross-check each other,” then &lt;code&gt;Agent Teams&lt;/code&gt; are the better tool.&lt;/p&gt;
&lt;p&gt;Trying both in a real task usually makes the distinction obvious very quickly: one is optimized for context isolation and result collection, and the other is optimized for multi-perspective collaboration and ongoing interaction.&lt;/p&gt;
&lt;h2 id=&#34;related-links&#34;&gt;Related links
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Original article: &lt;a class=&#34;link&#34; href=&#34;https://cloud.tencent.com/developer/article/2652960&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://cloud.tencent.com/developer/article/2652960&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>nuwa-skill: Turning &#34;distilling a person&#34; from an idea into an executable workflow</title>
        <link>https://knightli.com/en/2026/04/22/nuwa-skill-distill-how-someone-thinks/</link>
        <pubDate>Wed, 22 Apr 2026 16:20:00 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/04/22/nuwa-skill-distill-how-someone-thinks/</guid>
        <description>&lt;p&gt;&lt;code&gt;[alchaincyf/nuwa-skill](https://github.com/alchaincyf/nuwa-skill)&lt;/code&gt; can easily make people think of one thing first: using AI to answer in a famous person&amp;rsquo;s voice. But what makes it genuinely interesting is not whether it sounds convincing. The key is that it tries to turn &amp;ldquo;distilling how a person thinks&amp;rdquo; into a repeatable workflow.&lt;/p&gt;
&lt;p&gt;If that works, the value goes far beyond a few entertaining character prompts. It means taking someone&amp;rsquo;s judgment framework, priorities, common heuristics, and communication habits, and turning them into a skill that can be called again and again. What you want is not a sentence that sounds like something a person might say, but something closer to a working interface for &amp;ldquo;if this person analyzed the issue, what would they look at first, how would they trade things off, and what would they question?&amp;rdquo;&lt;/p&gt;
&lt;h2 id=&#34;it-solves-modeling-not-imitation&#34;&gt;It solves modeling, not imitation
&lt;/h2&gt;&lt;p&gt;Many so-called persona prompts are basically just style overlays.&lt;/p&gt;
&lt;p&gt;They usually ask the model to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;speak in someone&amp;rsquo;s tone&lt;/li&gt;
&lt;li&gt;quote their signature lines more often&lt;/li&gt;
&lt;li&gt;imitate the phrasing they use in public&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That looks great in demos, but it often falls apart in real work. The reason is simple: tone is surface-level, while judgment structure is the core. A person is memorable not because they like a few certain words, but because they reliably approach problems in certain ways.&lt;/p&gt;
&lt;p&gt;The direction of &lt;code&gt;nuwa-skill&lt;/code&gt; is closer to extracting those stable methods. In other words, it cares less about &amp;ldquo;how to sound like them&amp;rdquo; and more about &amp;ldquo;how to think like them.&amp;rdquo;&lt;/p&gt;
&lt;h2 id=&#34;a-more-complete-workflow&#34;&gt;A more complete workflow
&lt;/h2&gt;&lt;p&gt;From the repository description, &lt;code&gt;nuwa-skill&lt;/code&gt; aims to build an end-to-end flow: enter a person&amp;rsquo;s name, then automatically do the research, extraction, and validation, and finally organize the result into a skill that can be used inside Claude Code.&lt;/p&gt;
&lt;p&gt;There are several important shifts behind that idea.&lt;/p&gt;
&lt;p&gt;First, it assumes the person being distilled does not have to be your coworker. Many people first encounter this kind of idea in the form of &amp;ldquo;capture how a strong teammate works.&amp;rdquo; That is valuable, but it is also limited: the sample pool is small, and it usually only covers internal team experience. &lt;code&gt;nuwa-skill&lt;/code&gt; expands the target set to a much broader range of people, such as founders, investors, scientists, product managers, and writers.&lt;/p&gt;
&lt;p&gt;Second, it emphasizes automation rather than asking the user to handcraft prompts. What really makes this kind of capability practical is not beautiful prompt wording, but whether you can consistently do source gathering, viewpoint synthesis, pattern extraction, and result validation. As soon as any one of those steps depends entirely on manual work, the reuse cost rises quickly.&lt;/p&gt;
&lt;p&gt;Third, it tries to make the output a skill rather than a one-off conversation. The former can be reused, combined, and iterated on. The latter usually only works in the current context and falls apart after a few turns.&lt;/p&gt;
&lt;h2 id=&#34;why-this-direction-matters&#34;&gt;Why this direction matters
&lt;/h2&gt;&lt;p&gt;If you treat AI as a question-answering machine, the natural use case is &amp;ldquo;give me an answer.&amp;rdquo; But if you treat AI as a workbench, the question becomes &amp;ldquo;give me a way to look at this problem.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;That is where the value of &lt;code&gt;nuwa-skill&lt;/code&gt; leans.&lt;/p&gt;
&lt;p&gt;For example, when facing a product decision, what you want may not be one standard answer. You may want several sharply different analytical frames:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;one person starts with long-term compounding&lt;/li&gt;
&lt;li&gt;one starts with resource constraints&lt;/li&gt;
&lt;li&gt;one starts with consistency of user experience&lt;/li&gt;
&lt;li&gt;one starts with timing of market entry&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If those frames can be packaged reliably, AI stops being &amp;ldquo;something that writes a paragraph for you&amp;rdquo; and becomes &amp;ldquo;something that helps you switch perspectives quickly.&amp;rdquo; That is much more useful than simply imitating famous quotes, because it directly affects decision quality.&lt;/p&gt;
&lt;h2 id=&#34;its-most-compelling-part-turning-tacit-knowledge-into-callable-assets&#34;&gt;Its most compelling part: turning tacit knowledge into callable assets
&lt;/h2&gt;&lt;p&gt;Many high-value capabilities are hard to write down as SOPs in the first place.&lt;/p&gt;
&lt;p&gt;Why someone consistently judges better than others is often not because they know more explicit rules, but because they have built a tacit filtering system through years of practice:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;which signals deserve attention first&lt;/li&gt;
&lt;li&gt;which noise should be ignored immediately&lt;/li&gt;
&lt;li&gt;which questions should be broken apart&lt;/li&gt;
&lt;li&gt;which questions should be inverted&lt;/li&gt;
&lt;li&gt;which conclusions must wait for more evidence&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This kind of ability is hard to preserve because people cannot always explain it clearly themselves. That is exactly why structured extraction is so valuable. What makes &lt;code&gt;nuwa-skill&lt;/code&gt; appealing is that it is not trying to move around surface knowledge. It is trying to reorganize cognitive habits.&lt;/p&gt;
&lt;h2 id=&#34;where-it-fits-best&#34;&gt;Where it fits best
&lt;/h2&gt;&lt;p&gt;I think this kind of skill is especially useful in a few scenarios.&lt;/p&gt;
&lt;h3 id=&#34;1-multi-perspective-review-before-a-decision&#34;&gt;1. Multi-perspective review before a decision
&lt;/h3&gt;&lt;p&gt;If you already have a plan but worry that you are only thinking along the path you already know, switching into different &amp;ldquo;persona perspectives&amp;rdquo; to review the same issue is more valuable than asking the model to keep expanding your original wording.&lt;/p&gt;
&lt;h3 id=&#34;2-learning-the-judgment-framework-of-a-certain-kind-of-expert&#34;&gt;2. Learning the judgment framework of a certain kind of expert
&lt;/h3&gt;&lt;p&gt;Many people learn from experts by collecting quotes, watching interviews, and copying summaries. In the end, they often only remember a few nice lines. Once a thinking pattern becomes a skill, learning becomes much closer to &amp;ldquo;repeatedly invoking it with real questions&amp;rdquo; rather than &amp;ldquo;making a pile of static notes.&amp;rdquo;&lt;/p&gt;
&lt;h3 id=&#34;3-sharing-an-analytical-style-across-a-team&#34;&gt;3. Sharing an analytical style across a team
&lt;/h3&gt;&lt;p&gt;What teams truly lack is often not just documentation, but a shared answer to &amp;ldquo;how do we usually think when we hit a problem?&amp;rdquo; If this workflow matures further, it could also be used in reverse to preserve the methods of strong internal operators. It is just clear that the project does not want to limit the idea to internal use cases.&lt;/p&gt;
&lt;h2 id=&#34;the-hard-part-of-projects-like-this&#34;&gt;The hard part of projects like this
&lt;/h2&gt;&lt;p&gt;Of course, an attractive direction does not mean the hard problems are already solved.&lt;/p&gt;
&lt;p&gt;The real challenge is never simply installing a skill. It is things like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;whether the sources are reliable enough&lt;/li&gt;
&lt;li&gt;whether the extracted patterns are stable rather than illusions from scattered text&lt;/li&gt;
&lt;li&gt;whether the model is actually using a person&amp;rsquo;s framework or merely repeating common impressions&lt;/li&gt;
&lt;li&gt;whether the boundaries between different personas will blur inside the model&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In other words, the key question is not &amp;ldquo;can it generate something that sounds plausible?&amp;rdquo; It is &amp;ldquo;can the cognitive framework produced by this skill survive reuse across many tasks?&amp;rdquo; If the project keeps going deeper on validation, its credibility will improve a lot.&lt;/p&gt;
&lt;h2 id=&#34;why-it-goes-beyond-a-prompt-template-library&#34;&gt;Why it goes beyond a prompt template library
&lt;/h2&gt;&lt;p&gt;In the past, many projects handled this kind of capability as a prompt template library: one persona, one prompt, and the user copies it into a chat. The problem is that a template library is still basically a static asset. It updates slowly, validation is weak, and it is hard to turn it into a complete production workflow.&lt;/p&gt;
&lt;p&gt;What &lt;code&gt;nuwa-skill&lt;/code&gt; pushes further is that it turns &amp;ldquo;persona distillation&amp;rdquo; from a template problem into a workflow problem.&lt;/p&gt;
&lt;p&gt;Once the center of gravity shifts from &amp;ldquo;write a prompt&amp;rdquo; to &amp;ldquo;systematically generate, validate, and iterate on a persona skill,&amp;rdquo; the whole thing starts to look more like engineering than inspiration. For anyone who wants to use it over the long term, that is the more important shift.&lt;/p&gt;
&lt;h2 id=&#34;closing&#34;&gt;Closing
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;nuwa-skill&lt;/code&gt; is interesting not because it turns AI into a celebrity impression show, but because it pushes &amp;ldquo;how to learn how someone thinks&amp;rdquo; one step closer to something executable, reusable, and iterable.&lt;/p&gt;
&lt;p&gt;If many persona prompts solve &amp;ldquo;how to talk like someone,&amp;rdquo; what this project wants to solve is &amp;ldquo;how to look at problems the way someone does.&amp;rdquo; The former is great for demos. The latter is much closer to a real productivity tool.&lt;/p&gt;
&lt;h2 id=&#34;references&#34;&gt;References
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;GitHub repository: &lt;a class=&#34;link&#34; href=&#34;https://github.com/alchaincyf/nuwa-skill&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/alchaincyf/nuwa-skill&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Project README: &lt;a class=&#34;link&#34; href=&#34;https://github.com/alchaincyf/nuwa-skill/blob/main/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/alchaincyf/nuwa-skill/blob/main/README.md&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Skill definition: &lt;a class=&#34;link&#34; href=&#34;https://github.com/alchaincyf/nuwa-skill/blob/main/SKILL.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/alchaincyf/nuwa-skill/blob/main/SKILL.md&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Karpathy&#39;s 65-Line CLAUDE.md: Helping AI Coding Avoid Three Common Mistakes</title>
        <link>https://knightli.com/en/2026/04/19/karpathy-claude-md-ai-coding-rules/</link>
        <pubDate>Sun, 19 Apr 2026 18:27:23 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/04/19/karpathy-claude-md-ai-coding-rules/</guid>
        <description>&lt;p&gt;A GitHub project about AI coding has been getting a lot of attention recently. Its core is not a complex codebase, but a roughly 65-line &lt;code&gt;CLAUDE.md&lt;/code&gt; file. The reason it attracted so many stars is not technical complexity. It is that it captures problems many people repeatedly run into when using AI to write code.&lt;/p&gt;
&lt;p&gt;The background starts with Andrej Karpathy&amp;rsquo;s observations on AI coding. Karpathy is an influential educator and engineer in AI: a Stanford PhD, an early OpenAI contributor, and a former Tesla AI leader responsible for Autopilot&amp;rsquo;s vision system. He has continued to share his views on large models, education, and AI tools, so his comments on changes in programming workflows tend to draw a lot of attention from developers.&lt;/p&gt;
&lt;p&gt;He once said that after using Claude Code for a few weeks, his programming style changed noticeably. Previously it was roughly 80% handwritten code and 20% AI assistance. Now it is closer to 80% code written by AI and 20% edits by himself. He described it as &amp;ldquo;programming in English&amp;rdquo;, telling an LLM what to write through natural language.&lt;/p&gt;
&lt;p&gt;But he also pointed out several recurring problems in AI coding.&lt;/p&gt;
&lt;h2 id=&#34;01-wrong-assumptions&#34;&gt;01 Wrong Assumptions
&lt;/h2&gt;&lt;p&gt;The first problem is that models easily make assumptions on behalf of the user, then keep writing along that path. They do not always manage their own confusion, and they do not always stop to ask questions when the requirement is ambiguous.&lt;/p&gt;
&lt;p&gt;For example, if the user only says &amp;ldquo;add a user export feature&amp;rdquo;, the model might assume it should export all users, output JSON, write to a local file, and skip any confirmation around permissions or fields. Only after the code is done does the user discover that the model&amp;rsquo;s understanding does not match the real scenario.&lt;/p&gt;
&lt;p&gt;A better approach is to list the uncertainties first: should it export all users or filtered results? Should it trigger a browser download or run as a background job? Which fields are needed? How large is the data set? Are there permission constraints? If these questions are not clarified, writing faster only means drifting farther.&lt;/p&gt;
&lt;h2 id=&#34;02-over-complexity&#34;&gt;02 Over-Complexity
&lt;/h2&gt;&lt;p&gt;The second problem is that models often turn simple problems into complex ones. A task that could be handled with one function might receive abstract classes, strategy patterns, factory patterns, configuration layers, and a pile of extension points that may never be needed.&lt;/p&gt;
&lt;p&gt;This kind of code can look engineered, but in practice it increases maintenance cost. AI is especially good at quickly generating large structures, but it does not always judge whether those structures are necessary. The result is that a task solvable in 100 lines becomes inflated into 1,000 lines.&lt;/p&gt;
&lt;p&gt;The test is straightforward: would a senior engineer look at the change and think it is over-designed? If the answer is yes, remove the extra layers and solve the current problem with the least code needed.&lt;/p&gt;
&lt;h2 id=&#34;03-collateral-damage&#34;&gt;03 Collateral Damage
&lt;/h2&gt;&lt;p&gt;The third problem is that models sometimes modify or delete code they do not fully understand. While fixing a small bug, they may casually change comments, reformat nearby code, clean up imports that look unused, or even touch logic unrelated to the current task.&lt;/p&gt;
&lt;p&gt;These &amp;ldquo;drive-by improvements&amp;rdquo; are risky because they expand the change scope and make review harder. The user may only want to fix a validator crash caused by an empty email, but the model may also enhance email validation, add username validation, and rewrite docstrings. In the end, it becomes hard to tell which line changed behavior.&lt;/p&gt;
&lt;p&gt;A safer rule is: only change what must be changed, and only clean up issues caused by your own change. Existing dead code, formatting problems, or historical baggage should not be touched unless the task explicitly asks for it. At most, mention it.&lt;/p&gt;
&lt;h2 id=&#34;04-turning-complaints-into-claudemd&#34;&gt;04 Turning Complaints Into CLAUDE.md
&lt;/h2&gt;&lt;p&gt;After Karpathy&amp;rsquo;s comments spread widely, developer Forrest Cheung did something clever: he organized these complaints into executable behavior rules and put them into a &lt;code&gt;CLAUDE.md&lt;/code&gt; file.&lt;/p&gt;
&lt;p&gt;The project does not contain complicated code. Its key idea is to turn the most failure-prone parts of AI coding into clear working rules. They can be summarized as four principles.&lt;/p&gt;
&lt;p&gt;The first is to think before writing. Do not silently assume. Do not hide confusion. If a requirement has multiple interpretations, list them. If there is a simpler approach, say so. Ask when clarification is needed, and push back when needed.&lt;/p&gt;
&lt;p&gt;The second is to keep things simple. Do not add features that were not requested. Do not abstract one-off code. Do not add unnecessary configuration. Do not write large amounts of defensive code for extremely unlikely scenarios. If 50 lines can solve it, do not write 200.&lt;/p&gt;
&lt;p&gt;The third is to make precise changes. Every changed line should trace directly back to the user&amp;rsquo;s request. Do not improve nearby code as a side quest. Do not refactor something that is not broken. Match the existing project style as much as possible.&lt;/p&gt;
&lt;p&gt;The fourth is goal-driven execution. Do not give the model only a vague instruction. Give it a verifiable success criterion. For example, &amp;ldquo;fix the bug&amp;rdquo; can become &amp;ldquo;write a test that reproduces the bug, then make it pass&amp;rdquo;; &amp;ldquo;add validation&amp;rdquo; can become &amp;ldquo;write invalid-input tests and make them pass&amp;rdquo;. The clearer the success criterion, the easier it is for the model to loop toward completion.&lt;/p&gt;
&lt;h2 id=&#34;05-why-it-took-off&#34;&gt;05 Why It Took Off
&lt;/h2&gt;&lt;p&gt;This project became popular not because the content is mysterious, but because it is close to real development work.&lt;/p&gt;
&lt;p&gt;Many people using AI for coding have seen similar scenes: the model confidently misunderstands the requirement, the code gets more complex as it goes, or it touches places it should not touch. The value of &lt;code&gt;CLAUDE.md&lt;/code&gt; is that it turns those experiences into collaboration rules that can be placed inside a project.&lt;/p&gt;
&lt;p&gt;The entry cost is also low: one file can start making a difference, with no complicated integration. Combined with Karpathy&amp;rsquo;s influence and the project&amp;rsquo;s practical comparison examples, it naturally spread through the Claude Code user base and the broader AI coding community.&lt;/p&gt;
&lt;p&gt;More importantly, these rules are not only for Claude Code. No matter which AI coding tool you use, the underlying issues are similar: the model needs to know when to ask, when to simplify, when to stop, and how to decide that the task is complete.&lt;/p&gt;
&lt;h2 id=&#34;06-what-developers-can-take-away&#34;&gt;06 What Developers Can Take Away
&lt;/h2&gt;&lt;p&gt;The lesson for ordinary developers is simple: AI coding is not about throwing one sentence at a model and waiting for a miracle. The effective approach is to give the model boundaries.&lt;/p&gt;
&lt;p&gt;When the requirement is unclear, ask it to expose its assumptions first. When the implementation starts getting complicated, ask it to return to the smallest viable solution. When changing code, keep it focused on the task goal. When finishing work, use tests, commands, or explicit checkpoints to verify the result.&lt;/p&gt;
&lt;p&gt;AI is already very capable at writing code, but it still needs good collaboration constraints. The fact that a short &lt;code&gt;CLAUDE.md&lt;/code&gt; can attract so much attention shows that developers do not only need smarter models. They also need more reliable ways of working.&lt;/p&gt;
&lt;p&gt;In short:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Think before writing to reduce wrong assumptions.&lt;/li&gt;
&lt;li&gt;Keep things simple to avoid over-design.&lt;/li&gt;
&lt;li&gt;Make precise changes to control change scope.&lt;/li&gt;
&lt;li&gt;Work toward goals with verifiable success criteria.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These four rules are not complicated, but they are practical. The prerequisite for AI coding to truly improve efficiency is not making the model write more. It is making it write more accurately, with less code, and under better control.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Using Claude Code Quota More Efficiently: Models, Context, Caching, and /compact</title>
        <link>https://knightli.com/en/2026/04/19/claude-code-usage-context-compact-notes/</link>
        <pubDate>Sun, 19 Apr 2026 15:29:06 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/04/19/claude-code-usage-context-compact-notes/</guid>
        <description>&lt;p&gt;Many Claude Code or Claude Max users run into the same problem: even after paying for Pro, Max 5x, or Max 20x, the usage warning appears quickly, or they have to wait for the next reset. This feels especially obvious when Claude Code reads many files, fixes complicated bugs, or runs long tasks in a large project.&lt;/p&gt;
&lt;p&gt;The key point is this: usage is not deducted linearly by &amp;ldquo;minutes.&amp;rdquo; It depends on the model, context length, attachments, codebase size, conversation history, tool calls, and current capacity. In the same 5-hour window, one person may work for a long time while another hits the limit in minutes. Usually the account is not broken; each request is simply too heavy.&lt;/p&gt;
&lt;p&gt;This note collects a set of practical habits for using quota more efficiently.&lt;/p&gt;
&lt;h2 id=&#34;01-first-understand-claudes-usage-window&#34;&gt;01 First Understand Claude&amp;rsquo;s Usage Window
&lt;/h2&gt;&lt;p&gt;Claude Pro and Max both have usage limits. Claude Code usage is shared with Claude on web, desktop, and mobile under the same subscription quota. Anthropic&amp;rsquo;s help center explains that message counts depend on message length, attachment size, current conversation length, model or feature used, and that Claude Code usage is also affected by project complexity, codebase size, and auto-accept settings.&lt;/p&gt;
&lt;p&gt;A simple way to think about it:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pro: suitable for light usage and small projects.&lt;/li&gt;
&lt;li&gt;Max 5x: suitable for more frequent usage and larger codebases.&lt;/li&gt;
&lt;li&gt;Max 20x: suitable for heavier daily collaboration.&lt;/li&gt;
&lt;li&gt;Usage windows reset on a 5-hour session basis.&lt;/li&gt;
&lt;li&gt;Long messages, long conversations, large files, and complex tasks consume usage faster.&lt;/li&gt;
&lt;li&gt;Stronger models such as Opus hit limits faster than Sonnet.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So &amp;ldquo;I only used it for 20 minutes&amp;rdquo; does not explain much by itself. What matters is how much context Claude read during those 20 minutes, which model was used, whether large files were processed repeatedly, and whether the same long conversation kept accumulating more tasks.&lt;/p&gt;
&lt;h2 id=&#34;02-first-habit-do-not-default-to-the-most-expensive-model&#34;&gt;02 First Habit: Do Not Default to the Most Expensive Model
&lt;/h2&gt;&lt;p&gt;The Claude model family is commonly positioned like this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Opus&lt;/code&gt;: strongest capability, suitable for complex reasoning, architecture decisions, and hard bugs.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Sonnet&lt;/code&gt;: balanced capability and cost, suitable for most everyday coding tasks.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Haiku&lt;/code&gt;: lighter, suitable for simple classification, summarization, and format conversion.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For daily scripts, small bug fixes, documentation cleanup, and code explanation, Sonnet is usually enough. Save Opus for cases such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Complex architecture design.&lt;/li&gt;
&lt;li&gt;Deep multi-file refactors.&lt;/li&gt;
&lt;li&gt;Bugs that are hard to reproduce.&lt;/li&gt;
&lt;li&gt;Long-chain troubleshooting.&lt;/li&gt;
&lt;li&gt;Tasks where the normal model is clearly stuck.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In Claude Code, use &lt;code&gt;/model&lt;/code&gt; to switch models, or set the default in &lt;code&gt;/config&lt;/code&gt;. A steadier habit is to use Sonnet by default and switch to Opus only at key points, rather than running the whole task on Opus.&lt;/p&gt;
&lt;h2 id=&#34;03-second-habit-control-context-do-not-drag-old-tasks-along&#34;&gt;03 Second Habit: Control Context, Do Not Drag Old Tasks Along
&lt;/h2&gt;&lt;p&gt;The longer the context, the more Claude needs to process on each turn, and the faster usage is consumed. The Claude Code docs explicitly recommend proactive context management:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Use &lt;code&gt;/clear&lt;/code&gt; when switching to an unrelated task.&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;/compact&lt;/code&gt; when one phase is done but important context should remain.&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;/context&lt;/code&gt; to see what is taking space.&lt;/li&gt;
&lt;li&gt;Configure a status line if you want continuous status visibility.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A useful rhythm:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Small phase done: /compact
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Large task done: /clear
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Switching to unrelated work: /clear
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Context usage getting high: /compact early
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;/compact&lt;/code&gt; summarizes earlier conversation history while preserving key task state, conclusions, file paths, and remaining work. It reduces the amount of history carried into later requests. You can also add a short instruction:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/compact Preserve changed files, test results, remaining TODOs, and key design decisions
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Do not wait for automatic compaction. The docs note that Claude Code auto-compacts when context approaches the limit, but manually compacting at phase boundaries is usually easier to control.&lt;/p&gt;
&lt;h2 id=&#34;04-third-habit-long-conversations-and-large-files-make-every-request-heavier&#34;&gt;04 Third Habit: Long Conversations and Large Files Make Every Request Heavier
&lt;/h2&gt;&lt;p&gt;Many people assume that &amp;ldquo;I only asked one more question&amp;rdquo; should be cheap. But in a long conversation, that question may carry a lot of history, file summaries, tool definitions, and system rules behind it.&lt;/p&gt;
&lt;p&gt;Things that easily bloat context include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Long conversations that are never cleared.&lt;/li&gt;
&lt;li&gt;Asking Claude to read entire large files.&lt;/li&gt;
&lt;li&gt;Pasting long logs, build output, or test output.&lt;/li&gt;
&lt;li&gt;Adding many screenshots or images at once.&lt;/li&gt;
&lt;li&gt;Asking it to repeatedly scan the whole repository.&lt;/li&gt;
&lt;li&gt;An overly long &lt;code&gt;CLAUDE.md&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Too many MCP servers enabled.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A more efficient approach: paste only key errors from logs, include only failing parts of test output, and let Claude use &lt;code&gt;rg&lt;/code&gt;, &lt;code&gt;head&lt;/code&gt;, &lt;code&gt;tail&lt;/code&gt;, and symbol search before reading only the necessary parts. If command-line filtering can shrink the content, do not paste the whole thing into context.&lt;/p&gt;
&lt;h2 id=&#34;05-fourth-habit-understand-caching-but-do-not-worship-it&#34;&gt;05 Fourth Habit: Understand Caching, but Do Not Worship It
&lt;/h2&gt;&lt;p&gt;Anthropic&amp;rsquo;s Prompt Caching can cache repeated prompt prefixes. The default cache lifetime is 5 minutes, and a 1-hour cache is also supported. When cache hits, large repeated context does not need to be fully reprocessed, which helps reduce cost and improve rate limit utilization.&lt;/p&gt;
&lt;p&gt;But caching has limitations:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Content must match exactly, including text and images.&lt;/li&gt;
&lt;li&gt;The default cache is short-lived.&lt;/li&gt;
&lt;li&gt;Changing models, tools, system prompts, or context structure may reduce cache hits.&lt;/li&gt;
&lt;li&gt;Output tokens do not disappear because of caching; the response still needs to be generated.&lt;/li&gt;
&lt;li&gt;How Claude Code uses caching is a product-level implementation detail, so do not treat it as permanent &amp;ldquo;free memory.&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In practice, the important part is not studying every caching detail. It is keeping the session stable:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Avoid frequent model switching within the same phase.&lt;/li&gt;
&lt;li&gt;Do not repeatedly rewrite large rule blocks mid-task.&lt;/li&gt;
&lt;li&gt;Do not keep adding new images inside the same task.&lt;/li&gt;
&lt;li&gt;Do not leave a long task idle for too long and then return with another huge request.&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;/compact&lt;/code&gt; at phase boundaries.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This makes repeated context easier to reuse and reduces later request weight.&lt;/p&gt;
&lt;h2 id=&#34;06-about-peak-hours-avoid-them-when-you-can-but-do-not-treat-them-as-a-formula&#34;&gt;06 About Peak Hours: Avoid Them When You Can, but Do Not Treat Them as a Formula
&lt;/h2&gt;&lt;p&gt;People often say certain hours feel tighter. Anthropic&amp;rsquo;s help center is more careful: message counts can be affected by current Claude capacity, conversation length, attachments, model, and features. In other words, peak capacity can affect the experience, but do not treat a specific local time window as a permanent rule.&lt;/p&gt;
&lt;p&gt;Practical suggestions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Put large refactors and heavy analysis in periods when both your network and the service are stable.&lt;/li&gt;
&lt;li&gt;Do not start a huge task right before you plan to step away.&lt;/li&gt;
&lt;li&gt;If you expect to leave for a long time, run &lt;code&gt;/compact&lt;/code&gt; or &lt;code&gt;/clear&lt;/code&gt; first.&lt;/li&gt;
&lt;li&gt;For small edits, do not use Opus with a long context unless you really need it.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is more reliable than memorizing a fixed &amp;ldquo;do not use it from X to Y&amp;rdquo; rule.&lt;/p&gt;
&lt;h2 id=&#34;07-slim-down-claudemd-rules-mcp-and-skills&#34;&gt;07 Slim Down CLAUDE.md, rules, MCP, and skills
&lt;/h2&gt;&lt;p&gt;Claude Code loads project rules, tool information, and some environment context into the session. The official docs also recommend separating general rules from specialized rules so every session does not start with a large amount of unrelated text.&lt;/p&gt;
&lt;p&gt;A useful split:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt;: only global rules that always apply.&lt;/li&gt;
&lt;li&gt;rules: path-specific or file-type-specific rules.&lt;/li&gt;
&lt;li&gt;skills: specific workflows, such as publishing posts, deployment, image generation, or committing code.&lt;/li&gt;
&lt;li&gt;MCP: only enable servers that the current task actually needs.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If &lt;code&gt;CLAUDE.md&lt;/code&gt; is hundreds or thousands of lines long, every session carries that cost. A better pattern is to move occasional workflows into skills and load them only when needed.&lt;/p&gt;
&lt;p&gt;MCP is similar. More tools do not automatically mean more efficiency. The Claude Code docs mention using &lt;code&gt;/mcp&lt;/code&gt; to view and disable unnecessary servers, and &lt;code&gt;/context&lt;/code&gt; to see what is consuming context space.&lt;/p&gt;
&lt;h2 id=&#34;08-practical-command-list&#34;&gt;08 Practical Command List
&lt;/h2&gt;&lt;p&gt;These are the most useful daily commands:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/model
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Switch models. Sonnet is a good default; use Opus for complex reasoning.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/clear
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Clear the current context. Use it when switching to unrelated work.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/compact
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Compress conversation history. Use it when a phase is done but the same task continues.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/context
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Inspect context usage and find what is taking space.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/status
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Check subscription or usage-related status. Anthropic&amp;rsquo;s help center also recommends monitoring remaining allocation.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/mcp
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;View and manage MCP servers, and disable tools not needed for the current task.&lt;/p&gt;
&lt;p&gt;If you use API billing, &lt;code&gt;/cost&lt;/code&gt; can be useful. But for Pro/Max subscriptions, the Claude Code docs explain that the dollar estimate from &lt;code&gt;/cost&lt;/code&gt; is not the right billing reference; subscribers should rely more on usage information such as &lt;code&gt;/stats&lt;/code&gt; and &lt;code&gt;/status&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;09-a-quota-saving-workflow&#34;&gt;09 A Quota-Saving Workflow
&lt;/h2&gt;&lt;p&gt;A practical workflow looks like this:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Run &lt;code&gt;/clear&lt;/code&gt; before starting a new task.&lt;/li&gt;
&lt;li&gt;Use Sonnet by default.&lt;/li&gt;
&lt;li&gt;Let Claude inspect project structure and key files first, not the whole repository.&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;/compact&lt;/code&gt; after each small phase.&lt;/li&gt;
&lt;li&gt;Switch to Opus only for hard blockers.&lt;/li&gt;
&lt;li&gt;Filter logs, errors, and test output before pasting them.&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;/clear&lt;/code&gt; after the task is done; do not start new work with stale context.&lt;/li&gt;
&lt;li&gt;Periodically review &lt;code&gt;CLAUDE.md&lt;/code&gt;, MCP, and skills to shrink always-on context.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The core idea is simple: let Claude see only what it truly needs for the current task.&lt;/p&gt;
&lt;h2 id=&#34;10-summary&#34;&gt;10 Summary
&lt;/h2&gt;&lt;p&gt;Claude Code usage running out quickly is usually not caused by one thing. It is often a combination of high-cost models, long uncleared conversations, too many files and logs, heavy MCP and rule context, weaker cache reuse, and peak capacity fluctuations.&lt;/p&gt;
&lt;p&gt;The practical fixes are also simple:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Use Sonnet for daily work.&lt;/li&gt;
&lt;li&gt;Save Opus for truly complex problems.&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;/compact&lt;/code&gt; when a phase is done.&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;/clear&lt;/code&gt; when switching tasks.&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;/context&lt;/code&gt; to find context bloat.&lt;/li&gt;
&lt;li&gt;Slim down &lt;code&gt;CLAUDE.md&lt;/code&gt;, rules, MCP, and skills.&lt;/li&gt;
&lt;li&gt;Do not dump the whole repository, full logs, or large image batches into context.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;How much work the same Pro or Max plan can support depends heavily on how you manage context. Make the context smaller and task boundaries clearer, and Claude Code will feel much steadier.&lt;/p&gt;
&lt;h2 id=&#34;references&#34;&gt;References
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Claude Help Center: Using Claude Code with your Pro or Max plan: &lt;a class=&#34;link&#34; href=&#34;https://support.claude.com/en/articles/11145838-using-claude-code-with-your-pro-or-max-plan&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://support.claude.com/en/articles/11145838-using-claude-code-with-your-pro-or-max-plan&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Claude Help Center: About Claude&amp;rsquo;s Max Plan Usage: &lt;a class=&#34;link&#34; href=&#34;https://support.anthropic.com/en/articles/11014257-about-claude-s-max-plan-usage/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://support.anthropic.com/en/articles/11014257-about-claude-s-max-plan-usage/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Claude Code Docs: Manage costs effectively: &lt;a class=&#34;link&#34; href=&#34;https://code.claude.com/docs/en/costs&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://code.claude.com/docs/en/costs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Anthropic Docs: Prompt caching: &lt;a class=&#34;link&#34; href=&#34;https://docs.anthropic.com/en/docs/build-with-claude/prompt-caching&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://docs.anthropic.com/en/docs/build-with-claude/prompt-caching&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        
    </channel>
</rss>
