<?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: SandGrid</title>
    <description>The latest articles on DEV Community by SandGrid (@sandgrid).</description>
    <link>https://dev.to/sandgrid</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4000245%2F6df89ee7-839c-405c-9cc5-8a7066101513.jpg</url>
      <title>DEV Community: SandGrid</title>
      <link>https://dev.to/sandgrid</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sandgrid"/>
    <language>en</language>
    <item>
      <title>Flint: Turning Skills into Personal Assets</title>
      <dc:creator>SandGrid</dc:creator>
      <pubDate>Wed, 16 Sep 2026 01:17:52 +0000</pubDate>
      <link>https://dev.to/sandgrid/flint-turning-skills-into-personal-assets-330b</link>
      <guid>https://dev.to/sandgrid/flint-turning-skills-into-personal-assets-330b</guid>
      <description>&lt;p&gt;Lately, every time OpenAI ships a new model, a familiar argument makes the rounds: skills are useless, and more and more users are abandoning them.&lt;/p&gt;

&lt;p&gt;Is that true?&lt;/p&gt;

&lt;p&gt;Yes and no. To be fair, the logic has merit. As models get stronger, plenty of skills really have been abandoned — mainly the so-called "general-purpose" ones like Superpower. Those skills existed to patch over gaps in model capability, and they did help back when no model was aggressively optimized for coding. As the models themselves improved, these things were gradually absorbed into the models, and naturally stopped mattering.&lt;/p&gt;

&lt;p&gt;So are skills truly useless? Probably not. Below I'll argue what skills are still good for as models get smarter, and then introduce the subject of this post: Flint. I'll explain why I built it and what it does.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is a Skill
&lt;/h2&gt;

&lt;p&gt;AI has been booming lately. The tech seems to iterate round after round, but in essence it's just software engineering theory landing once again.&lt;/p&gt;

&lt;p&gt;The skill layer aims at reusability, and corresponds to the various toolkits in software development.&lt;/p&gt;

&lt;p&gt;The model, meanwhile, corresponds to the programming language layer.&lt;/p&gt;

&lt;p&gt;How reusable something is determines whether a feature belongs in the language layer or in a toolkit.&lt;/p&gt;

&lt;p&gt;An array or a map, for instance, should be built into the language rather than requiring a third-party package. Invoice-parsing logic, on the other hand, doesn't belong in the language layer.&lt;/p&gt;

&lt;p&gt;Mapping this onto where AI is today, a skill should occupy exactly this niche: something with some reusability, but not much — and something the AI doesn't have enough corpus to learn on its own.&lt;/p&gt;

&lt;p&gt;For example, how to use an in-house toolkit — especially an ancient, possibly obsolete tech stack that the model has no corpus for, whose knowledge lives only in developers' heads. That's a good candidate for a batch of skills frozen as team knowledge.&lt;/p&gt;

&lt;p&gt;Or a workflow you've crystallized yourself — I manage tasks in Notion and generate weekly reports from it, so I can wrap that into a skill for the AI.&lt;/p&gt;

&lt;p&gt;Another one: I wrapped a skill that drives my browser with real cookies, so I can use it on sites with aggressive anti-scraping. Wrapping this kind of skill is easy; downloading an equivalent from the internet is not. Some agents now wrap such capabilities themselves, but they never quite fit how you'd like.&lt;/p&gt;

&lt;p&gt;So as models improve, skills won't disappear — their useful range will just narrow to these middle-reusability tasks: too bothersome to not reuse, yet not universally reusable. Download someone else's skill and you'll find it doesn't quite work.&lt;/p&gt;

&lt;p&gt;This is exactly the motivation behind Flint: managing skills like personal assets.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Flint Is
&lt;/h2&gt;

&lt;p&gt;Flint is a local-first personal asset manager for AI skills. In one sentence: it gathers the skills scattered across your various agents and projects into one place — unified tagging, search and filtering, deduplication by name — and then deploys them on demand into each agent's and project's own skills directory. It's a local backend plus a web frontend, started by a single script; your skill repository is just an ordinary directory on disk, and each agent's skills directory is distributed from that single source via symlink or copy. From then on there is only one master copy of each skill, sitting on your own turf, deployed wherever it's needed.&lt;/p&gt;

