<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>MCP on KnightLi Blog</title>
        <link>https://knightli.com/en/tags/mcp/</link>
        <description>Recent content in MCP on KnightLi Blog</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en</language>
        <lastBuildDate>Sat, 23 May 2026 19:03:30 +0800</lastBuildDate><atom:link href="https://knightli.com/en/tags/mcp/index.xml" rel="self" type="application/rss+xml" /><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>agentmemory: Persistent Memory for Claude Code, Codex, Cursor, and Other Coding Agents</title>
        <link>https://knightli.com/en/2026/05/19/agentmemory-persistent-memory-ai-coding-agents/</link>
        <pubDate>Tue, 19 May 2026 10:56:50 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/19/agentmemory-persistent-memory-ai-coding-agents/</guid>
        <description>&lt;p&gt;&lt;code&gt;rohitg00/agentmemory&lt;/code&gt; is a persistent memory system for AI coding agents. Its goal is straightforward: Claude Code, Codex CLI, Cursor, Gemini CLI, OpenCode, and similar tools should not have to relearn the project background, architecture decisions, and historical problems every time a new session starts.&lt;/p&gt;
&lt;p&gt;Project URL: &lt;a class=&#34;link&#34; href=&#34;https://github.com/rohitg00/agentmemory&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/rohitg00/agentmemory&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;At the time of writing, the GitHub API showed about 13k stars, TypeScript as the main language, and an Apache-2.0 license. The README describes it as &amp;ldquo;Persistent memory for AI coding agents.&amp;rdquo;&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;A common pain point for coding agents is memory fragmentation. You may ask an agent to fix an authentication issue today, then open a new conversation tomorrow, and it no longer knows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Why a certain architecture decision was made.&lt;/li&gt;
&lt;li&gt;Which files are sensitive and should be changed carefully.&lt;/li&gt;
&lt;li&gt;What bugs were fixed before.&lt;/li&gt;
&lt;li&gt;What commands, tools, or local services the project uses.&lt;/li&gt;
&lt;li&gt;Which conventions the team follows.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Static notes help, but they are often forgotten or not connected to the active workflow. agentmemory tries to provide a shared memory layer that can be used across different AI coding tools.&lt;/p&gt;
&lt;h2 id=&#34;supported-agents&#34;&gt;Supported Agents
&lt;/h2&gt;&lt;p&gt;The README lists support for Claude Code, Codex CLI, Cursor, Gemini CLI, OpenCode, and other MCP-compatible tools. The core idea is to expose memory through a local service, MCP, hooks, and integrations, so multiple assistants can share the same project context.&lt;/p&gt;
&lt;p&gt;This is especially useful for teams that switch between tools. One developer may use Cursor, another may use Claude Code, while automation runs through Codex CLI. A shared memory layer reduces repeated explanation.&lt;/p&gt;
&lt;h2 id=&#34;quick-start&#34;&gt;Quick Start
&lt;/h2&gt;&lt;p&gt;Install 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;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;npm install -g @agentmemory/agentmemory
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;agentmemory
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;agentmemory demo
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;agentmemory connect claude-code
&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 run with npx:&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 @agentmemory/agentmemory
&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 local service is available at:&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:3113
&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 practice, the first step is usually to start the memory service, connect the coding assistant, and then let the agent read or write project memories during development.&lt;/p&gt;
&lt;h2 id=&#34;how-it-differs-from-static-memory-files&#34;&gt;How It Differs From Static Memory Files
&lt;/h2&gt;&lt;p&gt;Many teams already maintain &lt;code&gt;AGENTS.md&lt;/code&gt;, &lt;code&gt;CLAUDE.md&lt;/code&gt;, README notes, or local documentation. These files are useful, but they are static. They do not automatically capture session history, task outcomes, or recurring decisions.&lt;/p&gt;
&lt;p&gt;agentmemory is closer to a persistent context service. It can store and surface memories that are relevant to the current project or task. The goal is not to replace documentation, but to make working context easier to reuse.&lt;/p&gt;
&lt;h2 id=&#34;typical-scenarios&#34;&gt;Typical Scenarios
&lt;/h2&gt;&lt;p&gt;Useful scenarios include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Remembering project setup steps and common commands.&lt;/li&gt;
&lt;li&gt;Recording why a risky refactor was avoided.&lt;/li&gt;
&lt;li&gt;Keeping notes about flaky tests or local services.&lt;/li&gt;
&lt;li&gt;Sharing domain terminology across coding assistants.&lt;/li&gt;
&lt;li&gt;Helping agents continue work after a new session starts.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is particularly valuable for long-running products, monorepos, and projects with many hidden conventions.&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, memory quality matters. If old or wrong information is written into memory, future agents may repeat the mistake. Teams should keep important memories short, clear, and reviewable.&lt;/p&gt;
&lt;p&gt;Second, privacy matters. Do not store secrets, API keys, customer data, or sensitive production information in a memory system unless the security model is clear.&lt;/p&gt;
&lt;p&gt;Third, memory is not a substitute for tests. It helps agents understand context, but the final guarantee still comes from code review, tests, and verification.&lt;/p&gt;
&lt;h2 id=&#34;who-it-is-for&#34;&gt;Who It Is For
&lt;/h2&gt;&lt;p&gt;agentmemory is suitable for developers who use multiple AI coding tools, teams working on large codebases, and users who often need agents to continue previous work. It is less necessary for very small one-off scripts.&lt;/p&gt;
&lt;h2 id=&#34;summary&#34;&gt;Summary
&lt;/h2&gt;&lt;p&gt;agentmemory is interesting because it treats memory as infrastructure for AI coding, not as a small prompt trick. If coding agents are becoming part of daily development, persistent project memory is a practical missing piece.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Let AI Operate Your Computer? UI-TARS-desktop Connects Desktop, Browser, and Tools</title>
        <link>https://knightli.com/en/2026/05/19/ui-tars-desktop-multimodal-ai-agent-stack/</link>
        <pubDate>Tue, 19 May 2026 10:56:50 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/19/ui-tars-desktop-multimodal-ai-agent-stack/</guid>
        <description>&lt;p&gt;&lt;code&gt;bytedance/UI-TARS-desktop&lt;/code&gt; is ByteDance&amp;rsquo;s open source multimodal AI agent project. It is not just a single desktop app, but an agent stack. The current README mainly contains two directions: &lt;code&gt;Agent TARS&lt;/code&gt; and &lt;code&gt;UI-TARS Desktop&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Project URL: &lt;a class=&#34;link&#34; href=&#34;https://github.com/bytedance/UI-TARS-desktop&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/bytedance/UI-TARS-desktop&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Official site: &lt;a class=&#34;link&#34; href=&#34;https://agent-tars.com&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://agent-tars.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;At the time of writing, the GitHub API showed about 34k stars, TypeScript as the main language, and an Apache-2.0 license. The README describes it as an &amp;ldquo;Open-Source Multimodal AI Agent Stack.&amp;rdquo;&lt;/p&gt;
&lt;h2 id=&#34;difference-between-agent-tars-and-ui-tars-desktop&#34;&gt;Difference Between Agent TARS and UI-TARS Desktop
&lt;/h2&gt;&lt;p&gt;The README places the two projects in one comparison table:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Agent TARS&lt;/code&gt;: a general multimodal AI agent stack that connects GUI agents, vision, terminal, browser, and product workflows.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;UI-TARS Desktop&lt;/code&gt;: a desktop application based on UI-TARS models, providing native GUI agent capabilities for operating local or remote computers and browsers.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Simply put, Agent TARS is more like a general agent runtime, while UI-TARS Desktop is the desktop GUI operation entry point.&lt;/p&gt;
&lt;h2 id=&#34;what-agent-tars-can-do&#34;&gt;What Agent TARS Can Do
&lt;/h2&gt;&lt;p&gt;Agent TARS mainly provides a CLI and Web UI. Its goal is to let multimodal models complete task flows closer to human operation through MCP and various tools.&lt;/p&gt;
&lt;p&gt;Core capabilities listed in the README include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;One-command CLI startup, supporting headful Web UI and headless server.&lt;/li&gt;
&lt;li&gt;Hybrid browser agent control through GUI Agent, DOM, or mixed strategies.&lt;/li&gt;
&lt;li&gt;Event Stream for tracing and debugging data flows.&lt;/li&gt;
&lt;li&gt;MCP integration for mounting MCP Servers and real tools.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Quick start:&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 @agent-tars/cli@latest
&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;Global installation:&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 install @agent-tars/cli@latest -g
&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;Run with a model provider:&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;agent-tars --provider volcengine --model doubao-1-5-thinking-vision-pro-250428 --apiKey your-api-key
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;agent-tars --provider anthropic --model claude-3-7-sonnet-latest --apiKey your-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;h2 id=&#34;what-ui-tars-desktop-can-do&#34;&gt;What UI-TARS Desktop Can Do
&lt;/h2&gt;&lt;p&gt;UI-TARS Desktop is a desktop GUI Agent. Based on UI-TARS and Seed-1.5-VL / 1.6 model families, it focuses on letting the model understand the screen and execute mouse and keyboard operations.&lt;/p&gt;
&lt;p&gt;Capabilities listed in the README include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Natural language control.&lt;/li&gt;
&lt;li&gt;Screenshots and visual recognition.&lt;/li&gt;
&lt;li&gt;Precise mouse and keyboard control.&lt;/li&gt;
&lt;li&gt;Cross-platform support for Windows, macOS, and browsers.&lt;/li&gt;
&lt;li&gt;Real-time feedback and status display.&lt;/li&gt;
&lt;li&gt;Local processing with an emphasis on privacy and security.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Example tasks include changing VS Code settings, checking GitHub issues, and operating remote computers or browsers.&lt;/p&gt;
&lt;h2 id=&#34;why-gui-agents-matter&#34;&gt;Why GUI Agents Matter
&lt;/h2&gt;&lt;p&gt;Traditional automation depends on APIs, DOM, or scripts. A GUI Agent starts from the interface: it sees buttons, input boxes, menus, and state, then operates through mouse and keyboard.&lt;/p&gt;
&lt;p&gt;This has two values. First, many applications do not have stable APIs, or APIs do not cover the full workflow. A GUI Agent can interact from the same surface a human uses.&lt;/p&gt;
&lt;p&gt;Second, multimodal models can handle screenshots, documents, web pages, and app interfaces, combining visual understanding with execution.&lt;/p&gt;
&lt;p&gt;The limitation is also clear. GUI operations are affected by resolution, language, layout changes, pop-ups, and network latency. Production workflows still need permission control, confirmation steps, and rollback plans.&lt;/p&gt;
&lt;h2 id=&#34;relationship-with-mcp&#34;&gt;Relationship With MCP
&lt;/h2&gt;&lt;p&gt;Agent TARS emphasizes MCP integration. MCP is useful because it gives agents a unified way to call browsers, files, command lines, databases, internal services, and other tools.&lt;/p&gt;
&lt;p&gt;For complex tasks, GUI clicking alone is not stable enough. A better pattern is often:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Use APIs where APIs are available.&lt;/li&gt;
&lt;li&gt;Use vision when page state must be understood.&lt;/li&gt;
&lt;li&gt;Use browser control when real web interaction is needed.&lt;/li&gt;
&lt;li&gt;Use GUI Agent when local software must be operated.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Projects like UI-TARS-desktop are exploring how to place these capabilities in one agent stack.&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;First, desktop agents have execution risk. They can operate mouse, keyboard, and browser, so permissions must be limited to avoid accidental file changes, account operations, payment, or production system actions.&lt;/p&gt;
&lt;p&gt;Second, remote computer and remote browser control needs a clear security boundary. Do not expose unauthenticated control endpoints to the public internet.&lt;/p&gt;
&lt;p&gt;Third, multimodal models can misread interfaces. Critical operations should require human confirmation, especially delete, submit, pay, publish, trade, or other irreversible actions.&lt;/p&gt;
&lt;h2 id=&#34;who-it-is-for&#34;&gt;Who It Is For
&lt;/h2&gt;&lt;p&gt;UI-TARS-desktop is suitable for developers exploring GUI agents, teams building AI assistants for desktop workflows, and researchers comparing browser, DOM, MCP, and visual-control strategies. It is not a simple consumer assistant yet.&lt;/p&gt;
&lt;h2 id=&#34;summary&#34;&gt;Summary
&lt;/h2&gt;&lt;p&gt;UI-TARS-desktop is worth watching because it moves AI agents from &amp;ldquo;answering in chat&amp;rdquo; toward &amp;ldquo;seeing the screen and operating tools.&amp;rdquo; Its value is not only in desktop control, but in combining GUI, browser, terminal, and MCP capabilities in one stack.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Too Many Platforms to Post To? AiToEarn Wants AI Agents to Help Creators Save Time</title>
        <link>https://knightli.com/en/2026/05/19/aitoearn-ai-content-marketing-agent/</link>
        <pubDate>Tue, 19 May 2026 10:56:50 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/19/aitoearn-ai-content-marketing-agent/</guid>
        <description>&lt;p&gt;&lt;code&gt;yikart/AiToEarn&lt;/code&gt; is an AI content marketing project for creators, brands, and one-person companies. It tries to put content creation, publishing, engagement, and monetization into one agent workflow, covering platforms such as Douyin, Xiaohongshu, Kuaishou, Bilibili, WeChat Channels, TikTok, YouTube, Facebook, Instagram, Threads, X, Pinterest, and LinkedIn.&lt;/p&gt;
&lt;p&gt;Project URL: &lt;a class=&#34;link&#34; href=&#34;https://github.com/yikart/AiToEarn&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/yikart/AiToEarn&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Official site: &lt;a class=&#34;link&#34; href=&#34;https://aitoearn.ai/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://aitoearn.ai/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;At the time of writing, the GitHub API showed about 15k stars, TypeScript as the main language, and an MIT license. The README describes it as a content marketing agent platform for OPCs, creators, brands, and enterprises.&lt;/p&gt;
&lt;h2 id=&#34;positioning&#34;&gt;Positioning
&lt;/h2&gt;&lt;p&gt;AiToEarn is not just a copywriting generator or a scheduled posting tool. It breaks content marketing into four agent capabilities:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Monetize: content monetization.&lt;/li&gt;
&lt;li&gt;Publish: cross-platform content publishing.&lt;/li&gt;
&lt;li&gt;Engage: content interaction and community operations.&lt;/li&gt;
&lt;li&gt;Create: content creation.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That positioning fits the current creator workflow. The hard part for many teams is not only &amp;ldquo;can AI write a post&amp;rdquo;, but what happens after that: scheduling, distribution, replies, review, and connecting content to business tasks.&lt;/p&gt;
&lt;h2 id=&#34;core-features&#34;&gt;Core Features
&lt;/h2&gt;&lt;h3 id=&#34;monetize-making-money-from-content&#34;&gt;Monetize: Making Money From Content
&lt;/h3&gt;&lt;p&gt;AiToEarn provides monetization capabilities around promotional tasks. The README mentions three settlement models:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Model&lt;/th&gt;
          &lt;th&gt;Full name&lt;/th&gt;
          &lt;th&gt;Meaning&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;CPS&lt;/td&gt;
          &lt;td&gt;Cost Per Sale&lt;/td&gt;
          &lt;td&gt;Settlement by sales&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;CPE&lt;/td&gt;
          &lt;td&gt;Cost Per Engagement&lt;/td&gt;
          &lt;td&gt;Settlement by engagement&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;CPM&lt;/td&gt;
          &lt;td&gt;Cost Per Mille&lt;/td&gt;
          &lt;td&gt;Settlement by impressions or views&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;This part is closer to a content task marketplace that connects brand promotion needs with creator distribution.&lt;/p&gt;
&lt;h3 id=&#34;publish-content-publishing-agent&#34;&gt;Publish: Content Publishing Agent
&lt;/h3&gt;&lt;p&gt;Publish distributes content across multiple platforms and reduces the repeated work of posting manually. The README covers mainstream short video, graphic, and social platforms in China and overseas.&lt;/p&gt;
&lt;p&gt;Its practical value is unified scheduling and management. For account matrices, cross-platform distribution, and global content teams, this is often more useful than a single AI copywriting feature.&lt;/p&gt;
&lt;h3 id=&#34;engage-content-engagement-agent&#34;&gt;Engage: Content Engagement Agent
&lt;/h3&gt;&lt;p&gt;Engage uses a browser extension to support automated engagement operations such as likes, saves, follows, comment replies, and brand monitoring.&lt;/p&gt;
&lt;p&gt;This capability should be used carefully. Automated engagement can trigger platform risk controls, so teams need to check account permissions, frequency limits, platform terms, and internal compliance rules.&lt;/p&gt;
&lt;h3 id=&#34;create-content-creation-agent&#34;&gt;Create: Content Creation Agent
&lt;/h3&gt;&lt;p&gt;Create handles content generation. The README mentions video generation models, video translation, video editing, image generation, and batch creation tasks.&lt;/p&gt;
&lt;p&gt;This is useful for large-scale content production, but human review is still necessary. Brand content, ad materials, and multilingual assets need factual accuracy, copyright checks, and tone consistency.&lt;/p&gt;
&lt;h2 id=&#34;five-ways-to-use-it&#34;&gt;Five Ways To Use It
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Method&lt;/th&gt;
          &lt;th&gt;Best for&lt;/th&gt;
          &lt;th&gt;Deployment needed&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Use the website directly&lt;/td&gt;
          &lt;td&gt;All users&lt;/td&gt;
          &lt;td&gt;No&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Use it in OpenClaw&lt;/td&gt;
          &lt;td&gt;OpenClaw users&lt;/td&gt;
          &lt;td&gt;No&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Use it in Claude / Cursor and other AI assistants&lt;/td&gt;
          &lt;td&gt;AI tool users&lt;/td&gt;
          &lt;td&gt;No&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;One-click Docker deployment&lt;/td&gt;
          &lt;td&gt;Teams that want self-hosting&lt;/td&gt;
          &lt;td&gt;Server needed&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Source development&lt;/td&gt;
          &lt;td&gt;Developers&lt;/td&gt;
          &lt;td&gt;Development environment needed&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;MCP support is a notable point. It means Claude, Cursor, or other MCP-compatible agents can call AiToEarn as an external capability.&lt;/p&gt;
&lt;p&gt;A common MCP configuration contains:&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-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;MCP URL: https://aitoearn.ai/api/unified/mcp
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Auth Header: x-api-key: your-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;Self-hosted users should replace it with their own service URL.&lt;/p&gt;
&lt;h2 id=&#34;docker-deployment&#34;&gt;Docker Deployment
&lt;/h2&gt;&lt;p&gt;The README provides a Docker deployment 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;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;git clone https://github.com/yikart/AiToEarn.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; AiToEarn
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker compose up -d
&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 visit:&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:8080
&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 teams that care about data control, private deployment, or custom workflows, Docker is more practical than only using the hosted website.&lt;/p&gt;
&lt;h2 id=&#34;who-it-is-for&#34;&gt;Who It Is For
&lt;/h2&gt;&lt;p&gt;AiToEarn is suitable for creators who publish across many platforms, small teams running content operations, one-person companies, brands that need creator collaboration, and developers who want to connect content workflows to AI agents.&lt;/p&gt;
&lt;p&gt;It is less suitable if you only need a simple text generator. Its value is in connecting creation, publishing, engagement, and monetization.&lt;/p&gt;
&lt;h2 id=&#34;notes-before-use&#34;&gt;Notes Before Use
&lt;/h2&gt;&lt;p&gt;First, automated posting and engagement must respect platform rules. A tool can improve efficiency, but it cannot remove the need for account safety and compliance.&lt;/p&gt;
&lt;p&gt;Second, generated content still needs human review. Ads, brand posts, and cross-language content can all carry factual, copyright, or tone risks.&lt;/p&gt;
&lt;p&gt;Third, monetization features involve commercial tasks, so settlement rules, disclosure requirements, and platform policies should be checked before use.&lt;/p&gt;
&lt;h2 id=&#34;summary&#34;&gt;Summary
&lt;/h2&gt;&lt;p&gt;AiToEarn is worth watching because it treats content operations as a workflow, not just a writing task. For creators and small teams, the attractive part is saving repeated work across platforms. For developers, the interesting part is MCP and agent integration.&lt;/p&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>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>Anthropic financial-services: Reusable Templates for Financial Agents</title>
        <link>https://knightli.com/en/2026/05/16/anthropic-financial-services-agent-templates/</link>
        <pubDate>Sat, 16 May 2026 22:43:08 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/16/anthropic-financial-services-agent-templates/</guid>
        <description>&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/anthropics/financial-services&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;anthropics/financial-services&lt;/a&gt; is a reference project from Anthropic for the financial services industry. It is not a single application, but a set of examples that can be studied and reused separately: Agents, Plugins, Skills, MCP connectors, and prompts and integration patterns designed around financial workflows.&lt;/p&gt;
