<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: WonderLab</title>
    <description>The latest articles on DEV Community by WonderLab (@wonderlab).</description>
    <link>https://dev.to/wonderlab</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3797373%2F25beba30-d8d4-4d2e-9ec6-170356089350.jpg</url>
      <title>DEV Community: WonderLab</title>
      <link>https://dev.to/wonderlab</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/wonderlab"/>
    <language>en</language>
    <item>
      <title>One Open Source Project a Day (No. 36): awesome-design-md - Making Design Specs Truly Readable for AI</title>
      <dc:creator>WonderLab</dc:creator>
      <pubDate>Sun, 12 Apr 2026 01:44:01 +0000</pubDate>
      <link>https://dev.to/wonderlab/one-open-source-project-a-day-no-36-awesome-design-md-making-design-specs-truly-readable-for-304d</link>
      <guid>https://dev.to/wonderlab/one-open-source-project-a-day-no-36-awesome-design-md-making-design-specs-truly-readable-for-304d</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;"If code is the soul of a program, then design specs are its skin. In the age of AI, we need a way for machines to align with our aesthetics instantly."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is the NO.36 article in the "One Open Source Project a Day" series. Today, we explore &lt;strong&gt;awesome-design-md&lt;/strong&gt; (also known as Awesome DESIGN.md).&lt;/p&gt;

&lt;p&gt;In today's AI-driven development, there's a significant gap: while AI (like Claude Code or Cursor) can write perfect logic, it often lacks the ability to capture a product's "visual soul." If you ask it to "make a button like Stripe," it might just give you a generic blue background. Traditional Figma files are too heavy and complex for LLMs to parse. &lt;strong&gt;awesome-design-md&lt;/strong&gt; offers a brilliant solution: defining design systems using &lt;strong&gt;Markdown&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  What You Will Learn
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;What the DESIGN.md specification is and why it's the ultimate design handoff for the AI era.&lt;/li&gt;
&lt;li&gt;How to leverage over 60+ design templates from top brands like Stripe, Linear, and Vercel.&lt;/li&gt;
&lt;li&gt;How to eliminate "programmer aesthetics" by using a simple Markdown file.&lt;/li&gt;
&lt;li&gt;How design systems are evolving from "human-facing" UI Kits to "AI-facing" instruction sets.&lt;/li&gt;
&lt;li&gt;Practical tips: Integrating design specs into your projects to drive AI coding and styling.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Prerequisites
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Basic understanding of design system concepts (Color Palette, Typography, Spacing).&lt;/li&gt;
&lt;li&gt;Experience with AI coding assistants (e.g., Cursor, Windsurf, Claude Code).&lt;/li&gt;
&lt;li&gt;Preliminary knowledge of Tailwind CSS or CSS Variables.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Project Background
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Overview
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;awesome-design-md&lt;/strong&gt; is an open-source repository initiated and maintained by the VoltAgent team. It features a vast collection of &lt;code&gt;DESIGN.md&lt;/code&gt; templates inspired by global tech leaders. These files aren't just descriptions; they are precise sets of Design Tokens, Visual Philosophies, and Component Specs optimized specifically for LLM text processing capabilities.&lt;/p&gt;

&lt;h3&gt;
  
  
  Author/Team Introduction
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Author&lt;/strong&gt;: VoltAgent Team&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vision&lt;/strong&gt;: To drive "Agent-Native" design delivery, making design specifications actionable logic for AI.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Created&lt;/strong&gt;: Late 2024, rapidly gaining popularity alongside the rise of Agentic Coding.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Project Data
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;⭐ GitHub Stars: 43.8k+&lt;/li&gt;
&lt;li&gt;🍴 Forks: 5.4k+&lt;/li&gt;
&lt;li&gt;📄 License: MIT License&lt;/li&gt;
&lt;li&gt;🌐 GitHub: &lt;a href="https://github.com/voltagent/awesome-design-md" rel="noopener noreferrer"&gt;https://github.com/voltagent/awesome-design-md&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Key Features
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Core Value
&lt;/h3&gt;

&lt;p&gt;The project's essence is providing a &lt;strong&gt;Source of Truth (SoT)&lt;/strong&gt; for AI. By offering structured Markdown documentation, an AI can read design specs as if they were API docs, ensuring that generated component code strictly adheres to predefined brand colors, typography scales, and shadow systems.&lt;/p&gt;

&lt;h3&gt;
  
  
  Use Cases
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Cloning Premium Product Aesthetics Quickly&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Developers can pick &lt;code&gt;linear.md&lt;/code&gt; or &lt;code&gt;vercel.md&lt;/code&gt; from the repo to instantly elevate their MVP's design to unicorn levels.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Establishing Team Design Consensus&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Designers no longer rely solely on screenshots to convey specs; they write a &lt;code&gt;DESIGN.md&lt;/code&gt; file and save it to the codebase.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;AI-Assisted UI Refactoring&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;When refactoring a generic CSS interface into a high-end UI, feeding these specs to an AI ensures a consistent and modern look.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Quick Start
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Pick a Style&lt;/strong&gt;: Choose a style file (e.g., &lt;code&gt;stripe.md&lt;/code&gt;) from the repository.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Integrate the File&lt;/strong&gt;: Save it as &lt;code&gt;DESIGN.md&lt;/code&gt; in your project's root directory.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prompt the AI&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;   "I have provided a DESIGN.md in the root. 
   Please refactor the current sidebar component 
   following its Color Semantics and Typography rules, 
   ensuring gradients match the document description."
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Core Characteristics
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Agent-Native&lt;/strong&gt;: Document structure optimized for LLM context reasoning, avoiding verbose CSS noise.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Comprehensive Coverage&lt;/strong&gt;: Over 60+ styles ranging from AI platforms (Anthropic, OpenAI) to infrastructure tools (Supabase, PostHog).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero Config, Zero Dependencies&lt;/strong&gt;: No npm packages required; works as a plain text file in your workflow.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;High-Fidelity Tokens&lt;/strong&gt;: Precise variable definitions perfectly suited for Tailwind CSS extensions.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Project Advantages
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Dimension&lt;/th&gt;
&lt;th&gt;awesome-design.md&lt;/th&gt;
&lt;th&gt;Traditional Figma Handoff&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AI Friendliness&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Extremely High (Structured text)&lt;/td&gt;
&lt;td&gt;Low (Visual-focused, hard to parse)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Communication Cost&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Extremely Low (Copy-paste)&lt;/td&gt;
&lt;td&gt;High (Requires annotations/meetings)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Consistency&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Strong (AI follows variables)&lt;/td&gt;
&lt;td&gt;Variable (Devs might hard-code)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Version Control&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Git-friendly, real-time tracking&lt;/td&gt;
&lt;td&gt;Difficult (Binary files/external links)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Detailed Analysis: Why Markdown is the Future of Design?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Architecture: Typical DESIGN.md Structure
&lt;/h3&gt;

&lt;p&gt;A high-quality &lt;code&gt;DESIGN.md&lt;/code&gt; curated in this project contains core modules that distill the "visual soul":&lt;/p&gt;

&lt;h4&gt;
  
  
  1. Visual Identity &amp;amp; Atmosphere
&lt;/h4&gt;

&lt;p&gt;Describes the psychological tone. For instance, Vercel's style is described as "cool-toned, high-contrast, minimal geeky," guiding the AI to generate accurate ambiance in its prompts.&lt;/p&gt;

&lt;h4&gt;
  
  
  2. Color System
&lt;/h4&gt;

&lt;p&gt;Beyond HEX values, it defines &lt;strong&gt;Semantic Roles&lt;/strong&gt; (e.g., &lt;code&gt;background-primary&lt;/code&gt;, &lt;code&gt;accent-color-hover&lt;/code&gt;), leading the AI to use the right color in the right context.&lt;/p&gt;

&lt;h4&gt;
  
  
  3. Typography Hierarchy
&lt;/h4&gt;

&lt;p&gt;Defines font sizes, line heights, and weights for headers, body, and code blocks, ensuring a rhythmic layout.&lt;/p&gt;

&lt;h4&gt;
  
  
  4. Component Stylings
&lt;/h4&gt;

&lt;p&gt;Specifies base styles and states (Hover, Active, Disabled) for components like buttons, cards, and inputs, along with global design tokens.&lt;/p&gt;

&lt;h2&gt;
  
  
  Project Resources
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Official Resources
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;🌟 &lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/voltagent/awesome-design-md" rel="noopener noreferrer"&gt;https://github.com/voltagent/awesome-design-md&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Target Audience
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AI-Native Developers&lt;/strong&gt;: Devs seeking engineering beauty who want to reduce CSS debugging.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Indie Hackers&lt;/strong&gt;: Founders needing to iterate high-end MVPs rapidly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;UI Engineers&lt;/strong&gt;: Pioneers exploring the intersection of design specs and LLMs.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Welcome to visit my &lt;a href="https://home.wonlab.top" rel="noopener noreferrer"&gt;Homepage&lt;/a&gt; to find more useful knowledge and interesting products.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>uidesign</category>
      <category>uxdesign</category>
    </item>
    <item>
      <title>One Open Source Project a Day (No. 35): claude-code-best-practice - Moving from Vibe Coding to AI-Native Development</title>
      <dc:creator>WonderLab</dc:creator>
      <pubDate>Fri, 10 Apr 2026 00:48:34 +0000</pubDate>
      <link>https://dev.to/wonderlab/one-open-source-project-a-day-no-35-claude-code-best-practice-moving-from-vibe-coding-to-3ige</link>
      <guid>https://dev.to/wonderlab/one-open-source-project-a-day-no-35-claude-code-best-practice-moving-from-vibe-coding-to-3ige</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;"AI programming is not just about changing tools; it's about refactoring your development paradigm."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is the NO.35 article in the "One Open Source Project a Day" series. Today, we explore &lt;strong&gt;claude-code-best-practice&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;If you've started using Anthropic's CLI tool, &lt;strong&gt;Claude Code&lt;/strong&gt;, you might have noticed a pattern: sometimes it's breathtakingly precise, other times it gets stuck in "stupid loops." This discrepancy often isn't about the model itself but how you collaborate with it. &lt;code&gt;shanraisshan/claude-code-best-practice&lt;/code&gt; is currently the most hardcore, systematic guide for Claude Code in the community. It distills the transition from "Vibe Coding" to professional "Agentic Engineering."&lt;/p&gt;

&lt;h3&gt;
  
  
  What You Will Learn
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Core mechanisms: CLAUDE.md, Skills, Hooks, and Commands.&lt;/li&gt;
&lt;li&gt;Instruction Management: Writing high-quality directives that AI won't ignore.&lt;/li&gt;
&lt;li&gt;Orchestrating complex cross-file and multi-step tasks.&lt;/li&gt;
&lt;li&gt;Parallel agent development using Git Worktrees.&lt;/li&gt;
&lt;li&gt;Practical tricks: Manual &lt;code&gt;/compact&lt;/code&gt;, phase-gated planning, and anti-degradation strategies.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Prerequisites
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Familiarity with the &lt;strong&gt;Claude Code&lt;/strong&gt; CLI.&lt;/li&gt;
&lt;li&gt;Basic Git operations and project development experience.&lt;/li&gt;
&lt;li&gt;Preliminary understanding of Prompt Engineering.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Project Background
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Overview
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;claude-code-best-practice&lt;/strong&gt; is an open-source reference library designed to enhance collaboration efficiency with Claude Code. It synthesizes fragmented advice from the official Anthropic team (including Claude Code creator Boris Cherny) and practical strategies from community developers handling large monorepos.&lt;/p&gt;

&lt;h3&gt;
  
  
  Author Introduction
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Author&lt;/strong&gt;: shanraisshan&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Core Philosophy&lt;/strong&gt;: Advocates for an "Architecture-Driven Model," emphasizing guiding AI through clear specifications rather than simple dialogue.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Project Data
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;⭐ GitHub Stars: ~1k+ (growing rapidly)&lt;/li&gt;
&lt;li&gt;🍴 Forks: ~150+&lt;/li&gt;
&lt;li&gt;📄 License: CC0 1.0 Universal (Public Domain)&lt;/li&gt;
&lt;li&gt;🌐 GitHub: &lt;a href="https://github.com/shanraisshan/claude-code-best-practice" rel="noopener noreferrer"&gt;https://github.com/shanraisshan/claude-code-best-practice&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Key Features &amp;amp; Core Modules
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Core Modules
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Concepts&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Deep dive into the optimal line count for &lt;code&gt;CLAUDE.md&lt;/code&gt; (recommended 60–150 lines) and using &lt;code&gt;.claude/rules/&lt;/code&gt; for path-scoped constraints.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Workflows&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Introduces advanced workflows like "Cross-Model Collaboration" and "Parallel Git Worktrees."&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tips &amp;amp; Tricks&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Consolidates over 70 practical tips for Prompting, Planning, and Memory management.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Agent Teams&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Explores coordinating specialized sub-agents (e.g., a dedicated QA Agent) to review code.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Core Advice
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Always start with &lt;code&gt;/plan&lt;/code&gt;&lt;/strong&gt;: Before executing any code, have Claude generate a plan and get human confirmation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Manual &lt;code&gt;/compact&lt;/code&gt; Mechanism&lt;/strong&gt;: When context usage exceeds 50%, manually trigger compaction to avoid the AI's "dumb zone."&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use &lt;code&gt;&amp;lt;important if="..."&amp;gt;&lt;/code&gt; Tags&lt;/strong&gt;: Ensure rules are strictly enforced using conditional tags as the project grows.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Quick Start
&lt;/h3&gt;

&lt;p&gt;To immediately boost your Claude Code efficiency:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Streamline your CLAUDE.md&lt;/strong&gt;: Remove redundant descriptions and keep only core architectural definitions and styles.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Configure Custom Hooks&lt;/strong&gt;: Add scripts under &lt;code&gt;.claude/hooks/&lt;/code&gt; to auto-run tests after code modifications.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Introduce a Task List&lt;/strong&gt;: Have Claude maintain a live task list under &lt;code&gt;/memories/session/&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Project Advantages
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Dimension&lt;/th&gt;
&lt;th&gt;This Project (Agentic Engineering)&lt;/th&gt;
&lt;th&gt;Regular Usage (Vibe Coding)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Predictability&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;High, via planning and gating&lt;/td&gt;
&lt;td&gt;Low, dependent on AI improvisation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Large-scale Handling&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Strong, using tiered rules and local context&lt;/td&gt;
&lt;td&gt;Weak, easily loses track of global context&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Automation&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Extremely high, including auto-tests&lt;/td&gt;
&lt;td&gt;Medium, limited to code generation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Collaboration&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Supports multi-branch parallel work&lt;/td&gt;
&lt;td&gt;Limited to single session interaction&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Detailed Analysis: Advanced Techniques
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. The Power of Git Worktrees
&lt;/h3&gt;

&lt;p&gt;The project strongly recommends using &lt;code&gt;git worktree&lt;/code&gt;. This allows you to assign independent physical paths to different agents. One agent can fix bugs while another develops features on a new branch—each with its own isolated test environment.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Cross-Model Quality Assurance
&lt;/h3&gt;

&lt;p&gt;Recommends using two instances of Claude Code: one as an "Implementation Agent" and another as a "Reviewer Agent." The reviewer uses tools like &lt;code&gt;grep_search&lt;/code&gt; to find flaws and ensure logical rigor.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Progressive Disclosure
&lt;/h3&gt;

&lt;p&gt;Don't dump every document at once. Use a well-structured directory and index to guide the AI to read a module's &lt;code&gt;SKILL.md&lt;/code&gt; only when it needs to modify that specific part.&lt;/p&gt;

&lt;h2&gt;
  
  
  Project Resources
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Official Resources
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;🌟 &lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/shanraisshan/claude-code-best-practice" rel="noopener noreferrer"&gt;https://github.com/shanraisshan/claude-code-best-practice&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📚 &lt;strong&gt;Docs&lt;/strong&gt;: Recommended starting point: &lt;code&gt;concepts.md&lt;/code&gt; in the root directory.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Target Audience
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AI-Native Developers&lt;/strong&gt;: Full-stack engineers pursuing peak development efficiency.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Team Leads&lt;/strong&gt;: Managers needing to standardize AI programming norms for their teams.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hardcore Claude Code Users&lt;/strong&gt;: Those looking to break usage bottlenecks and handle complex business logic.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Welcome to visit my &lt;a href="https://home.wonlab.top" rel="noopener noreferrer"&gt;Homepage&lt;/a&gt; to find more useful knowledge and interesting products.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>claude</category>
      <category>agentic</category>
    </item>
    <item>
      <title>One Open Source Project a Day (No.34): second-brain-skills - A Skill Toolkit That Turns Claude Code Into a Knowledge Work Expert</title>
      <dc:creator>WonderLab</dc:creator>
      <pubDate>Thu, 09 Apr 2026 02:59:38 +0000</pubDate>
      <link>https://dev.to/wonderlab/one-open-source-project-a-day-no69-second-brain-skills-a-skill-toolkit-that-turns-claude-code-1hhn</link>
      <guid>https://dev.to/wonderlab/one-open-source-project-a-day-no69-second-brain-skills-a-skill-toolkit-that-turns-claude-code-1hhn</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;"The limits of your AI are the limits of what you've equipped it with."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is article No.34 in the "One Open Source Project a Day" series. Today's project is &lt;strong&gt;second-brain-skills&lt;/strong&gt; (&lt;a href="https://github.com/coleam00/second-brain-skills" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Most people treat Claude Code as a programming tool — write code, fix bugs, refactor. But if you're a content creator, indie developer, or a one-person company juggling technical docs, presentation decks, and brand building, you quickly realize Claude Code's default capabilities cover only a fraction of your actual work.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;second-brain-skills&lt;/strong&gt; changes that. Opened by AI Agent engineer &lt;strong&gt;Cole Medin&lt;/strong&gt;, this project upgrades Claude Code from a coding specialist to a &lt;strong&gt;full-spectrum knowledge work partner&lt;/strong&gt; through a set of carefully designed Claude Code Skills: brand guidelines, professional PPTX decks, operations runbooks, external MCP service connections, and even programmatic video generation — all following the principle of "Progressive Disclosure of Context" to avoid wasting your precious context window.&lt;/p&gt;

&lt;h3&gt;
  
  
  What You'll Learn
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;A new take on "Second Brain" in the context of AI workflows&lt;/li&gt;
&lt;li&gt;The design philosophy behind Claude Code Skills: progressive context disclosure&lt;/li&gt;
&lt;li&gt;The functionality and usage of all 6 production-ready Skills&lt;/li&gt;
&lt;li&gt;How to connect to external services (Zapier, GitHub) via the MCP Client Skill&lt;/li&gt;
&lt;li&gt;How to build your own custom Skills based on this framework&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Prerequisites
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Familiarity with Claude Code basics&lt;/li&gt;
&lt;li&gt;Understanding of Markdown syntax&lt;/li&gt;
&lt;li&gt;Python basics (for MCP Client)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Project Background
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What Is It?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;"Second Brain"&lt;/strong&gt; is a classic personal knowledge management (PKM) concept popularized by Tiago Forte in &lt;em&gt;Building a Second Brain&lt;/em&gt; — using digital systems as an extension of your mind to systematically capture, organize, and apply knowledge.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;second-brain-skills&lt;/code&gt; brings this concept into AI workflows: through Claude Code's Skill mechanism, Claude dynamically loads the relevant instructions, templates, and tools for a given domain only when needed — a true extension of your "second brain."&lt;/p&gt;

&lt;p&gt;Unlike typical RAG solutions, this project &lt;strong&gt;requires no vector database or retrieval system&lt;/strong&gt;. Context is loaded progressively via carefully structured Markdown files.&lt;/p&gt;

&lt;h3&gt;
  
  
  About the Author
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Author&lt;/strong&gt;: &lt;a href="https://github.com/coleam00" rel="noopener noreferrer"&gt;Cole Medin (coleam00)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Company&lt;/strong&gt;: Dynamous (AI education &amp;amp; tools)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;YouTube&lt;/strong&gt;: &lt;a href="https://www.youtube.com/@ColeMedin" rel="noopener noreferrer"&gt;@ColeMedin&lt;/a&gt; (practical AI Agent content creator)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Followers&lt;/strong&gt;: 6,500+&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Notable Projects&lt;/strong&gt;: Archon (13.9k ⭐), context-engineering-intro (13.1k ⭐), ottomator-agents (5.5k ⭐)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cole is one of the most active practitioners in the Claude Code ecosystem, focused on engineering AI Agent technology into real-world workflows — strong on implementation, not just theory.&lt;/p&gt;

&lt;h3&gt;
  
  
  Project Stats
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;⭐ &lt;strong&gt;GitHub Stars&lt;/strong&gt;: 648&lt;/li&gt;
&lt;li&gt;🍴 &lt;strong&gt;Forks&lt;/strong&gt;: 195&lt;/li&gt;
&lt;li&gt;🔄 &lt;strong&gt;Last Updated&lt;/strong&gt;: January 2026&lt;/li&gt;
&lt;li&gt;📄 &lt;strong&gt;License&lt;/strong&gt;: Not explicitly declared (copyright retained by author)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Key Features
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Core Design Philosophy: Progressive Context Disclosure
&lt;/h3&gt;

&lt;p&gt;The most important idea in this project isn't any single feature — it's &lt;strong&gt;Progressive Disclosure of Context&lt;/strong&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Load relevant context only when needed, rather than stuffing everything into the context window upfront.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The traditional approach is to pack all knowledge into the system prompt, burning tokens on every conversation. &lt;code&gt;second-brain-skills&lt;/code&gt; uses a three-layer on-demand loading model instead:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Layer&lt;/th&gt;
&lt;th&gt;Content&lt;/th&gt;
&lt;th&gt;When Loaded&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Metadata layer&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;SKILL.md YAML frontmatter (name + description)&lt;/td&gt;
&lt;td&gt;Always visible&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Instruction layer&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;SKILL.md Markdown body (detailed workflow)&lt;/td&gt;
&lt;td&gt;Loaded when Skill is triggered&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Resource layer&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Files in scripts/, references/&lt;/td&gt;
&lt;td&gt;Loaded on demand during execution&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;This design lets Claude Code manage dozens of Skills while keeping each conversation's context lean and efficient.&lt;/p&gt;

&lt;h3&gt;
  
  
  The 6 Core Skills
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1. Brand &amp;amp; Voice Generator&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Creates a complete brand configuration system for your company/project, outputting 4 standardized files:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;brand.json&lt;/code&gt; — colors, fonts, visual specs&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;config.json&lt;/code&gt; — brand metadata&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;brand-system.md&lt;/code&gt; — complete brand system documentation&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;tone-of-voice.md&lt;/code&gt; — brand voice and tone guidelines&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These 4 files become the "single source of truth" for your brand, used by subsequent Skills (PPTX Generator, content creation) to maintain consistency automatically.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. PPTX Generator&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Generates brand-consistent professional slide decks with &lt;strong&gt;16 visually-first slide layout templates&lt;/strong&gt; — no more "wall of text" presentations:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Template&lt;/th&gt;
&lt;th&gt;Best For&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;title-slide&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Cover page&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;stats-slide&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Data dashboards&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;circular-hero-slide&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Product/person focus&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;floating-cards-slide&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Multi-element comparison&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;code-slide&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Technical demos&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;chart-slide&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Data visualization&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;quote-slide&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Quotes / key insights&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;two-column-slide&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Side-by-side analysis&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Also supports LinkedIn carousel format (square) for social media content.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. SOP Creator&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Generates structured operations manuals, technical documentation, and runbooks for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Team operations and process documentation&lt;/li&gt;
&lt;li&gt;Technical runbooks and incident response playbooks&lt;/li&gt;
&lt;li&gt;Product playbooks&lt;/li&gt;
&lt;li&gt;Employee onboarding guides&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;4. Skill Creator&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Guides you through creating a new custom Skill that conforms to the framework's conventions, with built-in best practice checks to ensure your new Skill follows progressive context disclosure principles.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. MCP Client&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Connects to external MCP servers via a unified interface, supporting &lt;strong&gt;4 transport protocols&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;stdio&lt;/code&gt;: Local subprocess (command-line tools)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;SSE&lt;/code&gt;: Server-Sent Events&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Streamable HTTP&lt;/code&gt;: HTTP streaming&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;FastMCP&lt;/code&gt;: Bearer Token authentication&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ships with ready-to-use configs for Zapier, GitHub, Sequential Thinking, and more.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Remotion Video Creator&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Programmatically generate videos&lt;/strong&gt; with React components — Remotion translates code into MP4 files. Perfect for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Product demo videos&lt;/li&gt;
&lt;li&gt;Data visualization animations&lt;/li&gt;
&lt;li&gt;Short-form social media content&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Quick Start
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Clone the repository&lt;/span&gt;
git clone https://github.com/coleam00/second-brain-skills.git

&lt;span class="c"&gt;# Option 1: Use in your own project&lt;/span&gt;
&lt;span class="c"&gt;# Copy the .claude/ directory to your project root&lt;/span&gt;
&lt;span class="nb"&gt;cp&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; second-brain-skills/.claude /your-project/

&lt;span class="c"&gt;# Option 2: Open Claude Code directly in the repo&lt;/span&gt;
&lt;span class="nb"&gt;cd &lt;/span&gt;second-brain-skills
&lt;span class="c"&gt;# Open Claude Code — Skills are ready to use&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Configure MCP Client (optional)&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; .claude/skills/mcp-client/references/
&lt;span class="nb"&gt;cp &lt;/span&gt;example-mcp-config.json mcp-config.json
&lt;span class="c"&gt;# Edit mcp-config.json and fill in your API keys&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Install Python dependencies (for MCP Client)&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;mcp fastmcp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Using Skills&lt;/strong&gt; — trigger with natural language in Claude Code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"Create a brand config for WonderLab"
→ triggers Brand &amp;amp; Voice Generator

"Make an AI trends report deck using our brand"
→ triggers PPTX Generator

"Write a runbook for our Docker deployment process"
→ triggers SOP Creator

"Connect to Zapier MCP and list available actions"
→ triggers MCP Client
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  How It Compares
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Dimension&lt;/th&gt;
&lt;th&gt;second-brain-skills&lt;/th&gt;
&lt;th&gt;RAG Solution&lt;/th&gt;
&lt;th&gt;Direct System Prompt&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Context efficiency&lt;/td&gt;
&lt;td&gt;✅ Load on demand&lt;/td&gt;
&lt;td&gt;Varies (retrieval quality)&lt;/td&gt;
&lt;td&gt;❌ Full load every time&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Deployment complexity&lt;/td&gt;
&lt;td&gt;✅ Copy a folder&lt;/td&gt;
&lt;td&gt;High (vector DB required)&lt;/td&gt;
&lt;td&gt;✅ Low&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Extensibility&lt;/td&gt;
&lt;td&gt;✅ Add a Skill file&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;❌ Requires prompt edits&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Workflow consistency&lt;/td&gt;
&lt;td&gt;✅ Best practices baked in&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;❌ Describe each time&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Best for&lt;/td&gt;
&lt;td&gt;Fixed professional tasks&lt;/td&gt;
&lt;td&gt;Unstructured knowledge queries&lt;/td&gt;
&lt;td&gt;One-off conversations&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Deep Dive
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Skill File Structure Anatomy
&lt;/h3&gt;