&lt;p&gt;The UI has six modules, each with one job:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Library&lt;/strong&gt;: browse, search, and filter all your skills, preview the raw &lt;code&gt;SKILL.md&lt;/code&gt;, edit tags, trace each skill's origin; also where you register your own repositories and third-party read-only repositories, pull skills scattered across agents back into a repository, or bulk-import from any directory.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Agents&lt;/strong&gt;: one card per actual skills directory. Here you mark an agent active, attach presets, toggle skills one by one, and even choose symlink or copy per individual skill.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Presets&lt;/strong&gt;: a bundle of skills — explicit members plus skills matched by associated tags. A preset has no on/off switch; as soon as its members or tags change, it is instantly distributed to the active agents attached to it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Projects&lt;/strong&gt;: register project paths and tags, and matching skills automatically land in the project's &lt;code&gt;.agents/skills&lt;/code&gt; directory (which can be committed to git and is self-contained across machines); skills evolved inside a project can also be written back to the repository.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Diagnostics&lt;/strong&gt;: a six-dimension health check — sync, duplicates, broken symlinks, configuration, repositories, projects. All problems are listed in one place and fixed with one click after confirmation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Settings&lt;/strong&gt;: the default install method (symlink / copy), an incremental sync watcher for copy mode, custom agents, and log viewing.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The first four modules chain into the main path — "gather → organize → deploy" — while diagnostics and settings are the fallback: when something goes wrong, go to the diagnostics page to see where; the default deployment behavior is set in settings.&lt;/p&gt;

&lt;p&gt;The two screenshots below give a sense of it (both demo data). The library page: all skills in one place, descriptions and tags right on the cards, with the top bar filtering by source and tags:&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2okyn7y8rphesmbgdu0w.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2okyn7y8rphesmbgdu0w.jpg" alt=" " width="800" height="514"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The diagnostics page: six dimensions of health-check results on one screen. The two "duplicate skill" warnings in the screenshot are the same skill stored once in an own repository and once from a third-party source, waiting to be consolidated into one:&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsuydsp388oddf3337z8y.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsuydsp388oddf3337z8y.jpg" alt=" " width="800" height="514"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I Need It
&lt;/h2&gt;

&lt;p&gt;Beyond what I discussed above, there's a practical factor that makes fine-grained skill management even more necessary.&lt;/p&gt;

&lt;p&gt;I switch between agents constantly. There are a lot of "cyber bodhisattvas" these days — WorkBuddy hands out a free model today, TraeWork gives away a batch of free credits tomorrow, and Qwen, Xiaomi, and others don't want to be left behind either. Free tokens are there to be used. But when you switch agents often, skill management becomes a problem.&lt;/p&gt;

&lt;p&gt;Today I might build a daily-report skill in WorkBuddy; tomorrow I open TraeWork and find it unusable.&lt;/p&gt;

&lt;p&gt;There are tools like npx for managing skills, but I tried them and none felt right. Most skill-management tools on the market are built around sharing and distribution: the goal is a big, comprehensive skill repository that then gets installed into each of the user's agents.&lt;/p&gt;

&lt;p&gt;That leads to a few very significant problems.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The reusability problem I mentioned earlier. Someone else's skill usually doesn't run that well out of the box — I think most people have felt this to some degree. And conversely, to come back to the opening: if a skill really were highly reusable and worked out of the box, it would most likely be absorbed into the model itself, and there'd be no need for it to exist as a skill.&lt;/li&gt;
&lt;li&gt;The cost of switching agents. npx can install skills into all existing agents at once, but once you start using a new agent, the operation gets painful. Another big problem is that your own skills can't be brought under tools like npx, which puts a huge burden on switching agents.&lt;/li&gt;
&lt;li&gt;The cost of using skills. Take an in-house skill set with maybe one or two hundred skills spanning frontend, backend, design, and ops. You might only use a small fraction of them, but without fine-grained management, you end up installing all of them. Almost every mainstream agent then injects the name and description of each installed skill into the system prompt so the model can decide whether to call it. At an estimated 50–100 tokens per description, 200 skills means a fixed overhead of 10,000–20,000 tokens per conversation — multiplied by the dozens of round trips in a single task, the bill adds up fast. Cost aside, the bigger headache is retrieval efficiency: the longer the candidate list and the more irrelevant entries, the more likely the model picks the wrong skill or simply misses the right one — like hunting for your own wrench in a toolbox stuffed with other people's tools.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For these reasons I built Flint. The name comes from Obsidian.&lt;/p&gt;