&lt;p&gt;This project is worth watching not because it provides a &amp;ldquo;universal financial assistant&amp;rdquo;, but because it breaks common AI implementation problems in finance into more concrete components: what kind of Agent each role needs, which data sources need to be connected, which tasks can be automated, and which steps still require human judgment.&lt;/p&gt;
&lt;h2 id=&#34;it-is-more-like-a-showroom-for-financial-agents&#34;&gt;It Is More Like a Showroom for Financial Agents
&lt;/h2&gt;&lt;p&gt;When companies talk about AI Agents, the discussion can easily stay abstract: reading files, querying data, writing reports, and calling tools. Once the scenario enters finance, the questions become much more specific.&lt;/p&gt;
&lt;p&gt;Investment banking analysts need to organize company materials, generate transaction briefs, and compare comparable companies. Equity research needs to read filings, follow news, perform valuation, and analyze risks. Private equity and asset management teams need to screen deals, write memos, and track portfolio companies. Wealth management needs to place client profiles, market information, and investment advice within a compliance framework.&lt;/p&gt;
&lt;p&gt;These scenarios cannot be handled by a generic chat box alone. They require roles, processes, data sources, output formats, and permission boundaries. The value of this Anthropic repository is that it turns multiple typical financial services roles and tasks into Agent templates that can be used as references.&lt;/p&gt;
&lt;h2 id=&#34;why-provide-agents-plugins-skills-and-mcp-together&#34;&gt;Why Provide Agents, Plugins, Skills, and MCP Together
&lt;/h2&gt;&lt;p&gt;Judging from the project structure, Anthropic did not only provide a set of prompts. It provides several kinds of components at the same time. This maps to several layers of enterprise Agent implementation.&lt;/p&gt;
&lt;p&gt;Agents are more like work units for roles or tasks. They define what the agent should do, how it should do it, when to call tools, and how to produce output.&lt;/p&gt;
&lt;p&gt;Plugins are more like external capability extensions. Financial work rarely happens only inside the model. It often needs to connect databases, document systems, market data, CRM, research libraries, and internal workflow systems.&lt;/p&gt;
&lt;p&gt;Skills are reusable professional capability packages. Fixed analysis frameworks, report structures, checklists, and data processing methods can be turned into skills instead of being rewritten as prompts every time.&lt;/p&gt;
&lt;p&gt;MCP connectors solve tool integration and context standardization. For enterprises, the more tools there are, the more they need a relatively unified way to connect them. Otherwise every system needs separate adaptation, and maintenance cost rises quickly.&lt;/p&gt;
&lt;p&gt;Only when these pieces are combined does the result begin to resemble a real enterprise AI workflow.&lt;/p&gt;
&lt;h2 id=&#34;why-finance-is-a-good-industry-for-agent-examples&#34;&gt;Why Finance Is a Good Industry for Agent Examples
&lt;/h2&gt;&lt;p&gt;Financial services is a good industry for showing Agents because it has three traits at the same time.&lt;/p&gt;
&lt;p&gt;First, information density is high. Financial work relies heavily on filings, announcements, meeting notes, research reports, trading data, client records, and regulatory documents. If a model only relies on general knowledge, it quickly becomes ineffective. It must connect to real data sources.&lt;/p&gt;
&lt;p&gt;Second, output formats are stable. Investment memos, company profiles, KYC documents, research summaries, client briefings, and fund operation reports all have relatively fixed structures. This makes it easier for Agents to form verifiable workflows.&lt;/p&gt;
&lt;p&gt;Third, risk boundaries are clear. Finance has strict requirements for compliance, auditability, permissions, and traceability. AI cannot casually provide investment advice or bypass approval processes. This forces Agent design to become more engineering-driven: keep references, separate facts from inferences, record tool calls, and limit executable actions.&lt;/p&gt;
&lt;p&gt;That means this project is not only for financial companies. Any team building enterprise Agents can use it to observe how Anthropic decomposes industry scenarios.&lt;/p&gt;
&lt;h2 id=&#34;what-typical-workflows-it-covers&#34;&gt;What Typical Workflows It Covers
&lt;/h2&gt;&lt;p&gt;According to the project description, the repository covers several financial services areas, including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Investment banking;&lt;/li&gt;
&lt;li&gt;Equity research;&lt;/li&gt;
&lt;li&gt;Private equity;&lt;/li&gt;
&lt;li&gt;Wealth management;&lt;/li&gt;
&lt;li&gt;Fund operations;&lt;/li&gt;
&lt;li&gt;KYC and compliance-related workflows.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These workflows have one thing in common: they all require a lot of reading, organizing, comparison, and structured document generation. The best role for AI here is not to make decisions directly, but to reduce the time spent on information processing and document production.&lt;/p&gt;
&lt;p&gt;For example, in investment banking, an Agent can help organize target company information, extract key financial metrics, and generate a first draft of a transaction summary. In research, it can read filings and news first, then list key changes and open questions. In KYC, it can help check whether materials are complete and whether there are unusual signals.&lt;/p&gt;
&lt;p&gt;The final judgment should still belong to professionals. The Agent&amp;rsquo;s role is closer to assistant, analyst, and workflow accelerator.&lt;/p&gt;
&lt;h2 id=&#34;what-it-suggests-for-enterprise-adoption&#34;&gt;What It Suggests for Enterprise Adoption
&lt;/h2&gt;&lt;p&gt;The most useful part of this repository is that it turns &amp;ldquo;model capability&amp;rdquo; into &amp;ldquo;business components&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Internal AI projects often run into the same problem: model demos look impressive, but once they are connected to real business, they are hard to reuse. One team writes one set of prompts, another team writes another. One system connects a database, another builds its own interface. Security and audit requirements are scattered everywhere.&lt;/p&gt;
&lt;p&gt;A steadier approach is to split capabilities into several types of assets:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Role-oriented Agents;&lt;/li&gt;
&lt;li&gt;Process-oriented Skills;&lt;/li&gt;
&lt;li&gt;MCP connectors for system integration;&lt;/li&gt;
&lt;li&gt;Execution rules for permissions and audit;&lt;/li&gt;
&lt;li&gt;Templates and checklists for business output.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The benefit is that the enterprise does not restart from &amp;ldquo;building a chatbot&amp;rdquo; every time. It gradually accumulates maintainable AI workflow assets.&lt;/p&gt;
&lt;h2 id=&#34;compliance-and-responsibility-boundaries-cannot-be-ignored&#34;&gt;Compliance and Responsibility Boundaries Cannot Be Ignored
&lt;/h2&gt;&lt;p&gt;The easiest misunderstanding around financial Agents is treating &amp;ldquo;can generate analysis&amp;rdquo; as &amp;ldquo;can replace decisions&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;In financial services, AI output should usually be treated as supporting material. It can organize facts, draft documents, highlight risks, and complete files, but it cannot bypass investment research, risk control, legal, compliance, and suitability requirements. Especially when investment advice, trading decisions, asset allocation, or identity checks are involved, human approval and responsibility chains must remain.&lt;/p&gt;
&lt;p&gt;That is why enterprise Agents cannot be evaluated only by answer quality. They must also be evaluated by:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Whether data sources are reliable;&lt;/li&gt;
&lt;li&gt;Whether references and evidence are traceable;&lt;/li&gt;
&lt;li&gt;Whether tool calls are recorded;&lt;/li&gt;
&lt;li&gt;Whether sensitive data is restricted;&lt;/li&gt;
&lt;li&gt;Whether output has human confirmation;&lt;/li&gt;
&lt;li&gt;Whether wrong results can be discovered and rolled back.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If these questions are not solved, the more automated the Agent becomes, the larger the risk radius becomes.&lt;/p&gt;
&lt;h2 id=&#34;conclusion&#34;&gt;Conclusion
&lt;/h2&gt;&lt;p&gt;anthropics/financial-services is more like a financial Agent reference implementation than an out-of-the-box financial product. It shows one way Anthropic thinks about enterprise AI adoption: do not build only generic chat assistants; organize Agents around specific roles, specific workflows, specific data sources, and specific permission boundaries.&lt;/p&gt;
&lt;p&gt;For financial institutions, it can serve as a reference for designing internal AI workflows. For developers, it is a sample for observing enterprise Agent architecture: Agents handle roles and tasks, Skills preserve professional processes, Plugins and MCP connect external systems, and the model eventually enters real business workflows.&lt;/p&gt;
&lt;p&gt;If early AI tools solved &amp;ldquo;how to make models answer questions&amp;rdquo;, projects like this care more about &amp;ldquo;how to let models participate in work within controlled boundaries&amp;rdquo;. That is where enterprise Agents become truly difficult.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>How Did AI Agents Evolve? A Complete 2022-2026 Five-Generation Timeline</title>
        <link>https://knightli.com/en/2026/05/16/ai-agent-evolution-2022-2026/</link>
        <pubDate>Sat, 16 May 2026 19:19:52 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/16/ai-agent-evolution-2022-2026/</guid>
        <description>&lt;p&gt;AI Agents did not appear overnight.&lt;/p&gt;
&lt;p&gt;At the end of 2022, ChatGPT was still mainly a chat window. By 2026, agents had begun to gain tool calling, file operations, computer control, long-term memory, remote collaboration, and persistent execution. In four years, they moved from &amp;ldquo;models that answer questions&amp;rdquo; toward &amp;ldquo;digital workers that can move tasks forward.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;If we look at the timeline, AI Agents have roughly gone through five generations. Each generation solved the previous one&amp;rsquo;s core limitation, while creating new bubbles and new safety problems.&lt;/p&gt;
&lt;h2 id=&#34;overview-five-generations-of-agents&#34;&gt;Overview: five generations of Agents
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Stage&lt;/th&gt;
          &lt;th&gt;Time&lt;/th&gt;
          &lt;th&gt;Keyword&lt;/th&gt;
          &lt;th&gt;Capability shift&lt;/th&gt;
          &lt;th&gt;Core problem&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Generation 0&lt;/td&gt;
          &lt;td&gt;Late 2022 - early 2023&lt;/td&gt;
          &lt;td&gt;Chat box&lt;/td&gt;
          &lt;td&gt;Generates text, but cannot act&lt;/td&gt;
          &lt;td&gt;Model and real world are disconnected&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Generation 1&lt;/td&gt;
          &lt;td&gt;Mid-2023 - late 2023&lt;/td&gt;
          &lt;td&gt;Tool calling&lt;/td&gt;
          &lt;td&gt;Outputs structured calls, connects APIs and RAG&lt;/td&gt;
          &lt;td&gt;Open-loop execution and task drift&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Generation 2&lt;/td&gt;
          &lt;td&gt;Late 2023 - 2024&lt;/td&gt;
          &lt;td&gt;Engineered workflows&lt;/td&gt;
          &lt;td&gt;Planning, state, reflection, and multi-agent collaboration&lt;/td&gt;
          &lt;td&gt;Workflows are easy to copy; low-code bubble&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Generation 3&lt;/td&gt;
          &lt;td&gt;2024 - 2025&lt;/td&gt;
          &lt;td&gt;Computer Use&lt;/td&gt;
          &lt;td&gt;Sees screens, clicks, and operates GUIs&lt;/td&gt;
          &lt;td&gt;Permission, safety, and misoperation risks&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Generation 4&lt;/td&gt;
          &lt;td&gt;2025 - 2026&lt;/td&gt;
          &lt;td&gt;MCP / Skills / persistence&lt;/td&gt;
          &lt;td&gt;Tool networks, long-term context, and professional skills&lt;/td&gt;
          &lt;td&gt;Persistent execution expands the risk radius&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Generation 5 preview&lt;/td&gt;
          &lt;td&gt;After 2026&lt;/td&gt;
          &lt;td&gt;Loops and world models&lt;/td&gt;
          &lt;td&gt;Stronger memory, validation, and physical action&lt;/td&gt;
          &lt;td&gt;Governance becomes harder&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;late-2022-generation-0-the-chatgpt-chat-box-era&#34;&gt;Late 2022: Generation 0, the ChatGPT chat-box era