&lt;p&gt;Every Skill follows a consistent directory convention:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;.claude/skills/
└── skill-name/
    ├── SKILL.md          # Required: trigger conditions + workflow instructions
    ├── scripts/          # Optional: executable scripts (deterministic operations)
    ├── references/       # Optional: reference docs (loaded on demand at runtime)
    └── assets/           # Optional: templates, fonts, images (not auto-loaded)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;SKILL.md structure&lt;/strong&gt; (SOP Creator example):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;SOP Creator&lt;/span&gt;
&lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Creates runbooks, playbooks, and technical documentation&lt;/span&gt;
&lt;span class="nn"&gt;---&lt;/span&gt;

&lt;span class="gu"&gt;## Trigger Conditions&lt;/span&gt;
Activate when the user needs to create an operations manual, runbook, playbook,
or technical documentation.

&lt;span class="gu"&gt;## Workflow&lt;/span&gt;

&lt;span class="gu"&gt;### 1. Gather Information&lt;/span&gt;
First ask:
&lt;span class="p"&gt;-&lt;/span&gt; Document type (Runbook / Playbook / SOP / Onboarding guide)
&lt;span class="p"&gt;-&lt;/span&gt; Target audience
&lt;span class="p"&gt;-&lt;/span&gt; Core process or scenario being documented

&lt;span class="gu"&gt;### 2. Structure Generation&lt;/span&gt;
Generate the document structure using this template:
&lt;span class="p"&gt;-&lt;/span&gt; Overview and Purpose
&lt;span class="p"&gt;-&lt;/span&gt; Prerequisites
&lt;span class="p"&gt;-&lt;/span&gt; Step-by-step Instructions (with command examples)
&lt;span class="p"&gt;-&lt;/span&gt; Troubleshooting
&lt;span class="p"&gt;-&lt;/span&gt; Related Documentation Links

&lt;span class="gu"&gt;### 3. Formatting Rules&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Use Markdown throughout
&lt;span class="p"&gt;-&lt;/span&gt; Wrap all commands in code blocks
&lt;span class="p"&gt;-&lt;/span&gt; Add warning callouts for critical steps
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;description&lt;/code&gt; field in the YAML frontmatter is how Claude Code decides &lt;strong&gt;when to activate&lt;/strong&gt; this Skill — it's the Skill's "trigger dictionary."&lt;/p&gt;

&lt;h3&gt;
  
  
  PPTX Generator's Cookbook Mechanism
&lt;/h3&gt;

&lt;p&gt;The core innovation in PPTX Generator is the &lt;strong&gt;Cookbook&lt;/strong&gt; design. Each slide layout is an independent Python script; Claude selects and combines them as needed when generating a deck:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# cookbook/stats-slide.py (simplified)
&lt;/span&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;pptx&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Presentation&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;pptx.util&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Inches&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Pt&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;pptx.dml.color&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;RGBColor&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;create_stats_slide&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;prs&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;brand_config&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;stats_data&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;
    Create a statistics/data showcase slide
    brand_config: loaded from brand.json
    stats_data: [{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;label&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;: &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Users&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;, &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;value&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;: &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;10,000&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;, &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;growth&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;: &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;+23%&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;}]
    &lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
    &lt;span class="n"&gt;slide_layout&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;prs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;slide_layouts&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;  &lt;span class="c1"&gt;# Blank layout
&lt;/span&gt;    &lt;span class="n"&gt;slide&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;prs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;slides&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;add_slide&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;slide_layout&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="c1"&gt;# Apply brand background color
&lt;/span&gt;    &lt;span class="n"&gt;bg_color&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;RGBColor&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;from_string&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;brand_config&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;colors&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;background&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
    &lt;span class="c1"&gt;# ... render stats numbers, growth indicators, etc.
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The "cookbook" design has three key advantages:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Each layout is independently maintained — changes to one don't affect others&lt;/li&gt;
&lt;li&gt;Claude can autonomously combine layouts to build a complete deck&lt;/li&gt;
&lt;li&gt;Users can add custom layouts without modifying any core logic&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  MCP Client's Unified Interface
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;mcp_client.py&lt;/code&gt; uses Python &lt;code&gt;asyncio&lt;/code&gt; to provide a unified abstraction over all 4 transport protocols:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# scripts/mcp_client.py (simplified)
&lt;/span&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;contextlib&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;asynccontextmanager&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;mcp&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;ClientSession&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;StdioServerParameters&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;mcp.client.stdio&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;stdio_client&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;mcp.client.sse&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;sse_client&lt;/span&gt;

&lt;span class="nd"&gt;@asynccontextmanager&lt;/span&gt;
&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;connect_to_server&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;server_config&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;dict&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;Unified connection interface — auto-selects transport based on config&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
    &lt;span class="n"&gt;transport&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;server_config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;transport&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;stdio&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;transport&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;stdio&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;params&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;StdioServerParameters&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
            &lt;span class="n"&gt;command&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;server_config&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;command&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
            &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;server_config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;args&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[]),&lt;/span&gt;
            &lt;span class="n"&gt;env&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;server_config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;env&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nf"&gt;stdio_client&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;params&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="nf"&gt;as &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;read&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;write&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
            &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nc"&gt;ClientSession&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;read&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;write&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;session&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;session&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;initialize&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
                &lt;span class="k"&gt;yield&lt;/span&gt; &lt;span class="n"&gt;session&lt;/span&gt;

    &lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="n"&gt;transport&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;sse&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;streamable-http&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nf"&gt;sse_client&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
            &lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;server_config&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;url&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
            &lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;server_config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;headers&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{})&lt;/span&gt;
        &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="nf"&gt;as &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;read&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;write&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
            &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nc"&gt;ClientSession&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;read&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;write&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;session&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;session&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;initialize&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
                &lt;span class="k"&gt;yield&lt;/span&gt; &lt;span class="n"&gt;session&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Config file (&lt;code&gt;mcp-config.json&lt;/code&gt;) example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"zapier"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"transport"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"sse"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://mcp.zapier.com/api/v1/connect"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"headers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"Authorization"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Bearer YOUR_ZAPIER_API_KEY"&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"sequential-thinking"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"transport"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"stdio"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"npx"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"args"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"-y"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"@modelcontextprotocol/server-sequential-thinking"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"github"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"transport"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"stdio"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"npx"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"args"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"-y"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"@modelcontextprotocol/server-github"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"env"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"GITHUB_PERSONAL_ACCESS_TOKEN"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"YOUR_TOKEN"&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Brand System: Single Source of Truth
&lt;/h3&gt;

&lt;p&gt;The 4 files output by Brand &amp;amp; Voice Generator form an interconnected brand system:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;brands/
└── your-brand/
    ├── brand.json         # Visual specs (colors, fonts, spacing)
    ├── config.json        # Brand metadata (name, industry, target audience)
    ├── brand-system.md    # Full brand guidelines (human-readable)
    └── tone-of-voice.md   # Voice style (formal/casual/technical/etc.)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Example &lt;code&gt;brand.json&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"WonderLab"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"colors"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"background"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"0A0A0A"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"primary"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"6366F1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"accent"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"8B5CF6"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"text"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"F9FAFB"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"muted"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"6B7280"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"fonts"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"heading"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Inter"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"body"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Inter"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"code"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"JetBrains Mono"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"spacing"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"slide_padding"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;60&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"element_gap"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;24&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;PPTX Generator automatically reads this file, ensuring every slide stays on-brand — no need to re-specify colors and fonts each time.&lt;/p&gt;




&lt;h2&gt;
  
  
  Resources
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Official
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;🌟 &lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/coleam00/second-brain-skills" rel="noopener noreferrer"&gt;https://github.com/coleam00/second-brain-skills&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🎬 &lt;strong&gt;Author's YouTube&lt;/strong&gt;: &lt;a href="https://www.youtube.com/@ColeMedin" rel="noopener noreferrer"&gt;@ColeMedin&lt;/a&gt; (includes tutorial videos)&lt;/li&gt;
&lt;li&gt;🐛 &lt;strong&gt;Issues&lt;/strong&gt;: &lt;a href="https://github.com/coleam00/second-brain-skills/issues" rel="noopener noreferrer"&gt;https://github.com/coleam00/second-brain-skills/issues&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Other Projects by the Author
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Archon&lt;/strong&gt; (13.9k ⭐): Deterministic AI Agent framework&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;context-engineering-intro&lt;/strong&gt; (13.1k ⭐): AI context engineering tutorial&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;mcp-crawl4ai-rag&lt;/strong&gt; (2.1k ⭐): Web scraping + RAG solution for AI Agents&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Key Takeaways
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Progressive Context Disclosure&lt;/strong&gt;: Three-layer on-demand loading is far more efficient than "stuff everything into the system prompt" — this is the most transferable design insight from the project&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Skills as Markdown&lt;/strong&gt;: Defining AI workflows in Markdown creates zero barrier to entry; anyone can write a custom Skill without touching Python&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Brand system integration&lt;/strong&gt;: The Brand Skill → PPTX Skill workflow turns brand consistency from a manual effort into an automated process&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MCP unified abstraction&lt;/strong&gt;: 4 transport protocols behind a single config-file interface makes connecting external services trivially simple&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Solo creator friendly&lt;/strong&gt;: The project's scope maps almost perfectly onto the needs of a "one-person company" — from technical docs to content creation, fully covered&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Who Should Use This
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Indie developers / one-person companies&lt;/strong&gt;: Full-stack knowledge workers handling tech, content, and brand simultaneously&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Content creators&lt;/strong&gt;: Anyone who needs to produce brand-consistent PPT decks and documents at scale&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Technical writers&lt;/strong&gt;: Engineers responsible for maintaining large collections of SOPs, runbooks, and playbooks&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Claude Code power users&lt;/strong&gt;: Developers who want to transform Claude Code into a personalized work platform&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Visit my &lt;a href="https://home.wonlab.top" rel="noopener noreferrer"&gt;personal site&lt;/a&gt; for more useful knowledge and interesting products&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>claude</category>
      <category>skills</category>
    </item>
    <item>
      <title>One Open Source Project a Day (No.33): DeerFlow - ByteDance's SuperAgent Execution Engine</title>
      <dc:creator>WonderLab</dc:creator>
      <pubDate>Wed, 08 Apr 2026 02:24:54 +0000</pubDate>
      <link>https://dev.to/wonderlab/one-open-source-project-a-day-no33-deerflow-bytedances-superagent-execution-engine-83o</link>
      <guid>https://dev.to/wonderlab/one-open-source-project-a-day-no33-deerflow-bytedances-superagent-execution-engine-83o</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;"LLMs shouldn't just talk about actions — they should actually execute them."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is article No.33 in the "One Open Source Project a Day" series. Today's project is &lt;strong&gt;DeerFlow&lt;/strong&gt; (&lt;a href="https://github.com/bytedance/deer-flow" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Most AI Agent frameworks share a hidden limitation: they're good at &lt;em&gt;suggesting&lt;/em&gt;, but not at &lt;em&gt;doing&lt;/em&gt;. Generating code is easy — but actually running it, handling errors, iterating, and producing a deliverable artifact? That's the real challenge for complex research and automation tasks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DeerFlow&lt;/strong&gt; (Deep Exploration and Efficient Research Flow) is ByteDance's open-source answer to this problem. Completely rewritten in v2.0, it's no longer just a deep research framework — it's a general-purpose &lt;strong&gt;SuperAgent execution engine&lt;/strong&gt; that runs code in real sandboxes, orchestrates parallel sub-agents, and handles tasks that take minutes to hours — from a single prompt all the way to a research report, a webpage, or a working program.&lt;/p&gt;

&lt;p&gt;It hit &lt;strong&gt;#1 on GitHub Trending&lt;/strong&gt; shortly after launch and now sits at &lt;strong&gt;59k+ Stars&lt;/strong&gt;, making it one of the most watched open-source projects in the AI Agent space.&lt;/p&gt;

&lt;h3&gt;
  
  
  What You'll Learn
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;DeerFlow's core positioning and the v1 → v2 architectural evolution&lt;/li&gt;
&lt;li&gt;The SuperAgent execution flow: Lead Agent + parallel sub-agent orchestration&lt;/li&gt;
&lt;li&gt;How sandbox-isolated code execution works and its security design&lt;/li&gt;
&lt;li&gt;The Skills-as-Markdown extensibility mechanism&lt;/li&gt;
&lt;li&gt;Multi-model support strategy and Chinese model optimization&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Prerequisites
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Basic understanding of LLM API calls (OpenAI-compatible interface format)&lt;/li&gt;
&lt;li&gt;Some Docker experience (recommended for deployment)&lt;/li&gt;
&lt;li&gt;Python basics (optional, for customization)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Project Background
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What Is It?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;DeerFlow&lt;/strong&gt; stands for &lt;strong&gt;Deep Exploration and Efficient Research Flow&lt;/strong&gt;, open-sourced by &lt;strong&gt;ByteDance&lt;/strong&gt;. The project has gone through two major versions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;v1.x&lt;/strong&gt;: Positioned as a deep research framework — multi-round search, web scraping, and consolidated report generation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;v2.0&lt;/strong&gt; (February 2026, complete rewrite): Elevated to a general-purpose &lt;strong&gt;SuperAgent execution engine&lt;/strong&gt;, introducing real sandbox code execution and a much broader range of supported task types&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;v2.0 shares &lt;strong&gt;no code&lt;/strong&gt; with v1.x — it's a ground-up architectural rebuild, marking the project's transition from a "research assistance tool" to a "production-grade Agent execution engine."&lt;/p&gt;

&lt;h3&gt;
  
  
  About the Team
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Organization&lt;/strong&gt;: ByteDance (official open-source project)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nature&lt;/strong&gt;: Community-driven, led by ByteDance engineers, accepts external contributions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Release Timeline&lt;/strong&gt;: v1.0 ~early 2025, v2.0 released February 2026&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Milestone&lt;/strong&gt;: Hit #1 on GitHub Trending on February 28, 2026&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Project Stats
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;⭐ &lt;strong&gt;GitHub Stars&lt;/strong&gt;: 59,200+&lt;/li&gt;
&lt;li&gt;🍴 &lt;strong&gt;Forks&lt;/strong&gt;: 7,500+&lt;/li&gt;
&lt;li&gt;🐛 &lt;strong&gt;Open Issues&lt;/strong&gt;: ~365&lt;/li&gt;
&lt;li&gt;📄 &lt;strong&gt;License&lt;/strong&gt;: MIT&lt;/li&gt;
&lt;li&gt;🔄 &lt;strong&gt;Active Branches&lt;/strong&gt;: &lt;code&gt;main&lt;/code&gt; (v2.x), &lt;code&gt;main-1.x&lt;/code&gt; (v1.x maintenance)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Key Features
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Core Purpose
&lt;/h3&gt;