&lt;p&gt;Obsidian sums up its philosophy on its website in three lines: &lt;strong&gt;Sharpen your thinking&lt;/strong&gt;, &lt;strong&gt;Your thoughts are yours&lt;/strong&gt; (notes live privately on your device, unreadable by others, not even by the company), and &lt;strong&gt;Your knowledge should last&lt;/strong&gt; (open file formats mean you're never locked in and keep ownership of your data long term).&lt;/p&gt;

&lt;p&gt;Flint follows the same "stone as tool" naming lineage: obsidian is naturally sharp volcanic glass that ancient humans knapped into blades; flint is the other "tool stone" standing alongside it, only with the object being sharpened changed from knowledge to skills. Flint's two traits map neatly onto the project's two actions — &lt;strong&gt;knapping&lt;/strong&gt;: gathering scattered skills, deduplicating, tagging, and striking them into precise, handy tools; and &lt;strong&gt;spark&lt;/strong&gt;: deploying and distributing skills into every agent and project directory so they actually catch fire and get to work.&lt;/p&gt;

&lt;p&gt;Every skill you collect is a piece of flint waiting to be struck into a spark.&lt;/p&gt;

&lt;h2&gt;
  
  
  Core Idea: Manage Skills the Way Obsidian Manages Knowledge
&lt;/h2&gt;

&lt;p&gt;Following that same lineage of thinking, Flint carries those three ideas over to skill management one by one:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Obsidian's idea&lt;/th&gt;
&lt;th&gt;Flint's counterpart&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Local is private&lt;/td&gt;
&lt;td&gt;Skills exist only as ordinary files on your local disk — no cloud, no account, no telemetry&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Open formats, never locked in&lt;/td&gt;
&lt;td&gt;A skill is just a &lt;code&gt;SKILL.md&lt;/code&gt; directory on disk, ready to open, edit, diff, and commit with git; change tools or ecosystems and this asset comes with you and keeps working, with no lock-in to Flint&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sharpen your thinking&lt;/td&gt;
&lt;td&gt;Gather, deduplicate, and tag, then deploy with one click to the agents and projects that need them, so your personal skill library gets handier the more it grows&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Two design choices are worth calling out. First, metadata stays as close as possible to open-source ecosystem consensus: tags are written preferentially into the top-level &lt;code&gt;tags&lt;/code&gt; field of each &lt;code&gt;SKILL.md&lt;/code&gt; frontmatter — a location that 40+ tools including Claude Code and agentskills.io read natively, and that gets versioned by git along with the skill directory, rather than being stashed in some private database. Second, minimize ecosystem fragmentation: skills with the same name from multiple sources are automatically deduplicated to a single copy, and duplicates, divergences, and broken references are all surfaced on the diagnostics page to be handled in place, so the same skill doesn't keep multiplying into copies across your environment.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Minimum Path: Four Steps to Get Running
&lt;/h2&gt;

&lt;p&gt;Flint is a small tool that runs locally (Node.js ≥ 20). The usage docs are fairly complete, so here I'll just run through the four necessary steps for first use:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Install&lt;/strong&gt;: run &lt;code&gt;./start.sh&lt;/code&gt; in the repository root. The script checks the Node version, dependencies, and port usage automatically, and runs &lt;code&gt;npm install&lt;/code&gt; on first launch; when it's done, just open a browser (frontend at &lt;code&gt;localhost:5173&lt;/code&gt;, backend API at &lt;code&gt;localhost:8787&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Register a repository&lt;/strong&gt;: a repository is a collection of skills and the source of truth, corresponding to a directory on disk. Your own repositories you maintain normally; third-party repositories are registered as read-only sources, and the skills inside can be "imported" into your own repository at any time.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Create a preset&lt;/strong&gt;: a preset is a bundle of skills — explicit members unioned with skills matched by associated tags.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Apply the preset to an agent&lt;/strong&gt;: on an agent's detail page, first mark it "active", then attach the preset you just created. From then on, whenever the preset's members or associated tags change, the active agents attached to it immediately receive the bundle.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;With that, the minimum path — "register a repository → configure a preset → deploy to agents" — is complete, and your skills can already work across agents. Everything beyond that — gathering, takeover, project-specific skills, and the six-dimension diagnostics — is icing on the cake.&lt;/p&gt;

&lt;p&gt;The preset detail page looks like this (demo data): the top half is the current state — which skills the preset ends up enabling and which agents it has been applied to; the bottom half holds two ways to adjust — "include by tag" and "include by skill" take the union, and changes take effect immediately:&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fy6kgxeysmkxl7dn9k4ce.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fy6kgxeysmkxl7dn9k4ce.jpg" alt=" " width="800" height="514"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;That's my take on where skills are heading and why I built Flint. If you find the approach sound, you're welcome to try it and share feedback.&lt;/p&gt;

&lt;p&gt;The project is open source, with the repository at &lt;a href="https://github.com/lcy362/flint" rel="noopener noreferrer"&gt;GitHub: lcy362/flint&lt;/a&gt;. Clone it and run &lt;code&gt;./start.sh&lt;/code&gt; to try it out; &lt;code&gt;README.md&lt;/code&gt; has the full guide. Issues and feedback are welcome. &lt;/p&gt;

&lt;p&gt;And the official website is &lt;a href="https://flint.lichuanyang.top/" rel="noopener noreferrer"&gt;https://flint.lichuanyang.top/&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;If it helps you, a star would be appreciated.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>chatgpt</category>
    </item>
    <item>
      <title>Bringing Notes, WeChat Reading, and Zhihu into Obsidian: My LLM-Wiki Knowledge Hub</title>
      <dc:creator>SandGrid</dc:creator>
      <pubDate>Sat, 27 Jun 2026 03:39:10 +0000</pubDate>
      <link>https://dev.to/sandgrid/bringing-notes-wechat-reading-and-zhihu-into-obsidian-my-llm-wiki-knowledge-hub-33lh</link>
      <guid>https://dev.to/sandgrid/bringing-notes-wechat-reading-and-zhihu-into-obsidian-my-llm-wiki-knowledge-hub-33lh</guid>
      <description>&lt;p&gt;A while back, I came across Andrej Karpathy's llm-wiki concept and felt an instant sense of resonance. I've always enjoyed writing things down, but the problem was that everything ended up scattered across different places, and I never had the energy to manage it properly. When I discovered llm-wiki, I realized — all that stuff I'd been writing over the years was finally going to pay off.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why a Knowledge Hub
&lt;/h2&gt;

&lt;p&gt;First, what is llm-wiki?&lt;/p&gt;

&lt;p&gt;llm-wiki is a concept recently proposed by Andrej Karpathy: take all the written material you've accumulated over the years — notes, blog posts, reading highlights, work logs — treat it as a "corpus," and let an LLM automatically extract concepts, create pages, and weave cross-references into a structured, continuously evolving personal wiki.&lt;/p&gt;

&lt;p&gt;The core premise is simple: everyone produces a substantial amount of structured, insightful writing in their daily work and learning — it's just scattered everywhere with no connections. llm-wiki uses an LLM-driven process to string these scattered pearls together. You keep producing and collecting content; the LLM handles the organization and management.&lt;/p&gt;

&lt;p&gt;Unlike traditional manual wiki maintenance — creating pages, writing summaries, adding links, tedious and hard to sustain — llm-wiki brings the organizational cost down to nearly zero. You just tell the LLM the structure and rules of your knowledge base (an AGENTS.md file), and it can repeatedly execute ingestion, updating, and auditing operations. My personal experience: watching an AI turn scattered notes into a structured network of cross-references feels like clearing out a long-overdue debt.&lt;/p&gt;

&lt;h2&gt;
  
  
  Data Ingestion
&lt;/h2&gt;

&lt;p&gt;The first thing I did was export all my Notion notes — development knowledge, investing insights, and countless miscellaneous records — and move them into Obsidian.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How to Import Notion Content into Obsidian&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The process is straightforward:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Export your Notion data&lt;/strong&gt;: Go to "Settings &amp;amp; members → Settings" in Notion, select "Export all workspace content," and choose &lt;strong&gt;Markdown &amp;amp; CSV&lt;/strong&gt; as the format. You'll get a ZIP file; after unzipping, each Notion page becomes a &lt;code&gt;.md&lt;/code&gt; file, and databases come with additional CSV files. Note: Notion's free plan exports one workspace at a time — if you have multiple workspaces, export them separately.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Install the Obsidian Importer plugin&lt;/strong&gt;: Search for "Importer" in the Obsidian community plugin marketplace. It supports one-click import from Notion, Bear, Evernote, OneNote, and more, handling image attachments and internal links automatically. After enabling the plugin, press &lt;code&gt;Cmd+P&lt;/code&gt;, search for "Importer: Open Importer," select the Notion format, and point it to the unzipped folder.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Manual import (fallback)&lt;/strong&gt;: If you prefer not to use the Importer plugin, just drop the unzipped folder directly into your Obsidian vault. Obsidian natively supports &lt;code&gt;[[wiki-link]]&lt;/code&gt; internal links, and Notion's exported Markdown typically already converts links to this format.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Post-import handling&lt;/strong&gt;: I recommend placing the original files in a dedicated subdirectory (e.g., &lt;code&gt;raw/notion-export/&lt;/code&gt;) and marking them as "read-only." This preserves the integrity of the original data — a key tenet of the llm-wiki methodology: raw materials are never modified; the LLM builds structured knowledge on top of them. If your Notion had databases, keep the CSV files for reference; embedded Notion-specific blocks (calendars, kanban boards) will lose interactivity after export, but the text content remains.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;After the whole process, thousands of scattered notes were consolidated into Obsidian, becoming the first batch of "raw materials" for my knowledge hub.&lt;/p&gt;

&lt;p&gt;Next, I fed Karpathy's gist to an AI and had it generate the project's AGENTS.md document. The AI naturally figured out the ingestion and auditing operations required for llm-wiki.&lt;/p&gt;

&lt;p&gt;Then it was time to execute. Watching the AI continuously generate wiki content, categorizing years of accumulated material — it was genuinely satisfying.&lt;/p&gt;

&lt;p&gt;After that, I did a few more things: bringing in my Zhihu writings and WeChat Reading notes. I've written over a thousand answers on Zhihu, and over the years I've read more than a hundred books on WeChat Reading. Beyond just highlights, these are significant components of my knowledge system. Coincidentally, around that time, WeChat Reading released their official skill, so I put it to use.&lt;/p&gt;

&lt;h2&gt;
  
  
  Importing Zhihu Content
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;How to Sync Zhihu Writings to Obsidian&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Zhihu doesn't provide an official data export API, so I used Playwright for browser automation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Steps&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Install Playwright: &lt;code&gt;pip install playwright &amp;amp;&amp;amp; playwright install chromium&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Run the script for the first time, log in by scanning a QR code or entering your password in the opened Chromium browser&lt;/li&gt;
&lt;li&gt;Once logged in, the script automatically crawls your profile to capture all answers, articles, and status updates&lt;/li&gt;
&lt;li&gt;Login state is persisted locally; subsequent runs use &lt;code&gt;--reuse&lt;/code&gt; for silent execution without re-login&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Features&lt;/strong&gt;: Incremental sync — only fetches new content, existing files are never reprocessed. Files are organized by content type (answers/articles/pins).&lt;/p&gt;

&lt;h2&gt;
  
  
  Syncing WeChat Reading Notes
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;How to Sync WeChat Reading Notes to Obsidian&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;WeChat Reading provides an Agent API Gateway — apply for an API key and you're good to go.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Steps&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Call the &lt;code&gt;/user/notebooks&lt;/code&gt; endpoint to get the list of books with notes&lt;/li&gt;
&lt;li&gt;For each new book, fetch highlights and annotations separately&lt;/li&gt;
&lt;li&gt;Group content by chapter and output as well-formatted Markdown files&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Output format&lt;/strong&gt;: Book title and author as the heading, each chapter's highlights in blockquote format (with dates), personal annotations placed below the corresponding highlights.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Features&lt;/strong&gt;: Fully incremental — the script maintains a state file of synced book IDs, only processing new additions on each run. Over 150 books' worth of notes silently flowed into Obsidian, becoming one of the richest sources of raw material for my knowledge hub.&lt;/p&gt;

&lt;h2&gt;
  
  
  Intelligent Retrieval with LLM Wiki
&lt;/h2&gt;

&lt;p&gt;At this point, the content layer was essentially ready. Then I started thinking: since most of my knowledge and creative output is here, could I start distilling... myself?&lt;/p&gt;

&lt;p&gt;I built a simple first version: a "personal" pipeline parallel to the wiki pipeline, with similar ingestion and linting operations. The key difference: wiki focuses on knowledge, while personal focuses on who I am as an individual.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Knowledge Base vs. Personality Distillation: Two Different AI Processing Approaches&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Here it's worth explaining the difference — they share the same set of raw materials but have entirely different goals and outputs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Knowledge Base (Wiki): Answers "What Do I Know?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Extracts objective knowledge from notes, blogs, and reading highlights, generating concept pages (e.g., "distributed consensus"), entity pages (e.g., "Raft algorithm"), and source summary pages (e.g., "Designing Data-Intensive Applications — reading notes"), with dense cross-references between them. The goal: make knowledge queryable and reusable — an externalized second brain.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Personality Distillation (Personal Model): Answers "Who Am I?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Reverse-engineers cognitive patterns, expressive styles, and value orientations from your writing and reading. For example, analyzing technical blog posts might reveal a "thesis-first, case-driven" style; analyzing Zhihu answers might uncover recurring traits like "first-principles reduction" and "quantitative thinking." The output isn't knowledge entries — it's a cognitive map of a person: what you're good at, how you approach problems, what you value.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Comparison&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;Knowledge Base&lt;/th&gt;
&lt;th&gt;Personality Distillation&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Core question&lt;/td&gt;
&lt;td&gt;What do I know?&lt;/td&gt;
&lt;td&gt;Who am I?&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Input&lt;/td&gt;
&lt;td&gt;Notes, blogs, reading highlights&lt;/td&gt;
&lt;td&gt;All personal writing and reading records&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Output&lt;/td&gt;
&lt;td&gt;Concept/entity/source pages + cross-references&lt;/td&gt;
&lt;td&gt;Domain depth, cognitive traits, expressive style, values&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Direction&lt;/td&gt;
&lt;td&gt;Outward: structuring external knowledge&lt;/td&gt;
&lt;td&gt;Inward: modeling personal cognition&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Workflow&lt;/td&gt;
&lt;td&gt;Ingest → Query → Lint → Audit&lt;/td&gt;
&lt;td&gt;Ingest → Query → Lint → Audit (isomorphic)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Both processes are structurally similar, but one looks outward, structuring and organizing the knowledge you possess; the other looks inward, distilling and modeling your cognitive traits as an individual. This "two sides of the same coin" design is, I think, the most fascinating part of the entire system.&lt;/p&gt;

&lt;p&gt;Lately I've been looking at projects like Nüwa online to see if there are better approaches to personality distillation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Results and Reflections
&lt;/h2&gt;

&lt;p&gt;That's the recent story of my knowledge hub. If you have thoughts or ideas, I'd love to hear them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frequently Asked Questions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Q: Is Obsidian suitable for programmers doing knowledge management?
&lt;/h3&gt;

&lt;p&gt;Absolutely. Obsidian's core philosophy — local Markdown files, bidirectional links, graph visualization — naturally aligns with how programmers work. You already know Markdown syntax. Local file storage means full data control and Git versioning. Bidirectional links let you manage knowledge references just like code dependencies. Layer on the llm-wiki approach, and AI can automatically extract concepts from scattered notes, create pages with cross-references, transforming loose documents into a structured knowledge network.&lt;/p&gt;

&lt;h3&gt;
  
  
  Q: Does LLM Wiki require a GPU?
&lt;/h3&gt;

&lt;p&gt;No local GPU deployment is needed. The core idea of LLM Wiki is &lt;strong&gt;letting an LLM process your text&lt;/strong&gt;, not running a model yourself. You simply call a cloud LLM API, feed it your Markdown files, and let it extract concepts, generate pages, and build cross-references. The entire "hardware" requirement is just Obsidian plus any tool that can call an LLM API (like WorkBuddy or another Agent).&lt;/p&gt;

&lt;h3&gt;
  
  
  Q: What's the difference between llm-wiki and a traditional wiki?
&lt;/h3&gt;

&lt;p&gt;A traditional wiki requires you to manually create pages, write summaries, and add internal links — high maintenance cost that's hard to sustain. llm-wiki reduces the organizational cost to nearly zero — you just keep producing and collecting written content, and the LLM reads your AGENTS.md rules, repeatedly running ingestion, updating, and auditing operations to generate a structured cross-reference network. In short: a traditional wiki means "you organize knowledge"; llm-wiki means "AI organizes knowledge for you."&lt;/p&gt;

&lt;h3&gt;
  
  
  Q: What's the difference between knowledge distillation and personality distillation?
&lt;/h3&gt;

&lt;p&gt;Both share the same set of raw materials, but their goals and outputs are entirely different. &lt;strong&gt;Knowledge Base (Wiki)&lt;/strong&gt; answers "What do I know?" — extracting objective knowledge from notes and reading highlights, generating concept pages and cross-references. &lt;strong&gt;Personality Distillation (Personal Model)&lt;/strong&gt; answers "Who am I?" — reverse-engineering your cognitive patterns, expressive style, and value orientations from your writing and reading records. One looks outward (structuring knowledge), the other looks inward (modeling personal cognition). The workflows are similar, but the direction is opposite.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick Start Guide
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Install Obsidian&lt;/strong&gt;: Download the client from &lt;a href="https://obsidian.md" rel="noopener noreferrer"&gt;obsidian.md&lt;/a&gt; and create a local Vault — just a local folder.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Configure LLM Wiki&lt;/strong&gt;: Create &lt;code&gt;AGENTS.md&lt;/code&gt; in the Vault root, following Karpathy's llm-wiki approach to define maintenance rules, including ingestion, updating, and auditing workflows. Let AI tools read this file to automatically extract concepts and build cross-references from raw notes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Import Notion notes&lt;/strong&gt;: Export from Notion settings as Markdown + CSV, use the Obsidian Importer plugin for one-click import, or drop the extracted Markdown folder directly into the Vault.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Connect WeChat Reading&lt;/strong&gt;: Apply for a WeChat Reading API key, call the &lt;code&gt;/user/notebooks&lt;/code&gt; endpoint to fetch books, pull highlights and notes, group by chapter, and output as Markdown files into the Vault.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Import Zhihu and blog&lt;/strong&gt;: Use a Playwright script to auto-scrape Zhihu answers and articles; copy blog Markdown source files into the Vault. Once done, run a full wiki ingestion via AI to generate the complete cross-reference network.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Source: &lt;a href="https://lichuanyang.top/en/posts/18804/" rel="noopener noreferrer"&gt;https://lichuanyang.top/en/posts/18804/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>productivity</category>
      <category>sideprojects</category>
    </item>
    <item>
      <title>Free AI Video Generator: How I Built a Zero-Cost Tool for Narrated Multi-Scene Videos</title>
      <dc:creator>SandGrid</dc:creator>
      <pubDate>Sat, 27 Jun 2026 03:37:26 +0000</pubDate>
      <link>https://dev.to/sandgrid/free-ai-video-generator-how-i-built-a-zero-cost-tool-for-narrated-multi-scene-videos-1kmf</link>
      <guid>https://dev.to/sandgrid/free-ai-video-generator-how-i-built-a-zero-cost-tool-for-narrated-multi-scene-videos-1kmf</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;"The solution is not to suppress AI, but to make it a more equitable capability, so that everyone knows how to create more with AI. This is a very important vision for our company — to make world-class AI belong to everyone."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is something Bruce Yang, the founder of Agnes AI, said in an interview.&lt;/p&gt;

&lt;p&gt;Many Chinese AI companies today — DeepSeek, Zhipu, and others — are driving down the price of AI. To be fair, the cost of text and code processing has already been pushed remarkably low. But video is different. Making AI videos today has an absurdly high barrier — overseas services like Runway and Pika charge tens of dollars monthly, domestic platforms like Jimeng and Keling charge by the second once free quotas run out, and running open-source models locally requires a GPU costing over ten thousand RMB.&lt;/p&gt;

&lt;p&gt;Objectively speaking, video generation is genuinely expensive right now. Making industrial-grade video generation available to everyone isn't realistic. But ordinary people should still have ways to experiment and create. Thanks to Agnes for opening up their video model and giving us this opportunity. This project is just a small contribution toward that goal. &lt;a href="https://github.com/lcy362/agnes-video-generator" rel="noopener noreferrer"&gt;Agnes Video Generator&lt;/a&gt; (&lt;a href="https://video.lichuanyang.top/" rel="noopener noreferrer"&gt;official website&lt;/a&gt;) — it's a free AI video generator. Not "free trial" or "free for 3 generations," but the whole thing: script writing, image synthesis, video rendering, voiceover, subtitles, all at zero cost. You just need a free API key from &lt;a href="https://platform.agnes-ai.com" rel="noopener noreferrer"&gt;Agnes AI&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Agnes's video model isn't perfect yet, to be honest. But I want to use this project to grow alongside Agnes, and contribute in my own small way toward AI equity.&lt;/p&gt;

&lt;h2&gt;
  
  
  Multiple Ways to Use It
&lt;/h2&gt;

&lt;p&gt;Give it a text prompt, get a video back. A few different modes:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Simple Video.&lt;/strong&gt; A straightforward API wrapper — good for testing. Most API parameters are exposed as config options.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Creative Video.&lt;/strong&gt; You write a story idea, like "dark version of The Frog Prince," and the AI handles everything: expand story → generate character references → split into scenes → write shot prompts → generate per-scene video → narration → subtitles → final output. Ten steps, all automatic. By pre-generating end frames, it ensures the best possible visual continuity between scenes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Manuscript Video &amp;amp; Digital Anchor.&lt;/strong&gt; Paste a long article or script — it auto-splits by speech duration and generates video per segment, or puts a digital anchor there to read it. Everything stitched with a unified TTS narration + subtitle track. Great for explainers and course content.&lt;/p&gt;

&lt;p&gt;For detailed parameters and usage guides for each mode, check the &lt;a href="https://video.lichuanyang.top/" rel="noopener noreferrer"&gt;official website&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting It Running
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/lcy362/agnes-video-generator.git
&lt;span class="nb"&gt;cd &lt;/span&gt;agnes-video-generator
./start.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it. &lt;code&gt;start.sh&lt;/code&gt; creates a virtual environment, installs dependencies, and starts the server.&lt;/p&gt;

&lt;p&gt;Once it's running, open &lt;code&gt;http://localhost:8765&lt;/code&gt;, paste in your Agnes AI API key at the top, pick a mode, write your idea, and wait patiently for the results.&lt;/p&gt;

&lt;p&gt;If you're using an AI coding assistant like Cursor or Claude, I've included a dedicated guide for AI Agents. Just tell your agent to read the &lt;code&gt;Agents.md&lt;/code&gt; file in the project — it'll handle the whole setup on its own.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demos
&lt;/h2&gt;

&lt;p&gt;I made a few demos — check them out:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://v.douyin.com/L4F6KdGnD6U/" rel="noopener noreferrer"&gt;The Frog Prince — no narration&lt;/a&gt; — 5 scenes, keyframes chaining, fully auto-generated&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://v.douyin.com/l2FlbF1Jdz0/" rel="noopener noreferrer"&gt;Same story, with voiceover and subtitles&lt;/a&gt; — AI narration + auto subtitles, see the subtitle effect&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://v.douyin.com/eSGE9KENWVU/" rel="noopener noreferrer"&gt;Manuscript video&lt;/a&gt; — pasted a long article, auto-split with different visuals per segment&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  That's About It
&lt;/h2&gt;

&lt;p&gt;Going back to Bruce Yang's words — "making world-class AI belong to everyone."&lt;/p&gt;

&lt;p&gt;This project isn't some grand mission. It's just about keeping the door to AI video creation open. No subscription, no fancy GPU, no cost at all — just a free API key and a machine that can run Python.&lt;/p&gt;

&lt;p&gt;Code on &lt;a href="https://github.com/lcy362/agnes-video-generator" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;, official website at &lt;a href="https://video.lichuanyang.top/" rel="noopener noreferrer"&gt;video.lichuanyang.top&lt;/a&gt;. Bug reports welcome.&lt;/p&gt;

&lt;p&gt;Source: &lt;a href="https://lichuanyang.top/en/posts/22470/" rel="noopener noreferrer"&gt;https://lichuanyang.top/en/posts/22470/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>showdev</category>
      <category>sideprojects</category>
      <category>tooling</category>
    </item>
    <item>
      <title>I build an open-source ,completely free AI video generator</title>
      <dc:creator>SandGrid</dc:creator>
      <pubDate>Wed, 24 Jun 2026 09:47:11 +0000</pubDate>
      <link>https://dev.to/sandgrid/i-2oci</link>
      <guid>https://dev.to/sandgrid/i-2oci</guid>
      <description>&lt;p&gt;Thanks to Agnes AI, for that they made all their models free. And I build a pipeline to make their video model easy to use.&lt;/p&gt;

&lt;p&gt;So everybody can generate AI video with this, no need to pay for anything, no tokens or GPU.&lt;/p&gt;

&lt;p&gt;Agnes’s video model isn’t perfect yet, to be honest. But I want to use this project to grow alongside Agnes, and contribute in my own small way toward AI equity.&lt;/p&gt;

&lt;p&gt;It's easy to use. For example, the Creative Video mode, You write a story idea and the AI takes over: expand story → generate character references → split into scenes → write shot prompts → generate per-scene video → narration → subtitles → final output. Ten steps, all automatic.  &lt;/p&gt;

&lt;p&gt;clone it and try from github &lt;/p&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/lcy362" rel="noopener noreferrer"&gt;
        lcy362
      &lt;/a&gt; / &lt;a href="https://github.com/lcy362/agnes-video-generator" rel="noopener noreferrer"&gt;
        agnes-video-generator
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Open-source, self-hosted AI video generator — completely free. Text to multi-scene video with narration, subtitles, and digital anchor via Web UI, powered by Agnes AI.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;🎬 Agnes Video Generator — Completely Free AI Video Generator&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href="https://github.com/README_ZH.md" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/81a2eb36bc19cd5698ebbd1c42a5e908c3f92266d91e4c0f6a12cf477cc345a1/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f434e2d2545342542382541442545362539362538372d726564" alt="中文"&gt;&lt;/a&gt;
&lt;a href="https://github.com/lcy362/agnes-video-generator" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/0470948273b3b0fa8ac99a84cf98c1460e5d7ca9473937069d2a856dbd98965c/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f6c63793336322f61676e65732d766964656f2d67656e657261746f723f7374796c653d736f6369616c" alt="GitHub Stars"&gt;&lt;/a&gt;
&lt;a href="https://github.com/lcy362/agnes-video-generator/blob/main/LICENSE" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/11327e6a9b9c68f421f56e3f371a73e4ba5ac9f256d79a1966ac9fab15e4739a/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f6c63793336322f61676e65732d766964656f2d67656e657261746f72" alt="License"&gt;&lt;/a&gt;
&lt;a href="https://www.python.org/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/5f669e7a7b02911ee9e7fd8efe1a7ac12baed13224cca185ebb548497f5fc0be/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f707974686f6e2d332e31302b2d626c7565" alt="Python"&gt;&lt;/a&gt;
&lt;a href="https://video.lichuanyang.top" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/8e5e8d613e14e53e44d0bbc3a683c5a823bdea1cfac93c60322c90fe00ce3aa8/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f776562736974652d766964656f2e6c69636875616e79616e672e746f702d384132424532" alt="Website"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Completely free AI video generator&lt;/strong&gt; — Built on Agnes AI's free models, no subscription, no high-end GPU, no usage limits. Type in a text idea and automatically generate multi-scene AI videos with narration and subtitles. Supports text-to-video, image-to-video, keyframes animation, digital anchor, and more. All AI compute runs in the cloud — a regular laptop is all you need.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
&lt;p&gt;"The solution is not to suppress AI, but to make it a more equitable capability, so that everyone knows how to create more with AI. This is a very important vision for our company — to make world-class AI belong to everyone. What we can do may be insignificant, but this vision is very long-term and enduring."&lt;/p&gt;
&lt;p&gt;— Bruce Yang, Founder of Agnes AI&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://video.lichuanyang.top" rel="nofollow noopener noreferrer"&gt;🌐 Official Website&lt;/a&gt;&lt;/strong&gt; | &lt;strong&gt;&lt;a href="https://lichuanyang.top/posts/22470/" rel="nofollow noopener noreferrer"&gt;📝 Blog (中文)&lt;/a&gt;&lt;/strong&gt; | &lt;strong&gt;&lt;a href="https://lichuanyang.top/en/posts/22470/" rel="nofollow noopener noreferrer"&gt;📝 Blog (English)&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🎥 Demo&lt;/h2&gt;
&lt;/div&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;1. Creative Video —&lt;/h3&gt;…&lt;/div&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/lcy362/agnes-video-generator" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;or the website: &lt;a href="https://video.lichuanyang.top" rel="noopener noreferrer"&gt;&lt;/a&gt;&lt;a href="https://video.lichuanyang.top" rel="noopener noreferrer"&gt;https://video.lichuanyang.top&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