&lt;/h2&gt;&lt;p&gt;Generation 0 begins with the release of ChatGPT on November 30, 2022.&lt;/p&gt;
&lt;p&gt;This generation was not yet a real Agent. It had strong language generation ability, but it was mostly trapped in a chat box. It could write Python code, but not run it on your computer. It could plan a trip, but not book tickets. It could tell you how to edit a file, but not enter the file system and make the change.&lt;/p&gt;
&lt;p&gt;Its capability boundary was clear:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;understand natural language;&lt;/li&gt;
&lt;li&gt;generate articles, answers, code, and plans;&lt;/li&gt;
&lt;li&gt;no active access to fresh data;&lt;/li&gt;
&lt;li&gt;no stable access to internal company knowledge;&lt;/li&gt;
&lt;li&gt;no external action;&lt;/li&gt;
&lt;li&gt;no long-term task state.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The core issue was the break between model capability and the real world. It could think and speak, but not act.&lt;/p&gt;
&lt;p&gt;This stage also produced the first bubble: prompt engineers, prompt template markets, prompt courses, and prompt certifications. Early models were indeed sensitive to prompts, but the market mistook a temporary patch for a long-term moat.&lt;/p&gt;
&lt;p&gt;As GPT-4-level models, system prompts, function calling, and better product defaults matured, many prompt templates lost scarcity. This pattern would repeat: a new capability creates a middle layer; the next generation internalizes it; the middle layer evaporates.&lt;/p&gt;
&lt;h2 id=&#34;mid-2023-generation-1-tool-calling-wakes-up&#34;&gt;Mid-2023: Generation 1, tool calling wakes up
&lt;/h2&gt;&lt;p&gt;The keyword for Generation 1 is tool calling.&lt;/p&gt;
&lt;p&gt;In June 2023, OpenAI released &lt;code&gt;function calling&lt;/code&gt;. Developers could describe function names, purposes, parameter types, and &lt;code&gt;JSON Schema&lt;/code&gt;. After understanding a user request, the model could output a structured JSON call instead of ordinary natural language, and an external system would execute it.&lt;/p&gt;
&lt;p&gt;The architectural significance was large: the model started moving from a brain that only talks to a brain that can drive external tools.&lt;/p&gt;
&lt;p&gt;Key capabilities included:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;choosing tools based on user intent;&lt;/li&gt;
&lt;li&gt;outputting structured arguments;&lt;/li&gt;
&lt;li&gt;calling external APIs;&lt;/li&gt;
&lt;li&gt;feeding API results back into the model;&lt;/li&gt;
&lt;li&gt;using RAG to access external knowledge;&lt;/li&gt;
&lt;li&gt;forming early personas through plugins and knowledge bases.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;At the same time, &lt;code&gt;RAG&lt;/code&gt; and vector databases became popular. They addressed the model&amp;rsquo;s lack of fresh information, private enterprise materials, and internal knowledge. The system retrieved relevant document chunks, injected them into context, and let the model answer from those materials.&lt;/p&gt;
&lt;p&gt;The basic Agent structure became:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;who you are: system prompt and persona;&lt;/li&gt;
&lt;li&gt;what you know: knowledge base, RAG, private documents;&lt;/li&gt;
&lt;li&gt;what you can do: function calling, plugins, external APIs.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The most dramatic bubble of this generation was AutoGPT. It showed an attractive idea: the user gives a broad goal, and AI breaks it down, searches, writes files, evaluates, loops, and stops when it believes the work is done.&lt;/p&gt;
&lt;p&gt;But AutoGPT quickly exposed the problem. It lacked state constraints, stopping conditions, and reliable feedback. Tasks drifted, APIs were called with bad arguments again and again, and bills could be burned by huge numbers of model calls. The lesson was simple: tools plus an infinite loop do not make a production-grade Agent.&lt;/p&gt;
&lt;h2 id=&#34;late-2023-to-2024-generation-2-engineered-workflows&#34;&gt;Late 2023 to 2024: Generation 2, engineered workflows
&lt;/h2&gt;&lt;p&gt;AutoGPT&amp;rsquo;s failure taught the industry that models cannot simply be left to improvise. Complex tasks need structure.&lt;/p&gt;
&lt;p&gt;Generation 2 is about engineered workflows. An Agent became not just one model call, but a software system with state, control flow, and evaluation.&lt;/p&gt;
&lt;p&gt;Key capabilities included:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;task planning: breaking large goals into steps;&lt;/li&gt;
&lt;li&gt;state management: tracking where work stands;&lt;/li&gt;
&lt;li&gt;reflection and revision: generating, reviewing, and improving;&lt;/li&gt;
&lt;li&gt;tool orchestration: switching between tools;&lt;/li&gt;
&lt;li&gt;human-in-the-loop: asking for confirmation at key points;&lt;/li&gt;
&lt;li&gt;multi-agent collaboration: dividing roles.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A typical pattern is &lt;code&gt;ReAct&lt;/code&gt;, or &lt;code&gt;Reasoning + Acting&lt;/code&gt;. The model reasons, calls a tool, observes the result, and then reasons again. The Agent no longer acts blindly; each step has auditable logic and feedback.&lt;/p&gt;
&lt;p&gt;Common &lt;code&gt;agentic workflow&lt;/code&gt; patterns emerged:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;reflection: generate, review, revise;&lt;/li&gt;
&lt;li&gt;tool use: choose search, databases, code execution, and enterprise APIs;&lt;/li&gt;
&lt;li&gt;planning: decompose goals and track state;&lt;/li&gt;
&lt;li&gt;multi-agent collaboration: product, developer, tester, reviewer roles.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The value of Generation 2 was putting model capability inside a controllable process. A well-designed workflow can sometimes make a smaller model produce more stable results than a single large-model call.&lt;/p&gt;
&lt;p&gt;This generation also produced the low-code Agent platform bubble. Many tools used drag-and-drop interfaces to combine prompts, RAG, plugins, and flows. They lowered the building barrier, but if a workflow can be copied cheaply, the platform itself has a weak moat.&lt;/p&gt;
&lt;p&gt;Low-code tools can capture early demand, but a demand window is not a defensible wall.&lt;/p&gt;
&lt;h2 id=&#34;2024-to-2025-generation-3-computer-use-reaches-real-interfaces&#34;&gt;2024 to 2025: Generation 3, Computer Use reaches real interfaces
&lt;/h2&gt;&lt;p&gt;The keyword for Generation 3 is &lt;code&gt;Computer Use&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Earlier tool calling relied mostly on APIs. What an Agent could do depended on what developers had connected. But many real-world apps do not have clean APIs, or their APIs are incomplete, closed, or inconsistent.&lt;/p&gt;
&lt;p&gt;Computer Use lets models look at screens, click, and operate GUIs. The general computer interface itself becomes a tool.&lt;/p&gt;
&lt;p&gt;Key capabilities included:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;recognizing screen content;&lt;/li&gt;
&lt;li&gt;clicking buttons, typing text, switching windows;&lt;/li&gt;
&lt;li&gt;operating web and desktop software;&lt;/li&gt;
&lt;li&gt;reading repositories, editing files, running tests;&lt;/li&gt;
&lt;li&gt;inspecting terminal output and errors;&lt;/li&gt;
&lt;li&gt;behaving more like a real engineering assistant.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This pushed Agents from &amp;ldquo;using connected tools&amp;rdquo; toward &amp;ldquo;operating software like a person.&amp;rdquo; It also made coding agents closer to real workflows: read a project, change code, run tests, and continue from errors.&lt;/p&gt;
&lt;p&gt;But the trust boundary expanded. If AI operates a computer, it can click the wrong button, delete the wrong file, submit the wrong form, or be manipulated by webpage text, documents, and UI instructions. Prompt injection becomes a file-operation, permission, and system-safety problem.&lt;/p&gt;
&lt;p&gt;Vibe coding debates also concentrated in this stage. Fast AI-generated projects feel exciting, but without tests, evaluation, permissions, and deployment boundaries, fast prototypes can become fast incidents.&lt;/p&gt;
&lt;p&gt;Generation 3&amp;rsquo;s lesson: the closer an Agent gets to real operations, the more it needs sandboxing, approvals, rollback, and least privilege.&lt;/p&gt;
&lt;h2 id=&#34;2025-to-2026-generation-4-mcp-skills-and-persistent-digital-workers&#34;&gt;2025 to 2026: Generation 4, MCP, Skills, and persistent digital workers
&lt;/h2&gt;&lt;p&gt;Generation 4 is about persistence, connection, memory, and specialization.&lt;/p&gt;
&lt;p&gt;The focus is not only stronger single tasks. Agents start to have long-term context, tool networks, professional skills, and a sense of time. They become less like helpers in one chat and more like digital workers that can continue working.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;MCP&lt;/code&gt; addresses tool connection. It lets Agents connect to file systems, databases, browsers, design tools, project management tools, and enterprise systems in a more standardized way. Once the protocol stabilizes, many &amp;ldquo;tool-connection middle layer&amp;rdquo; products get compressed.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Skills&lt;/code&gt; address professional method. Tools tell an Agent what it can do; skills tell it how to do the work. A good skill is not just a prompt. It packages domain workflows, constraints, checks, common pitfalls, and tool-call order.&lt;/p&gt;
&lt;p&gt;Key capabilities included:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;long-term memory: storing preferences, project rules, and history;&lt;/li&gt;
&lt;li&gt;project context: understanding repositories, docs, and work rules;&lt;/li&gt;
&lt;li&gt;tool networks: connecting through MCP, APIs, browsers, and file systems;&lt;/li&gt;
&lt;li&gt;professional skills: packaging task methods through Skills;&lt;/li&gt;
&lt;li&gt;persistent execution: waiting, waking, reminding, and following up;&lt;/li&gt;
&lt;li&gt;remote collaboration: users can return from different devices to approve and steer.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This generation starts to feel like an employee:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;identity and responsibility boundaries;&lt;/li&gt;
&lt;li&gt;long-term context;&lt;/li&gt;
&lt;li&gt;professional work methods;&lt;/li&gt;
&lt;li&gt;time awareness;&lt;/li&gt;
&lt;li&gt;tool permissions;&lt;/li&gt;
&lt;li&gt;ability to continue work without being watched.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;But the more it resembles an employee, the more its risk radius resembles an employee&amp;rsquo;s. Persistent execution, local data access, secrets, tool calls, and task handling move security from the edge to the center.&lt;/p&gt;
&lt;p&gt;One point matters especially: text is also an attack surface. If an Agent reads and follows Markdown, documentation, skill packs, or webpages, malicious text can change its behavior. Prompt injection becomes a supply-chain, permission, and execution-safety problem.&lt;/p&gt;
&lt;p&gt;Generation 4&amp;rsquo;s lesson: persistent Agents need governance, not just capability.&lt;/p&gt;
&lt;h2 id=&#34;after-2026-generation-5-preview-loops-internal-memory-and-world-models&#34;&gt;After 2026: Generation 5 preview, loops, internal memory, and world models
&lt;/h2&gt;&lt;p&gt;Generation 5 is not established history yet. It is an extrapolation from the previous four years.&lt;/p&gt;
&lt;p&gt;The first direction is more complete closed loops.&lt;/p&gt;
&lt;p&gt;A mature Agent needs at least three loops:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;execution loop: verify after each action, rollback, revise, and retry if needed;&lt;/li&gt;
&lt;li&gt;time loop: track long-term goals across multiple wake cycles;&lt;/li&gt;
&lt;li&gt;cognitive loop: know what is certain, what is guessed, and what is outdated.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The second direction is internal memory.&lt;/p&gt;
&lt;p&gt;Most memory so far is outside the model: RAG, vector stores, chat logs, local files, and &lt;code&gt;memory.md&lt;/code&gt;. If future model architectures support persistent state across sessions, Agent memory systems may be rebuilt.&lt;/p&gt;
&lt;p&gt;The third direction is world models.&lt;/p&gt;
&lt;p&gt;Many Agents today are still reactive: observe, respond, observe again. High-risk tasks require the model to simulate consequences. Before changing a database script, it should think about data loss, rollback failure, and compatibility issues, not learn only after an accident.&lt;/p&gt;
&lt;p&gt;The fourth direction is embodiment.&lt;/p&gt;
&lt;p&gt;Earlier generations mainly happened in digital space: APIs, screens, files, browsers, and enterprise tools. The next step may extend Agent action into the physical world, including robots, device control, industrial systems, and standardized physical interfaces.&lt;/p&gt;
&lt;p&gt;Generation 5 will need to solve not only how Agents execute tasks, but how they understand consequences, manage long-term state, and stay reliable inside a larger risk radius.&lt;/p&gt;
&lt;h2 id=&#34;six-patterns-behind-the-timeline&#34;&gt;Six patterns behind the timeline
&lt;/h2&gt;&lt;p&gt;First, base-model capability remains the ceiling. An Agent is not magic outside the model; it is a way to release model capability through engineering systems.&lt;/p&gt;
&lt;p&gt;Second, engineered architecture amplifies model capability. Planning, verification, reflection, revision, evaluation, and permission control are closer to deliverable work than one-shot generation.&lt;/p&gt;
&lt;p&gt;Third, open protocols reshape value distribution. Once MCP, Skills, and project-context standards stabilize, competition shifts from &amp;ldquo;who connected the tool first&amp;rdquo; to &amp;ldquo;who accumulated real domain capability.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Fourth, the hidden main line of Agent evolution is expanding human-machine trust. From trusting text, to API calls, to workflows, to computer operations, to persistent execution, each generation pushes the risk radius outward.&lt;/p&gt;
&lt;p&gt;Fifth, every generation&amp;rsquo;s accidents become the next generation&amp;rsquo;s rules. AutoGPT&amp;rsquo;s loops pushed structured orchestration; vibe coding failures pushed evaluation-driven development; production deletions pushed least privilege and sandboxing; skill poisoning pushed supply-chain safety.&lt;/p&gt;
&lt;p&gt;Sixth, the Agent ecosystem repeatedly booms and collapses. New capabilities create temporary middle layers, and model or platform internalization later removes them. Mistaking a time window for a moat is dangerous.&lt;/p&gt;
&lt;h2 id=&#34;the-real-moat&#34;&gt;The real moat
&lt;/h2&gt;&lt;p&gt;The real moat in AI Agents is not packaging a new capability first.&lt;/p&gt;
&lt;p&gt;More reliable moats include three things.&lt;/p&gt;
&lt;p&gt;First, vertical depth. Do you truly understand an industry&amp;rsquo;s workflow, risks, exceptions, and responsibility boundaries? General models can learn concepts, but they may not replace hard-earned domain execution experience.&lt;/p&gt;
&lt;p&gt;Second, a data flywheel. Can you collect high-quality feedback from real usage and improve workflows, evaluation, fine-tuning, and product decisions?&lt;/p&gt;
&lt;p&gt;Third, user trust. Will users hand you higher-value, longer-running, riskier work, or only treat you as a one-off tool?&lt;/p&gt;
&lt;p&gt;If a platform or base model absorbs a capability, the products that still retain process, feedback, responsibility boundaries, and trust are more likely to survive. Many others are temporary bubbles.&lt;/p&gt;
&lt;h2 id=&#34;final-note&#34;&gt;Final note
&lt;/h2&gt;&lt;p&gt;From 2022 to 2026, AI Agent evolution was not &amp;ldquo;models getting better at chatting.&amp;rdquo; It was &amp;ldquo;humans becoming willing to hand more work to AI.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;A mature Agent is not the system most eager to execute automatically. It is the system that knows when to execute, when to verify, when to pause, and when to ask a human.&lt;/p&gt;
&lt;p&gt;To judge whether an Agent product has long-term value, ask one question: when the next model or platform builds this capability in, what remains?&lt;/p&gt;
&lt;p&gt;If the answer is domain workflow, real data, verifiable results, and user trust, there may be long-term value.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Connecting Claude to Fusion 360: An Example of Editing STEP Models With AI</title>
        <link>https://knightli.com/en/2026/05/14/claude-fusion-360-mcp-step-model-edit/</link>
        <pubDate>Thu, 14 May 2026 20:58:04 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/14/claude-fusion-360-mcp-step-model-edit/</guid>
        <description>&lt;p&gt;After Claude is connected to Fusion 360, it can do more than &amp;ldquo;talk through ideas&amp;rdquo;. It can directly participate in CAD model editing. A typical workflow is to open an existing STEP file, let Claude read the current model, analyze structural conflicts, plan dimensions, and then execute modeling changes through the Fusion plugin.&lt;/p&gt;
&lt;p&gt;The following uses a planetary gear indexer modification as an example to summarize the basic Claude + Fusion 360 workflow.&lt;/p&gt;
&lt;h2 id=&#34;enable-fusion-360s-apimcp-service-first&#34;&gt;Enable Fusion 360&amp;rsquo;s API/MCP Service First
&lt;/h2&gt;&lt;p&gt;Start with a basic Fusion 360 setup:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open &lt;code&gt;Preferences&lt;/code&gt; in the upper-right corner.&lt;/li&gt;
&lt;li&gt;Go to &lt;code&gt;General&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Find the &lt;code&gt;API&lt;/code&gt; option.&lt;/li&gt;
&lt;li&gt;Enable the MCP server.&lt;/li&gt;
&lt;li&gt;Note the port number. The default example is &lt;code&gt;27182&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Then return to Claude, go to &lt;code&gt;Connectors&lt;/code&gt;, find the Fusion connector, and enter the Fusion 360 address and port. In most cases, the default port &lt;code&gt;27182&lt;/code&gt; is enough.&lt;/p&gt;
&lt;p&gt;After the connection succeeds, Claude can interact with the currently opened model through the Fusion plugin.&lt;/p&gt;
&lt;h2 id=&#34;open-the-step-file-and-define-the-goal-clearly&#34;&gt;Open the STEP File and Define the Goal Clearly
&lt;/h2&gt;&lt;p&gt;The part to modify is a gear inside a planetary gear indexer. In the original design, the gear is fixed to the bracket with a screw acting as the central shaft.&lt;/p&gt;
&lt;p&gt;The goal is to convert it into a bearing-based structure:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;the center hole needs to fit a bearing;&lt;/li&gt;
&lt;li&gt;surrounding screw holes must not interfere with the enlarged center hole;&lt;/li&gt;
&lt;li&gt;the self-tapping screw hole on the bracket should also be adjusted into a shaft structure suitable for bearing rotation;&lt;/li&gt;
&lt;li&gt;the final model should be importable into slicer software and usable for 3D printing.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The key is not to simply tell Claude &amp;ldquo;modify this for me&amp;rdquo;. You need to clearly state the use case, assembly method, material, and manufacturing process.&lt;/p&gt;
&lt;h2 id=&#34;claude-can-understand-the-current-model-through-screenshots&#34;&gt;Claude Can Understand the Current Model Through Screenshots
&lt;/h2&gt;&lt;p&gt;Some people worry that the Fusion plugin can only execute commands and cannot let Claude see the model. In actual testing, Claude can recognize the current model state through screenshots.&lt;/p&gt;
&lt;p&gt;In this case, Claude could see the gear structure and complete several tasks:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;identify the gear and center hole;&lt;/li&gt;
&lt;li&gt;measure or estimate related dimensions;&lt;/li&gt;
&lt;li&gt;recommend bearing dimensions;&lt;/li&gt;
&lt;li&gt;judge which structures would affect bearing installation;&lt;/li&gt;
&lt;li&gt;notice that after enlarging the center hole, surrounding screw holes might create geometric interference.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This step matters. It shows that Claude is not blindly editing from text instructions. It can combine the current model view with structural reasoning.&lt;/p&gt;
&lt;h2 id=&#34;specify-material-and-manufacturing-method-in-advance&#34;&gt;Specify Material and Manufacturing Method in Advance
&lt;/h2&gt;&lt;p&gt;If the model will be used for 3D printing, you must clearly tell Claude the material and process.&lt;/p&gt;
&lt;p&gt;For example, when printing with PLA, the bearing hole should not be designed strictly according to CNC metal machining tolerances. For a 6mm bearing that needs a press fit, a hole diameter around &lt;code&gt;6.1mm&lt;/code&gt; may be considered. Whether that size is appropriate still depends on printer accuracy, material shrinkage, slicer settings, and real testing.&lt;/p&gt;
&lt;p&gt;If you do not specify the material, Claude may default to CNC-style tolerances. The resulting hole size may be too small for 3D printing, making assembly difficult.&lt;/p&gt;
&lt;p&gt;A useful prompt might be:&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;This model is for FDM 3D printing, using PLA.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;The goal is to install a 6mm bearing, so printing tolerance and press fit should be considered.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Do not handle it as CNC metal machining tolerance.
&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;let-claude-modify-the-gear-structure&#34;&gt;Let Claude Modify the Gear Structure
&lt;/h2&gt;&lt;p&gt;After the goal is clear, Claude can perform specific modifications:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;enlarge the center hole;&lt;/li&gt;
&lt;li&gt;adjust surrounding screw holes that interfere;&lt;/li&gt;
&lt;li&gt;add a bearing seat;&lt;/li&gt;
&lt;li&gt;add chamfers to edges;&lt;/li&gt;
&lt;li&gt;keep the gear body and key meshing structure unchanged.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In this case, Claude first produced a plan and then called Fusion 360 to perform modeling operations. For example, after detecting a conflict between the original screw holes and the center hole, it moved the holes slightly outward to protect the bearing installation space.&lt;/p&gt;
&lt;p&gt;After modification, check the model:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;whether the central bearing seat is formed correctly;&lt;/li&gt;
&lt;li&gt;whether surrounding holes still preserve their function;&lt;/li&gt;
&lt;li&gt;whether the gear structure was accidentally damaged;&lt;/li&gt;
&lt;li&gt;whether chamfers affect assembly;&lt;/li&gt;
&lt;li&gt;whether there are overhangs, thin walls, or slicing risks.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;the-bracket-must-be-modified-too&#34;&gt;The Bracket Must Be Modified Too
&lt;/h2&gt;&lt;p&gt;Changing only the gear is not enough. The original bracket had a self-tapping screw hole. If the gear center is converted to a bearing, the bracket must also be changed into a bearing shaft structure.&lt;/p&gt;
&lt;p&gt;You can ask Claude to perform a similar modification on the bracket:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;preserve the overall mounting position;&lt;/li&gt;
&lt;li&gt;convert the original self-tapping screw hole into a cylindrical shaft;&lt;/li&gt;
&lt;li&gt;control shaft diameter and height;&lt;/li&gt;
&lt;li&gt;reserve space for bearing rotation;&lt;/li&gt;
&lt;li&gt;avoid interference with other bracket structures.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;After printing, the gear can be pressed into the bearing, and the bracket can provide the new rotation center. The final result changes a screw-fixed structure into a smoother bearing-rotating structure.&lt;/p&gt;
&lt;h2 id=&#34;export-slice-and-print-for-verification&#34;&gt;Export, Slice, and Print for Verification
&lt;/h2&gt;&lt;p&gt;After the CAD modification is done, the actual manufacturing process still matters:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Export the modified model from Fusion 360.&lt;/li&gt;
&lt;li&gt;Import it into slicer software.&lt;/li&gt;
&lt;li&gt;Check holes, thin walls, overhangs, and supports.&lt;/li&gt;
&lt;li&gt;Print the gear and bracket.&lt;/li&gt;
&lt;li&gt;Press the bearing into place.&lt;/li&gt;
&lt;li&gt;Check whether rotation is smooth.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;AI-edited CAD results cannot be judged only by whether the on-screen model looks good. They must be verified through printing. For mechanical structures such as bearings, holes, clips, and gears, an error at the 0.1mm level can decide whether the part fits and rotates smoothly.&lt;/p&gt;
&lt;h2 id=&#34;usage-suggestions&#34;&gt;Usage Suggestions
&lt;/h2&gt;&lt;p&gt;Claude + Fusion 360 is well suited for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;making local modifications to existing STEP models;&lt;/li&gt;
&lt;li&gt;adjusting holes, chamfers, brackets, and mounting seats;&lt;/li&gt;
&lt;li&gt;converting screw-fixed structures into bearing, snap-fit, or pin structures;&lt;/li&gt;
&lt;li&gt;correcting tolerances for 3D printed models;&lt;/li&gt;
&lt;li&gt;quickly generating multiple revised versions.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;But it is not suitable for directly producing final parts without inspection. A more reliable workflow is:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Define the assembly goal and material process yourself.&lt;/li&gt;
&lt;li&gt;Let Claude analyze the structure and propose modifications.&lt;/li&gt;
&lt;li&gt;Let Claude call Fusion to execute modeling.&lt;/li&gt;
&lt;li&gt;Manually check key dimensions and interference.&lt;/li&gt;
&lt;li&gt;Print a small test sample.&lt;/li&gt;
&lt;li&gt;Iterate based on the physical result.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;summary&#34;&gt;Summary
&lt;/h2&gt;&lt;p&gt;The value of connecting Claude to Fusion 360 is not replacing CAD fundamentals. It is making local edits to existing models much faster.&lt;/p&gt;
&lt;p&gt;As long as you clearly specify the goal, material, dimensions, tolerance, and assembly method, it can help read the model, find interference, modify structures, add chamfers, and push the model toward a printable state. For 3D printing, open-source mechanical part modification, and small-batch iteration in personal workshops, this AI CAD workflow is already practical.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>goose: An Open Source AI Agent with Desktop, CLI, and API</title>
        <link>https://knightli.com/en/2026/05/08/goose-open-source-ai-agent-desktop-cli-api/</link>
        <pubDate>Fri, 08 May 2026 13:41:15 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/08/goose-open-source-ai-agent-desktop-cli-api/</guid>
        <description>&lt;p&gt;goose is an open source AI agent that runs on your own machine. It is not limited to code completion; it aims to cover code, research, writing, automation, data analysis, and other tasks. The README positions it as a desktop app, CLI, and API that can serve both normal users and custom workflows.&lt;/p&gt;