&lt;p&gt;DeerFlow's fundamental value proposition is making AI Agents actually &lt;em&gt;do things&lt;/em&gt; rather than just &lt;em&gt;talk about things&lt;/em&gt;:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Capability&lt;/th&gt;
&lt;th&gt;Traditional Agent Frameworks&lt;/th&gt;
&lt;th&gt;DeerFlow v2.0&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Code Execution&lt;/td&gt;
&lt;td&gt;Generates code (doesn't run it)&lt;/td&gt;
&lt;td&gt;Real execution in isolated sandbox&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Task Duration&lt;/td&gt;
&lt;td&gt;Seconds to minutes&lt;/td&gt;
&lt;td&gt;Minutes to hours&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Task Decomposition&lt;/td&gt;
&lt;td&gt;Sequential execution&lt;/td&gt;
&lt;td&gt;Parallel sub-agent orchestration&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Output Type&lt;/td&gt;
&lt;td&gt;Text suggestions&lt;/td&gt;
&lt;td&gt;Real deliverables: files, pages, programs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Context Limits&lt;/td&gt;
&lt;td&gt;Bound by single model window&lt;/td&gt;
&lt;td&gt;Sub-agent divide-and-conquer&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Use Cases
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Deep Research Reports&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Given a research topic, automatically performs multi-round search, web scraping, and data synthesis to produce a structured report&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Code Generation &amp;amp; Validation&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;From requirements to a working program — real execution and debugging in the sandbox, iterating until it works&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Data Analysis &amp;amp; Visualization&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Upload a data file; the Agent writes analysis scripts, generates charts, and outputs a ready-to-use analytics report&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Web Development&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Describe what you need; the Agent writes HTML/CSS/JS, validates it in the sandbox, and delivers a complete webpage&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Content Creation&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Automatically generate slides, podcast summaries, technical blog posts, and other content formats&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Quick Start
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Recommended (Docker)&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Clone the repository&lt;/span&gt;
git clone https://github.com/bytedance/deer-flow.git
&lt;span class="nb"&gt;cd &lt;/span&gt;deer-flow

&lt;span class="c"&gt;# Generate configuration file&lt;/span&gt;
make config

&lt;span class="c"&gt;# Edit config — fill in your model API keys&lt;/span&gt;
&lt;span class="c"&gt;# Supports OpenAI, Claude, DeepSeek, Qwen, Doubao, etc.&lt;/span&gt;
vim config.yaml

&lt;span class="c"&gt;# Initialize and start&lt;/span&gt;
make docker-init
make docker-start

&lt;span class="c"&gt;# Access the web UI&lt;/span&gt;
&lt;span class="c"&gt;# http://localhost:2026&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Local development mode&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Check environment requirements (Python 3.12+, Node.js 22+)&lt;/span&gt;
make check

&lt;span class="c"&gt;# Install dependencies (uv for Python, pnpm for JS)&lt;/span&gt;
make &lt;span class="nb"&gt;install&lt;/span&gt;

&lt;span class="c"&gt;# Start development servers&lt;/span&gt;
make dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Built-in Skills
&lt;/h3&gt;

&lt;p&gt;DeerFlow ships with several production-ready skills out of the box:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Skill&lt;/th&gt;
&lt;th&gt;Functionality&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Deep Research&lt;/td&gt;
&lt;td&gt;Multi-round search + web scraping + consolidated research report&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Report Generation&lt;/td&gt;
&lt;td&gt;Formatted report generation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Slide Creation&lt;/td&gt;
&lt;td&gt;Presentation slide creation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Web Page Development&lt;/td&gt;
&lt;td&gt;Full webpage development&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GitHub Deep Research&lt;/td&gt;
&lt;td&gt;In-depth GitHub repository analysis&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  How It Compares
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Dimension&lt;/th&gt;
&lt;th&gt;DeerFlow&lt;/th&gt;
&lt;th&gt;AutoGen&lt;/th&gt;
&lt;th&gt;CrewAI&lt;/th&gt;
&lt;th&gt;Manus&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Real Code Execution&lt;/td&gt;
&lt;td&gt;✅ Sandbox isolated&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅ (commercial)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Open Source&lt;/td&gt;
&lt;td&gt;MIT&lt;/td&gt;
&lt;td&gt;MIT&lt;/td&gt;
&lt;td&gt;MIT&lt;/td&gt;
&lt;td&gt;❌ Closed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Chinese Model Support&lt;/td&gt;
&lt;td&gt;✅ First-class&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Production Validated&lt;/td&gt;
&lt;td&gt;✅ ByteDance&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Skills Extensibility&lt;/td&gt;
&lt;td&gt;✅ Markdown&lt;/td&gt;
&lt;td&gt;Python class&lt;/td&gt;
&lt;td&gt;Python class&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Deployment Complexity&lt;/td&gt;
&lt;td&gt;Medium (Docker)&lt;/td&gt;
&lt;td&gt;Low&lt;/td&gt;
&lt;td&gt;Low&lt;/td&gt;
&lt;td&gt;No self-hosting&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Why choose DeerFlow?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Validated in ByteDance's production environments — reliability is battle-tested&lt;/li&gt;
&lt;li&gt;Sandbox execution produces actual deliverables, not just text suggestions&lt;/li&gt;
&lt;li&gt;First-class support for DeepSeek, Qwen, Doubao, and other Chinese models&lt;/li&gt;
&lt;li&gt;Skills-as-Markdown has the lowest extension barrier in its class&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Deep Dive
&lt;/h2&gt;

&lt;h3&gt;
  
  
  System Architecture
&lt;/h3&gt;

&lt;p&gt;DeerFlow supports &lt;strong&gt;two deployment modes&lt;/strong&gt;, sharing the same frontend but differing in backend process count:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Standard Mode — Recommended for production
┌─────────────────────────────────────┐
│  Nginx (Reverse Proxy + Routing)    │
├──────────────┬──────────────────────┤
│  Frontend    │  Gateway API         │
│  (Web UI)    │  (REST + WebSocket)  │
│              ├──────────────────────┤
│              │  LangGraph Server    │
│              │  (Standalone Agent   │
│              │   Runtime)           │
└──────────────┴──────────────────────┘

Gateway Mode — Experimental, lighter deployment
┌─────────────────────────────────────┐
│  Nginx                              │
├──────────────┬──────────────────────┤
│  Frontend    │  Gateway API         │
│              │  (Embedded Agent     │
│              │   Runtime)           │
└──────────────┴──────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Core Execution Flow
&lt;/h3&gt;

&lt;p&gt;DeerFlow's agent orchestration is a &lt;strong&gt;three-tier structure&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User Input (Prompt)
        │
        ▼
┌───────────────────────────────────────┐
│          Lead Agent                   │
│  Task decomposition → Sub-task plan   │
│  → Result aggregation                 │
└──────┬─────────────┬──────────────────┘
       │             │             │
       ▼             ▼             ▼
  Researcher     Coder Agent    Reporter
  Sub-Agent      (Code Gen +    Sub-Agent
  (Search/Crawl)  Sandbox Exec) (Report Synthesis)
       │             │
       ▼             ▼
  Search APIs    Docker Sandbox
  Web Scraping   bash / Python
                 File System
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The Lead Agent is the system's "brain", responsible for:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Understanding task intent and breaking it into parallelizable sub-tasks&lt;/li&gt;
&lt;li&gt;Assigning each sub-task to the appropriate Sub-Agent&lt;/li&gt;
&lt;li&gt;Aggregating results from all Sub-Agents into the final output&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Sandbox Execution
&lt;/h3&gt;

&lt;p&gt;The sandbox is one of v2.0's most important technical breakthroughs. Real code isolation is achieved through Docker containers:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Simplified: Coder Sub-Agent's sandbox invocation
&lt;/span&gt;&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;execute_in_sandbox&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;code&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;language&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;python&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;ExecutionResult&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;
    Execute code inside a Docker container, isolated from the host
    &lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
    &lt;span class="n"&gt;container&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;docker_client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;containers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="n"&gt;image&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;deerflow-sandbox:latest&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;command&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;python&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;-c&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;code&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
        &lt;span class="n"&gt;volumes&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;/mnt/user-data/workspace&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;bind&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;/workspace&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;mode&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;rw&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;/mnt/user-data/outputs&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;bind&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;/outputs&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;mode&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;rw&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="n"&gt;network_mode&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;bridge&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;  &lt;span class="c1"&gt;# Restricted network access
&lt;/span&gt;        &lt;span class="n"&gt;mem_limit&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;2g&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;         &lt;span class="c1"&gt;# Memory cap
&lt;/span&gt;        &lt;span class="n"&gt;cpu_period&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;100000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;cpu_quota&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;50000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;        &lt;span class="c1"&gt;# CPU cap at 50%
&lt;/span&gt;    &lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;container&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;start&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="n"&gt;stdout&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;stderr&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;container&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;logs&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nc"&gt;ExecutionResult&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="n"&gt;stdout&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;stdout&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;decode&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;
        &lt;span class="n"&gt;stderr&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;stderr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;decode&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;
        &lt;span class="n"&gt;exit_code&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;StatusCode&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Sandbox filesystem layout:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;Inside the Docker container:
├── /mnt/user-data/uploads    &lt;span class="c"&gt;# User-uploaded files (read-only)&lt;/span&gt;
├── /mnt/user-data/workspace  &lt;span class="c"&gt;# Agent working directory (read-write)&lt;/span&gt;
└── /mnt/user-data/outputs    &lt;span class="c"&gt;# Final output artifacts (read-write)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This design guarantees:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Security isolation&lt;/strong&gt;: Agent-generated code cannot access sensitive host files&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reproducibility&lt;/strong&gt;: Every task runs in a clean container, avoiding state contamination&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Real deliverables&lt;/strong&gt;: Output files persist to the host machine, immediately usable by the user&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Skills as Markdown
&lt;/h3&gt;

&lt;p&gt;The Skills system is the crown jewel of DeerFlow's extensibility design. Unlike other frameworks that define Skills as Python classes, DeerFlow uses &lt;strong&gt;Markdown files&lt;/strong&gt; — dramatically lowering the barrier to extension:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.claude/skills/deep-research/
├── SKILL.md              # Skill description, trigger conditions, execution steps
└── references/
    ├── search-strategy.md    # Search strategy specifications
    ├── report-template.md    # Report template
    └── quality-checklist.md  # Quality checklist
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A typical &lt;code&gt;SKILL.md&lt;/code&gt; structure:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# Deep Research Skill&lt;/span&gt;

&lt;span class="gu"&gt;## Trigger Conditions&lt;/span&gt;
Activate when the user needs to conduct deep research on a topic,
competitive analysis, or industry investigation.

&lt;span class="gu"&gt;## Execution Steps&lt;/span&gt;
&lt;span class="p"&gt;1.&lt;/span&gt; Understand the research objective; break it into 3-5 key questions
&lt;span class="p"&gt;2.&lt;/span&gt; Perform multi-round searches per question (minimum 3 rounds, diverse angles)
&lt;span class="p"&gt;3.&lt;/span&gt; Crawl high-quality source pages; extract key information
&lt;span class="p"&gt;4.&lt;/span&gt; Synthesize findings; identify consensus and contradictions
&lt;span class="p"&gt;5.&lt;/span&gt; Generate structured output using the report template

&lt;span class="gu"&gt;## Output Format&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Executive summary (&amp;lt; 200 words)
&lt;span class="p"&gt;-&lt;/span&gt; Deep-dive sections (500-1000 words each)
&lt;span class="p"&gt;-&lt;/span&gt; Key findings summary
&lt;span class="p"&gt;-&lt;/span&gt; Source reference list

&lt;span class="gu"&gt;## Load Resources&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; load_skill_resource("references/search-strategy.md")
&lt;span class="p"&gt;-&lt;/span&gt; load_skill_resource("references/report-template.md")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This design means &lt;strong&gt;non-engineers can write and customize skills&lt;/strong&gt; — all you need is Markdown, no Python code required.&lt;/p&gt;

&lt;h3&gt;
  
  
  LangGraph Integration
&lt;/h3&gt;

&lt;p&gt;DeerFlow chose &lt;strong&gt;LangGraph&lt;/strong&gt; as the Agent orchestration layer rather than building its own state machine. LangGraph's key advantages:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Directed Acyclic Graph (DAG)&lt;/strong&gt;: Task dependencies are clearly visualized&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Checkpoints&lt;/strong&gt;: Supports Human-in-the-Loop — pause and wait for human approval at critical nodes&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Persistent State&lt;/strong&gt;: Cross-session task state saving supports interruption and resumption of long-running tasks&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Parallel Execution&lt;/strong&gt;: Native parallel node execution means Sub-Agents can truly run concurrently
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# DeerFlow's LangGraph workflow (simplified)
&lt;/span&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;langgraph.graph&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;StateGraph&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;END&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;typing&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;TypedDict&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;ResearchState&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;TypedDict&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;query&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;
    &lt;span class="n"&gt;sub_tasks&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;list&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="n"&gt;search_results&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;dict&lt;/span&gt;
    &lt;span class="n"&gt;code_outputs&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;dict&lt;/span&gt;
    &lt;span class="n"&gt;final_report&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;

&lt;span class="n"&gt;workflow&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;StateGraph&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ResearchState&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Add nodes
&lt;/span&gt;&lt;span class="n"&gt;workflow&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;add_node&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;planner&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;lead_agent_plan&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;workflow&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;add_node&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;researcher&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;researcher_agent&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;workflow&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;add_node&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;coder&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;coder_agent&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;workflow&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;add_node&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;reporter&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;reporter_agent&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Define edges (execution order)
&lt;/span&gt;&lt;span class="n"&gt;workflow&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;set_entry_point&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;planner&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;workflow&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;add_edge&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;planner&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;researcher&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;workflow&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;add_edge&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;planner&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;coder&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;       &lt;span class="c1"&gt;# Parallel
&lt;/span&gt;&lt;span class="n"&gt;workflow&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;add_edge&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;researcher&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;reporter&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;workflow&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;add_edge&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;coder&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;reporter&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;workflow&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;add_edge&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;reporter&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;END&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;workflow&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;compile&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Multi-Model Strategy
&lt;/h3&gt;

&lt;p&gt;DeerFlow is model-agnostic, with recommended selection criteria:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Long context&lt;/strong&gt;: 100k+ tokens (for processing large search results and codebases)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reasoning&lt;/strong&gt;: Complex multi-step reasoning capability&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tool calling&lt;/strong&gt;: Reliable function calling / tool use&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Recommended Chinese models&lt;/strong&gt;: Doubao-Seed-2.0-Code (ByteDance in-house), DeepSeek v3.2, Kimi 2.5&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Configuration (&lt;code&gt;config.yaml&lt;/code&gt;):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Any OpenAI-compatible endpoint works&lt;/span&gt;
&lt;span class="na"&gt;llm&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;provider&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;openai_compatible&lt;/span&gt;
  &lt;span class="na"&gt;base_url&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://ark.cn-beijing.volces.com/api/v3"&lt;/span&gt;
  &lt;span class="na"&gt;api_key&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;${DOUBAO_API_KEY}"&lt;/span&gt;
  &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;doubao-seed-2-0-code-250605"&lt;/span&gt;
  &lt;span class="na"&gt;max_tokens&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;16384&lt;/span&gt;

&lt;span class="c1"&gt;# Or use DeepSeek&lt;/span&gt;
&lt;span class="na"&gt;llm&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;provider&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;openai_compatible&lt;/span&gt;
  &lt;span class="na"&gt;base_url&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://api.deepseek.com"&lt;/span&gt;
  &lt;span class="na"&gt;api_key&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;${DEEPSEEK_API_KEY}"&lt;/span&gt;
  &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;deepseek-v3"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Resources
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Official
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;🌟 &lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/bytedance/deer-flow" rel="noopener noreferrer"&gt;https://github.com/bytedance/deer-flow&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📄 &lt;strong&gt;Docs&lt;/strong&gt;: &lt;a href="https://github.com/bytedance/deer-flow#readme" rel="noopener noreferrer"&gt;Project README&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🐛 &lt;strong&gt;Issues&lt;/strong&gt;: &lt;a href="https://github.com/bytedance/deer-flow/issues" rel="noopener noreferrer"&gt;https://github.com/bytedance/deer-flow/issues&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Related Projects
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;LangGraph&lt;/strong&gt;: The Agent orchestration framework powering DeerFlow's backend&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LangSmith / Langfuse&lt;/strong&gt;: Observability tracing integrations&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OpenDeepResearch&lt;/strong&gt; (OpenAI): Comparable competitor in the deep research space&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Key Takeaways
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Positioning leap&lt;/strong&gt;: From v1's deep research tool to v2's general SuperAgent execution engine — the core jump is real execution capability, not just text generation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Docker sandbox&lt;/strong&gt;: Real isolated code execution means Agents produce actual deliverables, not suggestions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sub-agent parallelism&lt;/strong&gt;: The Lead Agent + Sub-Agent architecture breaks past single-model context limits, enabling genuinely complex long-running tasks&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Skills-as-Markdown&lt;/strong&gt;: Lowest-barrier extensibility in its class — non-engineers can customize Agent behavior&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Chinese model first-class support&lt;/strong&gt;: First-class support for Doubao, DeepSeek, and Qwen makes it the natural choice for developers in China&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Who Should Use This
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Researchers / Analysts&lt;/strong&gt;: Knowledge workers who need to aggregate and synthesize large amounts of information&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI Engineers&lt;/strong&gt;: Development teams building production-grade Agent applications that need a reliable execution engine&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Python Developers&lt;/strong&gt;: Practitioners looking to learn LangGraph and multi-agent orchestration through a real-world codebase&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Enterprise Tech Teams&lt;/strong&gt;: Teams exploring AI automation of complex tasks — research, reporting, code generation&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Visit my &lt;a href="https://home.wonlab.top" rel="noopener noreferrer"&gt;personal site&lt;/a&gt; for more useful knowledge and interesting products&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>langchain</category>
      <category>agents</category>
    </item>
    <item>
      <title>5 Agent Skill Design Patterns from Google: Cut Token Waste, Trigger the Right Behavior</title>
      <dc:creator>WonderLab</dc:creator>
      <pubDate>Tue, 07 Apr 2026 13:07:20 +0000</pubDate>
      <link>https://dev.to/wonderlab/5-agent-skill-design-patterns-from-google-cut-token-waste-trigger-the-right-behavior-52mo</link>
      <guid>https://dev.to/wonderlab/5-agent-skill-design-patterns-from-google-cut-token-waste-trigger-the-right-behavior-52mo</guid>
      <description>&lt;p&gt;This article is distilled from Lavi Nigam (Google ADK Agent Engineering expert) on Agent Skill design, summarizing 5 production-ready SKILL.md design patterns to help developers reduce token waste and improve skill quality.&lt;/p&gt;

&lt;h2&gt;
  
  
  Background: Why Do We Need Skill Design Patterns?
&lt;/h2&gt;

&lt;p&gt;In AI Native product development, the root cause of massive token waste is twofold: forcing the model to repeatedly guess user intent that should be clearly specified, and expressing with complex instructions what could be expressed simply.&lt;/p&gt;

&lt;p&gt;With structured SKILL.md design patterns, we can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reduce the model's "guessing" cost and trigger the right behavior precisely&lt;/li&gt;
&lt;li&gt;Standardize how skills are written, reducing friction in team collaboration&lt;/li&gt;
&lt;li&gt;Use progressive knowledge loading to dramatically cut token consumption&lt;/li&gt;
&lt;li&gt;Let the Agent activate the right skill at the right time&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Overview of the 5 Patterns
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk7mulpgfvlqaiinwl7m8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk7mulpgfvlqaiinwl7m8.png" alt="001" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Pattern 1: Tool Wrapper
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Core idea&lt;/strong&gt;: SKILL.md uses &lt;code&gt;load_skill_resource&lt;/code&gt; to load spec files from &lt;code&gt;references/&lt;/code&gt;. The Agent applies those rules and instantly becomes a domain expert. No scripts, no templates — pure knowledge encapsulation.&lt;/p&gt;

&lt;h3&gt;
  
  
  How It Works
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx4cmy1uuvv7endgttrdd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx4cmy1uuvv7endgttrdd.png" alt="Pattern 1: Tool Wrapper" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  File Structure
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;my-skill/
├── SKILL.md              # Trigger keywords + load instructions (no scripts, no templates)
└── references/
    └── conventions.md    # Conventions, rules, best practices
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Use Cases
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;FastAPI routing conventions and response model specs&lt;/li&gt;
&lt;li&gt;Terraform resource naming and module patterns&lt;/li&gt;
&lt;li&gt;PostgreSQL query optimization best practices&lt;/li&gt;
&lt;li&gt;Internal API design guidelines&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  SKILL.md Example
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;fastapi-expert&lt;/span&gt;
&lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Helps write code following FastAPI best practices. Triggered when the user needs to write FastAPI code, routes, or dependency injection.&lt;/span&gt;
&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;span class="c1"&gt;# FastAPI Expert Mode&lt;/span&gt;

&lt;span class="c1"&gt;## Activation Rules&lt;/span&gt;
&lt;span class="na"&gt;Load reference doc&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="err"&gt;`&lt;/span&gt;&lt;span class="s"&gt;references/fastapi-conventions.md`&lt;/span&gt;
&lt;span class="s"&gt;Ensure all generated FastAPI code follows the conventions defined in that document.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Key point&lt;/strong&gt;: The &lt;code&gt;description&lt;/code&gt; field is the Agent's search index. It must contain specific business keywords — too vague and the skill won't be triggered correctly.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Pattern 2: Generator
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Core idea&lt;/strong&gt;: The &lt;code&gt;assets/&lt;/code&gt; template determines "what structure to output," while the &lt;code&gt;references/&lt;/code&gt; style guide controls "how to write it." Templates enforce structure; the style guide ensures quality.&lt;/p&gt;

&lt;h3&gt;
  
  
  How It Works
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Femjnsa1bwnj93vel6944.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Femjnsa1bwnj93vel6944.png" alt="Pattern 2: Generator" width="800" height="432"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  File Structure
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;my-skill/
├── SKILL.md
├── assets/
│   └── report-template.md    # Output structure template (required sections)
└── references/
    └── style-guide.md        # Tone and formatting style guide
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Use Cases
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Technical analysis reports&lt;/li&gt;
&lt;li&gt;API reference documentation&lt;/li&gt;
&lt;li&gt;Standardized Git commit messages&lt;/li&gt;
&lt;li&gt;Agent scaffold code&lt;/li&gt;
&lt;li&gt;Weekly / monthly report templates&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Choose the Generator pattern when &lt;strong&gt;structural consistency&lt;/strong&gt; matters more than creativity.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Pattern 3: Reviewer
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Core idea&lt;/strong&gt;: Separate "what to check" (checklist) from "how to check" (review protocol). Swap the checklist file in &lt;code&gt;references/&lt;/code&gt; and you get an entirely different review type using the same skill structure.&lt;/p&gt;

&lt;h3&gt;
  
  
  How It Works
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fht8yf6pasqnozh2ey2go.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fht8yf6pasqnozh2ey2go.png" alt="Pattern 3: Reviewer" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  File Structure
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;my-skill/
├── SKILL.md                  # Review protocol (how to check: load, apply, report)
└── references/
    └── review-checklist.md   # Checklist (what to check: rules grouped by severity)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Output Format
&lt;/h3&gt;

&lt;p&gt;Review findings should be grouped by severity:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Level&lt;/th&gt;
&lt;th&gt;Meaning&lt;/th&gt;
&lt;th&gt;Examples&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;❌ Error&lt;/td&gt;
&lt;td&gt;Must fix — affects functionality or security&lt;/td&gt;
&lt;td&gt;SQL injection, unhandled exceptions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;⚠️ Warning&lt;/td&gt;
&lt;td&gt;Should fix — affects quality&lt;/td&gt;
&lt;td&gt;Missing type hints, naming violations&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ℹ️ Info&lt;/td&gt;
&lt;td&gt;Optional improvement&lt;/td&gt;
&lt;td&gt;Incomplete comments, extractable logic&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Use Cases
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Code Review&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Python type annotation checks&lt;/li&gt;
&lt;li&gt;Exception handling completeness&lt;/li&gt;
&lt;li&gt;Function complexity assessment&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Security Audit&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OWASP Top 10 checks&lt;/li&gt;
&lt;li&gt;Hardcoded secrets detection&lt;/li&gt;
&lt;li&gt;SQL injection risk&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Content Review&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Technical documentation formatting&lt;/li&gt;
&lt;li&gt;Tone consistency&lt;/li&gt;
&lt;li&gt;Terminology usage&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;API Documentation Review&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Parameter description completeness&lt;/li&gt;
&lt;li&gt;Code example correctness&lt;/li&gt;
&lt;li&gt;Error code coverage&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Pattern 4: Inversion
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Core idea&lt;/strong&gt;: Flip the Agent's conversational role. The Agent asks questions first; the user answers — the skill drives the dialogue. Effectively prevents the Agent from making blind assumptions and reduces wasted output.&lt;/p&gt;

&lt;h3&gt;
  
  
  Three-Phase Flow
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fubnyzz44ozbt3gebzqad.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fubnyzz44ozbt3gebzqad.png" alt="Pattern 4: Inversion" width="800" height="437"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Control Directive
&lt;/h3&gt;

&lt;p&gt;Must be written explicitly in SKILL.md:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;DO NOT start building until all phases are complete.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Use Cases
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Project requirements gathering&lt;/li&gt;
&lt;li&gt;System fault diagnosis guidance&lt;/li&gt;
&lt;li&gt;Infrastructure configuration wizard&lt;/li&gt;
&lt;li&gt;Pre-report information collection for custom outputs&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Pattern 5: Pipeline
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Core idea&lt;/strong&gt;: Define a strictly ordered multi-step workflow with explicit Gate Conditions between steps. Gates prevent skipping validation steps.&lt;/p&gt;

&lt;h3&gt;
  
  
  How It Works
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdkfrdbpwupvo141pc4ic.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdkfrdbpwupvo141pc4ic.png" alt="Pattern 5: Pipeline" width="800" height="371"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  File Structure
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;my-skill/
├── SKILL.md          # Step definitions + gate control logic
├── references/       # Reference specs for each step
├── assets/           # Output templates
└── scripts/          # Automation scripts (optional)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Gate Control Template
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gu"&gt;## Step N: [Step Name]&lt;/span&gt;
[Step description]

&lt;span class="ge"&gt;*Gate: Do NOT proceed to Step N+1 until [condition]!*&lt;/span&gt;
&lt;span class="ge"&gt;*If any step is skipped or fails, do not continue.*&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Use Cases
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Code documentation (parse → user confirms → generate → quality check)&lt;/li&gt;
&lt;li&gt;Data cleaning and processing pipelines&lt;/li&gt;
&lt;li&gt;Code deployment workflow (review → test → release → verify)&lt;/li&gt;
&lt;li&gt;Multi-step approval processes&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  How to Choose the Right Pattern
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Quick Decision Guide
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Need&lt;/th&gt;
&lt;th&gt;Recommended Pattern&lt;/th&gt;
&lt;th&gt;Complexity&lt;/th&gt;
&lt;th&gt;Decision Criteria&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Give the Agent expert knowledge of a specific library/tool&lt;/td&gt;
&lt;td&gt;📖 Tool Wrapper&lt;/td&gt;
&lt;td&gt;Low&lt;/td&gt;
&lt;td&gt;Just need to encapsulate conventions — no fixed output format required&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ensure output structure is always consistent&lt;/td&gt;
&lt;td&gt;📝 Generator&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;Fixed section/format template; structure consistency &amp;gt; creativity&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Evaluate/score existing content against a standard&lt;/td&gt;
&lt;td&gt;✅ Reviewer&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;Task resembles "grade against a rubric"; output grouped by severity&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Prevent blind assumptions — must gather context first&lt;/td&gt;
&lt;td&gt;❓ Inversion&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;Agent needs user specifics before it can begin&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Execute a strict ordered multi-step flow with gates&lt;/td&gt;
&lt;td&gt;🔄 Pipeline&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;Steps have dependencies; order is critical; user confirmation required mid-flow&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Decision Tree
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fevrobomf6fk6x2hec7ta.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fevrobomf6fk6x2hec7ta.png" alt="Choosing the Right Pattern" width="800" height="556"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Real-World Case: E-Commerce Product Selection Pipeline
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Scenario
&lt;/h3&gt;

&lt;p&gt;Design a pipeline combining Inversion + Reviewer + Generator to cover the full loop from requirements gathering to final product selection report.&lt;/p&gt;

&lt;h3&gt;
  
  
  Directory Structure
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ecommerce-product-selector/
├── SKILL.md                                 # Main instruction file (Pipeline control)
├── references/
│   └── product-evaluation-checklist.md     # Product evaluation criteria (Reviewer pattern)
└── assets/
    └── selection-report-template.md        # Final report template (Generator pattern)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Complete SKILL.md Example
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ecommerce-product-selector&lt;/span&gt;
&lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Helps with e-commerce product selection, market analysis, profit calculation, and generating standard selection reports. Triggered when the user needs to find or evaluate products.&lt;/span&gt;
&lt;span class="na"&gt;metadata&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;pattern&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Pipeline&lt;/span&gt;
  &lt;span class="na"&gt;domain&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;E-commerce&lt;/span&gt;
&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;span class="c1"&gt;# E-Commerce Product Selection Workflow&lt;/span&gt;

&lt;span class="s"&gt;You are a professional e-commerce product selection expert. Follow the steps below strictly in order.&lt;/span&gt;

&lt;span class="na"&gt;**Core rule&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Do NOT start generating a product selection plan until all phases are complete!**&lt;/span&gt;
&lt;span class="s"&gt;If any step is skipped or fails, do not continue.&lt;/span&gt;

&lt;span class="c1"&gt;## Step 1: Gather Requirements (Inversion Pattern)&lt;/span&gt;

&lt;span class="na"&gt;Actively ask the user to collect product selection context&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
&lt;span class="s"&gt;1. Who is the target audience?&lt;/span&gt;
&lt;span class="s"&gt;2. What is the budget and expected profit margin?&lt;/span&gt;
&lt;span class="s"&gt;3. Are there specific category preferences or supply chain advantages?&lt;/span&gt;

&lt;span class="nv"&gt;*Gate&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Wait for the user to answer all questions before proceeding to Step 2.*&lt;/span&gt;

&lt;span class="c1"&gt;## Step 2: Evaluate Products (Reviewer Pattern)&lt;/span&gt;

&lt;span class="na"&gt;Load and apply evaluation criteria&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;Load checklist&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="err"&gt;`&lt;/span&gt;&lt;span class="s"&gt;references/product-evaluation-checklist.md`&lt;/span&gt;
&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;Score products against the checklist (❌ Fatal flaw / ⚠️ Risk / ✅ Advantage)&lt;/span&gt;

&lt;span class="c1"&gt;## Step 3: User Confirmation (Pipeline Gate)&lt;/span&gt;

&lt;span class="s"&gt;Present the preliminary findings from Step 2 to the user.&lt;/span&gt;

&lt;span class="nv"&gt;*Gate&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Do NOT proceed to Step 4 until the user explicitly confirms!*&lt;/span&gt;

&lt;span class="c1"&gt;## Step 4: Generate Final Report (Generator Pattern)&lt;/span&gt;

&lt;span class="s"&gt;After user confirmation, produce the formal report&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;
&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;Load template&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="err"&gt;`&lt;/span&gt;&lt;span class="s"&gt;assets/selection-report-template.md`&lt;/span&gt;
&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;Fill in the collected requirements and evaluation results, strictly following the template's section structure&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Key Design Notes
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Precise Description Triggering&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;description&lt;/code&gt; field is the Agent's search index. Including specific business keywords ("product selection," "profit calculation") ensures the skill is activated at the right moment — avoiding both false triggers and missed triggers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Progressive Knowledge Loading&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The Agent initially loads only ~100 tokens for the skill description. The evaluation checklist in &lt;code&gt;references/&lt;/code&gt; and the report template in &lt;code&gt;assets/&lt;/code&gt; are loaded only when the workflow reaches the corresponding step, significantly saving context window space.&lt;/p&gt;




&lt;h2&gt;
  
  
  Advanced Tips
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Start Simple
&lt;/h3&gt;

&lt;p&gt;If you're unsure which pattern to pick, start with the simplest: &lt;strong&gt;Tool Wrapper&lt;/strong&gt;. Encapsulate your team's conventions first. Upgrade to Generator when you need structured output, and to Reviewer when you need evaluation capabilities.&lt;/p&gt;

&lt;h3&gt;
  
  
  Pattern Combination Best Practices
&lt;/h3&gt;

&lt;p&gt;Production systems typically combine 2–3 patterns. Common pairings:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Combination&lt;/th&gt;
&lt;th&gt;Typical Scenario&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Pipeline + Reviewer&lt;/td&gt;
&lt;td&gt;Quality control gate at the end of a workflow&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Generator + Inversion&lt;/td&gt;
&lt;td&gt;Collect user context first, then generate a custom report&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pipeline + Inversion + Generator&lt;/td&gt;
&lt;td&gt;Full end-to-end business flow (like the product selection case above)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tool Wrapper + Generator&lt;/td&gt;
&lt;td&gt;Generate code or docs following expert conventions&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Progressive Knowledge Loading
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Load Timing&lt;/th&gt;
&lt;th&gt;Content Loaded&lt;/th&gt;
&lt;th&gt;Token Cost&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Skill activation&lt;/td&gt;
&lt;td&gt;SKILL.md description + base instructions&lt;/td&gt;
&lt;td&gt;~100 tokens (minimal)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;On reaching a step&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;references/&lt;/code&gt; checklist or spec doc&lt;/td&gt;
&lt;td&gt;On-demand — avoids upfront cost&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Generation phase&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;assets/&lt;/code&gt; output template&lt;/td&gt;
&lt;td&gt;Loaded only when needed&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h3&gt;
  
  
  🎉 Thanks for reading — let's enjoy what technology has to offer!
&lt;/h3&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Visit my personal homepage for all resources I share&lt;/strong&gt;: &lt;a href="https://home.wonlab.top" rel="noopener noreferrer"&gt;Homepage&lt;/a&gt;
&lt;/h3&gt;

</description>
      <category>ai</category>
      <category>skills</category>
      <category>agents</category>
      <category>google</category>
    </item>
    <item>
      <title>One Open Source Project a Day (No.32): OpenClaw-Admin - The Visual Control Center for AI Agent Gateways</title>
      <dc:creator>WonderLab</dc:creator>
      <pubDate>Tue, 07 Apr 2026 05:58:41 +0000</pubDate>
      <link>https://dev.to/wonderlab/one-open-source-project-a-day-no32-openclaw-admin-the-visual-control-center-for-ai-agent-27jj</link>
      <guid>https://dev.to/wonderlab/one-open-source-project-a-day-no32-openclaw-admin-the-visual-control-center-for-ai-agent-27jj</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;"Deploy AI Agents where your users already are — in the chat apps they use every day."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is article No.32 in the "One Open Source Project a Day" series. Today's project is &lt;strong&gt;OpenClaw-Admin&lt;/strong&gt; (&lt;a href="https://github.com/itq5/OpenClaw-Admin" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;One of the biggest challenges in AI Agent deployment is distribution: how do you get users to actually interact with your Agent? Building a dedicated app is expensive, and asking users to open yet another tool creates friction. &lt;strong&gt;OpenClaw&lt;/strong&gt; takes a different approach — bridge AI Agents directly into the IM platforms users already live in (QQ, Lark/Feishu, DingTalk, WeCom/WeChat for Work).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OpenClaw-Admin&lt;/strong&gt; is the "cockpit" for this multi-channel AI Agent gateway — a modern web management console built on &lt;strong&gt;Vue 3 + TypeScript&lt;/strong&gt; that provides everything from Agent configuration and session management to remote terminal access and real-time system monitoring.&lt;/p&gt;

&lt;h3&gt;
  
  
  What You'll Learn
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;The OpenClaw ecosystem architecture and where OpenClaw-Admin fits&lt;/li&gt;
&lt;li&gt;Vue 3 + Composition API + Naive UI best practices for admin dashboards&lt;/li&gt;
&lt;li&gt;Managing the full lifecycle of multi-channel AI Agents via a web UI&lt;/li&gt;
&lt;li&gt;Lightweight full-stack design with Express + SQLite + WebSocket&lt;/li&gt;
&lt;li&gt;Advanced features: remote terminal (xterm.js), SSH connection, system monitoring&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Prerequisites
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Basic understanding of Vue 3 (Composition API, Pinia)&lt;/li&gt;
&lt;li&gt;Some experience with AI Agents / LLM APIs&lt;/li&gt;
&lt;li&gt;Familiarity with Node.js ecosystem&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Project Background
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What Is It?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;OpenClaw-Admin&lt;/strong&gt; is the frontend management console for the &lt;a href="https://github.com/itq5/OpenClaw-Admin" rel="noopener noreferrer"&gt;OpenClaw Gateway&lt;/a&gt; ecosystem. The OpenClaw Gateway is a &lt;strong&gt;multi-channel AI Agent runtime&lt;/strong&gt; that bridges AI agents to mainstream IM platforms — letting users chat with AI directly inside the apps they already use.&lt;/p&gt;

&lt;p&gt;OpenClaw-Admin serves as the "brain" of the gateway, providing full visual management capabilities:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Agent Management&lt;/strong&gt;: Configure agent identities, capabilities, and permissions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Channel Configuration&lt;/strong&gt;: Connect to IM platform APIs and bots&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Model Integration&lt;/strong&gt;: Manage multiple AI model providers&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Session Monitoring&lt;/strong&gt;: Track all user-agent conversations in real time&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DevOps Tools&lt;/strong&gt;: Built-in remote terminal, SSH, desktop access, and file browser&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  About the Author
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/itq5" rel="noopener noreferrer"&gt;itq5&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Affiliation&lt;/strong&gt;: College of Training and Continuing Education, Southwest University&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Style&lt;/strong&gt;: Rapid iteration — continuously releasing new versions from v0.1.x to v0.2.x between March and April 2026&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Expertise&lt;/strong&gt;: API proxy/translation, web tools, AI/LLM integration&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Project Stats
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;⭐ &lt;strong&gt;GitHub Stars&lt;/strong&gt;: 276&lt;/li&gt;
&lt;li&gt;🍴 &lt;strong&gt;Forks&lt;/strong&gt;: 87&lt;/li&gt;
&lt;li&gt;🐛 &lt;strong&gt;Open Issues&lt;/strong&gt;: 11&lt;/li&gt;
&lt;li&gt;📦 &lt;strong&gt;Latest Version&lt;/strong&gt;: v0.2.6&lt;/li&gt;
&lt;li&gt;📄 &lt;strong&gt;License&lt;/strong&gt;: MIT&lt;/li&gt;
&lt;li&gt;🔄 &lt;strong&gt;Last Updated&lt;/strong&gt;: April 2026&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Key Features
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdbywtbi75veun70jq481.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdbywtbi75veun70jq481.png" alt="dashboard"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu49ppa22lsg3bowrzr2n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu49ppa22lsg3bowrzr2n.png" alt="Agents"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn6rj2ya9tcz81c48h1u9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn6rj2ya9tcz81c48h1u9.png" alt="virtual-company"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Core Purpose
&lt;/h3&gt;

&lt;p&gt;OpenClaw-Admin provides approximately &lt;strong&gt;17 functional modules&lt;/strong&gt; covering the complete lifecycle of AI Agent management:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Module&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Login &amp;amp; Dashboard&lt;/td&gt;
&lt;td&gt;Secure login, real-time Token usage trends, active session stats&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Online Chat&lt;/td&gt;
&lt;td&gt;Real-time chat interface with slash commands (/new, /skill, /model)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Session Management&lt;/td&gt;
&lt;td&gt;Create, monitor, delete Agent sessions; export history&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Memory Management&lt;/td&gt;
&lt;td&gt;Built-in Markdown editor for AGENTS/SOUL/IDENTITY/USER documents&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Scheduled Tasks&lt;/td&gt;
&lt;td&gt;Cron-based automation with execution history&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Multi-Channel Support&lt;/td&gt;
&lt;td&gt;QQ, Lark/Feishu, DingTalk, WeCom integration&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Model Configuration&lt;/td&gt;
&lt;td&gt;Multi-provider API key management with secure storage&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Skill Management&lt;/td&gt;
&lt;td&gt;Plugin installation and visibility control&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Multi-Agent Collaboration&lt;/td&gt;
&lt;td&gt;Create agents with independent identities and permissions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Remote Terminal&lt;/td&gt;
&lt;td&gt;SSE-based terminal emulation with SSH support&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Remote Desktop&lt;/td&gt;
&lt;td&gt;Linux/Windows remote desktop access&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;File Browser&lt;/td&gt;
&lt;td&gt;Remote file browsing, editing, and transfer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;System Monitoring&lt;/td&gt;
&lt;td&gt;Real-time CPU, memory, disk, network visualization&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Virtual Office&lt;/td&gt;
&lt;td&gt;Multi-role virtual collaboration environment&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Agent Workshop&lt;/td&gt;
&lt;td&gt;Multi-entity collaboration scenario orchestration&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Backup/Restore&lt;/td&gt;
&lt;td&gt;One-click system data backup and recovery&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PDF Viewer&lt;/td&gt;
&lt;td&gt;Built-in PDF viewer with LaTeX formula rendering&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Use Cases
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Enterprise AI Assistant Deployment&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Integrate ChatGPT/Claude capabilities into enterprise Lark/DingTalk — employees use AI without leaving their existing tools&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Personal Agent Hosting&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Deploy OpenClaw on a personal server and manage multiple specialized AI assistants via the Admin UI&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Multi-Model Routing&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Unified management of multiple AI providers — switch models based on use case from a single interface&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;DevOps AI Agent&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Combine the remote terminal and system monitoring features to let Agents participate directly in server operations&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Team Knowledge AI&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use the memory management feature to inject team-specific knowledge into Agents&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Quick Start
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Clone the repository&lt;/span&gt;
git clone https://github.com/itq5/OpenClaw-Admin.git
&lt;span class="nb"&gt;cd &lt;/span&gt;OpenClaw-Admin

&lt;span class="c"&gt;# Install dependencies (Node.js &amp;gt;= 18 required)&lt;/span&gt;
npm &lt;span class="nb"&gt;install&lt;/span&gt;

&lt;span class="c"&gt;# Configure environment variables&lt;/span&gt;
&lt;span class="nb"&gt;cp&lt;/span&gt; .env.example .env
&lt;span class="c"&gt;# Edit .env with your OpenClaw Gateway connection details&lt;/span&gt;

&lt;span class="c"&gt;# Start both frontend and backend (recommended)&lt;/span&gt;
npm run dev:all

&lt;span class="c"&gt;# Access the admin interface&lt;/span&gt;
&lt;span class="c"&gt;# http://localhost:3000&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Production deployment:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Build frontend&lt;/span&gt;
npm run build

&lt;span class="c"&gt;# Start production server&lt;/span&gt;
npm run start
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Core Features
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Vue 3 + Composition API&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fully embraces &lt;code&gt;&amp;lt;script setup&amp;gt;&lt;/code&gt; syntax; logic is organized by feature rather than option-based, making it highly maintainable&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Naive UI Component Library&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Built on Naive UI for consistent design; supports seamless dark/light theme switching&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Pinia State Management&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Stores split by business domain (session, agent, model, etc.) for clear state flow&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Lightweight Full Stack&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Backend uses only Express + SQLite — no heavyweight database required, ideal for self-hosting&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Real-time Communication&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;WebSocket enables zero-latency data push for terminal output and monitoring metrics&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Built-in i18n&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ships with Chinese/English support, switchable without page reload&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Unified Multi-Model Management&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Securely store API keys for multiple providers; configure model parameters from the UI&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;xterm.js Remote Terminal&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Browser-based terminal powered by &lt;code&gt;@xterm/xterm&lt;/code&gt; 6.x with SSH remote connection support&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  How It Compares
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Dimension&lt;/th&gt;
&lt;th&gt;OpenClaw-Admin&lt;/th&gt;
&lt;th&gt;Dify&lt;/th&gt;
&lt;th&gt;One-API&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;IM Platform Integration&lt;/td&gt;
&lt;td&gt;✅ QQ/Lark/DingTalk/WeCom&lt;/td&gt;
&lt;td&gt;❌ Not native&lt;/td&gt;
&lt;td&gt;❌ Not native&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Admin Web UI&lt;/td&gt;
&lt;td&gt;✅ Full-featured&lt;/td&gt;
&lt;td&gt;✅ Full-featured&lt;/td&gt;
&lt;td&gt;✅ Basic&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Remote DevOps Tools&lt;/td&gt;
&lt;td&gt;✅ Terminal + Desktop + Files&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Deployment Complexity&lt;/td&gt;
&lt;td&gt;✅ Single Node.js stack&lt;/td&gt;
&lt;td&gt;Medium (Docker)&lt;/td&gt;
&lt;td&gt;✅ Low&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Multi-Model Management&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅ Primary focus&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;License&lt;/td&gt;
&lt;td&gt;MIT&lt;/td&gt;
&lt;td&gt;Apache 2.0&lt;/td&gt;
&lt;td&gt;MIT&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Why choose OpenClaw-Admin?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The only admin console designed specifically for IM-platform AI Agent deployment&lt;/li&gt;
&lt;li&gt;All-in-one Node.js stack reduces operational overhead&lt;/li&gt;
&lt;li&gt;Built-in DevOps tools eliminate the need to switch between multiple tools&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Deep Dive
&lt;/h2&gt;

&lt;h3&gt;
  
  
  System Architecture
&lt;/h3&gt;

&lt;p&gt;OpenClaw-Admin uses an &lt;strong&gt;integrated full-stack&lt;/strong&gt; architecture where a single Node.js process serves:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Static Assets&lt;/strong&gt;: Distributes the Vite-built Vue 3 SPA&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;REST API&lt;/strong&gt;: Handles frontend data requests (Agent config, session data, etc.)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;WebSocket Server&lt;/strong&gt;: Real-time push for terminal output and system metrics&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SSE (Server-Sent Events)&lt;/strong&gt;: Unidirectional real-time data streams
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Browser (Vue 3 SPA)
     │
     ├── HTTP REST ────────→ Express Routes
     │                          │
     ├── WebSocket ────────→ ws Server ──→ node-pty (Terminal)
     │                          │         ssh2 (SSH)
     └── SSE ──────────────→ Express SSE ─→ System Metrics
                               │
                          SQLite (better-sqlite3)
                               │
                          OpenClaw Gateway API
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Frontend Architecture
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Directory Structure
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;src/
├── api/          # RPC client — encapsulates all backend API calls
├── stores/       # Pinia stores, organized by business domain
│   ├── session.ts      # Session state
│   ├── agent.ts        # Agent configuration
│   ├── model.ts        # Model providers
│   └── ...
├── views/        # Page components (~17 views matching functional modules)
├── composables/  # Reusable Vue 3 composables (use* naming convention)
│   ├── useTheme.ts     # Theme switching
│   ├── useTerminal.ts  # Terminal control
│   └── ...
└── i18n/         # Internationalization resource files
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Composition API Best Practices
&lt;/h4&gt;

&lt;p&gt;The project strictly follows &lt;code&gt;&amp;lt;script setup&amp;gt;&lt;/code&gt; style. Here's &lt;code&gt;useTerminal.ts&lt;/code&gt; as an example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// composables/useTerminal.ts&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;ref&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;onMounted&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;onUnmounted&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;vue&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;Terminal&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@xterm/xterm&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;FitAddon&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@xterm/addon-fit&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;useTerminal&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;containerId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;terminal&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;ref&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Terminal&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;fitAddon&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;FitAddon&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

  &lt;span class="nf"&gt;onMounted&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;terminal&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Terminal&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
      &lt;span class="na"&gt;cursorBlink&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;theme&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;background&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;#1e1e1e&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;})&lt;/span&gt;
    &lt;span class="nx"&gt;terminal&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;loadAddon&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;fitAddon&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nx"&gt;terminal&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;containerId&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nx"&gt;fitAddon&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;fit&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
  &lt;span class="p"&gt;})&lt;/span&gt;

  &lt;span class="nf"&gt;onUnmounted&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;terminal&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt;&lt;span class="p"&gt;?.&lt;/span&gt;&lt;span class="nf"&gt;dispose&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
  &lt;span class="p"&gt;})&lt;/span&gt;

  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;write&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;terminal&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt;&lt;span class="p"&gt;?.&lt;/span&gt;&lt;span class="nf"&gt;write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;resize&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;fitAddon&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;fit&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;terminal&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;write&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;resize&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;All logic is encapsulated in the Composable — the View component only handles UI rendering:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight vue"&gt;&lt;code&gt;&lt;span class="c"&gt;&amp;lt;!-- views/Terminal.vue --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;script&lt;/span&gt; &lt;span class="na"&gt;setup&lt;/span&gt; &lt;span class="na"&gt;lang=&lt;/span&gt;&lt;span class="s"&gt;"ts"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;useTerminal&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@/composables/useTerminal&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;write&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;resize&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useTerminal&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;terminal-container&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;// Rest: WebSocket connection, input handling...&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="k"&gt;script&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;template&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"terminal-container"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"h-full"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="k"&gt;template&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Backend Architecture
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Express + SQLite Lightweight Full Stack
&lt;/h4&gt;