&lt;p&gt;The project has moved from &lt;code&gt;block/goose&lt;/code&gt; to the Agentic AI Foundation (AAIF) at the Linux Foundation. The current repository 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;https://github.com/aaif-goose/goose
&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;goose is mainly written in Rust and TypeScript and uses the Apache-2.0 license. Its GitHub description says it is an open source, extensible AI agent that goes beyond code suggestions and can install, execute, edit, and test with any LLM.&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 focus on suggestions or local code edits. goose takes a broader view: let an AI agent complete tasks directly on your machine.&lt;/p&gt;
&lt;p&gt;It can be used for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Code changes and tests.&lt;/li&gt;
&lt;li&gt;Local automation.&lt;/li&gt;
&lt;li&gt;Research and writing.&lt;/li&gt;
&lt;li&gt;Data analysis.&lt;/li&gt;
&lt;li&gt;Multi-step workflows.&lt;/li&gt;
&lt;li&gt;Embedding through an API.&lt;/li&gt;
&lt;li&gt;Tool extension through MCP.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you only need IDE completion, a Copilot-style tool may be enough. goose is more useful when you want AI inside the local task execution chain.&lt;/p&gt;
&lt;h2 id=&#34;desktop-cli-and-api&#34;&gt;Desktop, CLI, and API
&lt;/h2&gt;&lt;p&gt;goose has three entry points.&lt;/p&gt;
&lt;p&gt;The desktop app supports macOS, Linux, and Windows. It is good for users who prefer a visual interface.&lt;/p&gt;
&lt;p&gt;The CLI fits terminal workflows and local development automation.&lt;/p&gt;
&lt;p&gt;The API lets other systems or internal tools embed goose as an agent runtime.&lt;/p&gt;
&lt;p&gt;Personal users can start with the desktop app or CLI. Teams and workflow builders should also look at the API and custom distribution support.&lt;/p&gt;
&lt;h2 id=&#34;installation&#34;&gt;Installation
&lt;/h2&gt;&lt;p&gt;The README recommends downloading the desktop app:&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;https://goose-docs.ai/docs/getting-started/installation
&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;CLI install:&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://github.com/aaif-goose/goose/releases/download/stable/download_cli.sh &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;p&gt;GitHub Releases provide builds for multiple platforms. The latest release checked here was &lt;code&gt;v1.33.1&lt;/code&gt;, published on 2026-04-29, with macOS, Linux, Windows, deb, rpm, and Flatpak assets.&lt;/p&gt;
&lt;p&gt;After installation, configure a provider from the official quickstart and test in a low-risk directory first. goose can execute local tasks, so avoid giving it broad permissions in a production repository from the start.&lt;/p&gt;
&lt;h2 id=&#34;providers&#34;&gt;Providers
&lt;/h2&gt;&lt;p&gt;goose supports 15+ providers, including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Anthropic&lt;/li&gt;
&lt;li&gt;OpenAI&lt;/li&gt;
&lt;li&gt;Google&lt;/li&gt;
&lt;li&gt;Ollama&lt;/li&gt;
&lt;li&gt;OpenRouter&lt;/li&gt;
&lt;li&gt;Azure&lt;/li&gt;
&lt;li&gt;Bedrock&lt;/li&gt;
&lt;li&gt;other cloud or OpenAI-compatible providers&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It can use API keys, and it can also use existing Claude, ChatGPT, or Gemini subscriptions through ACP.&lt;/p&gt;
&lt;p&gt;ACP is important because many users already pay for subscriptions, but different tools cannot easily reuse them. goose uses ACP providers to bring those subscriptions into an agent workflow.&lt;/p&gt;
&lt;p&gt;Provider policies change quickly. Check whether the access method is allowed, whether there are quotas, and whether it is suitable for company code or sensitive data.&lt;/p&gt;
&lt;h2 id=&#34;mcp-extensions&#34;&gt;MCP Extensions
&lt;/h2&gt;&lt;p&gt;goose supports Model Context Protocol extensions. The README mentions 70+ extensions.&lt;/p&gt;
&lt;p&gt;MCP matters because an agent should not only chat and edit files. Through standard protocol servers, it can connect to documentation, databases, browsers, internal systems, search services, design tools, or project management tools.&lt;/p&gt;
&lt;p&gt;For teams, MCP can become a safer integration layer: expose internal capabilities through explicit interfaces instead of letting the model touch every system directly.&lt;/p&gt;
&lt;h2 id=&#34;difference-from-a-coding-assistant&#34;&gt;Difference from a Coding Assistant
&lt;/h2&gt;&lt;p&gt;goose is not just a code completion tool. It is closer to a local agent runtime.&lt;/p&gt;
&lt;p&gt;Common coding assistants focus on:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Code completion.&lt;/li&gt;
&lt;li&gt;Code explanation.&lt;/li&gt;
&lt;li&gt;Function generation.&lt;/li&gt;
&lt;li&gt;Local editor edits.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;goose emphasizes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Local task execution.&lt;/li&gt;
&lt;li&gt;Multi-step workflows.&lt;/li&gt;
&lt;li&gt;Switchable providers.&lt;/li&gt;
&lt;li&gt;Extensions.&lt;/li&gt;
&lt;li&gt;Desktop and CLI.&lt;/li&gt;
&lt;li&gt;Embeddable API.&lt;/li&gt;
&lt;li&gt;Non-code tasks too.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This also means more complexity. You must think about model configuration, permissions, extensions, workspace scope, logs, and credentials.&lt;/p&gt;
&lt;h2 id=&#34;custom-distributions&#34;&gt;Custom Distributions
&lt;/h2&gt;&lt;p&gt;The repository includes &lt;code&gt;CUSTOM_DISTROS.md&lt;/code&gt;, which explains how to build a custom goose distribution with preconfigured providers, extensions, and branding.&lt;/p&gt;
&lt;p&gt;This is useful for teams:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Preconfigure allowed model providers.&lt;/li&gt;
&lt;li&gt;Connect internal MCP servers.&lt;/li&gt;
&lt;li&gt;Set safety policies and logging.&lt;/li&gt;
&lt;li&gt;Block disallowed external services.&lt;/li&gt;
&lt;li&gt;Apply company branding and onboarding.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Members do not need to configure everything from scratch, and the risk of wrong provider or key setup is reduced.&lt;/p&gt;
&lt;h2 id=&#34;suggested-use&#34;&gt;Suggested Use
&lt;/h2&gt;&lt;p&gt;Start gradually:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Install the desktop app or CLI.&lt;/li&gt;
&lt;li&gt;Configure one known-good provider.&lt;/li&gt;
&lt;li&gt;Run simple tasks in a test directory.&lt;/li&gt;
&lt;li&gt;Observe what it reads and executes.&lt;/li&gt;
&lt;li&gt;Add MCP extensions.&lt;/li&gt;
&lt;li&gt;Try larger repositories later.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Keep a few habits:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Commit important changes before agent work.&lt;/li&gt;
&lt;li&gt;Do not store API keys in project files.&lt;/li&gt;
&lt;li&gt;Use high-permission modes only in trusted workspaces.&lt;/li&gt;
&lt;li&gt;Review company data and provider policy first.&lt;/li&gt;
&lt;li&gt;Keep human review for automation results.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;who-should-use-it&#34;&gt;Who Should Use It
&lt;/h2&gt;&lt;p&gt;goose is a good fit if you want a desktop and CLI AI agent, multiple model providers, MCP integration, API embedding, or custom team distributions. It may be heavy if all you need is IDE code completion.&lt;/p&gt;
&lt;h2 id=&#34;summary&#34;&gt;Summary
&lt;/h2&gt;&lt;p&gt;goose is an open source AI agent under AAIF/Linux Foundation. It provides desktop, CLI, and API entry points, supports 15+ providers, ACP subscription access, and 70+ MCP extensions.&lt;/p&gt;
&lt;p&gt;Its value is not only writing code, but placing models, tools, extensions, and local execution into one agent framework. Start small, define permission and data boundaries, then expand usage.&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/aaif-goose/goose&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;goose GitHub repository&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://goose-docs.ai/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;goose documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://goose-docs.ai/docs/getting-started/installation&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;goose installation guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://aaif.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Agentic AI Foundation&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>Codex App Beginner Guide: Installation, Sandbox, Parallel Tasks, Skills, and MCP</title>
        <link>https://knightli.com/en/2026/05/06/codex-app-complete-guide-skills-mcp/</link>
        <pubDate>Wed, 06 May 2026 08:41:17 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/06/codex-app-complete-guide-skills-mcp/</guid>
        <description>&lt;p&gt;Codex App can be understood as a task workspace for AI coding. It is not a traditional IDE, nor just a chat window. It brings multitasking, project management, sandbox permissions, Git, cloud execution, plugins, Skills, MCP, and automation into one interface.&lt;/p&gt;
&lt;p&gt;If you already use Codex CLI, Claude Code, Cursor, or other coding agents, the most interesting part of Codex App is that it turns &amp;ldquo;running multiple agents in parallel&amp;rdquo; into a clearer desktop workflow.&lt;/p&gt;
&lt;h2 id=&#34;what-codex-app-is-good-for&#34;&gt;What Codex App Is Good For
&lt;/h2&gt;&lt;p&gt;The core value of Codex App is not answering questions, but letting AI continuously execute tasks inside a project directory:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Edit code, run commands, and start development servers.&lt;/li&gt;
&lt;li&gt;Manage multiple projects and multiple tasks.&lt;/li&gt;
&lt;li&gt;Run long tasks locally or in the cloud.&lt;/li&gt;
&lt;li&gt;Call plugins, Skills, and MCP for extended capabilities.&lt;/li&gt;
&lt;li&gt;Manage changes through Git, worktree, and PR workflows.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;OpenAI also positions Codex App as an interface for managing multiple coding agents. It is suitable for people who need to advance several coding tasks at once, especially frontend pages, scripts, small apps, documentation, and automation workflows.&lt;/p&gt;
&lt;h2 id=&#34;preparation-before-installation&#34;&gt;Preparation Before Installation
&lt;/h2&gt;&lt;p&gt;Before using Codex App, it is best to prepare three basic tools:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;Git&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Node.js&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;VS Code&lt;/code&gt; or your preferred IDE&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Codex App supports macOS and Windows. After installation, sign in with your ChatGPT account. On first launch, you can choose your main usage scenario, such as programming or daily work. Codex will preload some plugins and Skills based on your choices, and you can adjust them later in settings and the plugin marketplace.&lt;/p&gt;
&lt;p&gt;The main features on Windows and macOS are broadly similar, but some computer automation capabilities may depend on platform and plugin support. Use whatever your current version actually displays.&lt;/p&gt;
&lt;h2 id=&#34;interface-structure-projects-tasks-and-chats&#34;&gt;Interface Structure: Projects, Tasks, and Chats
&lt;/h2&gt;&lt;p&gt;Codex App uses a classic three-column layout:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Left: projects, tasks, chat history, plugins, and automation entry points.&lt;/li&gt;
&lt;li&gt;Middle: current chat window.&lt;/li&gt;
&lt;li&gt;Right: files, browser, terminal, run results, and other panels.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A project usually corresponds to a local folder. You can open multiple chats inside the same project, or open several projects at once so different agents can work in parallel.&lt;/p&gt;
&lt;p&gt;The task list shows different states:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Running: the agent is still executing.&lt;/li&gt;
&lt;li&gt;Waiting for approval: you need to confirm permissions, networking, dependency installation, or a high-risk action.&lt;/li&gt;
&lt;li&gt;Completed: the task has finished, and you can inspect the result or continue asking.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is more intuitive than switching between multiple terminal windows, and it is better suited to managing several AI tasks at once.&lt;/p&gt;
&lt;h2 id=&#34;sandbox-and-permission-control&#34;&gt;Sandbox and Permission Control
&lt;/h2&gt;&lt;p&gt;Codex App&amp;rsquo;s permission system is built around the sandbox. By default, the current project folder becomes the agent&amp;rsquo;s main workspace.&lt;/p&gt;
&lt;p&gt;Common permission boundaries include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It can read and modify files inside the project directory.&lt;/li&gt;
&lt;li&gt;It cannot freely modify files outside the project by default.&lt;/li&gt;
&lt;li&gt;Networking or high-risk commands are restricted by default.&lt;/li&gt;
&lt;li&gt;When elevated access is needed, it asks the user for approval.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A practical mode is &amp;ldquo;auto review&amp;rdquo;: low-risk actions are automatically allowed, while high-risk actions are still confirmed by the user. This reduces frequent pop-ups while keeping dangerous operations from happening silently.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Full access&amp;rdquo; should be enabled cautiously. It is suitable when you know exactly what the agent needs to do and the project already has Git backups and important files have separate backups. It is not recommended as a long-term daily default.&lt;/p&gt;
&lt;h2 id=&#34;context-models-and-quotas&#34;&gt;Context, Models, and Quotas
&lt;/h2&gt;&lt;p&gt;Codex App shows the current chat&amp;rsquo;s context usage. The longer the conversation and the more history it contains, the more context the model needs to process.&lt;/p&gt;
&lt;p&gt;Useful habits:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Start a new chat after finishing a task.&lt;/li&gt;
&lt;li&gt;Long chats can be compressed manually, but do not treat compression as perfect memory.&lt;/li&gt;
&lt;li&gt;For complex tasks, clearly state goals, boundaries, and acceptance criteria.&lt;/li&gt;
&lt;li&gt;Do not dump large irrelevant logs, errors, or files into a chat all at once.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For model selection, adjust reasoning strength according to task complexity. Simple edits, writing, and repetitive tasks do not always need the strongest model. Architecture migration, difficult bugs, and cross-file refactors are better suited to stronger models.&lt;/p&gt;
&lt;p&gt;If the interface has a fast mode, remember that it usually consumes more quota. Use it when speed matters, but not as a daily default.&lt;/p&gt;
&lt;h2 id=&#34;image-generation-and-multimodal-inputs&#34;&gt;Image Generation and Multimodal Inputs
&lt;/h2&gt;&lt;p&gt;Codex App can accept images and files as context, and can call image generation in suitable scenarios.&lt;/p&gt;
&lt;p&gt;This is useful for frontend and content projects. For example, you can ask Codex to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fix page styles based on screenshots.&lt;/li&gt;
&lt;li&gt;Replace unsuitable images in a webpage.&lt;/li&gt;
&lt;li&gt;Generate product images, carousel images, or page assets.&lt;/li&gt;
&lt;li&gt;Point out what needs to be changed from a UI screenshot.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A more efficient approach is not to say only &amp;ldquo;make it look better&amp;rdquo;, but to use screenshots and point to concrete problems, such as &amp;ldquo;the spacing in this card is too large&amp;rdquo;, &amp;ldquo;this image does not match the service scene&amp;rdquo;, or &amp;ldquo;make the map area clearer&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;steer-correcting-direction-during-execution&#34;&gt;Steer: Correcting Direction During Execution
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Steer&lt;/code&gt; can be understood as taking over the direction during execution. If the agent has already started but you realize it misunderstood the direction, you should not always wait for it to finish before correcting it.&lt;/p&gt;
&lt;p&gt;You can use steering to insert a new instruction into the current execution flow and make Codex correct course.&lt;/p&gt;
&lt;p&gt;Good use cases for Steer include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The agent misunderstood the requirement.&lt;/li&gt;
&lt;li&gt;The generated page style is clearly wrong.&lt;/li&gt;
&lt;li&gt;The current plan is too expensive or heavy.&lt;/li&gt;
&lt;li&gt;You need to add a key constraint temporarily.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In general, keep the default queued behavior and manually use Steer only when intervention is needed. This avoids disrupting normal tasks while still letting you pull the direction back at key moments.&lt;/p&gt;
&lt;h2 id=&#34;plan-mode-and-built-in-browser&#34;&gt;Plan Mode and Built-In Browser
&lt;/h2&gt;&lt;p&gt;For complex tasks, start with plan mode. In plan mode, Codex does not immediately modify code. It first outputs a plan and may ask key questions with cards.&lt;/p&gt;
&lt;p&gt;Tasks suitable for plan mode include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Framework migration, such as moving a React project to Next.js.&lt;/li&gt;
&lt;li&gt;Large refactors.&lt;/li&gt;
&lt;li&gt;Features involving databases, authentication, or deployment.&lt;/li&gt;
&lt;li&gt;Requirements where you have not decided the technical path.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The right panel in Codex App can open a built-in browser to preview the local development server. You can annotate the page and let Codex modify a specific UI location. This &amp;ldquo;look at the page, click the position, ask AI to change it&amp;rdquo; workflow is often better for frontend debugging than pure text descriptions.&lt;/p&gt;
&lt;h2 id=&#34;git-ide-and-code-rollback&#34;&gt;Git, IDE, and Code Rollback
&lt;/h2&gt;&lt;p&gt;Codex App is not a full IDE. It can view code and add annotations, but handwritten editing is still better done in VS Code, Cursor, Windsurf, or another IDE.&lt;/p&gt;
&lt;p&gt;Every Codex project should initialize Git early:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Ask Codex to create or check &lt;code&gt;.gitignore&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Commit once after reaching a usable state.&lt;/li&gt;
&lt;li&gt;Ensure a clean commit point before each large change.&lt;/li&gt;
&lt;li&gt;Roll back with Git if you are not satisfied.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If you roll back only the chat history, the code will not automatically roll back. A safer approach is to return the chat to the right point, then use a Git commit hash to return the code to the corresponding state.&lt;/p&gt;
&lt;h2 id=&#34;worktree-parallel-development-in-multiple-directions&#34;&gt;Worktree: Parallel Development in Multiple Directions
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;git worktree&lt;/code&gt; is especially suitable for parallel agents in Codex App.&lt;/p&gt;
&lt;p&gt;It creates multiple independent working directories from the same repository, each corresponding to a different branch. This lets different agents work in different folders at the same time without overwriting each other.&lt;/p&gt;
&lt;p&gt;Typical usage:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;One worktree optimizes the customer review component.&lt;/li&gt;
&lt;li&gt;One worktree adjusts store information and map layout.&lt;/li&gt;
&lt;li&gt;Merge both tasks back to main after completion.&lt;/li&gt;
&lt;li&gt;Remove temporary worktrees after merging.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is much safer than letting multiple agents modify code in the same directory. If conflicts happen, review and merge them using normal Git workflows.&lt;/p&gt;
&lt;h2 id=&#34;cloud-execution-environment&#34;&gt;Cloud Execution Environment
&lt;/h2&gt;&lt;p&gt;Codex can work not only on your local machine, but also in a cloud environment.&lt;/p&gt;
&lt;p&gt;Cloud execution is suitable when:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You are outside and only have a phone.&lt;/li&gt;
&lt;li&gt;You want agents to run long tasks in the background.&lt;/li&gt;
&lt;li&gt;The code has already been synced to GitHub and Codex needs to modify the remote repository.&lt;/li&gt;
&lt;li&gt;You want changes reviewed and merged through PRs.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A typical flow is: push local code to GitHub, let Codex pull the repository in a cloud environment, execute the task, generate changes, then present them as a PR or diff for review.&lt;/p&gt;
&lt;p&gt;When continuing local development, remember to pull down the latest remote changes.&lt;/p&gt;
&lt;h2 id=&#34;memory-system-write-a-good-agentsmd&#34;&gt;Memory System: Write a Good AGENTS.md
&lt;/h2&gt;&lt;p&gt;New chats do not have complete historical memory by default. Once a project becomes complex, repeatedly explaining the background is inefficient.&lt;/p&gt;
&lt;p&gt;The most general solution is to maintain &lt;code&gt;AGENTS.md&lt;/code&gt; in the project root. This file can record:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Project goals and main tech stack.&lt;/li&gt;
&lt;li&gt;Common commands.&lt;/li&gt;
&lt;li&gt;Directory structure.&lt;/li&gt;
&lt;li&gt;Code style and naming conventions.&lt;/li&gt;
&lt;li&gt;Prohibited actions, such as bulk deleting files.&lt;/li&gt;
&lt;li&gt;Test, build, and deployment rules.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can also ask Codex to read the project and generate a first version of &lt;code&gt;AGENTS.md&lt;/code&gt;, then review it manually. For complex projects, this file is worth maintaining.&lt;/p&gt;
&lt;p&gt;Global rules should be used carefully. They are suitable for universal safety constraints, such as &amp;ldquo;do not recursively delete directories&amp;rdquo; or &amp;ldquo;confirm before destructive operations&amp;rdquo;. Do not put project-specific details into global rules, or they will pollute other projects.&lt;/p&gt;
&lt;h2 id=&#34;plugins-and-automations&#34;&gt;Plugins and Automations
&lt;/h2&gt;&lt;p&gt;Plugins connect Codex to external services such as GitHub, Gmail, Google Drive, databases, and deployment platforms.&lt;/p&gt;
&lt;p&gt;Their value is reducing copy and paste. For example, Codex can:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Check star trends for a GitHub repository.&lt;/li&gt;
&lt;li&gt;Summarize email content and send it to you.&lt;/li&gt;
&lt;li&gt;Run a recurring check.&lt;/li&gt;
&lt;li&gt;Write the result as a summary.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Automations are suitable for repeated tasks. For example, checking repository data every Friday afternoon and sending an email report. Simple automation tasks usually do not require the strongest model; a lighter model is enough.&lt;/p&gt;
&lt;h2 id=&#34;skills-turn-workflows-into-reusable-capabilities&#34;&gt;Skills: Turn Workflows Into Reusable Capabilities
&lt;/h2&gt;&lt;p&gt;Skills are &amp;ldquo;professional playbooks&amp;rdquo; for Codex. They are not one-off prompts. They package a task flow, rules, scripts, and notes so Codex can reuse them reliably later.&lt;/p&gt;
&lt;p&gt;Common sources include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Official Skills.&lt;/li&gt;
&lt;li&gt;Third-party Skills.&lt;/li&gt;
&lt;li&gt;Skills you write yourself.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Good candidates for Skills include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Turning subtitles into illustrated notes.&lt;/li&gt;
&lt;li&gt;Writing weekly reports in a company format.&lt;/li&gt;
&lt;li&gt;Batch-processing images or documents.&lt;/li&gt;
&lt;li&gt;Fixed-format code reviews.&lt;/li&gt;
&lt;li&gt;Project initialization for a specific framework.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have copied and pasted the same prompt many times, it is worth turning it into a Skill.&lt;/p&gt;
&lt;h2 id=&#34;mcp-connect-external-tools-and-databases&#34;&gt;MCP: Connect External Tools and Databases
&lt;/h2&gt;&lt;p&gt;MCP can be understood as a standardized tool protocol for large models. Through MCP, Codex can call external services to complete more concrete tasks.&lt;/p&gt;
&lt;p&gt;For example, after connecting Supabase, Codex can:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Create database tables.&lt;/li&gt;
&lt;li&gt;Read database schemas.&lt;/li&gt;
&lt;li&gt;Modify backend endpoints.&lt;/li&gt;
&lt;li&gt;Submit frontend forms to the database.&lt;/li&gt;
&lt;li&gt;Debug problems based on database state.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is powerful, but permissions matter. Databases, production environments, deployment platforms, and email accounts are high-risk resources. When connecting for the first time, use a test project and a low-privilege account.&lt;/p&gt;
&lt;h2 id=&#34;deployment-plugins&#34;&gt;Deployment Plugins
&lt;/h2&gt;&lt;p&gt;Deployment platform plugins can let Codex complete builds and releases directly, such as deploying a frontend project to Netlify.&lt;/p&gt;
&lt;p&gt;These plugins are suitable for small websites, prototypes, internal tools, and demo projects. In real use, pay attention to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Run a local build before deployment.&lt;/li&gt;
&lt;li&gt;Do not write environment variables directly into code.&lt;/li&gt;
&lt;li&gt;Check whether the page opens normally after publishing.&lt;/li&gt;
&lt;li&gt;Keep human review for production projects.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;AI can help connect the deployment flow, but deployment permissions should still be managed carefully.&lt;/p&gt;
&lt;h2 id=&#34;computer-automation&#34;&gt;Computer Automation
&lt;/h2&gt;&lt;p&gt;With supported platforms and plugin environments, Codex can also operate browsers or desktop apps, completing tasks closer to RPA.&lt;/p&gt;
&lt;p&gt;Examples:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Open a chat app and prepare a message.&lt;/li&gt;
&lt;li&gt;Browse a project board and summarize task status.&lt;/li&gt;
&lt;li&gt;Generate an English brief.&lt;/li&gt;
&lt;li&gt;Send it to a specified recipient after you confirm.&lt;/li&gt;
&lt;li&gt;Turn the flow into a scheduled automation.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These capabilities are imaginative, but they require the strongest safety boundaries. Any operation involving sending messages, sending email, submitting forms, payments, or deleting data should retain human confirmation.&lt;/p&gt;
&lt;h2 id=&#34;usage-suggestions&#34;&gt;Usage Suggestions
&lt;/h2&gt;&lt;p&gt;The right way to use Codex App is not to let it fully take over everything at once, but to break tasks down and let it execute efficiently in a controlled environment.&lt;/p&gt;
&lt;p&gt;Recommended habits:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Initialize Git for every project.&lt;/li&gt;
&lt;li&gt;Use plan mode for complex tasks.&lt;/li&gt;
&lt;li&gt;Use worktree for parallel tasks.&lt;/li&gt;
&lt;li&gt;Put project rules in &lt;code&gt;AGENTS.md&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Keep human confirmation for high-risk actions.&lt;/li&gt;
&lt;li&gt;Turn repeated workflows into Skills or automations.&lt;/li&gt;
&lt;li&gt;Validate plugins and MCP in a test environment first.&lt;/li&gt;
&lt;/ul&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://openai.com/index/introducing-the-codex-app/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Introducing the Codex app - OpenAI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&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;Using Codex with your ChatGPT plan - OpenAI Help Center&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://openai.com/academy/codex-plugins-and-skills/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Plugins and skills - OpenAI Academy&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;summary&#34;&gt;Summary
&lt;/h2&gt;&lt;p&gt;Codex App is not &amp;ldquo;one more AI chat window&amp;rdquo;. Its focus is turning AI coding into a manageable workspace where local projects, cloud tasks, Git, worktree, plugins, Skills, MCP, and automation can connect.&lt;/p&gt;
&lt;p&gt;The key to using it well is balancing freedom and control. Small tasks can be handed to Codex boldly. Complex tasks should start with a plan. High-risk actions must be confirmed. Used this way, Codex can become not just a code-writing assistant, but a long-term engineering tool.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Claude for Creative Work: Anthropic Brings Claude into Adobe, Blender, Ableton, and SketchUp</title>
        <link>https://knightli.com/en/2026/05/01/claude-for-creative-work-connectors/</link>
        <pubDate>Fri, 01 May 2026 05:52:14 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/01/claude-for-creative-work-connectors/</guid>
        <description>&lt;p&gt;Anthropic released &lt;code&gt;Claude for Creative Work&lt;/code&gt; on April 28, 2026. The point is not another new chatbot, but bringing Claude into the software that creative industries already use.&lt;/p&gt;