&lt;p&gt;The backend lives in &lt;code&gt;server/&lt;/code&gt;, designed around the principle of &lt;strong&gt;extreme simplicity&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// server/index.js (simplified)&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;express&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;express&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;WebSocketServer&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;ws&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;Database&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;better-sqlite3&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;express&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;db&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Database&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;data.sqlite&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;// REST API routes&lt;/span&gt;
&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;use&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;/api/agents&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nf"&gt;agentRouter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;db&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;use&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;/api/sessions&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nf"&gt;sessionRouter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;db&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;use&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;/api/models&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nf"&gt;modelRouter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;db&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

&lt;span class="c1"&gt;// Static files (production)&lt;/span&gt;
&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;use&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;express&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;static&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;dist&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

&lt;span class="c1"&gt;// HTTP server&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;server&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;listen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3000&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;// WebSocket attached to same port&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;wss&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;WebSocketServer&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;server&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="nx"&gt;wss&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;on&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;connection&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;handleTerminalConnection&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;better-sqlite3&lt;/code&gt;'s synchronous API keeps database code clean and readable:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Synchronous reads — no async/await complexity&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;agents&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;prepare&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;SELECT * FROM agents WHERE active = 1&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;all&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;agent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;prepare&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;SELECT * FROM agents WHERE id = ?&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;agentId&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Terminal Implementation: node-pty + xterm.js
&lt;/h4&gt;

&lt;p&gt;The remote terminal is one of the project's technical highlights. &lt;strong&gt;node-pty&lt;/strong&gt; spawns a pseudo-terminal process on the server, and its output streams over &lt;strong&gt;WebSocket&lt;/strong&gt; to &lt;strong&gt;xterm.js&lt;/strong&gt; in the browser:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// server/terminal.js (simplified)&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;pty&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;node-pty&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;createTerminalSession&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;ws&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// Spawn a pseudo-terminal (bash/sh)&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;ptyProcess&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;pty&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;spawn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;bash&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[],&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;xterm-color&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;cols&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;80&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;rows&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;24&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;cwd&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;HOME&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;env&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;
  &lt;span class="p"&gt;})&lt;/span&gt;

  &lt;span class="c1"&gt;// Terminal output → WebSocket → browser xterm.js&lt;/span&gt;
  &lt;span class="nx"&gt;ptyProcess&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;onData&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;ws&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;output&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt; &lt;span class="p"&gt;}))&lt;/span&gt;
  &lt;span class="p"&gt;})&lt;/span&gt;

  &lt;span class="c1"&gt;// Browser input → WebSocket → pseudo-terminal&lt;/span&gt;
  &lt;span class="nx"&gt;ws&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;on&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;message&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;msg&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;type&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;parse&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;msg&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;type&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;input&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="nx"&gt;ptyProcess&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;type&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;resize&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="nx"&gt;ptyProcess&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;resize&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;cols&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;rows&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="p"&gt;})&lt;/span&gt;

  &lt;span class="nx"&gt;ws&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;on&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;close&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;ptyProcess&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;kill&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Memory Management: The SOUL/IDENTITY Design
&lt;/h3&gt;

&lt;p&gt;One of OpenClaw's most interesting design decisions is splitting an Agent's "personality" and "knowledge" into separate Markdown documents:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Document&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;AGENTS.md&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Agent capability boundaries and permission settings&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;SOUL.md&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Agent personality, tone, and behavioral style&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;IDENTITY.md&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Agent background and role definition&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;USER.md&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;User-specific context and preferences&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;OpenClaw-Admin provides a built-in Markdown editor for administrators to edit these documents directly — essentially "writing the soul" of each Agent. This design allows non-technical users to customize Agent behavior without touching prompt engineering code.&lt;/p&gt;

&lt;h3&gt;
  
  
  Internationalization
&lt;/h3&gt;

&lt;p&gt;The i18n system is based on JSON resource files in &lt;code&gt;src/i18n/&lt;/code&gt;, powered by Vue I18n:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Chinese resources&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;dashboard&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;title&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;仪表盘&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;tokenUsage&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Token 使用量&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;activeSessions&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;活跃会话&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;// English resources&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;dashboard&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;title&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Dashboard&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;tokenUsage&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Token Usage&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;activeSessions&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Active Sessions&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Language switching in the settings page updates the entire UI instantly without a page reload.&lt;/p&gt;




&lt;h2&gt;
  
  
  Resources
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Official
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;🌟 &lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/itq5/OpenClaw-Admin" rel="noopener noreferrer"&gt;https://github.com/itq5/OpenClaw-Admin&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🐛 &lt;strong&gt;Issue Tracker&lt;/strong&gt;: &lt;a href="https://github.com/itq5/OpenClaw-Admin/issues" rel="noopener noreferrer"&gt;https://github.com/itq5/OpenClaw-Admin/issues&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📦 &lt;strong&gt;Latest Release&lt;/strong&gt;: v0.2.6&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  OpenClaw Ecosystem
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;OpenClaw Gateway&lt;/strong&gt;: The AI Agent multi-channel runtime (core backend)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;awesome-openclaw-agents&lt;/strong&gt;: 187 production-ready AI Agent templates (SOUL.md format)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Tech Stack References
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://vuejs.org/" rel="noopener noreferrer"&gt;Vue 3 Docs&lt;/a&gt; - Core framework&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.naiveui.com/" rel="noopener noreferrer"&gt;Naive UI&lt;/a&gt; - UI component library&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://pinia.vuejs.org/" rel="noopener noreferrer"&gt;Pinia&lt;/a&gt; - State management&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://xtermjs.org/" rel="noopener noreferrer"&gt;xterm.js&lt;/a&gt; - Terminal emulation&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Key Takeaways
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Unique Positioning&lt;/strong&gt;: OpenClaw-Admin solves the Agent distribution problem — instead of asking users to adopt new tools, bring Agents to the platforms they already use&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Modern Tech Stack&lt;/strong&gt;: Vue 3 + TypeScript + Composition API + Naive UI represents the state of the art for web admin dashboards in 2025&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Complete Feature Set&lt;/strong&gt;: 17 modules cover the entire AI Agent operations lifecycle, from configuration to production monitoring&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Simple Deployment&lt;/strong&gt;: The all-in-one Node.js stack eliminates complex microservice overhead&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Design Insight&lt;/strong&gt;: The SOUL/IDENTITY document approach for Agent personality is clever — it makes Agent customization accessible to non-technical team members&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Who Should Use This
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AI Application Developers&lt;/strong&gt;: Engineers integrating AI capabilities into enterprise IM platforms&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vue 3 Learners&lt;/strong&gt;: Developers looking for a production-grade Vue 3 + TypeScript admin panel reference&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI Enthusiasts&lt;/strong&gt;: Technically inclined individuals who want to self-host and manage multiple AI assistants&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Enterprise Tech Teams&lt;/strong&gt;: Teams exploring AI-assisted DevOps and knowledge management&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Visit my &lt;a href="https://home.wonlab.top" rel="noopener noreferrer"&gt;personal site&lt;/a&gt; for more useful knowledge and interesting products&lt;/em&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>ai</category>
      <category>openclaw</category>
      <category>vue</category>
    </item>
    <item>
      <title>Open Source Project of the Day (Part 31): awesome-openclaw-usecases - A Collection of Real OpenClaw Use Cases</title>
      <dc:creator>WonderLab</dc:creator>
      <pubDate>Mon, 06 Apr 2026 01:33:02 +0000</pubDate>
      <link>https://dev.to/wonderlab/open-source-project-of-the-day-part-31-awesome-openclaw-usecases-a-collection-of-real-openclaw-9gc</link>
      <guid>https://dev.to/wonderlab/open-source-project-of-the-day-part-31-awesome-openclaw-usecases-a-collection-of-real-openclaw-9gc</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;"Solving the bottleneck of OpenClaw adaptation: Not &lt;del&gt;skills&lt;/del&gt;, but finding &lt;strong&gt;ways it can improve your life&lt;/strong&gt;."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is Part 31 of the "Open Source Project of the Day" series. Today we explore &lt;strong&gt;awesome-openclaw-usecases&lt;/strong&gt; (&lt;a href="https://github.com/hesamsheikh/awesome-openclaw-usecases" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;), maintained by &lt;strong&gt;hesamsheikh&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;You may have heard of &lt;strong&gt;OpenClaw&lt;/strong&gt; (formerly ClawdBot, MoltBot), an open-source AI Agent framework, but perhaps not known "what it can do" or "how it can actually improve my life." &lt;strong&gt;awesome-openclaw-usecases&lt;/strong&gt; is a &lt;strong&gt;community-driven use case collection&lt;/strong&gt; featuring 29+ verified real scenarios covering &lt;strong&gt;social media&lt;/strong&gt; (Reddit/YouTube daily digests, X account analysis), &lt;strong&gt;productivity&lt;/strong&gt; (multi-channel personal assistant, project state management, health tracking), &lt;strong&gt;DevOps&lt;/strong&gt; (self-healing home server, n8n workflow orchestration), &lt;strong&gt;research and learning&lt;/strong&gt; (knowledge base RAG, market research), &lt;strong&gt;creative building&lt;/strong&gt; (goal-driven autonomous tasks, YouTube content pipeline), and more. Each use case includes detailed descriptions and implementation guidance, helping users move from "not knowing what it can do" to "finding a use case that fits their needs." The project emphasizes &lt;strong&gt;real verification&lt;/strong&gt;: only use cases that have been actually used for at least one day and verified to work are accepted — theoretical or crypto-related cases are rejected.&lt;/p&gt;