&lt;p&gt;The partnership list is telling: &lt;code&gt;Blender&lt;/code&gt;, &lt;code&gt;Autodesk&lt;/code&gt;, &lt;code&gt;Adobe&lt;/code&gt;, &lt;code&gt;Ableton&lt;/code&gt;, and &lt;code&gt;Splice&lt;/code&gt;, along with tool ecosystems such as &lt;code&gt;Affinity by Canva&lt;/code&gt;, &lt;code&gt;Resolume&lt;/code&gt;, and &lt;code&gt;SketchUp&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;In simple terms, Anthropic wants Claude to do more than offer suggestions in a chat box. It wants Claude to enter concrete workflows for design, 3D, music, video, and live visuals.&lt;/p&gt;
&lt;h2 id=&#34;claude-cannot-replace-taste-but-it-can-replace-a-lot-of-drudgery&#34;&gt;Claude Cannot Replace Taste, but It Can Replace a Lot of Drudgery
&lt;/h2&gt;&lt;p&gt;Anthropic&amp;rsquo;s announcement is fairly restrained: Claude cannot replace a creator&amp;rsquo;s taste and imagination.&lt;/p&gt;
&lt;p&gt;That is the right judgment. The hard part of creative work is often not &amp;ldquo;generating something,&amp;rdquo; but deciding which direction is worth pursuing, which details should be kept, and which proposal fits the character of a project.&lt;/p&gt;
&lt;p&gt;But creative workflows also contain a lot of repetitive labor:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Batch-resizing images&lt;/li&gt;
&lt;li&gt;Renaming layers&lt;/li&gt;
&lt;li&gt;Exporting files in different formats&lt;/li&gt;
&lt;li&gt;Organizing assets&lt;/li&gt;
&lt;li&gt;Looking up software documentation&lt;/li&gt;
&lt;li&gt;Writing scripts to modify scenes&lt;/li&gt;
&lt;li&gt;Converting formats between multiple tools&lt;/li&gt;
&lt;li&gt;Turning an idea into a visible draft quickly&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These steps do not necessarily require &amp;ldquo;inspiration,&amp;rdquo; but they consume a lot of time. Claude&amp;rsquo;s role is more like freeing creators from these mechanical steps.&lt;/p&gt;
&lt;h2 id=&#34;connectors-are-the-core-of-this-release&#34;&gt;Connectors Are the Core of This Release
&lt;/h2&gt;&lt;p&gt;The key to this release is &lt;code&gt;connectors&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;connectors&lt;/code&gt; can be understood as bridges between Claude and external platforms or software. Instead of copying a request into Claude and then manually returning to the software to act on it, users can let Claude understand the tool directly, call capabilities, or read relevant documentation.&lt;/p&gt;
&lt;p&gt;The connection areas mentioned in Anthropic&amp;rsquo;s announcement include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Ableton&lt;/code&gt;: lets Claude answer questions based on official Live and Push documentation.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Adobe for creativity&lt;/code&gt;: connects to more than 50 tools in Creative Cloud, including Photoshop, Premiere, and Express.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Affinity by Canva&lt;/code&gt;: automates repetitive production tasks in professional creative workflows, such as batch image adjustment, layer renaming, and file export.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Autodesk Fusion&lt;/code&gt;: lets designers and engineers with Fusion subscriptions create and modify 3D models through conversation.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Blender&lt;/code&gt;: uses Blender&amp;rsquo;s Python API through natural language, helping users understand complex scenes, access documentation, and extend functionality.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Resolume Arena&lt;/code&gt; and &lt;code&gt;Resolume Wire&lt;/code&gt;: let VJs and live visual artists control Arena, Avenue, and Wire in real time using natural language.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;SketchUp&lt;/code&gt;: turns a conversation with Claude into a starting point for 3D modeling, such as describing a room, furniture, or a site concept before refining it in SketchUp.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Splice&lt;/code&gt;: lets music producers search royalty-free sample libraries directly from Claude.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These integrations cover design, audio, 3D, video, live performance, and engineering modeling. They are not a small experiment in one direction; they show Anthropic clearly moving toward a &amp;ldquo;creative software workbench.&amp;rdquo;&lt;/p&gt;
&lt;h2 id=&#34;what-it-means-for-creative-work&#34;&gt;What It Means for Creative Work
&lt;/h2&gt;&lt;p&gt;Based on the announcement, Claude&amp;rsquo;s uses in creative work can be grouped into several categories.&lt;/p&gt;
&lt;p&gt;The first is learning complex tools.&lt;/p&gt;
&lt;p&gt;Many creative applications are powerful, but their learning curves are steep. Blender, Ableton, Fusion, and Premiere are classic examples. Users can ask Claude to explain a modifier stack, describe a compositing technique, or demonstrate an unfamiliar feature instead of jumping between search results, forums, and official docs.&lt;/p&gt;
&lt;p&gt;The second is writing scripts and plugins.&lt;/p&gt;
&lt;p&gt;Creative software contains a lot of room for automation. Claude Code can help users write scripts, plugins, shaders, procedural animations, or parametric models. For creators who know a little technology but do not want to keep digging through APIs, this is very practical.&lt;/p&gt;
&lt;p&gt;The third is connecting toolchains.&lt;/p&gt;
&lt;p&gt;Real projects are rarely completed in a single application. Design may happen in Adobe, 3D in Blender or SketchUp, audio in Ableton, assets from Splice, and the final result may still need to enter a video or performance system. Claude can help convert formats, reorganize data, synchronize assets, and reduce manual handoffs.&lt;/p&gt;
&lt;p&gt;The fourth is rapid exploration and delivery.&lt;/p&gt;
&lt;p&gt;Anthropic also mentioned &lt;code&gt;Claude Design&lt;/code&gt;, a new product from Anthropic Labs for exploring software experience ideas. It can iterate visual proposals based on feedback, and its design results can be exported to other tools, starting with Canva.&lt;/p&gt;
&lt;p&gt;The fifth is reducing repetitive production work.&lt;/p&gt;
&lt;p&gt;For example: batch-processing assets, setting up project structures, modifying scene objects in bulk, and automating exports. Many creators know how to do these things; they simply do not want to spend an afternoon on repeated clicking.&lt;/p&gt;
&lt;h2 id=&#34;blender-is-the-most-notable-piece&#34;&gt;Blender Is the Most Notable Piece
&lt;/h2&gt;&lt;p&gt;In this announcement, &lt;code&gt;Blender&lt;/code&gt; has a particularly interesting position.&lt;/p&gt;
&lt;p&gt;Blender is a free and open-source 3D creation suite used in indie games, motion graphics, architectural visualization, film production, and more. It already has a powerful Python API and many complex workflows.&lt;/p&gt;
&lt;p&gt;Blender developers have created an MCP connector that can now be used officially in Claude.&lt;/p&gt;
&lt;p&gt;This connector can do things such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Analyze and debug an entire Blender scene&lt;/li&gt;
&lt;li&gt;Modify objects in a scene in bulk&lt;/li&gt;
&lt;li&gt;Write custom scripts with the Blender Python API&lt;/li&gt;
&lt;li&gt;Add new tools directly to the Blender interface&lt;/li&gt;
&lt;li&gt;Help users understand complex settings and documentation&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;More importantly, Anthropic has joined the Blender Development Fund as a patron, supporting Blender&amp;rsquo;s continued development of its Python API.&lt;/p&gt;
&lt;p&gt;This sends two signals.&lt;/p&gt;
&lt;p&gt;First, Anthropic is not only trying to connect with commercial software; it is also betting on open-source creative tools.&lt;/p&gt;
&lt;p&gt;Second, this connector is based on &lt;code&gt;MCP&lt;/code&gt;, so in theory it is not limited to Claude. Other large models could connect to it as well. That aligns well with Blender&amp;rsquo;s open-source and interoperability direction.&lt;/p&gt;
&lt;h2 id=&#34;this-is-not-ai-replacing-designers-it-is-ai-entering-the-tool-layer&#34;&gt;This Is Not &amp;ldquo;AI Replacing Designers&amp;rdquo;; It Is &amp;ldquo;AI Entering the Tool Layer&amp;rdquo;
&lt;/h2&gt;&lt;p&gt;The most important thing about this release is not whether Claude can generate an image, a piece of music, or a 3D model.&lt;/p&gt;
&lt;p&gt;The more important point is that AI is moving from the chat box into the tool layer.&lt;/p&gt;
&lt;p&gt;In the past, many AI creative tools worked like this:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Describe a need inside an AI tool.&lt;/li&gt;
&lt;li&gt;Get a result.&lt;/li&gt;
&lt;li&gt;Download or copy it out.&lt;/li&gt;
&lt;li&gt;Return to professional software and modify it manually.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The new direction looks more like this:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Claude understands your creative software.&lt;/li&gt;
&lt;li&gt;Claude reads relevant documentation or project context.&lt;/li&gt;
&lt;li&gt;Claude generates scripts, operates tools, organizes assets, or builds drafts.&lt;/li&gt;
&lt;li&gt;The creator continues judging and refining inside familiar software.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This is more attractive to professional users because they do not want to leave their existing toolchains or migrate all their work to a completely new AI platform.&lt;/p&gt;
&lt;h2 id=&#34;the-impact-on-students-and-creative-education&#34;&gt;The Impact on Students and Creative Education
&lt;/h2&gt;&lt;p&gt;Anthropic also mentioned that it is working with art and design programs to support courses involving creative computation.&lt;/p&gt;
&lt;p&gt;The first group of programs includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Art and Computation at Rhode Island School of Design&lt;/li&gt;
&lt;li&gt;Fundamentals of AI for Creatives at Ringling College of Art and Design&lt;/li&gt;
&lt;li&gt;MA/MFA Computational Arts at Goldsmiths, University of London&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Students and teachers will receive access to Claude and the new connectors, and their feedback will help Anthropic understand what creative practitioners actually need.&lt;/p&gt;
&lt;p&gt;This is interesting as well. If AI creation stays at the level of &amp;ldquo;generating assets,&amp;rdquo; it can easily become a showpiece. Once it enters courses, the more important questions become:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;How should students understand the processes behind tools?&lt;/li&gt;
&lt;li&gt;How can AI be used as a tool for exploration and prototyping?&lt;/li&gt;
&lt;li&gt;How can they preserve their own judgment?&lt;/li&gt;
&lt;li&gt;How can code and automation expand creative boundaries?&lt;/li&gt;
&lt;li&gt;How can they avoid every work taking on the same AI flavor?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These questions are more practical than simply debating whether AI will replace creators.&lt;/p&gt;
&lt;h2 id=&#34;who-should-pay-attention-to-this-release&#34;&gt;Who Should Pay Attention to This Release
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Claude for Creative Work&lt;/code&gt; is especially worth watching for several groups:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;People using Blender, SketchUp, or Fusion for 3D modeling&lt;/li&gt;
&lt;li&gt;People using Adobe or Affinity for design and video production&lt;/li&gt;
&lt;li&gt;People using Ableton or Splice for music production&lt;/li&gt;
&lt;li&gt;People who need to connect multiple creative tools into a workflow&lt;/li&gt;
&lt;li&gt;People with some scripting ability who want to automate creative software&lt;/li&gt;
&lt;li&gt;People working in creative education, interaction design, or computational arts courses&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you only occasionally use AI to generate images, this release may not immediately change your experience.&lt;/p&gt;
&lt;p&gt;But if you already work inside professional software and often run into the feeling of &amp;ldquo;I know what to do, but these steps are too tedious,&amp;rdquo; connectors could be very valuable.&lt;/p&gt;
&lt;h2 id=&#34;boundaries-to-keep-in-mind&#34;&gt;Boundaries to Keep in Mind
&lt;/h2&gt;&lt;p&gt;These tools are not omnipotent.&lt;/p&gt;
&lt;p&gt;First, Claude still needs users to judge whether the result fits the aesthetics, brand, and project goals.&lt;/p&gt;
&lt;p&gt;Second, when automating operations in professional software, it is best to start with small tasks rather than immediately letting it batch-modify project files that may be hard to recover.&lt;/p&gt;
&lt;p&gt;Third, connector quality is crucial. A connector that can only look up documentation and a connector that can actually operate software are two very different experiences.&lt;/p&gt;
&lt;p&gt;Fourth, creative software projects often contain complex files, asset dependencies, and version management. Once AI is involved, backups and rollback workflows become even more important.&lt;/p&gt;
&lt;p&gt;Fifth, copyright, licensing, and asset sources still need to be checked by the user. For example, Splice emphasizes royalty-free samples, but real project use still requires confirming the specific license terms.&lt;/p&gt;
&lt;h2 id=&#34;conclusion&#34;&gt;Conclusion
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Claude for Creative Work&lt;/code&gt; is not a single feature update. It is Anthropic&amp;rsquo;s step toward pushing Claude into the creative software ecosystem.&lt;/p&gt;
&lt;p&gt;The point is not to turn Claude into the creator, but to make Claude a tool assistant beside creators: looking up docs, writing scripts, batch-processing, connecting software, generating drafts, and reducing repetitive labor.&lt;/p&gt;
&lt;p&gt;The long-term value lies in Claude beginning to enter the environments creators use every day, such as Blender, Adobe, Ableton, and SketchUp.&lt;/p&gt;
&lt;p&gt;When AI is no longer just a standalone web page, but can understand and call professional tools, creative workflows will change in more practical ways.&lt;/p&gt;
&lt;p&gt;Reference link:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.anthropic.com/news/claude-for-creative-work&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Claude for Creative Work - Anthropic&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>qmd: Local Markdown Document Search for AI Agents</title>
        <link>https://knightli.com/en/2026/05/01/qmd-markdown-search-for-ai-agents/</link>
        <pubDate>Fri, 01 May 2026 03:12:57 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/01/qmd-markdown-search-for-ai-agents/</guid>
        <description>&lt;p&gt;&lt;code&gt;qmd&lt;/code&gt; is a search tool for local Markdown documents, with AI Agents as its main target users.&lt;/p&gt;
&lt;p&gt;It solves a specific problem: when a project contains many &lt;code&gt;.md&lt;/code&gt; documents, AI coding assistants often do not know which file to read, which section to cite, or which instructions are current. Full-text grep can find keywords, but it does not understand meaning well. Putting all documentation into the context wastes window space and easily introduces irrelevant content.&lt;/p&gt;
&lt;p&gt;The idea behind &lt;code&gt;qmd&lt;/code&gt; is to index Markdown documents first, then return the most relevant snippets through a search interface for AI to use. It can be used as a command-line tool, integrated through an SDK, or exposed as an MCP Server for clients that support MCP.&lt;/p&gt;
&lt;h2 id=&#34;what-problem-it-solves&#34;&gt;What Problem It Solves
&lt;/h2&gt;&lt;p&gt;Real projects usually have more than one or two README files.&lt;/p&gt;
&lt;p&gt;You may have:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Architecture notes&lt;/li&gt;
&lt;li&gt;API documentation&lt;/li&gt;
&lt;li&gt;Development conventions&lt;/li&gt;
&lt;li&gt;Deployment procedures&lt;/li&gt;
&lt;li&gt;Architecture decision records&lt;/li&gt;
&lt;li&gt;Troubleshooting notes&lt;/li&gt;
&lt;li&gt;Requirement documents&lt;/li&gt;
&lt;li&gt;AI usage instructions&lt;/li&gt;
&lt;li&gt;Toolchain notes and reminders&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Humans can browse documents through directories, but AI Agents need a clear retrieval entry point. Otherwise, they may:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Read the wrong document&lt;/li&gt;
&lt;li&gt;Miss key constraints&lt;/li&gt;
&lt;li&gt;Use outdated instructions&lt;/li&gt;
&lt;li&gt;Put irrelevant content into context&lt;/li&gt;
&lt;li&gt;Invent rules in answers based on experience&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is where &lt;code&gt;qmd&lt;/code&gt; is useful. It turns local Markdown documents into a searchable knowledge source, so AI can search first when it needs context, then answer or act based on matched snippets.&lt;/p&gt;
&lt;h2 id=&#34;search-approach&#34;&gt;Search Approach
&lt;/h2&gt;&lt;p&gt;The README says &lt;code&gt;qmd&lt;/code&gt; combines several retrieval methods:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;BM25 keyword search&lt;/li&gt;
&lt;li&gt;Vector search&lt;/li&gt;
&lt;li&gt;LLM reranking&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;BM25 is good for clear keywords. If you search for a function name, configuration key, error code, or file name, it is usually direct and effective.&lt;/p&gt;
&lt;p&gt;Vector search is better for semantic questions. For example, if you ask “how does this project handle permission validation,” the documentation may not contain that exact phrase, but it may contain related descriptions about authentication, access control, and role checks.&lt;/p&gt;
&lt;p&gt;LLM reranking is used to reorder candidate results. The first two steps find potentially relevant content, and the model then judges which snippets best match the current question.&lt;/p&gt;
&lt;p&gt;This combination is more suitable for AI Agents than plain keyword search, because Agent questions are often task intentions rather than fixed keywords.&lt;/p&gt;
&lt;h2 id=&#34;why-markdown&#34;&gt;Why Markdown
&lt;/h2&gt;&lt;p&gt;Markdown is the most common documentation format in development projects.&lt;/p&gt;
&lt;p&gt;It is simple enough to store in Git and structured enough to include headings, lists, code blocks, links, and tables. For AI, Markdown is also easier to parse than PDFs, web snapshots, or screenshots.&lt;/p&gt;
&lt;p&gt;Because &lt;code&gt;qmd&lt;/code&gt; focuses on Markdown, it can process developer documentation more directly:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Split content by headings and paragraphs&lt;/li&gt;
&lt;li&gt;Preserve code blocks&lt;/li&gt;
&lt;li&gt;Preserve document paths&lt;/li&gt;
&lt;li&gt;Return snippets suitable for citation&lt;/li&gt;
&lt;li&gt;Let the Agent know which document an answer comes from&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is more stable than asking AI to randomly scan a repository, and it saves more context than putting every document into a prompt at once.&lt;/p&gt;
&lt;h2 id=&#34;three-entry-points&#34;&gt;Three Entry Points
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;qmd&lt;/code&gt; provides three entry points: CLI, SDK, and MCP Server.&lt;/p&gt;
&lt;h3 id=&#34;1-cli&#34;&gt;1. CLI
&lt;/h3&gt;&lt;p&gt;The CLI is suitable for direct terminal use and for scripts.&lt;/p&gt;
&lt;p&gt;You can index a documentation directory and then search related content with commands. For developers, the CLI is the easiest way to validate the tool: first see whether it can find the correct documents, then consider integrating it into more complex workflows.&lt;/p&gt;
&lt;p&gt;This kind of tool is useful inside local projects. For example, before changing code you can search design documents; before debugging, search troubleshooting notes; before writing an API, search API conventions.&lt;/p&gt;
&lt;h3 id=&#34;2-sdk&#34;&gt;2. SDK
&lt;/h3&gt;&lt;p&gt;The SDK is suitable for integrating &lt;code&gt;qmd&lt;/code&gt; into your own tools.&lt;/p&gt;
&lt;p&gt;If you are building an internal development assistant, documentation Q&amp;amp;A system, code review bot, or project knowledge base, you can call the search capability through the SDK instead of asking users to run commands directly.&lt;/p&gt;
&lt;p&gt;The SDK gives more control over:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Search directories&lt;/li&gt;
&lt;li&gt;Query content&lt;/li&gt;
&lt;li&gt;Number of returned results&lt;/li&gt;
&lt;li&gt;Result format&lt;/li&gt;
&lt;li&gt;Whether to pass results to a model for summarization&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This fits scenarios that need deeper integration.&lt;/p&gt;
&lt;h3 id=&#34;3-mcp-server&#34;&gt;3. MCP Server
&lt;/h3&gt;&lt;p&gt;MCP is the most valuable entry point for AI Agents.&lt;/p&gt;
&lt;p&gt;Through MCP Server, clients that support MCP can call &lt;code&gt;qmd&lt;/code&gt; as a document search tool. This lets an Agent search local Markdown documents before acting, instead of guessing project rules.&lt;/p&gt;
&lt;p&gt;A typical workflow could be:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The user asks AI to modify a feature&lt;/li&gt;
&lt;li&gt;AI calls &lt;code&gt;qmd&lt;/code&gt; to search related design documents&lt;/li&gt;
&lt;li&gt;&lt;code&gt;qmd&lt;/code&gt; returns the most relevant Markdown snippets&lt;/li&gt;
&lt;li&gt;AI modifies code based on those document constraints&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This is more natural than manually pasting all rules into a new session, and it is better suited to long-term projects.&lt;/p&gt;
&lt;h2 id=&#34;suitable-scenarios&#34;&gt;Suitable Scenarios
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;qmd&lt;/code&gt; is suitable for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Projects with many Markdown documents&lt;/li&gt;
&lt;li&gt;AI Agents that often need to look up project rules&lt;/li&gt;
&lt;li&gt;Teams that want AI answers to cite local documents&lt;/li&gt;
&lt;li&gt;Documentation spread across multiple directories&lt;/li&gt;
&lt;li&gt;Reusing the same retrieval capability across CLI, SDK, and MCP&lt;/li&gt;
&lt;li&gt;Reducing AI coding assistants’ tendency to guess project conventions&lt;/li&gt;
&lt;li&gt;Connecting local knowledge bases to Claude Desktop, Claude Code, or other MCP clients&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If your project only has one short README, directly asking AI to read the file is enough.&lt;/p&gt;
&lt;p&gt;But if the documentation has grown to dozens or hundreds of files, or if you want the Agent to search documents before acting, this type of indexing tool becomes meaningful.&lt;/p&gt;
&lt;h2 id=&#34;difference-from-grep&#34;&gt;Difference from grep
&lt;/h2&gt;&lt;p&gt;Tools such as &lt;code&gt;grep&lt;/code&gt; and &lt;code&gt;rg&lt;/code&gt; are excellent for exact search.&lt;/p&gt;
&lt;p&gt;If you know you need &lt;code&gt;DATABASE_URL&lt;/code&gt;, &lt;code&gt;authMiddleware&lt;/code&gt;, &lt;code&gt;404&lt;/code&gt;, or &lt;code&gt;docker compose&lt;/code&gt;, keyword search is usually the fastest.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;qmd&lt;/code&gt; is better when you do not know the exact words.&lt;/p&gt;
&lt;p&gt;For example, you may ask:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;What is the release process for this project?&lt;/li&gt;
&lt;li&gt;What conventions apply when adding a new API?&lt;/li&gt;
&lt;li&gt;Was the caching strategy documented before?&lt;/li&gt;
&lt;li&gt;Which documents should AI read before changing code?&lt;/li&gt;
&lt;li&gt;Where is the design background for a module?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These questions usually require semantic retrieval rather than matching one word. The BM25 + vector + reranking combination in &lt;code&gt;qmd&lt;/code&gt; is intended to make these questions find the right context more easily.&lt;/p&gt;
&lt;h2 id=&#34;relationship-with-rag&#34;&gt;Relationship with RAG
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;qmd&lt;/code&gt; can be seen as a lightweight RAG component for Markdown documents.&lt;/p&gt;
&lt;p&gt;It does not try to build a full Q&amp;amp;A system for you. It focuses on one step: finding relevant document snippets. How those snippets are used afterward can be handled by CLI, SDK, an MCP client, or your own Agent workflow.&lt;/p&gt;
&lt;p&gt;This positioning is practical. Many projects do not need a large knowledge base system; they only need AI to search local documents more accurately and quickly, then bring the results back into the current task.&lt;/p&gt;
&lt;h2 id=&#34;notes-for-use&#34;&gt;Notes for Use
&lt;/h2&gt;&lt;p&gt;First, documentation quality still matters.&lt;/p&gt;
&lt;p&gt;A retrieval tool can only find existing content. If the documents are outdated, duplicated, or contradictory, AI may still receive wrong context. Before connecting &lt;code&gt;qmd&lt;/code&gt; to an Agent, clean up the key documents first.&lt;/p&gt;
&lt;p&gt;Second, do not make the index scope too broad.&lt;/p&gt;
&lt;p&gt;Indexing every Markdown file in the repository is not always better. Dependency documentation, temporary notes, and old draft solutions can pollute results. A better approach is to define which directories are trusted documentation sources.&lt;/p&gt;
&lt;p&gt;Third, search results should preserve sources.&lt;/p&gt;
&lt;p&gt;When AI uses document snippets, it should know which file and section they came from. This makes human review traceable and reduces the risk of “this looks like a document conclusion, but it is only a model summary.”&lt;/p&gt;
&lt;p&gt;Fourth, do not replace human judgment completely.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;qmd&lt;/code&gt; can improve context recall quality, but it is not a replacement for the source of truth. Important changes still require current code, test results, and the latest requirements.&lt;/p&gt;
&lt;h2 id=&#34;suitable-teams&#34;&gt;Suitable Teams
&lt;/h2&gt;&lt;p&gt;If your team has already started putting AI Agents into daily development workflows, tools like &lt;code&gt;qmd&lt;/code&gt; can be valuable.&lt;/p&gt;
&lt;p&gt;They are especially suitable for teams that:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Write a lot of documentation&lt;/li&gt;
&lt;li&gt;Have a long project history&lt;/li&gt;
&lt;li&gt;Need both new people and AI to quickly understand context&lt;/li&gt;
&lt;li&gt;Maintain architecture decision records&lt;/li&gt;
&lt;li&gt;Have many Markdown convention documents&lt;/li&gt;
&lt;li&gt;Want AI to check rules before modifying code&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Its goal is not to make AI all-knowing. It is to make AI guess less and look things up more.&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/tobi/qmd&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;tobi/qmd&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;qmd&lt;/code&gt; is that it turns local Markdown documents into a search entry point that AI Agents can reliably call.&lt;/p&gt;
&lt;p&gt;When project documentation moves from “instructions for humans” to “a context source searchable by both humans and AI,” AI coding assistants can follow project rules more easily.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Prompt Optimizer: An Open-Source Tool for Prompt Optimization, Testing, and MCP</title>
        <link>https://knightli.com/en/2026/05/01/prompt-optimizer-prompt-engineering-tool/</link>
        <pubDate>Fri, 01 May 2026 03:09:07 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/01/prompt-optimizer-prompt-engineering-tool/</guid>
        <description>&lt;p&gt;&lt;code&gt;Prompt Optimizer&lt;/code&gt; is an open-source tool for improving prompts. Its goal is straightforward: help you turn a rough prompt into something clearer, more stable, and easier for large language models to follow.&lt;/p&gt;