&lt;h3&gt;
  
  
  What You'll Learn
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;awesome-openclaw-usecases' positioning: an OpenClaw use case collection solving the "use case discovery" bottleneck&lt;/li&gt;
&lt;li&gt;Use case categories: social media, productivity, DevOps, research and learning, creative building, finance and trading&lt;/li&gt;
&lt;li&gt;Typical use cases: daily digests, multi-channel assistant, project state management, knowledge base RAG, self-healing server&lt;/li&gt;
&lt;li&gt;Community contribution mechanism: how to submit new use cases, security considerations&lt;/li&gt;
&lt;li&gt;Relationship with OpenClaw: use case collection vs. the framework itself&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Prerequisites
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Basic understanding of &lt;strong&gt;OpenClaw&lt;/strong&gt; (AI Agent framework with skill/plugin extension support)&lt;/li&gt;
&lt;li&gt;Some familiarity with AI Agents and automation workflows&lt;/li&gt;
&lt;li&gt;To implement use cases, OpenClaw deployment and configuration experience is needed&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Project Background
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Project Introduction
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;awesome-openclaw-usecases&lt;/strong&gt; is a &lt;strong&gt;community-maintained collection of real OpenClaw use cases&lt;/strong&gt;. The core problem it solves: the bottleneck of OpenClaw adoption is not "skills" — it's &lt;strong&gt;finding ways to improve your life with it&lt;/strong&gt;. The project contains 29+ verified real use cases, each including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Name and description&lt;/strong&gt;: The core functionality of the use case&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Detailed documentation&lt;/strong&gt;: Markdown files in the &lt;code&gt;usecases/&lt;/code&gt; directory with implementation steps, required skills, configuration examples, etc.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Category tags&lt;/strong&gt;: For easy lookup by scenario&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Use cases are organized into six major categories: &lt;strong&gt;Social Media&lt;/strong&gt; (4), &lt;strong&gt;Creative &amp;amp; Building&lt;/strong&gt; (3), &lt;strong&gt;Infrastructure &amp;amp; DevOps&lt;/strong&gt; (2), &lt;strong&gt;Productivity&lt;/strong&gt; (15+), &lt;strong&gt;Research &amp;amp; Learning&lt;/strong&gt; (4), and &lt;strong&gt;Finance &amp;amp; Trading&lt;/strong&gt; (1).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Target user groups&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;New OpenClaw users&lt;/strong&gt;: Don't know what it can do and need inspiration&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Existing OpenClaw users&lt;/strong&gt;: Want to expand use cases and improve efficiency&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI Agent practitioners&lt;/strong&gt;: Reference real use cases to learn how to design automated workflows&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Community contributors&lt;/strong&gt;: Share their own use cases to help others&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Author/Team Introduction
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Maintainer&lt;/strong&gt;: &lt;strong&gt;hesamsheikh&lt;/strong&gt; (&lt;a href="https://github.com/hesamsheikh" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Project type&lt;/strong&gt;: Awesome List (conforms to &lt;a href="https://awesome.re" rel="noopener noreferrer"&gt;awesome.re&lt;/a&gt; standards)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Community-driven&lt;/strong&gt;: New use cases welcome via &lt;a href="https://github.com/hesamsheikh/awesome-openclaw-usecases/blob/main/CONTRIBUTING.md" rel="noopener noreferrer"&gt;CONTRIBUTING.md&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Project Stats
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;⭐ &lt;strong&gt;GitHub Stars&lt;/strong&gt;: 5.4k+&lt;/li&gt;
&lt;li&gt;🍴 &lt;strong&gt;Forks&lt;/strong&gt;: 395+&lt;/li&gt;
&lt;li&gt;📦 &lt;strong&gt;Use case count&lt;/strong&gt;: 29+ (continuously updated)&lt;/li&gt;
&lt;li&gt;📄 &lt;strong&gt;License&lt;/strong&gt;: MIT&lt;/li&gt;
&lt;li&gt;🔗 &lt;strong&gt;Related project&lt;/strong&gt;: &lt;a href="https://github.com/openclaw/openclaw" rel="noopener noreferrer"&gt;OpenClaw&lt;/a&gt; (main framework)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Main Features
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Core Purpose
&lt;/h3&gt;

&lt;p&gt;awesome-openclaw-usecases' core purpose is to &lt;strong&gt;provide verified real use cases to help users discover practical applications for OpenClaw&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Use case discovery&lt;/strong&gt;: From "not knowing what it can do" to "finding a use case that fits you"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Implementation guidance&lt;/strong&gt;: Each use case includes detailed documentation covering required skills, configuration steps, and example code&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Community sharing&lt;/strong&gt;: Users can submit their own use cases to help others&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Categorized browsing&lt;/strong&gt;: Six major categories for quick lookup by scenario&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Use Cases
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Exploring OpenClaw's capabilities&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Browse the use case list to understand what OpenClaw can do&lt;/li&gt;
&lt;li&gt;Find scenarios that match your own needs&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Implementing automated workflows&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Follow use case documentation, configure required skills and plugins&lt;/li&gt;
&lt;li&gt;Copy and adapt to your own environment&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Learning AI Agent design&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Analyze use case architectures to understand multi-agent collaboration, state management, and event-driven patterns&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Contributing to the community&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Share your own verified use cases to help others&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Quick Start
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Browse use cases&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;Visit the &lt;a href="https://github.com/hesamsheikh/awesome-openclaw-usecases" rel="noopener noreferrer"&gt;GitHub repository&lt;/a&gt;, view the use case list in the README, click a use case name to jump to its detailed documentation in the &lt;code&gt;usecases/&lt;/code&gt; directory.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Implement a use case&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Select a use case (e.g., "Daily Reddit Digest")&lt;/li&gt;
&lt;li&gt;Read &lt;code&gt;usecases/daily-reddit-digest.md&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Follow the documentation to configure OpenClaw and install required skills&lt;/li&gt;
&lt;li&gt;Test and verify results&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Contribute a use case&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Ensure the use case has been actually used for at least one day and verified to work&lt;/li&gt;
&lt;li&gt;Write documentation per the format in &lt;a href="https://github.com/hesamsheikh/awesome-openclaw-usecases/blob/main/CONTRIBUTING.md" rel="noopener noreferrer"&gt;CONTRIBUTING.md&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Submit a Pull Request&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Core Features
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Real verification&lt;/strong&gt;: Only use cases that have been actually used and verified to work are accepted — no pure theory&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Detailed documentation&lt;/strong&gt;: Each use case includes implementation steps, required skills, and configuration examples&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Clear categorization&lt;/strong&gt;: Six major categories for easy lookup by scenario&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Community-driven&lt;/strong&gt;: Contributions welcome, continuously updated&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security warnings&lt;/strong&gt;: Explicitly warns that skills and dependencies may have security vulnerabilities — users must review code themselves&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No crypto-related content&lt;/strong&gt;: Crypto/cryptocurrency-related use cases not accepted&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Awesome List standards&lt;/strong&gt;: Conforms to awesome.re conventions, easy to maintain and extend&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Project Advantages
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Comparison with other Awesome Lists&lt;/strong&gt;:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Dimension&lt;/th&gt;
&lt;th&gt;awesome-openclaw-usecases&lt;/th&gt;
&lt;th&gt;Generic Awesome List&lt;/th&gt;
&lt;th&gt;Official documentation examples&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Content type&lt;/td&gt;
&lt;td&gt;Real use cases (verified)&lt;/td&gt;
&lt;td&gt;Tools/resource lists&lt;/td&gt;
&lt;td&gt;Official examples&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Detail level&lt;/td&gt;
&lt;td&gt;Detailed implementation docs&lt;/td&gt;
&lt;td&gt;Brief descriptions&lt;/td&gt;
&lt;td&gt;Basic examples&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Community contribution&lt;/td&gt;
&lt;td&gt;Encourages submitting real use cases&lt;/td&gt;
&lt;td&gt;Usually only maintainer updates&lt;/td&gt;
&lt;td&gt;Officially maintained&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Verification requirement&lt;/td&gt;
&lt;td&gt;Must be used at least one day&lt;/td&gt;
&lt;td&gt;No verification required&lt;/td&gt;
&lt;td&gt;Official testing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Security warnings&lt;/td&gt;
&lt;td&gt;Explicitly warns to review skill code&lt;/td&gt;
&lt;td&gt;Usually none&lt;/td&gt;
&lt;td&gt;Official guarantee&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Why this project is worth following&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Solves real pain points&lt;/strong&gt;: Not "which skills exist," but "how to use skills to improve your life"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Verified&lt;/strong&gt;: Every use case has been actually used, avoiding armchair theorizing&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Detailed guidance&lt;/strong&gt;: Provides complete implementation documentation to lower the barrier to entry&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Active community&lt;/strong&gt;: Continuously updated, reflecting real-world usage scenarios&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Detailed Project Analysis
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Use Case Categories in Depth
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1. Social Media&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Daily Reddit Digest&lt;/strong&gt;: Aggregates Reddit subreddit summaries based on preferences&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Daily YouTube Digest&lt;/strong&gt;: Daily digest of new video summaries from subscribed channels&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;X Account Analysis&lt;/strong&gt;: Qualitative analysis of X accounts&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-Source Tech News Digest&lt;/strong&gt;: Aggregates tech news from 109+ sources (RSS, Twitter/X, GitHub, web search) delivered in natural language&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Creative &amp;amp; Building&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Goal-Driven Autonomous Tasks&lt;/strong&gt;: Goal-driven autonomous tasks where Agent automatically generates, schedules, and completes daily tasks, including building surprise small apps overnight&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;YouTube Content Pipeline&lt;/strong&gt;: Automated video idea discovery, research, and tracking&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-Agent Content Factory&lt;/strong&gt;: Multi-agent content pipeline in Discord where research, writing, and thumbnail agents collaborate in dedicated channels&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. Infrastructure &amp;amp; DevOps&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;n8n Workflow Orchestration&lt;/strong&gt;: Delegates API calls to n8n workflows via webhook — Agent never touches credentials, each integration is visible and lockable&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Self-Healing Home Server&lt;/strong&gt;: Runs an always-on infrastructure agent with SSH access, automated cron tasks, and self-healing capabilities&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;4. Productivity&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Includes 15+ use cases, such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Autonomous Project Management&lt;/strong&gt;: Coordinates multi-agent projects using STATE.yaml pattern, sub-agents work in parallel with no orchestrator overhead&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-Channel AI Customer Service&lt;/strong&gt;: Unifies WhatsApp, Instagram, Email, Google Reviews into one AI-driven inbox with 24/7 automatic replies&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Phone-Based Personal Assistant&lt;/strong&gt;: Access AI Agent via phone — hands-free voice assistant&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Personal CRM&lt;/strong&gt;: Automatically discovers and tracks contacts in email and calendar, natural language queries&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Second Brain&lt;/strong&gt;: Send anything to the bot for memory, search all memories in a custom Next.js dashboard&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Custom Morning Brief&lt;/strong&gt;: Daily morning briefing fully customized (news, tasks, content drafts, AI-recommended actions)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;5. Research &amp;amp; Learning&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AI Earnings Tracker&lt;/strong&gt;: Tracks tech/AI earnings, with automatic previews, reminders, and detailed summaries&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Personal Knowledge Base (RAG)&lt;/strong&gt;: Build a searchable knowledge base by dragging URLs, tweets, articles into chat&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Market Research &amp;amp; Product Factory&lt;/strong&gt;: Uses the "Last 30 Days" skill to mine real pain points on Reddit and X, then has OpenClaw build MVPs to solve them&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Semantic Memory Search&lt;/strong&gt;: Adds vector-driven semantic search to OpenClaw markdown memory files, with hybrid retrieval and auto-sync&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;6. Finance &amp;amp; Trading&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Polymarket Autopilot&lt;/strong&gt;: Automated paper trading on prediction markets, with backtesting, strategy analysis, and daily performance reports&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Use Case Document Structure
&lt;/h3&gt;

&lt;p&gt;Each use case document (in the &lt;code&gt;usecases/&lt;/code&gt; directory) typically includes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Overview&lt;/strong&gt;: Core functionality and value of the use case&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prerequisites&lt;/strong&gt;: Required OpenClaw version, skills, API keys, etc.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Implementation steps&lt;/strong&gt;: Detailed configuration and deployment steps&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Configuration examples&lt;/strong&gt;: YAML configuration, environment variables, etc.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Usage examples&lt;/strong&gt;: Real usage scenarios and commands&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Notes&lt;/strong&gt;: Security, performance, limitations, etc.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Security and Contribution Guidelines
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Security warning&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;The project explicitly warns that OpenClaw skills and third-party dependencies referenced in use cases may have &lt;strong&gt;serious security vulnerabilities&lt;/strong&gt;. Many use cases link to community-built skills, plugins, and external repositories that &lt;strong&gt;have not been audited by the list maintainer&lt;/strong&gt;. Users must:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Review skill source code&lt;/li&gt;
&lt;li&gt;Check requested permissions&lt;/li&gt;
&lt;li&gt;Avoid hardcoding API keys or credentials&lt;/li&gt;
&lt;li&gt;Take personal responsibility for security&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Contribution requirements&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Only submit use cases that have been actually used and verified to work (used at least one day)&lt;/li&gt;
&lt;li&gt;Value ideas that genuinely improve life, not those that make it worse&lt;/li&gt;
&lt;li&gt;Crypto/cryptocurrency-related use cases not accepted&lt;/li&gt;
&lt;li&gt;Write documentation per the CONTRIBUTING.md format&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Relationship with OpenClaw
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;awesome-openclaw-usecases&lt;/strong&gt;: Use case collection, solving the "use case discovery" problem&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OpenClaw&lt;/strong&gt;: Main framework, providing Agent runtime, skill system, plugin mechanism, etc.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Relationship&lt;/strong&gt;: Use case collection depends on the OpenClaw framework to help users use OpenClaw better&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Project Resources
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Official Resources
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;🌟 &lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/hesamsheikh/awesome-openclaw-usecases" rel="noopener noreferrer"&gt;github.com/hesamsheikh/awesome-openclaw-usecases&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📋 &lt;strong&gt;Contributing guide&lt;/strong&gt;: &lt;a href="https://github.com/hesamsheikh/awesome-openclaw-usecases/blob/main/CONTRIBUTING.md" rel="noopener noreferrer"&gt;CONTRIBUTING.md&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📁 &lt;strong&gt;Use case directory&lt;/strong&gt;: &lt;a href="https://github.com/hesamsheikh/awesome-openclaw-usecases/tree/main/usecases" rel="noopener noreferrer"&gt;usecases/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🔗 &lt;strong&gt;OpenClaw main project&lt;/strong&gt;: &lt;a href="https://github.com/openclaw/openclaw" rel="noopener noreferrer"&gt;github.com/openclaw/openclaw&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Related Resources
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/sindresorhus/awesome" rel="noopener noreferrer"&gt;Awesome List standards&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/openclaw/openclaw" rel="noopener noreferrer"&gt;OpenClaw documentation&lt;/a&gt; (see main project)&lt;/li&gt;
&lt;li&gt;Skills and plugins referenced in use cases (see specific links in use case documentation)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Who Should Use This
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;OpenClaw users&lt;/strong&gt;: Want to discover new use cases and improve efficiency&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI Agent practitioners&lt;/strong&gt;: Learning real-world use case design to understand multi-agent collaboration patterns&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automation enthusiasts&lt;/strong&gt;: Looking for reusable automated workflows&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Community contributors&lt;/strong&gt;: Share their own use cases to help others&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Welcome to visit my &lt;a href="https://home.wonlab.top" rel="noopener noreferrer"&gt;personal homepage&lt;/a&gt; for more useful knowledge and interesting products&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>openclaw</category>
    </item>
    <item>
      <title>Open Source Project of the Day (Part 30): banana-slides - Native AI PPT Generation App Based on nano banana pro</title>
      <dc:creator>WonderLab</dc:creator>
      <pubDate>Sun, 05 Apr 2026 01:26:41 +0000</pubDate>
      <link>https://dev.to/wonderlab/open-source-project-of-the-day-part-30-banana-slides-native-ai-ppt-generation-app-based-on-4bni</link>
      <guid>https://dev.to/wonderlab/open-source-project-of-the-day-part-30-banana-slides-native-ai-ppt-generation-app-based-on-4bni</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;"Vibe your PPT like vibing code."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is Part 30 of the "Open Source Project of the Day" series. Today we explore &lt;strong&gt;banana-slides&lt;/strong&gt; (&lt;a href="https://github.com/Anionex/banana-slides" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;), open-sourced by &lt;strong&gt;Anionex&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Have you ever found yourself the night before a presentation with a blank slide deck — full of brilliant ideas, but completely drained by the drudgery of layouts and design? Traditional AI PPT tools may be "fast," but they're often locked into preset templates, offer little freedom, and produce homogeneous results. &lt;strong&gt;banana-slides&lt;/strong&gt; is built on Google's &lt;strong&gt;nano banana pro&lt;/strong&gt; image generation model, delivering a "native Vibe PPT" experience: three creation paths — &lt;strong&gt;one sentence&lt;/strong&gt;, &lt;strong&gt;outline&lt;/strong&gt;, and &lt;strong&gt;page description&lt;/strong&gt; — upload any template or materials, intelligently parse PDF/Docx/MD files, use &lt;strong&gt;natural language voice editing&lt;/strong&gt; on specific areas (e.g., "change page three to a case study," "replace this chart with a pie chart"), and one-click export to &lt;strong&gt;PPTX&lt;/strong&gt; or &lt;strong&gt;PDF&lt;/strong&gt;, with support for &lt;strong&gt;Editable PPTX&lt;/strong&gt; (Beta) — text and images remain freely editable in PowerPoint. The project uses a React + Flask full-stack architecture, Docker one-click deployment, and targets a wide audience from beginners to professionals, with the goal of "lowering the bar for PPT creation so anyone can quickly produce beautiful, professional presentations."&lt;/p&gt;

&lt;h3&gt;
  
  
  What You'll Learn
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;banana-slides' positioning: a native AI PPT generation app based on nano banana pro, moving toward true "Vibe PPT"&lt;/li&gt;
&lt;li&gt;Three creation paths: idea, outline, page description — plus Vibe-style natural language editing&lt;/li&gt;
&lt;li&gt;Material parsing capabilities: multi-format uploads, smart extraction, style references&lt;/li&gt;
&lt;li&gt;Technical architecture: React + Vite + Flask + SQLite + Gemini API&lt;/li&gt;
&lt;li&gt;Comparison with notebooklm slide deck and project advantages&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Prerequisites
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Comfortable with Docker or Node.js/Python development environments&lt;/li&gt;
&lt;li&gt;Basic familiarity with LLM APIs (e.g., Gemini, OpenAI)&lt;/li&gt;
&lt;li&gt;For self-hosted deployment, a Google Gemini API Key is required (image generation requires a paid tier) or access via a proxy like AIHubMix&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Project Background
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Project Introduction
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;banana-slides&lt;/strong&gt; is a &lt;strong&gt;native AI PPT generation app&lt;/strong&gt; built on &lt;strong&gt;nano banana pro&lt;/strong&gt; (Google Gemini image generation model). It supports creating presentations from three paths — &lt;strong&gt;idea&lt;/strong&gt;, &lt;strong&gt;outline&lt;/strong&gt;, and &lt;strong&gt;page description&lt;/strong&gt; — automatically extracts charts and text from attachments, accepts uploaded template images for style customization, and allows &lt;strong&gt;natural language voice edits&lt;/strong&gt; on specific areas or entire pages. Results can be exported as standard &lt;strong&gt;PPTX&lt;/strong&gt; or &lt;strong&gt;PDF&lt;/strong&gt;, with support for &lt;strong&gt;Editable PPTX&lt;/strong&gt; (Beta): exported pages have text and images that can be freely edited in PowerPoint, with text styles (font size, color, bold, etc.) preserved as closely as possible. The project's slogan is "Vibe your PPT like vibing code," aiming to satisfy both "fast" and "beautiful" PPT needs, solving the problems of fixed templates, low flexibility, and homogenization in traditional AI PPT tools.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Target user groups&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Beginners&lt;/strong&gt;: Zero-barrier generation of attractive PPTs with no design experience needed&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PPT professionals&lt;/strong&gt;: Reference AI-generated layouts and text-image compositions for design inspiration&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Educators&lt;/strong&gt;: Quickly convert teaching content into illustrated lesson plans&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Students&lt;/strong&gt;: Quickly complete assignment presentations, focusing on content rather than layout&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Professionals&lt;/strong&gt;: Rapidly visualize business proposals and product introductions&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Author/Team Introduction
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Organization&lt;/strong&gt;: &lt;strong&gt;Anionex&lt;/strong&gt; (&lt;a href="https://github.com/Anionex" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Website&lt;/strong&gt;: &lt;a href="https://bananaslides.online" rel="noopener noreferrer"&gt;bananaslides.online&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Community&lt;/strong&gt;: WeChat group available in README; sponsors include AIHubMix, AI Huobao, Yuyun, etc.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Commercial license&lt;/strong&gt;: Free for personal/educational/non-profit use under AGPL-3.0; commercial closed-source or private deployment requires a Commercial License from the author&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Project Stats
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;⭐ &lt;strong&gt;GitHub Stars&lt;/strong&gt;: 12.1k+&lt;/li&gt;
&lt;li&gt;🍴 &lt;strong&gt;Forks&lt;/strong&gt;: 1.4k+&lt;/li&gt;
&lt;li&gt;📦 &lt;strong&gt;Version&lt;/strong&gt;: v0.4.0 (February 2026)&lt;/li&gt;
&lt;li&gt;📄 &lt;strong&gt;License&lt;/strong&gt;: AGPL-3.0&lt;/li&gt;
&lt;li&gt;🌐 &lt;strong&gt;Website&lt;/strong&gt;: &lt;a href="https://bananaslides.online" rel="noopener noreferrer"&gt;bananaslides.online&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🐳 &lt;strong&gt;Docker&lt;/strong&gt;: Supports amd64 / arm64 with pre-built images&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Main Features
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Core Purpose
&lt;/h3&gt;

&lt;p&gt;banana-slides' core purpose is to &lt;strong&gt;quickly generate high-quality, editable PPTs driven by natural language and materials&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Multi-path creation&lt;/strong&gt;: Start from a one-sentence idea, a structured outline, or page-by-page descriptions — AI auto-completes the outline and page content&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Material parsing&lt;/strong&gt;: Upload PDF, Docx, MD, Txt files; automatically extract key points, image links, and chart data as generation materials&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Style customization&lt;/strong&gt;: Upload reference images or templates to control the overall visual style&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vibe-style editing&lt;/strong&gt;: Verbally edit with natural language (e.g., "change page three to a case study," "replace this chart with a pie chart") — AI responds in real time&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Export&lt;/strong&gt;: One-click export to PPTX or PDF; editable PPTX mode allows text and images to be freely modified in PowerPoint&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Use Cases
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Reports/Proposals&lt;/strong&gt;: Presentation due tomorrow — input a topic or outline and quickly generate a professional PPT&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lesson plans&lt;/strong&gt;: Upload teaching content or documents and auto-generate illustrated lesson plans&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Assignment presentations&lt;/strong&gt;: Students input their topic and focus on content rather than layout&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Design inspiration&lt;/strong&gt;: Professionals reference AI-generated layouts and compositions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Iterative refinement&lt;/strong&gt;: Verbally request changes after generation, without going through menus&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Quick Start
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Recommended: Docker Compose Deployment&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/Anionex/banana-slides
&lt;span class="nb"&gt;cd &lt;/span&gt;banana-slides
&lt;span class="nb"&gt;cp&lt;/span&gt; .env.example .env
&lt;span class="c"&gt;# Edit .env, configure GOOGLE_API_KEY (or a proxy like AIHubMix)&lt;/span&gt;
docker compose &lt;span class="nt"&gt;-f&lt;/span&gt; docker-compose.prod.yml up &lt;span class="nt"&gt;-d&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Access the frontend at &lt;code&gt;http://localhost:3000&lt;/code&gt;, backend API at &lt;code&gt;http://localhost:5000&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sample environment variables&lt;/strong&gt; (Gemini format):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;AI_PROVIDER_FORMAT=gemini
GOOGLE_API_KEY=your-api-key-here
GOOGLE_API_BASE=https://generativelanguage.googleapis.com
# Proxy example: https://aihubmix.com/gemini
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;From source&lt;/strong&gt;: Requires Python 3.10+, uv, Node.js 16+; backend: &lt;code&gt;uv sync&lt;/code&gt; then &lt;code&gt;uv run python app.py&lt;/code&gt;; frontend: &lt;code&gt;npm install&lt;/code&gt; then &lt;code&gt;npm run dev&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Core Features
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Three creation paths&lt;/strong&gt;: Idea (one sentence generates outline and descriptions), Outline (manual or AI-generated), Page Description (per-page control)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Natural language editing&lt;/strong&gt;: Verbally modify outlines or descriptions (e.g., "change page three to a case study") — AI adjusts in real time&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-format material parsing&lt;/strong&gt;: PDF, Docx, MD, Txt upload; auto-parses key points, images, charts&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Style references&lt;/strong&gt;: Upload templates or reference images to customize PPT visual style&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local re-rendering&lt;/strong&gt;: Select an unsatisfactory area and verbally describe the change (e.g., "replace this chart with a pie chart")&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Full-page optimization&lt;/strong&gt;: High-quality, visually consistent pages generated by nano banana pro&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-format export&lt;/strong&gt;: PPTX, PDF, default 16:9, ready to present&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Editable PPTX (Beta)&lt;/strong&gt;: Export high-fidelity, clean-background editable pages with text styles preserved; Baidu OCR API recommended for best results (see &lt;a href="https://github.com/Anionex/banana-slides/issues/121" rel="noopener noreferrer"&gt;issue #121&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-model support&lt;/strong&gt;: Gemini, OpenAI, Vertex AI, Lazyllm (can mix DeepSeek, Doubao, Tongyi, etc.)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Internationalization and dark mode&lt;/strong&gt;: Chinese/English toggle, light/dark/system theme&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Project Advantages
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Comparison with notebooklm slide deck&lt;/strong&gt; (official README comparison, may change with updates):&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;notebooklm&lt;/th&gt;
&lt;th&gt;banana-slides&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Page limit&lt;/td&gt;
&lt;td&gt;15 pages&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Unlimited&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Re-editing&lt;/td&gt;
&lt;td&gt;Not supported&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Selection edit + voice edit&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Adding materials&lt;/td&gt;
&lt;td&gt;Cannot add after generation&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Add freely after generation&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Export format&lt;/td&gt;
&lt;td&gt;PDF only&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;PDF + Editable PPTX&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Watermark&lt;/td&gt;
&lt;td&gt;Free tier has watermarks&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;No watermark, freely add/remove elements&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Why choose banana-slides?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;True Vibe&lt;/strong&gt;: Built on nano banana pro — good text-image quality and consistency, accurate text rendering and adherence to reference image styles&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Flexible creation&lt;/strong&gt;: Not locked into preset templates; upload any materials and templates, make multi-round voice edits&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Editable export&lt;/strong&gt;: Supports exporting PPTX freely editable in PowerPoint, not just stacked images&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open-source self-hostable&lt;/strong&gt;: Docker one-click deployment, privatizable; supports multiple LLM APIs for cost and compliance control&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Detailed Project Analysis
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Technical Architecture
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Frontend&lt;/strong&gt;: React 18 + TypeScript + Vite 5, Zustand state management, React Router v6, Tailwind CSS, @dnd-kit drag-and-drop, Lucide React icons, Axios HTTP client.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Backend&lt;/strong&gt;: Python 3.10+, Flask 3.0, uv package manager, SQLite + Flask-SQLAlchemy, Google Gemini API (or OpenAI/Vertex/Lazyllm), python-pptx for PPT handling, Pillow for image processing, ThreadPoolExecutor for concurrency, Flask-CORS for cross-origin.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI Capabilities&lt;/strong&gt;: Both text generation (outlines, descriptions, etc.) and image generation (page rendering) depend on LLMs; the core image generation is &lt;strong&gt;nano banana pro&lt;/strong&gt;, requiring an API that supports image generation (Gemini free tier only supports text, not images).&lt;/p&gt;

&lt;h3&gt;
  
  
  Project Structure
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;frontend/&lt;/strong&gt;: React app; &lt;code&gt;pages/&lt;/code&gt; contains Home, OutlineEditor, DetailEditor, SlidePreview, History; &lt;code&gt;components/&lt;/code&gt; contains outline, preview, shared, layout, history; &lt;code&gt;store/&lt;/code&gt; is Zustand; &lt;code&gt;api/&lt;/code&gt; is interface wrappers&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;backend/&lt;/strong&gt;: Flask app; &lt;code&gt;models/&lt;/code&gt; contains Project, Page, Task, Material, UserTemplate, ReferenceFile, PageImageVersion; &lt;code&gt;services/&lt;/code&gt; contains ai_service, file_service, file_parser_service, export_service, task_manager, prompts; &lt;code&gt;controllers/&lt;/code&gt; is REST API&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;tests/&lt;/strong&gt;: Tests; &lt;strong&gt;v0_demo/&lt;/strong&gt;: Early demo; &lt;strong&gt;output/&lt;/strong&gt;: Exported files&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Key Implementation
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Creation pipeline&lt;/strong&gt;: Idea → AI generates outline → generates per-page descriptions → calls nano banana pro to generate page images → assembles PPT&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Material parsing&lt;/strong&gt;: &lt;code&gt;file_parser_service&lt;/code&gt; parses PDF/Docx/MD/Txt, extracting text, images, charts for use during generation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Editable PPTX&lt;/strong&gt;: Text in generated images is recognized via OCR and restored as editable text boxes, preserving font size, color, bold, and other styles as much as possible; requires Baidu OCR API (see issue #121)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-model support&lt;/strong&gt;: Via &lt;code&gt;AI_PROVIDER_FORMAT&lt;/code&gt; and &lt;code&gt;Lazyllm&lt;/code&gt; configuration, mix text and image models from different vendors&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Development Roadmap (Selected)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;✅ Completed: Three creation paths, Markdown image parsing, single-page material addition, selection Vibe editing, various file parsing, editable PPTX export&lt;/li&gt;
&lt;li&gt;🔄 In progress: Multi-layer precise cutout editable export, web search, Agent mode&lt;/li&gt;
&lt;li&gt;🧭 Planned: Online playback, animations and page transitions, multi-language support&lt;/li&gt;
&lt;li&gt;🏢 Commercial: User system&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Project Resources
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Official Resources
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;🌟 &lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/Anionex/banana-slides" rel="noopener noreferrer"&gt;github.com/Anionex/banana-slides&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🌐 &lt;strong&gt;Website&lt;/strong&gt;: &lt;a href="https://bananaslides.online" rel="noopener noreferrer"&gt;bananaslides.online&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📄 &lt;strong&gt;English README&lt;/strong&gt;: &lt;a href="https://github.com/Anionex/banana-slides/blob/main/README_EN.md" rel="noopener noreferrer"&gt;README_EN.md&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🐛 &lt;strong&gt;Issues&lt;/strong&gt;: &lt;a href="https://github.com/Anionex/banana-slides/issues" rel="noopener noreferrer"&gt;GitHub Issues&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📋 &lt;strong&gt;Editable PPTX notes&lt;/strong&gt;: &lt;a href="https://github.com/Anionex/banana-slides/issues/121" rel="noopener noreferrer"&gt;issue #121&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📖 &lt;strong&gt;Beginner deployment tutorial&lt;/strong&gt;: &lt;a href="https://github.com/ShellMonster/banana-slides/blob/docs-deploy-tutorial/docs/NEWBIE_DEPLOYMENT.md" rel="noopener noreferrer"&gt;@ShellMonster's tutorial&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Related Resources
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://aihubmix.com" rel="noopener noreferrer"&gt;AIHubMix&lt;/a&gt; (multi-model API proxy, reduces migration cost)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://console.bce.baidu.com/iam/#/iam/apikey/list" rel="noopener noreferrer"&gt;Baidu Cloud OCR&lt;/a&gt; (editable export optimization)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/astral-sh/uv" rel="noopener noreferrer"&gt;uv&lt;/a&gt; (Python package manager)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://ai.google.dev/" rel="noopener noreferrer"&gt;nano banana pro&lt;/a&gt; (Google Gemini image generation)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Who Should Use This
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Users who need to create PPTs quickly&lt;/strong&gt;: Reports, proposals, lesson plans, assignment presentations&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Creators who want "fast and beautiful"&lt;/strong&gt;: Don't want to be constrained by fixed templates; need multi-round natural language edits&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Technical teams&lt;/strong&gt;: Want to self-host AI PPT services and control data and costs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Developers interested in Vibe PPT and the nano banana ecosystem&lt;/strong&gt;: Learn full-stack AI application architecture and multi-model integration&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Welcome to visit my &lt;a href="https://home.wonlab.top" rel="noopener noreferrer"&gt;personal homepage&lt;/a&gt; for more useful knowledge and interesting products&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>gemini</category>
      <category>ppt</category>
    </item>
    <item>
      <title>Insights from GDPS 2026: Enterprise Agents, AI Native, and One-Person Companies</title>
      <dc:creator>WonderLab</dc:creator>
      <pubDate>Sat, 04 Apr 2026 06:21:47 +0000</pubDate>
      <link>https://dev.to/wonderlab/insights-from-gdps-2026-enterprise-agents-ai-native-and-one-person-companies-221m</link>
      <guid>https://dev.to/wonderlab/insights-from-gdps-2026-enterprise-agents-ai-native-and-one-person-companies-221m</guid>
      <description>&lt;h2&gt;
  
  
  Insights from GDPS 2026
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2jttqdboyselt2gctwp0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2jttqdboyselt2gctwp0.png" alt="001" width="800" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;One strong impression I took away from GDPS this year was that AI discussions are no longer stuck at the level of “the model got better again.” The conversation is moving toward much more concrete engineering and organizational questions: how Agents enter the enterprise, how they are constrained, how they become reusable assets, and how they might eventually reshape team size and even company structure.&lt;/p&gt;

&lt;p&gt;If I had to compress the whole conference into one sentence, it would be this: &lt;strong&gt;enterprise Agent platforms are moving from concept demos toward real engineering, while AI Native and the one-person company are becoming two outward-facing consequences of that shift.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  I. Three Keywords and Industry Trends
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Three recurring themes&lt;/strong&gt;: enterprise-grade “lobster” (enterprise Agent Platform) + &lt;strong&gt;AI Native Dev&lt;/strong&gt; (a reshaped software development paradigm) + &lt;strong&gt;OPC&lt;/strong&gt; (One Person Company). These were everywhere at the conference — &lt;strong&gt;AI is restructuring how we build software and how organizations work&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OpenClaw&lt;/strong&gt; has become the dominant Agent product pattern. Many “wrapper” products have appeared — a crowded field sometimes called the &lt;strong&gt;“battle of a hundred lobsters.”&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Skills&lt;/strong&gt; are becoming core enterprise assets. Software engineering is entering an AI-native phase; competition shifts from headcount to &lt;strong&gt;depth of Skill accumulation&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Memory, security &amp;amp; permissions, roles, and cost management&lt;/strong&gt; are critical capabilities for enterprise Agent platforms.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Harness engineering&lt;/strong&gt; is on the rise: systems are slimming down faster, models are getting stronger, and everything is moving toward an Agent-centric world.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Put together, these keywords sketch a pretty clear path: stronger models lead to more employee-like Agents, and then enterprises start asking the harder questions. How do we package those capabilities into a system that is safe, stable, governable, and billable? In that sense, the Agent platform is no longer just a product question. It is an infrastructure question.&lt;/p&gt;

&lt;h2&gt;
  
  
  II. The “Battle of a Hundred Lobsters”: A Sample of OpenClaw-Style Product Names
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;腾讯 WorkBuddy — Tencent WorkBuddy
腾讯 QClaw — Tencent QClaw
腾讯龙虾管家 — Tencent Lobster Manager
腾讯云保安 — Tencent Cloud Security Guard
腾讯乐享知识库·龙虾版 — Tencent Lexiang Knowledge Base · Lobster Edition
字节 ArkClaw — ByteDance ArkClaw
智谱 AutoClaw — Zhipu AutoClaw
月之暗面 Kimi Claw — Moonshot AI Kimi Claw
阿里云 CoPaw — Alibaba Cloud CoPaw
阿里云 JVSClaw — Alibaba Cloud JVSClaw
阿里云 QoderWork — Alibaba Cloud QoderWork
百度红手指 Operator — Baidu Red Finger Operator
百度 DuClaw — Baidu DuClaw
科大讯飞 AstronClaw — iFlytek AstronClaw
MiniMax MaxClaw — MiniMax MaxClaw
网易有道 LobsterAI — NetEase Youdao LobsterAI
当贝 Molili — Dangbei Molili
智麻 ChatClaw — Zhima ChatClaw
矽速 PicoClaw — Xisu PicoClaw
博云 BocLaw — BocCloud BocLaw
ZeroClaw — ZeroClaw
万得 WindClaw — Wind WindClaw
小米 MiClaw — Xiaomi MiClaw
猎豹 EasyClaw — Cheetah Mobile EasyClaw
猎豹元气 AIBot — Cheetah Mobile Genki AIBot
京东灵犀 Claw — JD Lingxi Claw
快手 KClaw — Kuaishou KClaw
美图 Claw — Meitu Claw
360安全 Claw — 360 Security Claw
商汤 SenseClaw — SenseTime SenseClaw
华为小艺 Claw — Huawei Xiaoyi Claw
ToDesk ToClaw — ToDesk ToClaw
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  III. How OpenClaw Enters the Enterprise
&lt;/h2&gt;

&lt;h3&gt;
  
  
  3.1 Risks of Bringing “Vanilla” OpenClaw Straight In
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;For now, the answer to dropping native OpenClaw into the enterprise unchanged is clearly no.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Personal users can tolerate something that is “good enough.” Enterprises usually cannot. They need explicit permission boundaries, traceable execution, cost accountability, role management, and reliable fallback mechanisms when something goes wrong. From that angle, native OpenClaw is hard to adopt directly not because it is unimpressive, but because it is naturally closer to a machine for individual creativity than a system for organizational governance.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmy01t85baw054oiyiz5w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmy01t85baw054oiyiz5w.png" alt="002" width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fctzurz9ca5ec90mgbd1g.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fctzurz9ca5ec90mgbd1g.jpeg" alt="003" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3.2 What Solutions Exist Today?
&lt;/h3&gt;

&lt;p&gt;There are two broad categories:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Cloud-vendor offerings&lt;/strong&gt;: OpenClaw-like products from players such as Alibaba Cloud Wuying, AWS, Baidu Cloud, etc. They ship with Harness-style infrastructure already in place — permissions, sandboxes, gateways, identity, load balancing, reliability, observability, monitoring — &lt;strong&gt;ready to use&lt;/strong&gt;, with enterprises configuring Agents on top.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Custom builds&lt;/strong&gt;: Enterprises fork and deeply customize OpenClaw for their own stacks.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;At a deeper level, this is a choice between buying an existing foundation and building a controllable one. The first path optimizes for speed. The second optimizes for fit. In the short term, cloud vendors will probably capture more immediate value. In the long term, companies that want Agents to become a core organizational capability usually end up building platform layers of their own.&lt;/p&gt;

&lt;h4&gt;
  
  
  AWS OpenClaw on AgentCore
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzrbg0fnlmpsnq2djro2e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzrbg0fnlmpsnq2djro2e.png" alt="004" width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Alibaba Cloud Wuying: JVS Crew
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb735tstzvlw2wsa66epb.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb735tstzvlw2wsa66epb.jpg" alt="005" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  MemTensor: ClawForce
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8t95salt3mmwzd32i6r1.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8t95salt3mmwzd32i6r1.jpg" alt="006" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiaag2lgr2n7sz4qafuhj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiaag2lgr2n7sz4qafuhj.png" alt="007" width="800" height="473"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  SenseTime: Raccoon Family
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9fgdnqoexmn04k7yqio2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9fgdnqoexmn04k7yqio2.png" alt="008" width="800" height="473"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Baidu AI Cloud: DuClaw
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fltmf5ya8aaj7q4qyxxhm.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fltmf5ya8aaj7q4qyxxhm.jpeg" alt="009" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Dreame Technology: DreameClaw
&lt;/h4&gt;

&lt;p&gt;A fork built on OpenClaw that has already AI-enabled &lt;strong&gt;more than ten internal workflows&lt;/strong&gt; — recruitment, approvals, and more.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjt7ytuzdlb314r7n51zq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjt7ytuzdlb314r7n51zq.png" alt="010" width="800" height="531"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3.3 Signals from Silicon Valley
&lt;/h3&gt;

&lt;p&gt;The following is &lt;strong&gt;anecdotal&lt;/strong&gt; — not a forecast — useful mainly for strategic thinking.&lt;/p&gt;

&lt;p&gt;On March 31, 2026, material related to Claude Code leaked. It included an unreleased module named &lt;strong&gt;KAIROS&lt;/strong&gt;, which reads like a sketch of an &lt;strong&gt;ultimate Agent&lt;/strong&gt; form: a background &lt;strong&gt;daemon&lt;/strong&gt; that keeps Claude &lt;strong&gt;always on&lt;/strong&gt;; GitHub Webhook subscriptions to &lt;strong&gt;auto-start fix flows&lt;/strong&gt; when new bugs appear; and a built-in &lt;strong&gt;“Dream”&lt;/strong&gt; mechanism to consolidate and compress long-term memory when the system is idle — getting close to what people mean by truly &lt;strong&gt;agentic&lt;/strong&gt; AI.&lt;/p&gt;

&lt;p&gt;Separately, a Silicon Valley investor posted that OpenAI might ship an “AI employee” product around &lt;strong&gt;$2,000/month&lt;/strong&gt; in April.&lt;/p&gt;

&lt;p&gt;None of this is confirmed feature- or date-wise, but the pattern is clear: &lt;strong&gt;autonomous AI workers&lt;/strong&gt; are where model labs and cloud vendors are placing bets.&lt;/p&gt;

&lt;p&gt;To me, the key thing here is not whether each rumor turns out to be accurate. It is that the imagination behind those rumors is already converging. People are no longer satisfied with “an AI that can chat.” They are now talking about AI that stays online, notices problems, maintains memory, and collaborates on its own. The next round of competition will not only be about model parameters or isolated features. It will be about the operating mechanisms around Agents.&lt;/p&gt;

&lt;h2&gt;
  
  
  IV. Possible Directions for Enterprise OpenClaw / Agent Platforms
&lt;/h2&gt;

&lt;h3&gt;
  
  
  4.1 Harness Engineer
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Mitchell Hashimoto, co-founder of HashiCorp, coined the term on February 5, 2026. Roughly six days later, OpenAI adopted it in their million-line-code experiment write-up.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdxhe3at33u5hhsfve7wo.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdxhe3at33u5hhsfve7wo.jpeg" alt="011" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  What Harness Is: An Analogy from Computing
&lt;/h4&gt;

&lt;p&gt;There is a Chinese idiom — &lt;em&gt;let the horse run with loose reins&lt;/em&gt; — for acting without constraint. That is roughly how an &lt;strong&gt;Agent behaves without Harness engineering&lt;/strong&gt;. Harness work is about &lt;strong&gt;tightening the reins&lt;/strong&gt; on the Agent-horse and making it follow the path we define.&lt;/p&gt;

&lt;p&gt;For a long time, Agent discussions focused on whether the model could reason, plan, or reflect. More teams are now realizing that the real determinant of system usability is not only whether the model is clever, but whether you have given it a good working environment. That is what Harness addresses. Instead of piling more orchestration logic around the Agent, you prepare the right tools, rules, permissions, and feedback loops for it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F88lf3560lrw0r49gthda.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F88lf3560lrw0r49gthda.jpeg" alt="012" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Compared with computer systems&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Computer System Component&lt;/th&gt;
&lt;th&gt;Agent Environment Component&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;CPU (Computing Power)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;LLM (Large Language Model)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Provides core reasoning, computation, and generation capabilities.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Memory (RAM)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Context Window&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Determines the amount of information and short-term memory the agent can handle simultaneously.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;OS (Operating System)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Harness (Engineering Framework)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Provides process scheduling, permission control, interfaces, and operational constraints.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Application&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Agent&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Runs on top of the environment, utilizing resources to handle specific business tasks.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h4&gt;
  
  
  Frontiers in Harness
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbvm7o17e1134t3v47f94.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbvm7o17e1134t3v47f94.png" alt="013" width="800" height="315"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6fvleecfyl96ddfwqr8z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6fvleecfyl96ddfwqr8z.png" alt="014" width="800" height="212"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://openai.com/index/harness-engineering/" rel="noopener noreferrer"&gt;Harness engineering: leveraging Codex in an agent-first world&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.anthropic.com/engineering/harness-design-long-running-apps" rel="noopener noreferrer"&gt;Harness design for long-running application development&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  A Shift in How We Build Agents
&lt;/h4&gt;

&lt;p&gt;We move from &lt;strong&gt;heavy orchestration&lt;/strong&gt; to &lt;strong&gt;building Harnesses&lt;/strong&gt;: you no longer need monstrous workflow graphs &lt;em&gt;inside&lt;/em&gt; the Agent layer — orchestration logic folds into &lt;strong&gt;model capabilities&lt;/strong&gt;. Patterns that used to live in Agents (intent routing, reflection on results) may become &lt;strong&gt;defaults&lt;/strong&gt; in the models themselves.&lt;/p&gt;

&lt;p&gt;The next focus is: what &lt;strong&gt;runtime&lt;/strong&gt; we give Agents, which &lt;strong&gt;tools and Skills&lt;/strong&gt;, and what &lt;strong&gt;constraints&lt;/strong&gt; we enforce.&lt;/p&gt;

&lt;p&gt;Put differently, the future gap may not come from who writes the most complicated flow, but from who is best at preparing the road for the model. The clearer the environment, the sharper the tool definitions, and the more natural the constraints, the more likely an Agent becomes stable production capacity rather than a demo that still needs human rescue.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnae0n6xe08702bl5deor.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnae0n6xe08702bl5deor.jpg" alt="015" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  4.2 What “AI Native” Means in Practice
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Move from GUI-first to AIPI-first (API, CLI, shell) so AI can operate software directly.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc38rpzgsrk8tg5lv3pml.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc38rpzgsrk8tg5lv3pml.jpg" alt="016" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This part resonates strongly with me. For the last few years, many demos of “AI operating software” have looked impressive. But once they hit production, the same issues show up: slow execution, unstable success rates, high maintenance cost. The problem is not only the model. A huge amount of software was never designed for AI in the first place. AI has to click buttons, read screens, and guess the next step like a human, which naturally makes the whole thing fragile.&lt;/p&gt;

&lt;p&gt;This shift should show up &lt;strong&gt;not only&lt;/strong&gt; in “AI efficiency” programs: every &lt;strong&gt;new&lt;/strong&gt; feature should ask how AI will plug in; products should &lt;strong&gt;gradually&lt;/strong&gt; expose machine-friendly surfaces.&lt;/p&gt;

&lt;p&gt;Since 2024 I have tracked AI-driven UI test automation. Today, LLM control of phones and IVI still means: decompose steps, &lt;strong&gt;simulate taps&lt;/strong&gt; on a human UI, read the screen, loop. From early AutoGPT to Zhipu’s open AutoGLM for phones — same pattern. &lt;strong&gt;Root cause: most software was never AI-native.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Our CES POC last year — &lt;strong&gt;AutoFlow&lt;/strong&gt; driving Spotify — is the same technical path.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why is test automation hard and AI control slow and flaky?&lt;/strong&gt; Most interfaces are &lt;strong&gt;built for humans&lt;/strong&gt;; AI has to &lt;strong&gt;pretend to be a user&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The endgame is &lt;strong&gt;AI-facing operation surfaces&lt;/strong&gt; for every product — and the industry is already turning.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;On March 28, Feishu shipped Lark CLI&lt;/strong&gt; so tools like Claude Code can drive the full Feishu stack:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/larksuite/cli" rel="noopener noreferrer"&gt;GitHub - larksuite/cli&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs4yml7b7whw63o307abo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs4yml7b7whw63o307abo.png" alt="017" width="800" height="615"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Chrome also has an open-source CLI path&lt;/strong&gt; — AI need not drive the browser only by mimicking humans.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4t1apm7drlcee8f1vu2q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4t1apm7drlcee8f1vu2q.png" alt="018" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Open homework&lt;/strong&gt;: in AI-efficiency programs, &lt;strong&gt;retrofit legacy systems&lt;/strong&gt; toward AIPI; for &lt;strong&gt;new&lt;/strong&gt; systems and features, design &lt;strong&gt;both&lt;/strong&gt; human and AI interfaces.&lt;/p&gt;

&lt;p&gt;I increasingly think AIPI will not remain just an “extra interface for AI.” It will gradually become a new software design default. Today we still ask whether we should expose AI-facing interfaces. In a year or two, the more natural question may be why a system still does not have them.&lt;/p&gt;

&lt;h3&gt;
  
  
  4.3 What to Watch When Building Skills
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx6mb6irfym1ki0tnb3t3.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx6mb6irfym1ki0tnb3t3.jpg" alt="019" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  A. SAFETY
&lt;/h4&gt;

&lt;p&gt;Security vendors analyzing ClawHub report &lt;strong&gt;800+ risky Skills&lt;/strong&gt;, spanning:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Malicious delivery and downloaders&lt;/li&gt;
&lt;li&gt;Credential theft and phishing&lt;/li&gt;
&lt;li&gt;Prompt injection and command hijacking&lt;/li&gt;
&lt;li&gt;Data exfiltration and theft&lt;/li&gt;
&lt;li&gt;Malicious scripts and generic detection bypass&lt;/li&gt;
&lt;li&gt;Remote control and reverse shells&lt;/li&gt;
&lt;li&gt;RCE and command injection&lt;/li&gt;
&lt;li&gt;Supply-chain and untrusted installs&lt;/li&gt;
&lt;li&gt;Spoofing and deception&lt;/li&gt;
&lt;li&gt;Exploit kits and abuse tooling&lt;/li&gt;
&lt;li&gt;Fraud and financial scams&lt;/li&gt;
&lt;li&gt;System hijack and config tampering&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Inside a company, Skills should live on a &lt;strong&gt;private Skill platform&lt;/strong&gt; — that cuts most supply-chain risk. You will still pull Skills from the web during development, and internal authors can ship unsafe Skills. You need &lt;strong&gt;security review standards&lt;/strong&gt; and review &lt;strong&gt;process&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Some vendors ship &lt;strong&gt;Skill-audit plugins&lt;/strong&gt; with multi-dimensional scoring; we should invest in &lt;strong&gt;standards, methods, and tooling&lt;/strong&gt; of our own.&lt;/p&gt;

&lt;p&gt;If code repositories were the key asset layer in the previous software era, Skills may become a new asset layer in the AI-native era. Precisely because they sit closer to execution, permissions, and data, Skill security cannot be treated as a simple plugin problem. It has to be governed as part of the software supply chain.&lt;/p&gt;

&lt;h4&gt;
  
  
  B. PERFORMANCE
&lt;/h4&gt;

&lt;p&gt;Measure &lt;strong&gt;accuracy&lt;/strong&gt; and &lt;strong&gt;repeatability&lt;/strong&gt; across runs — gate releases on those metrics.&lt;/p&gt;

&lt;h4&gt;
  
  
  C. COST
&lt;/h4&gt;

&lt;p&gt;Unlike classic software, Skill work needs &lt;strong&gt;token awareness&lt;/strong&gt;. Skill token spend &lt;strong&gt;is&lt;/strong&gt; future R&amp;amp;D spend. Data is the moat; Skills are the AI advantage — &lt;strong&gt;halve token use versus a competitor on the same task and you ship an extra project for the same budget.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In implementation, design the &lt;strong&gt;shortest path&lt;/strong&gt; to the outcome. Where RPA or a script can freeze a workflow, &lt;strong&gt;prefer scripts&lt;/strong&gt; over “let the model improvise” — better stability, lower tokens. Example: unzipping files — don’t make the model guess tools or repeatedly self-author scripts; &lt;strong&gt;ship a script&lt;/strong&gt; and document &lt;strong&gt;when and how&lt;/strong&gt; to call it. That is Harness thinking too.&lt;/p&gt;

&lt;p&gt;Many teams still evaluate Skills from the angle of “can we make this work?” Once you enter the enterprise, the more important questions become “can we make it work reliably?”, “can we make it work cheaply?”, and “can we make it work at scale?” That is why I increasingly think the real difference between companies will not only come from model selection, but from how quickly they accumulate Skill assets and Harness engineering capability.&lt;/p&gt;

&lt;h2&gt;
  
  
  V. A Final Take
&lt;/h2&gt;

&lt;p&gt;GDPS made me more certain of one thing: competition in enterprise Agents is shifting from “who connected to a large model first” to “who industrializes AI Native architecture, Skill assets, and Harness engineering first.”&lt;/p&gt;

&lt;p&gt;OpenClaw represents the explosion of Agent product form. Harness Engineering represents the maturation of the engineering method. AIPI represents the shift in software interface design. OPC represents the organizational consequence that may follow. They look like separate topics, but they are all pointing to the same trend: &lt;strong&gt;AI is not just a new tool. It is rewriting how software is built, invoked, governed, and ultimately how companies themselves operate.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>opc</category>
      <category>gdps</category>
    </item>
    <item>
      <title>Open Source Project of the Day (Part 29): Open-AutoGLM - A Phone Agent Framework for Controlling Phones with Natural Language</title>
      <dc:creator>WonderLab</dc:creator>
      <pubDate>Sat, 04 Apr 2026 01:04:41 +0000</pubDate>
      <link>https://dev.to/wonderlab/open-source-project-of-the-day-part-29-open-autoglm-a-phone-agent-framework-for-controlling-4p8k</link>
      <guid>https://dev.to/wonderlab/open-source-project-of-the-day-part-29-open-autoglm-a-phone-agent-framework-for-controlling-4p8k</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;"'Open Meituan and search for nearby hot pot restaurants.' 'Send a message to File Transfer Assistant: deployment successful.' — Spoken, and the phone does it automatically."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is Part 29 of the "Open Source Project of the Day" series. Today we explore &lt;strong&gt;Open-AutoGLM&lt;/strong&gt; (&lt;a href="https://github.com/zai-org/Open-AutoGLM" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;), open-sourced by &lt;strong&gt;zai-org&lt;/strong&gt; (Zhipu AI ecosystem).&lt;/p&gt;

&lt;p&gt;You want to control your phone with natural language: open apps, search, tap, type text — without doing it step by step yourself. &lt;strong&gt;Open-AutoGLM&lt;/strong&gt; delivers two things: a &lt;strong&gt;Phone Agent framework&lt;/strong&gt; (Python code running on your computer) that controls devices via &lt;strong&gt;ADB&lt;/strong&gt; (Android) or &lt;strong&gt;HDC&lt;/strong&gt; (HarmonyOS) in a loop of "screenshot → visual model understands the interface → outputs action (launch app, tap coordinates, type, etc.) → execute"; and the &lt;strong&gt;AutoGLM-Phone&lt;/strong&gt; series of vision-language models (9B parameters) optimized for mobile interfaces, callable via Zhipu BigModel, ModelScope APIs, or your own vLLM/SGLang service. Users simply say something like "open Xiaohongshu and search for food," and the Agent automatically completes the entire flow — with support for sensitive operation confirmation and human takeover during login/CAPTCHA situations. The project supports &lt;strong&gt;Android 7.0+&lt;/strong&gt; and &lt;strong&gt;HarmonyOS NEXT&lt;/strong&gt;, covering 50+ Android apps and 60+ HarmonyOS apps, and can be integrated with &lt;a href="https://midscenejs.com/zh/index.html" rel="noopener noreferrer"&gt;Midscene.js&lt;/a&gt; and other UI automation tools.&lt;/p&gt;

&lt;h3&gt;
  
  
  What You'll Learn
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Open-AutoGLM's positioning: Phone Agent framework + AutoGLM-Phone model for "natural language → phone operations"&lt;/li&gt;
&lt;li&gt;The working pipeline: screenshot, visual model, action parsing, ADB/HDC execution, remote debugging, and human takeover&lt;/li&gt;
&lt;li&gt;Environment setup: Python, ADB/HDC, developer options, ADB Keyboard (Android)&lt;/li&gt;
&lt;li&gt;Model acquisition and deployment: Zhipu/ModelScope API and self-hosted vLLM/SGLang&lt;/li&gt;
&lt;li&gt;Supported apps, available actions, and secondary development structure&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Prerequisites
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Familiar with Python 3.10+, pip, and virtual environments&lt;/li&gt;
&lt;li&gt;Understanding of basic ADB or HDC concepts (connecting devices, executing commands)&lt;/li&gt;
&lt;li&gt;If self-hosting the model service, basic experience with GPU and vLLM/SGLang; using cloud API only requires applying for a key&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Project Background
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Project Introduction
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Open-AutoGLM&lt;/strong&gt; includes an &lt;strong&gt;open-source Phone Agent framework&lt;/strong&gt; and the &lt;strong&gt;AutoGLM-Phone vision-language model&lt;/strong&gt;, targeting "control phones with natural language": users enter commands on a computer, the Agent controls the phone via ADB (Android) or HDC (HarmonyOS), combining &lt;strong&gt;multimodal screen understanding&lt;/strong&gt; and &lt;strong&gt;planning capabilities&lt;/strong&gt; to automatically complete operations like opening apps, tapping, typing, and swiping. The framework has built-in sensitive operation confirmation and human takeover (e.g., for login, CAPTCHA), supports &lt;strong&gt;WiFi/network remote debugging&lt;/strong&gt; — no need to stay plugged in throughout. The model provides &lt;strong&gt;AutoGLM-Phone-9B&lt;/strong&gt; (Chinese-optimized) and &lt;strong&gt;AutoGLM-Phone-9B-Multilingual&lt;/strong&gt;, downloadable from Hugging Face or ModelScope, or callable via already-deployed Zhipu BigModel or ModelScope APIs. The project states it is for research and learning only — prohibited for illegal use; read the terms of service in the repo before using.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Core problems the project solves&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Want to operate a phone "in natural language," not by memorizing steps or writing scripts&lt;/li&gt;
&lt;li&gt;Need a working Agent codebase + a visual model optimized for mobile interfaces for reproduction and secondary development&lt;/li&gt;
&lt;li&gt;Need simultaneous support for Android and HarmonyOS, local and remote devices, and Chinese and English commands&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Target user groups&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Developers and teams researching or practicing "Phone Agent" and "GUI Agent"&lt;/li&gt;
&lt;li&gt;Users needing to automate Android/HarmonyOS device operations for testing, demos, or assistance tasks&lt;/li&gt;
&lt;li&gt;Integrators wanting to incorporate "natural language phone control" into their own products (e.g., Midscene.js integration)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Author/Team Introduction
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Organization&lt;/strong&gt;: &lt;strong&gt;zai-org&lt;/strong&gt; (&lt;a href="https://github.com/zai-org" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;), related to the Zhipu AI ecosystem; README mentions Zhipu AI Input Method, GLM Coding Plan, AutoGLM Practitioners activities, etc.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Papers&lt;/strong&gt;: AutoGLM (&lt;a href="https://arxiv.org/abs/2411.00820" rel="noopener noreferrer"&gt;arXiv:2411.00820&lt;/a&gt;), MobileRL (&lt;a href="https://arxiv.org/abs/2509.18119" rel="noopener noreferrer"&gt;arXiv:2509.18119&lt;/a&gt;); model architecture same as GLM-4.1V-9B-Thinking — see &lt;a href="https://github.com/zai-org/GLM-V" rel="noopener noreferrer"&gt;GLM-V&lt;/a&gt; deployment instructions for reference&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Blog and product&lt;/strong&gt;: &lt;a href="https://autoglm.z.ai/blog" rel="noopener noreferrer"&gt;autoglm.z.ai/blog&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Project Stats
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;⭐ &lt;strong&gt;GitHub Stars&lt;/strong&gt;: 23.5k+&lt;/li&gt;
&lt;li&gt;🍴 &lt;strong&gt;Forks&lt;/strong&gt;: 3.7k+&lt;/li&gt;
&lt;li&gt;📦 &lt;strong&gt;Version&lt;/strong&gt;: main branch as trunk; models on Hugging Face / ModelScope&lt;/li&gt;
&lt;li&gt;📄 &lt;strong&gt;License&lt;/strong&gt;: Apache-2.0&lt;/li&gt;
&lt;li&gt;🌐 &lt;strong&gt;Documentation and blog&lt;/strong&gt;: &lt;a href="https://autoglm.z.ai/blog" rel="noopener noreferrer"&gt;autoglm.z.ai/blog&lt;/a&gt;, repo README and &lt;a href="https://github.com/zai-org/Open-AutoGLM/blob/main/README_en.md" rel="noopener noreferrer"&gt;README_en.md&lt;/a&gt;, &lt;a href="https://github.com/zai-org/Open-AutoGLM/tree/main/docs/ios_setup" rel="noopener noreferrer"&gt;iOS setup guide&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;💬 &lt;strong&gt;Community&lt;/strong&gt;: WeChat community, Zhipu AI Input Method X account, &lt;a href="https://github.com/zai-org/Open-AutoGLM/issues" rel="noopener noreferrer"&gt;GitHub Issues&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Main Features
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Core Purpose
&lt;/h3&gt;

&lt;p&gt;Open-AutoGLM's core purpose is to &lt;strong&gt;translate natural language instructions into actual phone operations&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Receive instruction&lt;/strong&gt;: User inputs something like "open Meituan and search for nearby hot pot restaurants" or "open WeChat and send to File Transfer Assistant: deployment successful"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Screenshot and understand&lt;/strong&gt;: Agent takes a screenshot of the current screen via ADB/HDC, calls the AutoGLM-Phone visual model to understand the interface content and user goal&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Plan and output action&lt;/strong&gt;: Model outputs structured actions (e.g., &lt;code&gt;Launch&lt;/code&gt;, &lt;code&gt;Tap&lt;/code&gt;, &lt;code&gt;Type&lt;/code&gt;, &lt;code&gt;Swipe&lt;/code&gt;, etc.), Agent parses them and sends to device for execution&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Loop until complete&lt;/strong&gt;: After execution, take another screenshot, understand, plan — until the task is done, the maximum steps are reached, or human takeover is triggered&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Safety and takeover&lt;/strong&gt;: Sensitive operations can be configured with a confirmation callback; login, CAPTCHA, and similar scenarios can trigger a human takeover callback, then continue after completion&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Use Cases
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Automated testing and demos&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Drive app flows with natural language, reducing the need for hand-written UI automation scripts&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Personal assistant-style operations&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"Open Taobao and search for wireless earphones," "open Xiaohongshu and search for food guides" — Agent automatically completes multi-step operations&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Remote device control and debugging&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Connect via WiFi ADB/HDC, control the phone without a USB connection, convenient for remote demos or development&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Integration with Midscene.js and similar tools&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Midscene.js has adapted AutoGLM — automate iOS/Android using YAML or JavaScript workflows paired with AutoGLM&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Research and secondary development&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Extend new apps, new actions, or new prompts based on the &lt;code&gt;phone_agent&lt;/code&gt; package, or integrate with a self-hosted model service&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Quick Start
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Environment&lt;/strong&gt;: Python 3.10+; Android devices need ADB + developer mode + USB debugging (some models need "USB debugging (security settings)") + &lt;a href="https://github.com/senzhk/ADBKeyBoard" rel="noopener noreferrer"&gt;ADB Keyboard&lt;/a&gt; installed and enabled; HarmonyOS devices need HDC + developer options; iOS see &lt;a href="https://github.com/zai-org/Open-AutoGLM/tree/main/docs/ios_setup" rel="noopener noreferrer"&gt;docs/ios_setup&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Install the Agent (this repo)&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/zai-org/Open-AutoGLM.git
&lt;span class="nb"&gt;cd &lt;/span&gt;Open-AutoGLM
pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt
pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-e&lt;/span&gt; &lt;span class="nb"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Connect device&lt;/strong&gt;: After USB connecting the phone, run &lt;code&gt;adb devices&lt;/code&gt; (Android) or &lt;code&gt;hdc list targets&lt;/code&gt; (HarmonyOS) to confirm the device is listed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Using third-party model service (no local GPU needed)&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Zhipu BigModel (apply for API key at Zhipu platform)&lt;/span&gt;
python main.py &lt;span class="nt"&gt;--base-url&lt;/span&gt; https://open.bigmodel.cn/api/paas/v4 &lt;span class="nt"&gt;--model&lt;/span&gt; &lt;span class="s2"&gt;"autoglm-phone"&lt;/span&gt; &lt;span class="nt"&gt;--apikey&lt;/span&gt; &lt;span class="s2"&gt;"your-key"&lt;/span&gt; &lt;span class="s2"&gt;"Open Meituan and search for nearby hot pot restaurants"&lt;/span&gt;

&lt;span class="c"&gt;# ModelScope (apply for API key at ModelScope)&lt;/span&gt;
python main.py &lt;span class="nt"&gt;--base-url&lt;/span&gt; https://api-inference.modelscope.cn/v1 &lt;span class="nt"&gt;--model&lt;/span&gt; &lt;span class="s2"&gt;"ZhipuAI/AutoGLM-Phone-9B"&lt;/span&gt; &lt;span class="nt"&gt;--apikey&lt;/span&gt; &lt;span class="s2"&gt;"your-key"&lt;/span&gt; &lt;span class="s2"&gt;"Open Meituan and search for nearby hot pot restaurants"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Using self-hosted model service&lt;/strong&gt;: Deploy &lt;a href="https://huggingface.co/zai-org/AutoGLM-Phone-9B" rel="noopener noreferrer"&gt;AutoGLM-Phone-9B&lt;/a&gt; with vLLM or SGLang (see README startup parameters) to get an OpenAI-compatible API (e.g., &lt;code&gt;http://localhost:8000/v1&lt;/code&gt;), then point &lt;code&gt;--base-url&lt;/code&gt; and &lt;code&gt;--model&lt;/code&gt; to that service.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Python API example&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;phone_agent&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;PhoneAgent&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;phone_agent.model&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;ModelConfig&lt;/span&gt;

&lt;span class="n"&gt;model_config&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;ModelConfig&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;base_url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;http://localhost:8000/v1&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;model_name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;autoglm-phone-9b&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;agent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;PhoneAgent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model_config&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;model_config&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;agent&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;run&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Open Taobao and search for wireless earphones&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Core Features
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Multimodal screen understanding&lt;/strong&gt;: AutoGLM-Phone is optimized for mobile interfaces — understands the current page from screenshots and outputs the next action&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Android + HarmonyOS&lt;/strong&gt;: Android uses ADB, HarmonyOS uses HDC — switch with &lt;code&gt;--device-type adb/hdc&lt;/code&gt; in the same Agent&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;50+ Android apps / 60+ HarmonyOS apps&lt;/strong&gt;: Social communication, e-commerce, food delivery, transportation, video, music, lifestyle, content communities, etc. — see supported app list with &lt;code&gt;python main.py --list-apps&lt;/code&gt; and &lt;code&gt;--device-type hdc --list-apps&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rich operations&lt;/strong&gt;: Launch, Tap, Type, Swipe, Back, Home, Long Press, Double Tap, Wait, Take_over (human takeover)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Remote debugging&lt;/strong&gt;: Supports &lt;code&gt;adb connect IP:5555&lt;/code&gt; / &lt;code&gt;hdc tconn IP:5555&lt;/code&gt; for WiFi-based device control&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sensitive operations and human takeover&lt;/strong&gt;: Configure &lt;code&gt;confirmation_callback&lt;/code&gt; and &lt;code&gt;takeover_callback&lt;/code&gt; to intervene during payment, login, CAPTCHA, and similar scenarios&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Chinese and English prompts&lt;/strong&gt;: &lt;code&gt;--lang cn&lt;/code&gt; (default) and &lt;code&gt;--lang en&lt;/code&gt;, corresponding to &lt;code&gt;phone_agent/config/prompts_zh.py&lt;/code&gt; and &lt;code&gt;prompts_en.py&lt;/code&gt; — customizable&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OpenAI-compatible API&lt;/strong&gt;: Any model service exposing an OpenAI-format interface works — easy to connect to Zhipu, ModelScope, or self-hosted vLLM/SGLang&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Project Advantages
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Dimension&lt;/th&gt;
&lt;th&gt;Open-AutoGLM&lt;/th&gt;
&lt;th&gt;Manual UI automation scripts&lt;/th&gt;
&lt;th&gt;Cloud-only "phone assistant" products&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Input method&lt;/td&gt;
&lt;td&gt;Natural language&lt;/td&gt;
&lt;td&gt;Coordinates/selectors, code&lt;/td&gt;
&lt;td&gt;Natural language but closed-source/uncontrollable&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Devices and OS&lt;/td&gt;
&lt;td&gt;Android + HarmonyOS, local/remote&lt;/td&gt;
&lt;td&gt;Depends on script and tools&lt;/td&gt;
&lt;td&gt;Depends on product&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Model and deployment&lt;/td&gt;
&lt;td&gt;Open-source model + self-hosted or third-party API&lt;/td&gt;
&lt;td&gt;No model&lt;/td&gt;
&lt;td&gt;Usually cloud-only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Extensibility&lt;/td&gt;
&lt;td&gt;Modify prompts, add apps, integrate self-built services&lt;/td&gt;
&lt;td&gt;High but requires coding&lt;/td&gt;
&lt;td&gt;Low&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Research and reproduction&lt;/td&gt;
&lt;td&gt;Paper + code + downloadable models&lt;/td&gt;
&lt;td&gt;Depends on whether scripts are open-source&lt;/td&gt;
&lt;td&gt;Difficult to reproduce&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Why choose Open-AutoGLM?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;End-to-end open source&lt;/strong&gt;: From Agent logic to models (including Chinese/multilingual versions) — all accessible for learning and secondary development&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ready-to-use and self-hostable&lt;/strong&gt;: Use Zhipu/ModelScope for quick experience, or build with vLLM/SGLang for private or customized deployment&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dual platform&lt;/strong&gt;: Supports both Android and HarmonyOS, with Midscene.js and ecosystem integration for many extension scenarios&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Detailed Project Analysis
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Architecture Overview
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;This repo (Agent side)&lt;/strong&gt;: Runs on the computer, responsible for calling model APIs, parsing model-output actions, and sending screenshot and operation commands via ADB/HDC.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Model service&lt;/strong&gt;: A separate process or remote API, receives "screenshot + conversation/task" input, returns structured actions (e.g., &lt;code&gt;do(action="Launch", app="Meituan")&lt;/code&gt;). Can connect to local vLLM/SGLang or Zhipu, ModelScope, etc.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Device side&lt;/strong&gt;: Phone/tablet with developer mode and USB debugging enabled (plus ADB Keyboard, etc.), communicating with ADB/HDC on the computer via USB or WiFi.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Project Structure (phone_agent)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;agent.py&lt;/strong&gt;: PhoneAgent main class, orchestrates screenshots, model calls, action parsing, operation execution, and callbacks&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;adb/&lt;/strong&gt;: ADB connection, screenshots, text input (ADB Keyboard), device control (tap, swipe, etc.)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;actions/handler.py&lt;/strong&gt;: Translates model-output actions into ADB/HDC commands and executes them&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;config/&lt;/strong&gt;: Supported app mapping (apps.py), Chinese/English system prompts (prompts_zh.py, prompts_en.py)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;model/client.py&lt;/strong&gt;: OpenAI-compatible model client for requesting the visual model API&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;HarmonyOS is implemented via HDC-related modules (e.g., &lt;code&gt;hdc/&lt;/code&gt;) in the repo; specify with &lt;code&gt;--device-type hdc&lt;/code&gt; on the command line.&lt;/p&gt;

&lt;h3&gt;
  
  
  Models and Deployment
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AutoGLM-Phone-9B&lt;/strong&gt;: Optimized for Chinese mobile app scenarios, &lt;a href="https://huggingface.co/zai-org/AutoGLM-Phone-9B" rel="noopener noreferrer"&gt;Hugging Face&lt;/a&gt;, &lt;a href="https://modelscope.cn/models/ZhipuAI/AutoGLM-Phone-9B" rel="noopener noreferrer"&gt;ModelScope&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AutoGLM-Phone-9B-Multilingual&lt;/strong&gt;: Multilingual, suitable for Chinese-English mixed or English interfaces&lt;/li&gt;
&lt;li&gt;Deployment: Recommended to use inference services with strong &lt;strong&gt;Structured Output&lt;/strong&gt; capability (e.g., OpenAI, Gemini); when self-hosting, follow README's vLLM/SGLang startup parameters (e.g., &lt;code&gt;--max-model-len 25480&lt;/code&gt;, &lt;code&gt;--limit-mm-per-prompt&lt;/code&gt;, etc.) — otherwise output format errors or garbled text may occur. Model is ~20GB, requires GPU (recommend 24GB+ VRAM for local deployment).&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Important Notes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Compliance and use&lt;/strong&gt;: Project states it is for research and learning only; strictly prohibited for illegally obtaining information, interfering with systems, or any illegal use; read the terms of service and privacy policy in the repo before using&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Permissions and security&lt;/strong&gt;: Requires enabling developer mode and USB debugging on the device; sensitive operations should use callback confirmation; payment/banking pages may screenshot as black screens and trigger takeover&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Chinese input&lt;/strong&gt;: Android requires ADB Keyboard — not installed or enabled will cause input issues; HarmonyOS uses the system IME&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Project Resources
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Official Resources
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;🌟 &lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/zai-org/Open-AutoGLM" rel="noopener noreferrer"&gt;github.com/zai-org/Open-AutoGLM&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📄 &lt;strong&gt;English README&lt;/strong&gt;: &lt;a href="https://github.com/zai-org/Open-AutoGLM/blob/main/README_en.md" rel="noopener noreferrer"&gt;README_en.md&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🌐 &lt;strong&gt;Blog&lt;/strong&gt;: &lt;a href="https://autoglm.z.ai/blog" rel="noopener noreferrer"&gt;autoglm.z.ai/blog&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📱 &lt;strong&gt;iOS setup&lt;/strong&gt;: &lt;a href="https://github.com/zai-org/Open-AutoGLM/tree/main/docs/ios_setup" rel="noopener noreferrer"&gt;docs/ios_setup&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🤖 &lt;strong&gt;Models&lt;/strong&gt;: &lt;a href="https://huggingface.co/zai-org/AutoGLM-Phone-9B" rel="noopener noreferrer"&gt;Hugging Face&lt;/a&gt;, &lt;a href="https://modelscope.cn/models/ZhipuAI/AutoGLM-Phone-9B" rel="noopener noreferrer"&gt;ModelScope&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📚 &lt;strong&gt;Zhipu API&lt;/strong&gt;: &lt;a href="https://docs.bigmodel.cn/cn/api/introduction" rel="noopener noreferrer"&gt;docs.bigmodel.cn&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🐛 &lt;strong&gt;Issues&lt;/strong&gt;: &lt;a href="https://github.com/zai-org/Open-AutoGLM/issues" rel="noopener noreferrer"&gt;GitHub Issues&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Related Resources
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://midscenejs.com/zh/model-common-config.html#auto-glm" rel="noopener noreferrer"&gt;Midscene.js AutoGLM integration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/zai-org/GLM-V" rel="noopener noreferrer"&gt;GLM-V model deployment&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/senzhk/ADBKeyBoard" rel="noopener noreferrer"&gt;ADB Keyboard&lt;/a&gt; (Android text input)&lt;/li&gt;
&lt;li&gt;Papers: AutoGLM (arXiv:2411.00820), MobileRL (arXiv:2509.18119)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Who Should Use This
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Phone Agent / GUI Agent researchers&lt;/strong&gt;: Need a reproducible framework and model&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automated testing and demos&lt;/strong&gt;: Drive Android/HarmonyOS device flows with natural language&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Product integrators&lt;/strong&gt;: Want to incorporate "natural language phone control" (e.g., combined with Midscene.js)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zhipu/multimodal ecosystem users&lt;/strong&gt;: Already using Zhipu API or GLM series, want to extend to phone control scenarios&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Welcome to visit my &lt;a href="https://home.wonlab.top" rel="noopener noreferrer"&gt;personal homepage&lt;/a&gt; for more useful knowledge and interesting products&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>llm</category>
      <category>agents</category>
    </item>
    <item>
      <title>Open Source Project of the Day (Part 28): Graphiti - Building Real-Time Knowledge Graphs for AI Agents</title>
      <dc:creator>WonderLab</dc:creator>
      <pubDate>Fri, 03 Apr 2026 10:10:04 +0000</pubDate>
      <link>https://dev.to/wonderlab/open-source-project-of-the-day-part-28-graphiti-building-real-time-knowledge-graphs-for-ai-5g61</link>
      <guid>https://dev.to/wonderlab/open-source-project-of-the-day-part-28-graphiti-building-real-time-knowledge-graphs-for-ai-5g61</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;"Traditional RAG is batch-oriented and static. When data changes continuously and you need to know 'what happened at that moment,' you need a temporally-aware graph."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is Part 28 of the "Open Source Project of the Day" series. Today we explore &lt;strong&gt;Graphiti&lt;/strong&gt; (&lt;a href="https://github.com/getzep/graphiti" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;), open-sourced by &lt;strong&gt;getzep&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Knowledge graphs express facts as "entity-relationship-entity" triples, suitable for structured retrieval and reasoning. But most solutions are either batch-processed or have weak temporal semantics, making it difficult to support &lt;strong&gt;continuously-updated conversations, business data, and external information&lt;/strong&gt;. &lt;strong&gt;Graphiti&lt;/strong&gt; targets exactly these scenarios: building and querying &lt;strong&gt;temporally-aware knowledge graphs&lt;/strong&gt; for &lt;strong&gt;AI Agents operating in dynamic environments&lt;/strong&gt;. It supports &lt;strong&gt;real-time incremental writes&lt;/strong&gt;, a &lt;strong&gt;dual temporal data model&lt;/strong&gt; (event time and ingestion time), &lt;strong&gt;hybrid retrieval&lt;/strong&gt; (semantic + keyword BM25 + graph traversal), and &lt;strong&gt;custom entities&lt;/strong&gt; (Pydantic) — all without full graph recomputation for historical queries. It also provides an &lt;strong&gt;MCP service&lt;/strong&gt; (for Claude, Cursor, etc.), a &lt;strong&gt;REST API&lt;/strong&gt; (FastAPI), and supports &lt;strong&gt;Neo4j, FalkorDB, Kuzu, and Amazon Neptune&lt;/strong&gt; graph backends — the core open-source component of Zep's context engineering platform.&lt;/p&gt;

&lt;h3&gt;
  
  
  What You'll Learn
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Graphiti's positioning: a real-time, temporally-aware knowledge graph framework for AI Agents&lt;/li&gt;
&lt;li&gt;Differences from traditional RAG and GraphRAG: incremental vs. batch, dual temporal vs. simple timestamps&lt;/li&gt;
&lt;li&gt;Core capabilities: Episode writes, hybrid retrieval, custom entities, multi-backend and multi-LLM support&lt;/li&gt;
&lt;li&gt;Installation, quick start, and MCP/REST integration&lt;/li&gt;
&lt;li&gt;The driver architecture (11 Operations ABC) and its relationship to Zep&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Prerequisites
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Basic understanding of knowledge graphs (nodes, edges, triples)&lt;/li&gt;
&lt;li&gt;Rough familiarity with the differences between RAG, vector retrieval, and graph traversal&lt;/li&gt;
&lt;li&gt;Experience with Python 3.10+, pip/uv; setting up your own graph database requires one of Neo4j/FalkorDB/Kuzu/Neptune&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Project Background
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Project Introduction
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Graphiti&lt;/strong&gt; is a framework for &lt;strong&gt;building and querying temporally-aware knowledge graphs&lt;/strong&gt;, specifically designed for &lt;strong&gt;AI Agents operating in dynamic environments&lt;/strong&gt;. It continuously integrates user interactions, structured and unstructured business data, and external information into a queryable graph, supporting &lt;strong&gt;incremental updates&lt;/strong&gt; and &lt;strong&gt;precise historical (point-in-time) queries&lt;/strong&gt; without full graph recomputation. Unlike traditional RAG, which relies on batch processing and static summaries, Graphiti emphasizes &lt;strong&gt;real-time writes, dual temporal modeling, and hybrid retrieval&lt;/strong&gt; (semantic + keyword + graph), with support for defining custom entity types via &lt;strong&gt;Pydantic&lt;/strong&gt;. Its core capabilities are used by the &lt;a href="https://www.getzep.com" rel="noopener noreferrer"&gt;Zep&lt;/a&gt; context engineering and Agent memory platform; Graphiti is provided as an open-source framework for building your own graph storage and retrieval layer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Core problems the project solves&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;With continuously changing data, batch RAG has high latency and difficulty reflecting "current state" and "past state"&lt;/li&gt;
&lt;li&gt;Need to explicitly distinguish between "event occurrence time" and "system ingestion time" for auditing and historical queries&lt;/li&gt;
&lt;li&gt;Want to combine semantic, keyword, and graph structure for retrieval, not just a single vector or single summary&lt;/li&gt;
&lt;li&gt;Need pluggable graph backends (local Neo4j/FalkorDB/Kuzu or cloud Neptune) for flexible deployment based on scale and compliance&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Target user groups&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Developers building AI Agent memory, conversation context, and multi-turn reasoning&lt;/li&gt;
&lt;li&gt;RAG/knowledge base scenarios requiring "dynamic data + graph structure + temporal queries"&lt;/li&gt;
&lt;li&gt;Teams who want to build their own graph layer and connect to Claude/Cursor via MCP&lt;/li&gt;
&lt;li&gt;Engineers researching or implementing "graph + time + Agent" architectures&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Author/Team Introduction
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Organization&lt;/strong&gt;: &lt;strong&gt;getzep&lt;/strong&gt; (&lt;a href="https://github.com/getzep" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;), provides the &lt;a href="https://www.getzep.com" rel="noopener noreferrer"&gt;Zep&lt;/a&gt; context engineering and Agent memory platform; Graphiti is Zep's core graph engine and is open-sourced&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Paper&lt;/strong&gt;: &lt;a href="https://arxiv.org/abs/2501.13956" rel="noopener noreferrer"&gt;Zep: A Temporal Knowledge Graph Architecture for Agent Memory&lt;/a&gt; (arXiv 2501.13956)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Documentation and support&lt;/strong&gt;: &lt;a href="https://help.getzep.com/graphiti" rel="noopener noreferrer"&gt;help.getzep.com/graphiti&lt;/a&gt;, &lt;a href="https://discord.com/invite/W8Kw6bsgXQ" rel="noopener noreferrer"&gt;Discord #Graphiti&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Project Stats
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;⭐ &lt;strong&gt;GitHub Stars&lt;/strong&gt;: 22.9k+&lt;/li&gt;
&lt;li&gt;🍴 &lt;strong&gt;Forks&lt;/strong&gt;: 2.3k+&lt;/li&gt;
&lt;li&gt;📦 &lt;strong&gt;Version&lt;/strong&gt;: v0.28.x (check &lt;a href="https://github.com/getzep/graphiti/releases" rel="noopener noreferrer"&gt;Releases&lt;/a&gt; for current)&lt;/li&gt;
&lt;li&gt;📄 &lt;strong&gt;License&lt;/strong&gt;: Apache-2.0&lt;/li&gt;
&lt;li&gt;🌐 &lt;strong&gt;Documentation&lt;/strong&gt;: &lt;a href="https://help.getzep.com/graphiti" rel="noopener noreferrer"&gt;help.getzep.com/graphiti&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;💬 &lt;strong&gt;Community&lt;/strong&gt;: &lt;a href="https://discord.com/invite/W8Kw6bsgXQ" rel="noopener noreferrer"&gt;Discord&lt;/a&gt;, &lt;a href="https://github.com/getzep/graphiti/issues" rel="noopener noreferrer"&gt;GitHub Issues&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Main Features
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Core Purpose
&lt;/h3&gt;

&lt;p&gt;Graphiti's core purpose is to &lt;strong&gt;provide AI Agents with real-time, queryable, temporally-aware knowledge graph capabilities&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Episode writes&lt;/strong&gt;: Write text or structured JSON as "episodes" into the graph, automatically extracting entities and relationships — incremental, no full graph reprocessing needed&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dual temporal model&lt;/strong&gt;: Records both event occurrence time and ingestion time, supporting point-in-time and time-range historical queries&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hybrid retrieval&lt;/strong&gt;: Semantic embedding + keyword (BM25) + graph traversal, with optional graph-distance reranking, targeting sub-second latency&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Custom entities&lt;/strong&gt;: Define node/edge types via Pydantic to fit domain ontologies&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multiple backends&lt;/strong&gt;: Neo4j, FalkorDB, Kuzu, Amazon Neptune (including Neptune Analytics + OpenSearch Serverless) with pluggable drivers&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multiple LLMs&lt;/strong&gt;: Default OpenAI; supports Azure OpenAI, Google Gemini, Anthropic, Groq, Ollama (local), etc. for extraction and embedding&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MCP and REST&lt;/strong&gt;: MCP service for Claude/Cursor calls; REST service (FastAPI) for self-built frontends or service integration&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Use Cases
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Agent long-term memory&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Write conversations and actions as Episodes to the graph, retrieve by time and topic, supporting multi-turn reasoning and state recovery&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Dynamic business knowledge base&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Orders, tickets, documents continuously updated — use graph + time modeling to capture "who was related to what at when," supporting auditing and historical queries&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Graph RAG as a replacement for batch RAG&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;When data changes frequently, use Graphiti for incremental graph building and hybrid retrieval, replacing "full rerun + pure vector" pipelines&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Integration with Claude/Cursor&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Provide "graph memory" to assistants via Graphiti MCP Server: add episodes, manage entities, semantic/hybrid search, grouping and maintenance&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Research and reproduction&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reproduce "temporal knowledge graph + Agent memory" based on the paper and open-source implementation, or extend with new drivers and retrieval strategies&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Quick Start
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Environment&lt;/strong&gt;: Python 3.10+; one of Neo4j 5.26 / FalkorDB 1.1.2 / Kuzu 0.11.2 / Amazon Neptune; OpenAI API key (default LLM/embedding). Recommended: models supporting &lt;strong&gt;Structured Output&lt;/strong&gt; (e.g., OpenAI, Gemini) for best extraction quality.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Installation&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;graphiti-core
&lt;span class="c"&gt;# or&lt;/span&gt;
uv add graphiti-core

&lt;span class="c"&gt;# For FalkorDB&lt;/span&gt;
pip &lt;span class="nb"&gt;install &lt;/span&gt;graphiti-core[falkordb]

&lt;span class="c"&gt;# For Kuzu&lt;/span&gt;
pip &lt;span class="nb"&gt;install &lt;/span&gt;graphiti-core[kuzu]

&lt;span class="c"&gt;# For Neptune&lt;/span&gt;
pip &lt;span class="nb"&gt;install &lt;/span&gt;graphiti-core[neptune]

&lt;span class="c"&gt;# Optional multi-LLM&lt;/span&gt;
pip &lt;span class="nb"&gt;install &lt;/span&gt;graphiti-core[anthropic,google-genai,groq]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Start FalkorDB with Docker&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker run &lt;span class="nt"&gt;-p&lt;/span&gt; 6379:6379 &lt;span class="nt"&gt;-p&lt;/span&gt; 3000:3000 &lt;span class="nt"&gt;-it&lt;/span&gt; &lt;span class="nt"&gt;--rm&lt;/span&gt; falkordb/falkordb:latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Minimal example (Neo4j)&lt;/strong&gt;: After setting &lt;code&gt;OPENAI_API_KEY&lt;/code&gt;, refer to the repo's &lt;a href="https://github.com/getzep/graphiti/tree/main/examples/quickstart" rel="noopener noreferrer"&gt;examples/quickstart&lt;/a&gt;: connect to graph database → initialize indexes and constraints → add Episodes (text or JSON) → hybrid search edges/nodes → rerank by graph distance → use search recipes. See the &lt;a href="https://help.getzep.com/graphiti/graphiti/quick-start" rel="noopener noreferrer"&gt;Quick Start documentation&lt;/a&gt; for full steps.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MCP integration&lt;/strong&gt;: See repo &lt;a href="https://github.com/getzep/graphiti/tree/main/mcp_server" rel="noopener noreferrer"&gt;mcp_server/README&lt;/a&gt;, supports Episode add/delete/query, entity and relationship management, semantic/hybrid search, grouping and graph maintenance — compatible with Claude, Cursor, and other MCP clients.&lt;/p&gt;

&lt;h3&gt;
  
  
  Core Features
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Real-time incremental updates&lt;/strong&gt;: New Episodes enter the graph immediately, no batch full recomputation needed&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dual temporal data model&lt;/strong&gt;: Event time + ingestion time, supports accurate point-in-time/range queries&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hybrid retrieval&lt;/strong&gt;: Semantic + BM25 + graph traversal, optional graph-distance reranking, low latency (sub-second target)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pluggable graph drivers&lt;/strong&gt;: GraphDriver ABC + 11 Operations interfaces, supports Neo4j, FalkorDB, Kuzu, Neptune — build new backends yourself&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Custom entities&lt;/strong&gt;: Pydantic-defined node/edge types for domain ontologies&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-LLM/embedding&lt;/strong&gt;: OpenAI, Azure, Gemini, Anthropic, Groq, Ollama, etc. for cloud and local deployment&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MCP and REST&lt;/strong&gt;: Integration with AI assistants (Claude, Cursor) and self-built services&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Telemetry can be disabled&lt;/strong&gt;: Anonymous usage statistics, disable via &lt;code&gt;GRAPHITI_TELEMETRY_ENABLED=false&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Graphiti vs. GraphRAG vs. Zep
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Dimension&lt;/th&gt;
&lt;th&gt;Traditional GraphRAG&lt;/th&gt;
&lt;th&gt;Graphiti&lt;/th&gt;
&lt;th&gt;Zep (commercial platform)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Primary use&lt;/td&gt;
&lt;td&gt;Static document summarization&lt;/td&gt;
&lt;td&gt;Dynamic data and temporal-aware graphs&lt;/td&gt;
&lt;td&gt;Managed context and memory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data updates&lt;/td&gt;
&lt;td&gt;Primarily batch&lt;/td&gt;
&lt;td&gt;Continuous, incremental&lt;/td&gt;
&lt;td&gt;Managed, out-of-the-box&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Temporal modeling&lt;/td&gt;
&lt;td&gt;Simple timestamps&lt;/td&gt;
&lt;td&gt;Dual temporal (occurrence + ingestion)&lt;/td&gt;
&lt;td&gt;Platform built-in&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Retrieval&lt;/td&gt;
&lt;td&gt;LLM summary chain dependent&lt;/td&gt;
&lt;td&gt;Semantic + BM25 + graph + rerank&lt;/td&gt;
&lt;td&gt;Pre-configured, sub-200ms&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Query latency&lt;/td&gt;
&lt;td&gt;Seconds to tens of seconds&lt;/td&gt;
&lt;td&gt;Typically sub-second&lt;/td&gt;
&lt;td&gt;Sub-200ms level&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Custom entities&lt;/td&gt;
&lt;td&gt;Generally not supported&lt;/td&gt;
&lt;td&gt;Supported (Pydantic)&lt;/td&gt;
&lt;td&gt;Depends on product capabilities&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Deployment&lt;/td&gt;
&lt;td&gt;Self-hosted&lt;/td&gt;
&lt;td&gt;Self-hosted (multiple backends)&lt;/td&gt;
&lt;td&gt;Managed or cloud&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Why choose Graphiti?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;When you need &lt;strong&gt;graph + time + incremental&lt;/strong&gt; and want &lt;strong&gt;to control the graph database and retrieval yourself&lt;/strong&gt;, Graphiti provides a complete open-source implementation&lt;/li&gt;
&lt;li&gt;Same origin as &lt;strong&gt;Zep&lt;/strong&gt; (Zep uses Graphiti underneath) — validate self-hosted first, then consider migrating to Zep managed&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MCP&lt;/strong&gt; and &lt;strong&gt;multi-backend, multi-LLM&lt;/strong&gt; support makes it easy to embed into existing Agents and infrastructure&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Detailed Project Analysis
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Data Model and Pipeline Overview
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Episode&lt;/strong&gt;: A single input unit (a text passage or structured JSON) — upon writing, entities and relationships are extracted via LLM, written to the graph with time-related edges (e.g., NextEpisode).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Entities and edges&lt;/strong&gt;: Entity nodes, Episode nodes, Community and Saga nodes, etc.; edge types include inter-entity relationships, Episode-to-entity associations, Episode sequences, etc. Supports &lt;strong&gt;temporal edge invalidation&lt;/strong&gt; to handle contradictions and changes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Retrieval&lt;/strong&gt;: Combines semantic retrieval (embeddings), keyword search (FTS/BM25), graph traversal, and communities; results can be reranked by graph distance without relying on long LLM summary chains.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Graph Driver Architecture (11 Operations)
&lt;/h3&gt;

&lt;p&gt;Graphiti uses &lt;strong&gt;pluggable drivers&lt;/strong&gt; to abstract away graph database differences:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GraphDriver&lt;/strong&gt;: Abstract base class defining connection, session, and index/constraint lifecycle, exposing 11 Operations interfaces (accessed via &lt;code&gt;@property&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;11 Operations&lt;/strong&gt;: Node classes (EntityNode, EpisodeNode, CommunityNode, SagaNode), edge classes (EntityEdge, EpisodicEdge, CommunityEdge, HasEpisode, NextEpisode), search, and graph maintenance. Each backend implements these 11 interfaces; query statements are generated in the appropriate dialect by a shared query builder based on the &lt;code&gt;GraphProvider&lt;/code&gt; enum.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Adding new backends&lt;/strong&gt;: Add enum to &lt;code&gt;GraphProvider&lt;/code&gt; → implement &lt;code&gt;GraphDriver&lt;/code&gt; subclass and 11 Operations → add dialect for new block in &lt;code&gt;node_db_queries.py&lt;/code&gt; / &lt;code&gt;edge_db_queries.py&lt;/code&gt; → register optional dependency in &lt;code&gt;pyproject.toml&lt;/code&gt;. README documents Neo4j, FalkorDB, Kuzu, and Neptune as reference implementations.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Concurrency and Rate Limiting
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;The ingestion pipeline supports high concurrency; defaults to limiting concurrency via &lt;strong&gt;SEMAPHORE_LIMIT&lt;/strong&gt; (e.g., 10) to avoid LLM provider 429 errors. Can be raised to improve throughput or lowered to handle rate limits.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Documentation and Roadmap
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Documentation: &lt;a href="https://help.getzep.com/graphiti" rel="noopener noreferrer"&gt;help.getzep.com/graphiti&lt;/a&gt;, including Quick Start and building Agents with LangGraph.&lt;/li&gt;
&lt;li&gt;Roadmap: Custom graph schema, retrieval enhancement, and MCP Server are live; continuously expanding tests and stability.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Project Resources
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Official Resources
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;🌟 &lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/getzep/graphiti" rel="noopener noreferrer"&gt;github.com/getzep/graphiti&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📚 &lt;strong&gt;Documentation&lt;/strong&gt;: &lt;a href="https://help.getzep.com/graphiti" rel="noopener noreferrer"&gt;help.getzep.com/graphiti&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📄 &lt;strong&gt;Paper&lt;/strong&gt;: &lt;a href="https://arxiv.org/abs/2501.13956" rel="noopener noreferrer"&gt;Zep: A Temporal Knowledge Graph Architecture for Agent Memory&lt;/a&gt; (arXiv:2501.13956)&lt;/li&gt;
&lt;li&gt;📦 &lt;strong&gt;MCP Server&lt;/strong&gt;: Repo &lt;a href="https://github.com/getzep/graphiti/tree/main/mcp_server" rel="noopener noreferrer"&gt;mcp_server/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🌐 &lt;strong&gt;Zep platform&lt;/strong&gt;: &lt;a href="https://www.getzep.com" rel="noopener noreferrer"&gt;getzep.com&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Related Resources
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://blog.getzep.com/state-of-the-art-agent-memory/" rel="noopener noreferrer"&gt;Zep Blog: State of the Art in Agent Memory&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/getzep/graphiti/tree/main/examples/quickstart" rel="noopener noreferrer"&gt;Quickstart examples&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://help.getzep.com/graphiti/integrations/lang-graph-agent" rel="noopener noreferrer"&gt;Building Agents with LangGraph + Graphiti&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Neo4j / FalkorDB / Kuzu / Amazon Neptune documentation (deployment and version requirements)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Who Should Use This
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Agent and memory system developers&lt;/strong&gt;: Need temporally-aware, incrementally-updatable graph storage and retrieval&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Advanced RAG/knowledge base users&lt;/strong&gt;: Upgrading from pure vector or batch GraphRAG to dynamic graphs + hybrid retrieval&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Graph database users&lt;/strong&gt;: Already using Neo4j/FalkorDB/Kuzu/Neptune, want to integrate LLM extraction and semantic retrieval&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Claude/Cursor integration&lt;/strong&gt;: Providing "graph memory" and retrieval capabilities to assistants via MCP&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Welcome to visit my &lt;a href="https://home.wonlab.top" rel="noopener noreferrer"&gt;personal homepage&lt;/a&gt; for more useful knowledge and interesting products&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>llm</category>
      <category>rag</category>
    </item>
    <item>
      <title>Open Source Project of the Day (Part 27): Awesome AI Coding - A One-Stop AI Programming Resource Navigator</title>
      <dc:creator>WonderLab</dc:creator>
      <pubDate>Thu, 02 Apr 2026 02:47:27 +0000</pubDate>
      <link>https://dev.to/wonderlab/open-source-project-of-the-day-part-27-awesome-ai-coding-a-one-stop-ai-programming-resource-26l0</link>
      <guid>https://dev.to/wonderlab/open-source-project-of-the-day-part-27-awesome-ai-coding-a-one-stop-ai-programming-resource-26l0</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;"AI coding tools and resources are scattered everywhere. A topically organized, searchable, contributable list can save enormous amounts of search time."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is Part 27 of the "Open Source Project of the Day" series. Today we explore &lt;strong&gt;Awesome AI Coding&lt;/strong&gt; (&lt;a href="https://github.com/chendongqi/awesome-ai-coding" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;When doing AI-assisted programming, you'll face questions like: which editor or terminal tool should I use? For multi-agent frameworks, should I pick MetaGPT or CrewAI? What RAG frameworks and vector databases are available? Where do I find MCP servers? What ready-made templates are there for Claude Code Rules and Skills? &lt;strong&gt;Awesome AI Coding&lt;/strong&gt; is exactly that kind of &lt;strong&gt;curated resource navigator&lt;/strong&gt;: covering &lt;strong&gt;12 major sections&lt;/strong&gt; including code generation, Agent development, RAG, LLM applications, code review and testing, prompt engineering, MCP, code understanding, Agent Skills, development acceleration tools, learning resources, and &lt;strong&gt;ClaudeCode Rules&lt;/strong&gt;. Each section lists representative projects with brief descriptions, supports both Chinese and English (README_zh.md), table of contents navigation, and in-browser search. This article focuses on the &lt;strong&gt;content structure&lt;/strong&gt; and what each section can help you with, for easy reference or contribution.&lt;/p&gt;

&lt;h3&gt;
  
  
  What You'll Learn
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Awesome AI Coding's positioning: a one-stop AI programming resource navigator&lt;/li&gt;
&lt;li&gt;What each of the 12 categories covers, with typical entries&lt;/li&gt;
&lt;li&gt;How to search quickly (table of contents, Ctrl+F), Chinese/English entries, and contribution methods&lt;/li&gt;
&lt;li&gt;ClaudeCode Rules section: language/framework/practice rule file structure&lt;/li&gt;
&lt;li&gt;Complementary relationship with other Awesome-style lists&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Prerequisites
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Basic familiarity with AI-assisted programming, LLMs, Agents, RAG, and MCP is sufficient — the list itself is designed as a "where to go next" entry point after getting the basics&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Project Background
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Project Introduction
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Awesome AI Coding&lt;/strong&gt; is a &lt;strong&gt;curated collection of AI coding resources&lt;/strong&gt; (Awesome-style), aimed at developers and teams who "use AI to write code, build Agents, do RAG, and build LLM applications." Content is divided into &lt;strong&gt;12 major categories&lt;/strong&gt;, each further broken down into subcategories or directly listing projects — each with a brief description and link for quick navigation to editors, frameworks, vector databases, MCP platforms, Skill collections, spec-driven development tools, and more. The repo provides both an English README and a Chinese &lt;a href="https://github.com/chendongqi/awesome-ai-coding/blob/main/README_zh.md" rel="noopener noreferrer"&gt;README_zh.md&lt;/a&gt;, and welcomes continuous additions of quality resources via Issues/PRs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Core problems the project solves&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI coding tools, frameworks, Skills, and rules are scattered across GitHub, websites, and communities — hard to browse systematically&lt;/li&gt;
&lt;li&gt;Need a "categorized by use case" navigator, not just a generic AI list&lt;/li&gt;
&lt;li&gt;Want to cover desktop/terminal editors, Agent frameworks, RAG, MCP, and ClaudeCode Rules all in one place for easy end-to-end reference&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Target user groups&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Developers just starting with AI coding who want a quick ecosystem overview&lt;/li&gt;
&lt;li&gt;Teams needing to evaluate editors, Agent frameworks, RAG, MCP, and Skills&lt;/li&gt;
&lt;li&gt;People using Claude Code/Cursor who are looking for Rules and Skills templates&lt;/li&gt;
&lt;li&gt;Contributors and maintainers of Awesome-style lists&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Project Stats (Brief)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;📦 &lt;strong&gt;Content format&lt;/strong&gt;: Markdown documents (README.md, README_zh.md) + &lt;code&gt;rules/&lt;/code&gt; directory in the repo (ClaudeCode Rules)&lt;/li&gt;
&lt;li&gt;📄 &lt;strong&gt;License&lt;/strong&gt;: MIT&lt;/li&gt;
&lt;li&gt;🌐 &lt;strong&gt;Entry points&lt;/strong&gt;: English &lt;a href="https://github.com/chendongqi/awesome-ai-coding#readme" rel="noopener noreferrer"&gt;README&lt;/a&gt;, Chinese &lt;a href="https://github.com/chendongqi/awesome-ai-coding/blob/main/README_zh.md" rel="noopener noreferrer"&gt;README_zh.md&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📝 &lt;strong&gt;Updates&lt;/strong&gt;: README notes continuous updates, Issues/PRs welcome; footer has Last Updated date (e.g., 2026-01-29)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Main Features: Content Structure Overview
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Core Purpose
&lt;/h3&gt;

&lt;p&gt;Awesome AI Coding's core purpose is to &lt;strong&gt;aggregate AI coding resources by topic&lt;/strong&gt; and provide a searchable, navigable, contributable entry point:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Clear categories&lt;/strong&gt;: 12 major categories + subcategories, covering the complete pipeline from "editors/IDEs" to "ClaudeCode Rules"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Each entry has a description&lt;/strong&gt;: Project name + link + one-line description, easy to decide whether to click&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bilingual&lt;/strong&gt;: Main README in English, README_zh in Chinese, for different reading preferences&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Searchable&lt;/strong&gt;: README suggests using Ctrl+F / Cmd+F to search by keyword&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Extensible&lt;/strong&gt;: Contributing guide explains how to add resources via Fork + PR&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  12 Major Categories Overview
&lt;/h3&gt;

&lt;h4&gt;
  
  
  1. AI Code Editors &amp;amp; IDEs
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Desktop Editors&lt;/strong&gt;: Cursor, GitHub Copilot, Replit, Bolt, Devin AI, Trae (ByteDance), Windsurf, CodeBuddy, etc. — covering desktop and online AI coding environments.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Terminal Tools&lt;/strong&gt;: Claude Code, OpenCode, Codex, Gemini CLI, and other CLI/terminal tools.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ideal for: Quick comparison when choosing an IDE or terminal tool.&lt;/p&gt;

&lt;h4&gt;
  
  
  2. AI Agent Frameworks
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Multi-Agent Systems&lt;/strong&gt;: MetaGPT, CrewAI, AutoGen, JoyAgent-JDGeni, 500 AI Agents, Agent Design Patterns (Chinese), etc.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Agent Development Frameworks&lt;/strong&gt;: LangGraph, AgentEvolv, etc.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Coding Agent Tools&lt;/strong&gt;: Claude Code Plugins, Serena, OpenAutoGLM, SuperClaude Framework, etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ideal for: Framework and tool selection when building multi-agent systems, orchestration, and coding agents.&lt;/p&gt;

&lt;h4&gt;
  
  
  3. RAG &amp;amp; Knowledge Bases
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;RAG Frameworks&lt;/strong&gt;: e.g., RAGFlow.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vector Databases&lt;/strong&gt;: Supabase, Pinecone, Weaviate, etc.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Knowledge Graphs&lt;/strong&gt;: Graphiti (real-time knowledge graph, can be used with code understanding).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ideal for: Knowledge base Q&amp;amp;A, retrieval augmentation, vector and graph storage selection.&lt;/p&gt;

&lt;h4&gt;
  
  
  4. LLM Development Frameworks
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frameworks &amp;amp; Tools&lt;/strong&gt;: LangChain, LlamaIndex, Haystack.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LLM Application Examples&lt;/strong&gt;: Awesome LLM Apps, Agents Towards Production, etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ideal for: Framework and example reference when building LLM applications and production-grade Agents.&lt;/p&gt;

&lt;h4&gt;
  
  
  5. Code Review &amp;amp; Testing
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Code Review Tools&lt;/strong&gt;: e.g., CodeRabbit and other AI code review assistants.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ideal for: Integrating AI code review and quality tools.&lt;/p&gt;

&lt;h4&gt;
  
  
  6. Prompt Engineering
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Prompt Tools&lt;/strong&gt;: System Prompt Leak, System Prompts and Models of AI Tools (30,000+ lines of tool structure and prompts), etc.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prompt Resources&lt;/strong&gt;: Awesome Prompts, Prompt Engineering Guide, etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ideal for: Learning and collecting system prompts and prompt engineering practices.&lt;/p&gt;

&lt;h4&gt;
  
  
  7. MCP Protocol &amp;amp; Tools
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;MCP Frameworks&lt;/strong&gt;: Awesome MCP Servers and similar collections.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MCP Server Platforms&lt;/strong&gt;: MCP.so, MCP.ad (33,000+ servers), Cursor Directory, Pulse MCP, Glama MCP, etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ideal for: Finding MCP servers and integrating them with Cursor/Claude Code.&lt;/p&gt;

&lt;h4&gt;
  
  
  8. Code Analysis &amp;amp; Understanding
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Code Understanding Tools&lt;/strong&gt;: DeepWiki (deep GitHub repo understanding, Devin-powered Q&amp;amp;A), etc.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Code Analysis&lt;/strong&gt;: CodeQL, etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ideal for: Code understanding, static analysis, and security scanning.&lt;/p&gt;

&lt;h4&gt;
  
  
  9. Agent Skills
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Official Skills&lt;/strong&gt;: Superpowers, Anthropic Skills, OpenAI Skills, Trail of Bits Skills, etc.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Community Skills&lt;/strong&gt;: Antigravity Awesome Skills (552+), Vercel/AWS/Obsidian/Context Engineering specialized collections, etc.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Resource Collections &amp;amp; Platforms&lt;/strong&gt;: Claude Code Plugins, SkillsMP, skill0, multiple Awesome Claude Skills collections, NotebookLM Skill, OpenSkills, Skills, etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ideal for: Selecting or referencing Agent Skills, plugins, and marketplaces for Claude Code/Cursor.&lt;/p&gt;

&lt;h4&gt;
  
  
  10. Development Tools &amp;amp; Acceleration
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Documentation Tools&lt;/strong&gt;: MarkItDown (multi-format to Markdown, LLM-compatible), etc.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Project Management&lt;/strong&gt;: Spec-Kit (spec-driven development, Copilot integration), OpenSpec, BMAD-METHOD, etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ideal for: Document conversion, spec-driven development, and requirements-to-code collaboration workflows.&lt;/p&gt;

&lt;h4&gt;
  
  
  11. Learning Resources
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tutorials &amp;amp; Guides&lt;/strong&gt;: AI Code Guide, Agent Design Patterns CN (with local and Colab), etc.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Community Resources&lt;/strong&gt;: Awesome AI, Awesome LLM Resources, etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ideal for: Entry-level pathways and advanced learning.&lt;/p&gt;

&lt;h4&gt;
  
  
  12. ClaudeCode Rules
&lt;/h4&gt;

&lt;p&gt;The &lt;strong&gt;&lt;code&gt;rules/&lt;/code&gt;&lt;/strong&gt; directory in the repo provides ready-to-use development rules and specifications:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Language-Specific&lt;/strong&gt;: Python, Go, Rust, Node.js, iOS Swift, Android App, Android System, etc.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Framework &amp;amp; Platform&lt;/strong&gt;: React Frontend, Vue Frontend, Backend, Docker, etc.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Development Practices&lt;/strong&gt;: Agents, Coding Style, Patterns, Performance, Security, Testing, Git Workflow, Hooks, etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ideal for: Configuring project-level/language-level Rules for Claude Code or similar Agents — unifying style and security policies.&lt;/p&gt;

&lt;h3&gt;
  
  
  Use Cases
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Selection phase&lt;/strong&gt;: Browse and compare by category when choosing IDEs, Agent frameworks, RAG/vector databases, MCP platforms, and Skill collections.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Learning path&lt;/strong&gt;: Start from Learning Resources and Prompt/LLM application examples, then jump to Agent, RAG, and MCP as needed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Configure Claude Code/Cursor&lt;/strong&gt;: Find ready-made Skills and Rules templates in Agent Skills and ClaudeCode Rules — copy or adapt to local use.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Standards and collaboration&lt;/strong&gt;: Reference Spec-Kit, OpenSpec, and BMAD-METHOD in Development Tools for spec-driven and multi-agent collaboration workflows.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contribute and maintain&lt;/strong&gt;: When discovering quality resources, submit PRs per the Contributing guide to keep the list updated.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Quick Usage
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Browse&lt;/strong&gt;: Open &lt;a href="https://github.com/chendongqi/awesome-ai-coding#readme" rel="noopener noreferrer"&gt;README&lt;/a&gt; or &lt;a href="https://github.com/chendongqi/awesome-ai-coding/blob/main/README_zh.md" rel="noopener noreferrer"&gt;README_zh.md&lt;/a&gt;, navigate to sections via the top table of contents.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Search&lt;/strong&gt;: Use Ctrl+F / Cmd+F on the page to search by keyword (e.g., "RAG", "MCP", "Claude", "Skill").&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reference Rules&lt;/strong&gt;: Clone or download the repo, then configure the corresponding &lt;code&gt;.md&lt;/code&gt; paths from &lt;code&gt;rules/&lt;/code&gt; to Claude Code or your Agent rules directory.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contribute&lt;/strong&gt;: Fork → new branch → add entry in the corresponding category (format: &lt;code&gt;- **[Name](link)** - Brief description&lt;/code&gt;) → submit PR.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Core Features
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Comprehensive topic coverage&lt;/strong&gt;: From editors to Rules, covers the complete AI coding toolchain and learning path.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Consistent structure&lt;/strong&gt;: Major category → subcategory → list items, each with "name + link + one-liner" — easy to scan.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bilingual&lt;/strong&gt;: Main README in English, README_zh in Chinese, accessible to teams and communities.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Includes ClaudeCode Rules&lt;/strong&gt;: Repo rules can be directly used for project standards and Agent behavior constraints.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open contribution&lt;/strong&gt;: Issues/PRs welcome, suitable for community co-maintenance and updates.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Awesome-style&lt;/strong&gt;: Follows &lt;a href="https://github.com/sindresorhus/awesome" rel="noopener noreferrer"&gt;awesome&lt;/a&gt; list conventions, easy to use alongside other Awesome lists.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Complementary to Other Resource Lists
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Dimension&lt;/th&gt;
&lt;th&gt;Awesome AI Coding&lt;/th&gt;
&lt;th&gt;Single-topic Awesome (e.g., awesome-claude-skills)&lt;/th&gt;
&lt;th&gt;Vendor documentation/navigator&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Coverage&lt;/td&gt;
&lt;td&gt;12 categories: editors, terminal, Agent, RAG, MCP, Skills, Rules, etc.&lt;/td&gt;
&lt;td&gt;Usually focused on Skills or one framework&lt;/td&gt;
&lt;td&gt;Primarily their own products&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Language&lt;/td&gt;
&lt;td&gt;Bilingual (Chinese + English)&lt;/td&gt;
&lt;td&gt;Project-dependent&lt;/td&gt;
&lt;td&gt;Vendor-dependent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rules &amp;amp; standards&lt;/td&gt;
&lt;td&gt;Includes &lt;code&gt;rules/&lt;/code&gt; directory, directly usable&lt;/td&gt;
&lt;td&gt;Few ready-made Rules collections&lt;/td&gt;
&lt;td&gt;Mostly product usage instructions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Positioning&lt;/td&gt;
&lt;td&gt;Navigation for the complete "AI coding" pipeline&lt;/td&gt;
&lt;td&gt;Deep focus on one sub-domain&lt;/td&gt;
&lt;td&gt;Product and ecosystem promotion&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Why it's worth bookmarking&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Single entry covering selection, learning, configuration, and standards — reduces repetitive searching.&lt;/li&gt;
&lt;li&gt;ClaudeCode Rules and Agent Skills categories are especially useful for developers using Claude Code / Cursor.&lt;/li&gt;
&lt;li&gt;Continuous updates and contribution mechanism keeps up with new tools and projects.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Detailed Project Analysis
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Document and Directory Structure
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;README.md&lt;/strong&gt;: English main document with complete table of contents and 12 major category content.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;README_zh.md&lt;/strong&gt;: Chinese version, same structure as English, for Chinese readers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;rules/&lt;/strong&gt;: Multiple Markdown rule files, organized by language (python, go, rust, nodejs, ios-swift, android-app, android-system), framework (react-frontend, vue-frontend, backend, docker), and practice (agents, coding-style, patterns, performance, security, testing, git-workflow, hooks) — can be directly loaded by Claude Code or similar Agents.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Content Organization Principles
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Categorized by use case&lt;/strong&gt;: Organized around "what you're doing" (writing code, building Agents, doing RAG, configuring MCP, finding Skills, configuring Rules) — not by company or tech stack name.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Minimal per entry&lt;/strong&gt;: Only name, link, and one-line description — no long text, easy to quickly scan.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Representative first&lt;/strong&gt;: Each category lists representative or highly-adopted projects, balancing official and community options.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Contribution and Maintenance
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Contribution workflow: Fork → feature branch → add entry per existing format in the appropriate category → submit PR.&lt;/li&gt;
&lt;li&gt;README note: Quality resources welcomed via Issue or PR; list will be continuously updated.&lt;/li&gt;
&lt;li&gt;Suitable for: Discovering uncatalogued quality projects, fixing links or descriptions, syncing Chinese README_zh updates.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Project Resources
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Official Resources
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;🌟 &lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/chendongqi/awesome-ai-coding" rel="noopener noreferrer"&gt;github.com/chendongqi/awesome-ai-coding&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📄 &lt;strong&gt;Chinese version&lt;/strong&gt;: &lt;a href="https://github.com/chendongqi/awesome-ai-coding/blob/main/README_zh.md" rel="noopener noreferrer"&gt;README_zh.md&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📁 &lt;strong&gt;ClaudeCode Rules&lt;/strong&gt;: Repo &lt;a href="https://github.com/chendongqi/awesome-ai-coding/tree/main/rules" rel="noopener noreferrer"&gt;rules/&lt;/a&gt; directory&lt;/li&gt;
&lt;li&gt;🤝 &lt;strong&gt;Contribute&lt;/strong&gt;: Via &lt;a href="https://github.com/chendongqi/awesome-ai-coding/issues" rel="noopener noreferrer"&gt;Issues&lt;/a&gt; and Pull Requests&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Who Should Use This
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AI coding beginners&lt;/strong&gt;: Need a topically categorized navigator to quickly understand the editor, framework, RAG, MCP, and Skills ecosystem.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Teams in the selection phase&lt;/strong&gt;: When comparing Agent frameworks, RAG, vector databases, MCP platforms, and spec-driven tools — use this list as a starting point.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Claude Code / Cursor users&lt;/strong&gt;: Find ready-made Agent Skills and Rules templates, configure project standards and security policies.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;List maintainers and contributors&lt;/strong&gt;: Want to participate in maintaining or expanding an Awesome list focused on "AI coding."&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Welcome to visit my &lt;a href="https://home.wonlab.top" rel="noopener noreferrer"&gt;personal homepage&lt;/a&gt; for more useful knowledge and interesting products&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>llm</category>
      <category>mcp</category>
    </item>
  </channel>
</rss>