&lt;p&gt;It is not just a page that “polishes my prompt.” The project provides prompt optimization, result testing, comparison and evaluation, multi-model access, image prompt handling, and MCP integration. For people who often write system prompts, user prompts, and AI workflow templates, it feels more like a dedicated prompt workbench.&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 run into similar problems when using AI:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Prompts keep getting longer, but output quality does not clearly improve&lt;/li&gt;
&lt;li&gt;The same task behaves differently after switching models&lt;/li&gt;
&lt;li&gt;System prompts and user prompts are mixed together and hard to debug&lt;/li&gt;
&lt;li&gt;After changing a prompt, it is unclear whether the new version is better&lt;/li&gt;
&lt;li&gt;Variable templates are useful, but manual replacement and testing are tedious&lt;/li&gt;
&lt;li&gt;Prompt optimization should be available to other AI tools, but there is no standard interface&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;Prompt Optimizer&lt;/code&gt; is designed around these problems. It breaks “writing a prompt” into optimization, testing, evaluation, comparison, and iteration, so prompt tuning is no longer based only on intuition.&lt;/p&gt;
&lt;h2 id=&#34;main-features&#34;&gt;Main Features
&lt;/h2&gt;&lt;h3 id=&#34;1-optimize-system-prompts-and-user-prompts&#34;&gt;1. Optimize System Prompts and User Prompts
&lt;/h3&gt;&lt;p&gt;There is more than one kind of prompt.&lt;/p&gt;
&lt;p&gt;System prompts usually define roles, goals, boundaries, output rules, and working methods. User prompts are closer to the input for one specific task. When the two are mixed together, the model can miss the key point, and reuse becomes harder.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Prompt Optimizer&lt;/code&gt; supports both system prompt optimization and user prompt optimization. You can improve long-term reusable role definitions separately from the input for a specific task.&lt;/p&gt;
&lt;p&gt;This is useful for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Writing rules for AI coding assistants&lt;/li&gt;
&lt;li&gt;Designing customer service, reviewer, translation, and analysis roles&lt;/li&gt;
&lt;li&gt;Optimizing text-to-image prompts&lt;/li&gt;
&lt;li&gt;Turning temporary requirements into reusable templates&lt;/li&gt;
&lt;li&gt;Preparing different prompt styles for different models&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2-test-and-compare-outputs&#34;&gt;2. Test and Compare Outputs
&lt;/h3&gt;&lt;p&gt;Optimizing a prompt is not enough. The important question is whether the optimized prompt actually performs better.&lt;/p&gt;
&lt;p&gt;The project supports analysis, single-result evaluation, and multi-result comparison. You can run the original prompt and the optimized prompt on the same task, then compare whether the output is more accurate, stable, and aligned with the goal.&lt;/p&gt;
&lt;p&gt;This is more practical than prompts that only “look more professional.” Many prompts look complete on the surface but produce verbose, rigid, or even misdirected output. Comparison testing helps reveal that early.&lt;/p&gt;
&lt;h3 id=&#34;3-multi-model-support&#34;&gt;3. Multi-Model Support
&lt;/h3&gt;&lt;p&gt;The README says the project supports model services such as OpenAI, Gemini, DeepSeek, Zhipu AI, and SiliconFlow, as well as custom OpenAI-compatible APIs.&lt;/p&gt;
&lt;p&gt;This matters because prompt performance depends heavily on the model. The same prompt can behave very differently across models. Multi-model testing helps determine:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Whether the prompt itself is weak&lt;/li&gt;
&lt;li&gt;Whether a specific model is unsuitable for the task&lt;/li&gt;
&lt;li&gt;Whether different model-specific prompt versions are needed&lt;/li&gt;
&lt;li&gt;Whether a smaller model can become usable with a clearer prompt&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you use Ollama locally, or your company has an OpenAI-compatible internal model service, it can also be connected through a custom API.&lt;/p&gt;
&lt;h3 id=&#34;4-advanced-testing-mode&#34;&gt;4. Advanced Testing Mode
&lt;/h3&gt;&lt;p&gt;The project provides context variable management, multi-turn conversation testing, and Function Calling support.&lt;/p&gt;
&lt;p&gt;Variable management is useful for templated tasks. For example, if you have prompts for second-hand sales replies, product descriptions, email responses, code reviews, or document generation, you can replace variables such as product, price, tone, and target user to test different inputs quickly.&lt;/p&gt;
&lt;p&gt;Multi-turn conversation testing helps validate long-running dialogue behavior. Many prompts look fine in a single turn, but once follow-up questions begin, they may forget constraints, drift away from the role, or repeat explanations. Multi-turn testing is closer to real usage.&lt;/p&gt;
&lt;p&gt;Function Calling support is suitable for more engineering-oriented AI applications. It helps validate model behavior around tool calls, parameter generation, and structured output.&lt;/p&gt;
&lt;h3 id=&#34;5-image-generation-prompts&#34;&gt;5. Image Generation Prompts
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;Prompt Optimizer&lt;/code&gt; also supports text-to-image and image-to-image workflows. The README mentions integration with image models such as Gemini and Seedream.&lt;/p&gt;
&lt;p&gt;Image prompt optimization is different from text tasks. It focuses more on subject, composition, spatial relationship, style, material, lighting, mood, and constraints. Turning a vague idea into a controllable visual description is often more valuable than simply making the prompt longer.&lt;/p&gt;
&lt;p&gt;If you often generate product images, covers, illustrations, key visuals, or style references, this type of optimization is useful.&lt;/p&gt;
&lt;h2 id=&#34;ways-to-use-it&#34;&gt;Ways to Use It
&lt;/h2&gt;&lt;p&gt;The project provides several entry points:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Online version&lt;/li&gt;
&lt;li&gt;Vercel self-hosting&lt;/li&gt;
&lt;li&gt;Desktop app&lt;/li&gt;
&lt;li&gt;Chrome extension&lt;/li&gt;
&lt;li&gt;Docker deployment&lt;/li&gt;
&lt;li&gt;Docker Compose deployment&lt;/li&gt;
&lt;li&gt;MCP Server&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The online version is good for quick trials. The project notes that it is a pure frontend app: data is stored locally in the browser and sent directly to AI providers.&lt;/p&gt;
&lt;p&gt;The desktop app is better when you need to connect directly to different model APIs. Browser environments can run into CORS limits; the desktop app avoids those issues, especially when connecting to local Ollama or commercial APIs with strict cross-origin policies.&lt;/p&gt;
&lt;p&gt;Docker deployment is suitable for your own server or intranet environment. The README gives this basic command:&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;docker run -d -p 8081:80 --restart unless-stopped --name prompt-optimizer linshen/prompt-optimizer
&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 configure API keys and access passwords, pass 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-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 -p 8081:80 &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;  -e &lt;span class=&#34;nv&#34;&gt;VITE_OPENAI_API_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;your_key &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;  -e &lt;span class=&#34;nv&#34;&gt;ACCESS_USERNAME&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;your_username &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;  -e &lt;span class=&#34;nv&#34;&gt;ACCESS_PASSWORD&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;your_password &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;  --restart unless-stopped &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 prompt-optimizer &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;  linshen/prompt-optimizer
&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 Docker Hub is slow in China, the project also provides an Alibaba Cloud image address in the README.&lt;/p&gt;
&lt;h2 id=&#34;what-mcp-enables&#34;&gt;What MCP Enables
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Prompt Optimizer&lt;/code&gt; supports Model Context Protocol, or MCP.&lt;/p&gt;
&lt;p&gt;When running through Docker, the MCP service can start together with the Web app and be accessed through the &lt;code&gt;/mcp&lt;/code&gt; path. This turns it from a Web tool into something that can be called by MCP-compatible apps such as Claude Desktop.&lt;/p&gt;
&lt;p&gt;The README lists these MCP tools:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;optimize-user-prompt&lt;/code&gt;: optimize user prompts&lt;/li&gt;
&lt;li&gt;&lt;code&gt;optimize-system-prompt&lt;/code&gt;: optimize system prompts&lt;/li&gt;
&lt;li&gt;&lt;code&gt;iterate-prompt&lt;/code&gt;: perform targeted iteration on an existing prompt&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These interfaces are well suited for AI workflows. For example, when writing a complex task prompt, an MCP-compatible client can call the prompt optimization tool directly instead of requiring you to open a Web page and copy text manually.&lt;/p&gt;
&lt;h2 id=&#34;difference-from-normal-chat-tools&#34;&gt;Difference from Normal Chat Tools
&lt;/h2&gt;&lt;p&gt;Normal chat tools can also help rewrite prompts, but they usually lack several parts:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Saving and comparing multiple versions is inconvenient&lt;/li&gt;
&lt;li&gt;Testing multiple models at once is inconvenient&lt;/li&gt;
&lt;li&gt;Turning variables into templates is inconvenient&lt;/li&gt;
&lt;li&gt;Multi-turn conversation validation is inconvenient&lt;/li&gt;
&lt;li&gt;Integrating through MCP or self-hosting is inconvenient&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The value of &lt;code&gt;Prompt Optimizer&lt;/code&gt; is that it turns prompt optimization into a repeatable process. It does not just give you a version that “looks more complete”; it lets you keep adjusting prompts around real outputs.&lt;/p&gt;
&lt;h2 id=&#34;who-should-use-it&#34;&gt;Who Should Use It
&lt;/h2&gt;&lt;p&gt;This project is worth attention if you:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Often write system prompts&lt;/li&gt;
&lt;li&gt;Design roles and output formats for AI applications&lt;/li&gt;
&lt;li&gt;Need to compare outputs from different models&lt;/li&gt;
&lt;li&gt;Want to turn prompts into reusable templates&lt;/li&gt;
&lt;li&gt;Need to test multi-turn dialogue or tool calls&lt;/li&gt;
&lt;li&gt;Want to connect prompt optimization to an MCP workflow&lt;/li&gt;
&lt;li&gt;Want to deploy a prompt tool locally or inside an intranet&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you only occasionally ask AI a simple question, a normal chat page is enough. This tool is better for people who treat prompts as maintainable assets.&lt;/p&gt;
&lt;h2 id=&#34;notes-for-use&#34;&gt;Notes for Use
&lt;/h2&gt;&lt;p&gt;First, do not treat optimization results as absolutely correct.&lt;/p&gt;
&lt;p&gt;Prompt optimization tools can improve expression quality, but they cannot guarantee that a model will never misunderstand. Important tasks still need test cases, manual review, and version comparison.&lt;/p&gt;
&lt;p&gt;Second, do not only chase length.&lt;/p&gt;
&lt;p&gt;A good prompt is not necessarily longer. It should express goals, boundaries, input and output formats, and evaluation criteria more clearly. Meaningless rule stacking can make the model miss the point.&lt;/p&gt;
&lt;p&gt;Third, tune prompts by model.&lt;/p&gt;
&lt;p&gt;Different models respond differently to role settings, format constraints, reasoning steps, and examples. A prompt that works well on a large model may not suit a smaller model. Multi-model testing is one reason this tool is useful.&lt;/p&gt;
&lt;p&gt;Fourth, consider keys and access control when deploying.&lt;/p&gt;
&lt;p&gt;If you deploy it publicly, configure an access password and handle API keys carefully. The project supports access control through environment variables; do not write sensitive configuration directly into public repositories.&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/linshenkx/prompt-optimizer&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;linshenkx/prompt-optimizer&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;&lt;code&gt;Prompt Optimizer&lt;/code&gt; is useful for turning prompts from “a temporary paragraph I wrote by hand” into “a work asset that can be tested, compared, and iterated.”&lt;/p&gt;
&lt;p&gt;When you start maintaining prompts across multiple models, scenarios, and versions, this kind of tool is more convenient than a normal chat window.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>AI Terms Explained: Agent, MCP, RAG, and Token in Plain Language</title>
        <link>https://knightli.com/en/2026/04/23/ai-terms-agent-mcp-rag-token-explained/</link>
        <pubDate>Thu, 23 Apr 2026 13:13:40 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/04/23/ai-terms-agent-mcp-rag-token-explained/</guid>
        <description>&lt;p&gt;When people first get into AI, what pushes them away is often not the models themselves, but the long list of terms that keeps showing up in every discussion. &lt;code&gt;Agent&lt;/code&gt;, &lt;code&gt;MCP&lt;/code&gt;, &lt;code&gt;RAG&lt;/code&gt;, &lt;code&gt;AIGC&lt;/code&gt;, and &lt;code&gt;Token&lt;/code&gt; all look familiar, but without a simple explanation, many people only recognize the words without really understanding them.&lt;/p&gt;
&lt;p&gt;This article follows a common beginner-friendly line of explanation and condenses 10 high-frequency AI terms into a set of meanings that is easier to remember. The goal is not to sound academic. It is to help you build a basic mental model that lets you follow everyday AI conversations.&lt;/p&gt;
&lt;h2 id=&#34;10-common-ai-terms-and-what-they-mean&#34;&gt;10 common AI terms and what they mean
&lt;/h2&gt;&lt;h3 id=&#34;1-agent-an-ai-that-does-more-than-chat&#34;&gt;1. Agent: an AI that does more than chat
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;Agent&lt;/code&gt; can be understood as an AI assistant that actually gets work done.&lt;/p&gt;
&lt;p&gt;A normal chatbot usually works in a simple question-and-answer pattern. An &lt;code&gt;Agent&lt;/code&gt; goes a step further. It can break a task into steps, arrange a process, call tools, and return a finished result. If you ask it to organize materials, look something up, or generate a document, it may do more than give advice. It may actually chain those actions together and complete them.&lt;/p&gt;
&lt;p&gt;That is why the key point of an &lt;code&gt;Agent&lt;/code&gt; is not whether it can talk, but whether it can act.&lt;/p&gt;
&lt;h3 id=&#34;2-openclaw-an-ai-assistant-that-stays-on-your-computer&#34;&gt;2. OpenClaw: an AI assistant that stays on your computer
&lt;/h3&gt;&lt;p&gt;Here, &lt;code&gt;OpenClaw&lt;/code&gt; is described as a kind of AI assistant that lives on your computer.&lt;/p&gt;
&lt;p&gt;You can think of this type of tool as a more desktop-oriented AI helper. It does not only receive text. It may also observe the interface, call local tools, and execute tasks step by step. Compared with a normal web chat interface, this kind of tool emphasizes operational ability much more.&lt;/p&gt;
&lt;p&gt;If &lt;code&gt;Agent&lt;/code&gt; is the abstract idea of an execution-oriented AI, this kind of desktop assistant is a more concrete personal-computer version of that idea.&lt;/p&gt;
&lt;h3 id=&#34;3-skills-capability-packs-added-to-an-agent&#34;&gt;3. Skills: capability packs added to an Agent
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;Skills&lt;/code&gt; can be understood as functional modules or operating instructions for an &lt;code&gt;Agent&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The same &lt;code&gt;Agent&lt;/code&gt; can behave very differently depending on which &lt;code&gt;Skills&lt;/code&gt; it has. Some may focus on copywriting, some on data organization, and some on code-related work. They are a bit like apps on a phone, and a bit like reusable workflows.&lt;/p&gt;
&lt;p&gt;So in many cases, it is not that the model suddenly became smarter. It is that a clearer set of rules, tools, and steps was added behind it.&lt;/p&gt;
&lt;h3 id=&#34;4-mcp-a-unified-way-for-ai-to-connect-to-tools&#34;&gt;4. MCP: a unified way for AI to connect to tools
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;MCP&lt;/code&gt; stands for &lt;code&gt;Model Context Protocol&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;In everyday terms, it is a bit like a &lt;code&gt;Type-C&lt;/code&gt; connector for the AI world. In the past, connecting a model to different tools often meant building separate integrations one by one. With a unified protocol, the way those tools connect becomes more standardized and easier to reuse.&lt;/p&gt;
&lt;p&gt;For most users, the most important thing to remember is this: &lt;code&gt;MCP&lt;/code&gt; is not about whether a model can answer a question. It is about how a model can connect to external tools and resources in a safe and stable way.&lt;/p&gt;
&lt;h3 id=&#34;5-gacha-ai-output-is-inherently-random&#34;&gt;5. Gacha: AI output is inherently random
&lt;/h3&gt;&lt;p&gt;The term &amp;ldquo;gacha&amp;rdquo; often appears in &lt;code&gt;AI&lt;/code&gt; image generation, video generation, and creative work.&lt;/p&gt;
&lt;p&gt;The idea is simple. Even with the same prompt and the same general direction, the result can still be different each time. Sometimes the output is great. Sometimes it falls apart. That is why people compare repeated generation attempts to pulling gacha in a game.&lt;/p&gt;
&lt;p&gt;What this really reminds us is that AI generation is not a fixed formula. It is a probabilistic process with variation.&lt;/p&gt;
&lt;h3 id=&#34;6-api-the-connection-between-an-app-and-a-model&#34;&gt;6. API: the connection between an app and a model
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;API&lt;/code&gt; stands for &lt;code&gt;Application Programming Interface&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;You can think of it as the standard entry point through which programs communicate. When you call a model service from your own app, script, or editor, you are essentially using an &lt;code&gt;API&lt;/code&gt; to send a request and receive a result.&lt;/p&gt;
&lt;p&gt;If you compare a model service to a restaurant, then:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;the menu is like the &lt;code&gt;API&lt;/code&gt; documentation&lt;/li&gt;
&lt;li&gt;placing an order is like making an &lt;code&gt;API&lt;/code&gt; request&lt;/li&gt;
&lt;li&gt;the kitchen sending back the dish is like the model returning a result&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That is why many tools may look different on the surface while still calling some form of &lt;code&gt;API&lt;/code&gt; underneath.&lt;/p&gt;
&lt;h3 id=&#34;7-multimodality-ai-handles-more-than-text&#34;&gt;7. Multimodality: AI handles more than text
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;Multimodality&lt;/code&gt; means AI no longer only reads and writes text. It can process multiple kinds of input and output.&lt;/p&gt;
&lt;p&gt;For example, it may be able to read images, understand voice, interpret video, generate pictures, or even support real-time voice and video interaction. Compared with early text-only models, multimodal models are much closer to having the combined abilities to see, hear, speak, and write.&lt;/p&gt;
&lt;p&gt;That is also why many AI products are no longer centered around a single text box.&lt;/p&gt;
&lt;h3 id=&#34;8-rag-retrieve-information-first-then-generate-an-answer&#34;&gt;8. RAG: retrieve information first, then generate an answer
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;RAG&lt;/code&gt; stands for &lt;code&gt;Retrieval-Augmented Generation&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;It is useful for solving a practical problem: a model&amp;rsquo;s training data has a time boundary, and it does not automatically know your company&amp;rsquo;s newest documents, customer-service records, or business rules. The idea behind &lt;code&gt;RAG&lt;/code&gt; is to retrieve relevant material from specified sources first, and then generate an answer based on that material.&lt;/p&gt;
&lt;p&gt;Its value usually shows up in three ways:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;answers are more likely to stay close to real source material&lt;/li&gt;
&lt;li&gt;you can trace where the answer came from&lt;/li&gt;
&lt;li&gt;new documents can be added and reflected quickly&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That is why many enterprise knowledge bases, AI customer-service systems, and internal Q&amp;amp;A tools rely on &lt;code&gt;RAG&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;9-aigc-the-general-term-for-ai-generated-content&#34;&gt;9. AIGC: the general term for AI-generated content
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;AIGC&lt;/code&gt; stands for &lt;code&gt;AI Generated Content&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;It is not a single tool. It is a broad label for content produced by AI, including text, images, audio, video, and more. AI writing, AI illustration, AI short-form video generation, and AI voice synthesis all fit under the umbrella of &lt;code&gt;AIGC&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;What matters most about this term is that it describes a way of producing content, not one specific model.&lt;/p&gt;
&lt;h3 id=&#34;10-token-the-unit-used-to-measure-model-processing&#34;&gt;10. Token: the unit used to measure model processing
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;Token&lt;/code&gt; can be understood as the basic unit a model uses to process text.&lt;/p&gt;
&lt;p&gt;It is not exactly the same as one character or one word, but in practice, you can treat it as the common unit used for model computation and billing. Your input consumes &lt;code&gt;Token&lt;/code&gt;, the model&amp;rsquo;s output consumes &lt;code&gt;Token&lt;/code&gt;, and the context kept in memory also takes up &lt;code&gt;Token&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;That is why model services keep talking about context length, cost control, and prompt compression. At the core, all of those topics are tied to &lt;code&gt;Token&lt;/code&gt;.&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>
        <item>
        <title>Firecrawl Project Notes: Web Search, Scraping, and Interaction APIs for AI Agents</title>
        <link>https://knightli.com/en/2026/04/15/firecrawl-ai-web-data-api/</link>
        <pubDate>Wed, 15 Apr 2026 13:45:03 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/04/15/firecrawl-ai-web-data-api/</guid>
        <description>&lt;p&gt;&lt;code&gt;Firecrawl&lt;/code&gt; has a clear purpose: turning web pages into data that AI agents can consume more easily. It is not just a crawler script. It wraps search, single-page scraping, site crawling, page interaction, structured extraction, and agent workflows into APIs, so models and automation systems can spend less effort dealing with web noise.&lt;/p&gt;
&lt;h2 id=&#34;01-what-it-solves&#34;&gt;01 What It Solves
&lt;/h2&gt;&lt;p&gt;Many AI applications need to read web pages, but real websites are messy: JavaScript-rendered content, pop-ups, pagination, login state, anti-bot defenses, PDFs or DOCX files, and plenty of navigation, ads, scripts, and styling that have nothing to do with the main content.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Firecrawl&lt;/code&gt; tries to solve this middle-layer problem. The application asks for data from a page, a site, or a topic; Firecrawl handles opening, scraping, cleaning, and returning output in formats that are easier for LLMs to use, such as Markdown, HTML, screenshots, or JSON.&lt;/p&gt;
&lt;p&gt;The value of this kind of tool is not merely whether it can request a URL. The real question is whether it can reliably turn complex pages into usable data. For RAG, AI search, competitive research, automated information gathering, and web content monitoring, this layer often becomes the unpleasant plumbing in the system.&lt;/p&gt;
&lt;h2 id=&#34;02-core-features&#34;&gt;02 Core Features
&lt;/h2&gt;&lt;p&gt;The Firecrawl README groups its capabilities into several areas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Search&lt;/code&gt;: Search the web and return full page content from the results.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Scrape&lt;/code&gt;: Convert a single URL into Markdown, HTML, screenshots, or structured JSON.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Interact&lt;/code&gt;: Scrape a page, then use prompts or code to click, scroll, type, wait, and perform other actions.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Agent&lt;/code&gt;: Describe what you want, and let the agent search, navigate, and return the result.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Crawl&lt;/code&gt;: Scrape multiple pages under a website.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Map&lt;/code&gt;: Quickly discover URLs on a website.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Batch Scrape&lt;/code&gt;: Asynchronously scrape large batches of URLs.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;At first glance, it looks like a scraping service. But as a full set of features, it is closer to a data entry point for AI applications: search discovers sources, scraping cleans content, interaction handles dynamic pages, and Agent pushes the whole &amp;ldquo;find information&amp;rdquo; task further toward automation.&lt;/p&gt;
&lt;h2 id=&#34;03-why-it-fits-ai-agents&#34;&gt;03 Why It Fits AI Agents
&lt;/h2&gt;&lt;p&gt;Traditional crawlers usually assume that you already know the URL and understand the page structure. Agent workflows are often different. A user might simply ask, &amp;ldquo;Find the differences between the latest pricing plans on a company&amp;rsquo;s pricing page.&amp;rdquo; The system then has to search, open pages, compare content, and return sources.&lt;/p&gt;
&lt;p&gt;Firecrawl&amp;rsquo;s &lt;code&gt;Agent&lt;/code&gt; endpoint is designed for this kind of task. It can accept only a natural-language prompt, or it can be constrained to specific URLs. If structured results are needed, it can also work with a schema to return fixed fields.&lt;/p&gt;
&lt;p&gt;This gives the application layer two benefits:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;You do not have to write a separate parser for every website.&lt;/li&gt;
&lt;li&gt;The returned result is easier to send into an LLM, a database, or a downstream automation flow.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Of course, this does not mean it replaces every custom crawler. For highly constrained, high-frequency, large-scale tasks with very stable fields, writing dedicated parsing logic may still be cheaper and easier to control. Firecrawl is a better fit when sources are scattered, page structures change often, and you want to connect web data to an AI workflow quickly.&lt;/p&gt;
&lt;h2 id=&#34;04-mcp-cli-and-integrations&#34;&gt;04 MCP, CLI, and Integrations
&lt;/h2&gt;&lt;p&gt;Firecrawl is also clearly moving toward the agent tooling ecosystem. The README provides MCP Server setup, along with Skill/CLI initialization commands for AI coding agents.&lt;/p&gt;
&lt;p&gt;This means it is not only intended for backend API calls. It also wants to plug directly into Claude Code, OpenCode, Antigravity, MCP clients, and similar workflows. For people who frequently ask agents to research, scrape, and organize web content, this kind of integration is lighter than hand-writing API calls.&lt;/p&gt;
&lt;p&gt;It also lists integrations with platforms such as Zapier, n8n, and Lovable. That direction is practical: web data does not always go into code. It may flow into automation tables, low-code workflows, content systems, or internal knowledge bases.&lt;/p&gt;
&lt;h2 id=&#34;05-open-source-self-hosting-and-licensing&#34;&gt;05 Open Source, Self-Hosting, and Licensing
&lt;/h2&gt;&lt;p&gt;Firecrawl is open source. The main repository is primarily licensed under &lt;code&gt;AGPL-3.0&lt;/code&gt;; the README also notes that SDKs and some UI components use the &lt;code&gt;MIT&lt;/code&gt; license, with details depending on the LICENSE files in each directory.&lt;/p&gt;
&lt;p&gt;This matters. If you only use the cloud service, the main concerns are API cost, reliability, and compliance boundaries. If you plan to self-host it and provide a service to others, the obligations of &lt;code&gt;AGPL-3.0&lt;/code&gt; need careful review.&lt;/p&gt;
&lt;p&gt;The README also reminds users to respect website policies, privacy policies, and terms of use, and says that Firecrawl respects &lt;code&gt;robots.txt&lt;/code&gt; by default. The stronger this type of tool becomes, the more important it is to design compliance and scraping boundaries into the system instead of patching them in after launch.&lt;/p&gt;
&lt;h2 id=&#34;06-suitable-use-cases&#34;&gt;06 Suitable Use Cases
&lt;/h2&gt;&lt;p&gt;I would consider Firecrawl first in these scenarios:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Scraping web content for a RAG system and wanting clean Markdown directly.&lt;/li&gt;
&lt;li&gt;Building AI search or research assistants that need to read full pages after search.&lt;/li&gt;
&lt;li&gt;Scraping JavaScript-heavy sites without maintaining a browser cluster yourself.&lt;/li&gt;
&lt;li&gt;Monitoring public information such as competitors, pricing, documentation, news, and job pages.&lt;/li&gt;
&lt;li&gt;Giving MCP clients or AI coding agents real-time web reading ability.&lt;/li&gt;
&lt;li&gt;Quickly validating a web-data product before building crawler infrastructure.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The less suitable cases are also clear:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The target site has very few fields, a stable structure, and can be handled by a simple script.&lt;/li&gt;
&lt;li&gt;The scraping volume is huge, and cost sensitivity matters more than development and maintenance cost.&lt;/li&gt;
&lt;li&gt;The business needs very fine control over sources, retry strategy, anti-bot behavior, and audit trails.&lt;/li&gt;
&lt;li&gt;Licensing or compliance requirements do not allow AGPL components or external cloud services.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;07-quick-take&#34;&gt;07 Quick Take
&lt;/h2&gt;&lt;p&gt;Firecrawl&amp;rsquo;s core value is productizing the messy path from &amp;ldquo;web page&amp;rdquo; to &amp;ldquo;AI-usable data.&amp;rdquo; It puts search, scraping, cleaning, interaction, batch processing, and agent-style research into one interface, which is convenient for AI application developers.&lt;/p&gt;
&lt;p&gt;If your project often needs models to read real web pages, especially when sources are scattered, structures are unstable, and MCP or agent workflows are involved, Firecrawl is worth keeping in the toolbox. If the task is just low-cost bulk collection from fixed websites, a traditional crawler or dedicated parser may still be the better choice.&lt;/p&gt;
&lt;h2 id=&#34;related-links&#34;&gt;Related Links
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;GitHub project: &lt;a class=&#34;link&#34; href=&#34;https://github.com/firecrawl/firecrawl&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/firecrawl/firecrawl&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>What Is Hermes Agent: Overview, Strengths, Getting Started, and How It Compares to OpenClaw</title>
        <link>https://knightli.com/en/2026/04/12/hermes-agent-intro-guide-vs-openclaw/</link>
        <pubDate>Sun, 12 Apr 2026 14:07:58 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/04/12/hermes-agent-intro-guide-vs-openclaw/</guid>
        <description>&lt;p&gt;If you have been following open-source AI agents lately, &lt;code&gt;Hermes Agent&lt;/code&gt; is a project worth paying attention to. Built by Nous Research, its main appeal is not simply that it is “another chat wrapper,” but that it tries to bring long-term memory, reusable skills, context files, MCP extensions, a messaging gateway, and parallel sub-agents into one unified agent runtime.&lt;/p&gt;
&lt;p&gt;Based on the official README, Hermes Agent has a very clear goal: it can work like a local CLI assistant in your terminal, or like a cloud-hosted personal assistant that stays available through Telegram, Discord, Slack, WhatsApp, Signal, and other channels. For users who want to combine a coding assistant, an automation assistant, and a personal AI workspace into one system, that positioning is compelling.&lt;/p&gt;
&lt;h2 id=&#34;01-an-overview-of-hermes-agent&#34;&gt;01 An overview of Hermes Agent
&lt;/h2&gt;&lt;p&gt;Hermes Agent is an open-source self-improving AI agent from Nous Research. It supports multiple model providers, including Nous Portal, OpenRouter, OpenAI, and custom OpenAI-compatible endpoints. It can also run across different execution backends such as a local terminal, Docker, SSH, Daytona, and Modal.&lt;/p&gt;
&lt;p&gt;What separates Hermes from many “tool-using chatbots” is that it does not focus only on tool calls within a single session. It puts much more emphasis on building persistent capability across sessions. The official docs break this idea down into several parts:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Persistent memory: stores key information about the environment, project, and user preferences through &lt;code&gt;MEMORY.md&lt;/code&gt; and &lt;code&gt;USER.md&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Skills system: turns successful workflows into reusable skills that can be loaded on demand.&lt;/li&gt;
&lt;li&gt;Context files: automatically reads files such as &lt;code&gt;AGENTS.md&lt;/code&gt;, &lt;code&gt;SOUL.md&lt;/code&gt;, and &lt;code&gt;.cursorrules&lt;/code&gt; to inject project conventions directly into the session.&lt;/li&gt;
&lt;li&gt;MCP integration: can connect to any MCP-compatible tool server to extend database, GitHub, filesystem, and scraping capabilities.&lt;/li&gt;
&lt;li&gt;Messaging gateway: beyond the CLI, it can also be used through Telegram, Discord, Slack, WhatsApp, Signal, Email, and other entry points.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In one sentence, Hermes Agent feels more like a general-purpose agent operating layer with memory, skills, extensibility, and multi-channel access.&lt;/p&gt;
&lt;h2 id=&#34;02-where-it-stands-out&#34;&gt;02 Where it stands out
&lt;/h2&gt;&lt;h3 id=&#34;1-it-covers-both-cli-workflows-and-messaging-workflows&#34;&gt;1. It covers both CLI workflows and messaging workflows
&lt;/h3&gt;&lt;p&gt;Many agent projects lean either toward terminal-based developer assistance or toward chat-platform bots. Hermes tries to combine both. You can run &lt;code&gt;hermes&lt;/code&gt; directly in the terminal, or continue with the same assistant through Telegram or Discord after starting the gateway.&lt;/p&gt;
&lt;p&gt;The practical benefit is that Hermes is not limited to being useful only when you are sitting in front of your computer. If you deploy it to the cloud or a VPS, it can become a continuously available personal AI assistant.&lt;/p&gt;
&lt;h3 id=&#34;2-it-is-designed-for-long-term-use&#34;&gt;2. It is designed for long-term use
&lt;/h3&gt;&lt;p&gt;Hermes does more than chat and call tools. It is also built around long-term accumulation:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Persistent memory with boundaries, instead of endlessly stuffing more context into each conversation.&lt;/li&gt;
&lt;li&gt;A skills system that lets you save and reuse successful workflows.&lt;/li&gt;
&lt;li&gt;Search across past sessions for retrieval and recall.&lt;/li&gt;
&lt;li&gt;Project context files that reduce the need to repeatedly explain the same background.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This matters a lot for people who work repeatedly inside the same repositories, workflows, and team conventions. It means the agent is not just helping once; it can gradually become more familiar with your environment.&lt;/p&gt;
&lt;h3 id=&#34;3-mcp-support-gives-it-strong-extensibility&#34;&gt;3. MCP support gives it strong extensibility
&lt;/h3&gt;&lt;p&gt;The Hermes documentation explicitly supports MCP and describes both stdio and HTTP integration modes. In practice, that means if an external system already has an MCP server, Hermes can usually connect to it with much lower integration cost.&lt;/p&gt;
&lt;p&gt;That is more flexible than writing a custom plugin for every single system. For users who already have tools built around the MCP ecosystem, Hermes should be much easier to extend.&lt;/p&gt;
&lt;h3 id=&#34;4-it-is-friendly-to-openclaw-users&#34;&gt;4. It is friendly to OpenClaw users
&lt;/h3&gt;&lt;p&gt;This part is especially interesting. The Hermes README directly provides &lt;code&gt;hermes claw migrate&lt;/code&gt;, and explicitly says it can import configuration, memory, skills, API keys, and messaging platform settings from OpenClaw.&lt;/p&gt;
&lt;p&gt;That suggests Hermes is not trying to ignore the existing ecosystem and start from zero. It is clearly positioning some OpenClaw users as a migration audience.&lt;/p&gt;
&lt;h2 id=&#34;03-how-to-get-started-quickly&#34;&gt;03 How to get started quickly
&lt;/h2&gt;&lt;p&gt;The officially recommended Hermes Agent installation method is very 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;curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh &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;p&gt;According to the official README, it supports Linux, macOS, WSL2, and Android Termux. One important note is that native Windows is explicitly not supported right now, so Windows users are advised to use WSL2.&lt;/p&gt;
&lt;p&gt;After installation, you would usually refresh your shell 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;/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;source&lt;/span&gt; ~/.bashrc
&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 launch it 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;hermes
&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 want to go through a more complete step-by-step initialization flow, the easiest 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;hermes setup
&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;Based on the official documentation and README, a simple first-time setup path looks like this:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Run &lt;code&gt;hermes setup&lt;/code&gt; to finish the base configuration.&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;hermes model&lt;/code&gt; to choose a model provider and model.&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;hermes tools&lt;/code&gt; to enable the toolsets you want.&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;hermes&lt;/code&gt; to enter the interactive CLI.&lt;/li&gt;
&lt;li&gt;If you want channels such as Telegram or Discord, continue with &lt;code&gt;hermes gateway&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If you are already an OpenClaw user, it is also worth previewing the migration command:&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;hermes claw migrate --dry-run
&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 lets you inspect what can be migrated before doing a real import.&lt;/p&gt;
&lt;h2 id=&#34;04-how-to-think-about-it-versus-openclaw&#34;&gt;04 How to think about it versus OpenClaw
&lt;/h2&gt;&lt;p&gt;From the official docs and README, Hermes Agent and OpenClaw are not simply a case of one replacing the other. Their positioning overlaps, but their priorities are clearly different.&lt;/p&gt;
&lt;h3 id=&#34;what-hermes-agent-feels-like&#34;&gt;What Hermes Agent feels like
&lt;/h3&gt;&lt;p&gt;Hermes feels more like a product centered on an agent core and workflow system. It emphasizes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CLI experience&lt;/li&gt;
&lt;li&gt;Memory and skill accumulation&lt;/li&gt;
&lt;li&gt;Project context files&lt;/li&gt;
&lt;li&gt;MCP extensibility&lt;/li&gt;
&lt;li&gt;Parallel sub-agents&lt;/li&gt;
&lt;li&gt;Switching execution backends across local, container, remote, and serverless environments&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If your main goal is to make the agent understand your project better, reuse capabilities over time, and connect more naturally into MCP and developer workflows, Hermes is likely the better fit.&lt;/p&gt;
&lt;h3 id=&#34;what-openclaw-feels-like&#34;&gt;What OpenClaw feels like
&lt;/h3&gt;&lt;p&gt;OpenClaw feels more like a platform centered on a personal AI assistant plus a messaging gateway. It emphasizes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Rich messaging channel integration&lt;/li&gt;
&lt;li&gt;A continuously running Gateway&lt;/li&gt;
&lt;li&gt;A browser-based Control UI&lt;/li&gt;
&lt;li&gt;Device pairing, remote access, and status management&lt;/li&gt;
&lt;li&gt;Stronger assistant-oriented surfaces such as voice, mobile access, and Canvas&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If your main goal is to keep a personal AI assistant reliably available across multiple chat channels and devices, with a control panel to manage it, OpenClaw has a stronger product feel in that direction.&lt;/p&gt;
&lt;h3 id=&#34;a-more-practical-rule-of-thumb&#34;&gt;A more practical rule of thumb
&lt;/h3&gt;&lt;p&gt;You can roughly think of the two like this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Hermes Agent: more of a “growing general-purpose agent workspace”&lt;/li&gt;
&lt;li&gt;OpenClaw: more of a “multi-channel always-on personal AI assistant platform”&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That distinction is not absolute, because both projects are still expanding and Hermes also offers a migration path from OpenClaw. But based on the currently public material, Hermes is more prominent on the memory, skills, context, MCP, and developer-workflow side, while OpenClaw looks more mature on the gateway, multi-channel, Control UI, and device-access side.&lt;/p&gt;
&lt;h2 id=&#34;05-who-should-try-it&#34;&gt;05 Who should try it
&lt;/h2&gt;&lt;p&gt;Hermes Agent is especially worth trying first if you fit one of these profiles:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You already rely heavily on AI tools in the terminal and want an agent that better understands your codebase and project rules.&lt;/li&gt;
&lt;li&gt;You want to combine &lt;code&gt;AGENTS.md&lt;/code&gt;, skills, memory, and MCP into one workflow.&lt;/li&gt;
&lt;li&gt;You do not want to be locked into a single model vendor and prefer flexible provider switching.&lt;/li&gt;
&lt;li&gt;You already use OpenClaw and want to explore a direction that is more centered on agent workflows.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you care more about mobile reach, broad IM platform integration, a browser control console, and the feeling of an always-online personal assistant, OpenClaw still has a lot of appeal.&lt;/p&gt;
&lt;h2 id=&#34;references&#34;&gt;References
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Hermes Agent GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/NousResearch/hermes-agent&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/NousResearch/hermes-agent&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Hermes Agent Docs: &lt;a class=&#34;link&#34; href=&#34;https://hermes-agent.nousresearch.com/docs/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://hermes-agent.nousresearch.com/docs/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Hermes Features Overview: &lt;a class=&#34;link&#34; href=&#34;https://hermes-agent.nousresearch.com/docs/user-guide/features/overview&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://hermes-agent.nousresearch.com/docs/user-guide/features/overview&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Hermes MCP: &lt;a class=&#34;link&#34; href=&#34;https://hermes-agent.nousresearch.com/docs/user-guide/features/mcp/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://hermes-agent.nousresearch.com/docs/user-guide/features/mcp/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;OpenClaw GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/openclaw/openclaw&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/openclaw/openclaw&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;OpenClaw Getting Started: &lt;a class=&#34;link&#34; href=&#34;https://docs.openclaw.ai/start/quickstart&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://docs.openclaw.ai/start/quickstart&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;OpenClaw Control UI: &lt;a class=&#34;link&#34; href=&#34;https://docs.openclaw.ai/web/control-ui&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://docs.openclaw.ai/web/control-ui&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Drop MCP? Why CLI Is Becoming the Default Tool Layer for Agents</title>
        <link>https://knightli.com/en/2026/04/10/mcp-vs-cli-for-agents/</link>
        <pubDate>Fri, 10 Apr 2026 21:55:12 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/04/10/mcp-vs-cli-for-agents/</guid>
        <description>&lt;p&gt;Over the last year, debates about agent toolchains have increasingly centered on one question:&lt;/p&gt;
&lt;p&gt;Does MCP (Model Context Protocol) make tool calling simpler, or does it make simple tasks more complex?&lt;/p&gt;
&lt;p&gt;For most day-to-day engineering tasks, CLI is becoming the more practical default.&lt;/p&gt;
&lt;h2 id=&#34;cost-gap-is-not-a-ux-issue-but-an-order-of-magnitude-issue&#34;&gt;Cost gap is not a UX issue, but an order-of-magnitude issue
&lt;/h2&gt;&lt;p&gt;The biggest practical pressure in MCP is token overhead.&lt;/p&gt;
&lt;p&gt;In common scenarios, MCP often has to load large tool schemas before actual execution. Using a GitHub MCP Server as an example, initialization alone can consume tens of thousands of tokens. For long tasks, this directly squeezes context budget.&lt;/p&gt;
&lt;p&gt;Community benchmarks keep pointing to the same conclusion:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Single MCP calls commonly cost several to dozens of times more than CLI&lt;/li&gt;
&lt;li&gt;Retry recovery is also more expensive (reconnect plus context reload)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is not just &amp;ldquo;a little slower.&amp;rdquo; It scales into API cost, latency, and reliability issues.&lt;/p&gt;
&lt;h2 id=&#34;why-models-are-naturally-better-at-cli&#34;&gt;Why models are naturally better at CLI
&lt;/h2&gt;&lt;p&gt;A frequently overlooked fact is training distribution.&lt;/p&gt;
&lt;p&gt;LLMs have seen massive amounts of terminal text during training: commands, outputs, errors, scripts, and man pages. In other words, CLI interaction is already close to the model&amp;rsquo;s native input pattern.&lt;/p&gt;
&lt;p&gt;By contrast, MCP&amp;rsquo;s JSON-RPC and tool schema style became widespread only in recent years. Models can learn it, but familiarity and compression efficiency are often still weaker than long-established CLI patterns.&lt;/p&gt;
&lt;p&gt;That also explains why, in many cases:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;for the same goal, CLI commands are shorter&lt;/li&gt;
&lt;li&gt;outputs are easier to continue reasoning over&lt;/li&gt;
&lt;li&gt;error recovery paths are more stable&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;security-and-isolation-mcp-still-has-catching-up-to-do&#34;&gt;Security and isolation: MCP still has catching up to do
&lt;/h2&gt;&lt;p&gt;MCP is not incapable of security, but its ecosystem is still early.&lt;/p&gt;
&lt;p&gt;Common concerns today include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tool Poisoning in descriptions&lt;/li&gt;
&lt;li&gt;behavior drift (Rug Pull)&lt;/li&gt;
&lt;li&gt;same-name tool override (Shadowing)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;CLI also has security risks (injection, privilege misuse, path risks), but its process model, permission boundaries, and audit chain have been validated through decades of engineering practice. In production, that predictability matters.&lt;/p&gt;
&lt;h2 id=&#34;this-does-not-mean-mcp-has-no-value&#34;&gt;This does not mean MCP has no value
&lt;/h2&gt;&lt;p&gt;I do not think MCP should be abandoned.&lt;/p&gt;
&lt;p&gt;A more reasonable positioning is:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CLI handles the execution layer (local, low-latency, high-frequency calls)&lt;/li&gt;
&lt;li&gt;MCP handles the connection layer (remote service discovery, unified auth, audit, and multitenancy)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That is the commonly discussed hybrid architecture: &lt;code&gt;CLI + MCP Gateway&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;When integrating many remote systems and enforcing unified governance and compliance, MCP still has clear value. But for helping agents complete engineering work quickly, CLI-first usually better matches current model capability boundaries.&lt;/p&gt;
&lt;p&gt;In today&amp;rsquo;s engineering reality, CLI is closer to an agent&amp;rsquo;s working native language; MCP is better positioned as a connection protocol rather than the only execution protocol.&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
