<?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: Ajmal Razaq Bhatti</title>
    <description>The latest articles on DEV Community by Ajmal Razaq Bhatti (@theajmalrazaq).</description>
    <link>https://dev.to/theajmalrazaq</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%2F4151767%2F979c322f-63d8-4161-bc42-0299ca4c8dd0.png</url>
      <title>DEV Community: Ajmal Razaq Bhatti</title>
      <link>https://dev.to/theajmalrazaq</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/theajmalrazaq"/>
    <language>en</language>
    <item>
      <title>I Built AgentComposerUI: UI Components for AI Agents That Actually Need Human Approval</title>
      <dc:creator>Ajmal Razaq Bhatti</dc:creator>
      <pubDate>Thu, 01 Oct 2026 14:14:53 +0000</pubDate>
      <link>https://dev.to/theajmalrazaq/i-built-agentcomposerui-ui-components-for-ai-agents-that-actually-need-human-approval-4g7a</link>
      <guid>https://dev.to/theajmalrazaq/i-built-agentcomposerui-ui-components-for-ai-agents-that-actually-need-human-approval-4g7a</guid>
      <description>&lt;p&gt;AI agents can generate social media posts, write emails, create GitHub pull requests and automate plenty of other tasks. But there's one part of the workflow that often gets overlooked: &lt;strong&gt;how do humans review and approve what an agent creates?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Most applications end up building these interfaces from scratch. You need editors, previews, validation, approval buttons, rejection flows and a way to send feedback back to the agent.&lt;/p&gt;

&lt;p&gt;I wanted to make that easier, so I built &lt;strong&gt;&lt;a href="https://github.com/theajmalrazaq/agentcomposerui" rel="noopener noreferrer"&gt;AgentComposerUI&lt;/a&gt;&lt;/strong&gt;, an open-source React component library for building human-in-the-loop (HITL) interfaces for AI agents.&lt;/p&gt;

&lt;p&gt;Instead of providing just another text editor, it provides dedicated composers for different kinds of agent-generated content.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is AgentComposerUI?
&lt;/h2&gt;

&lt;p&gt;AgentComposerUI is a collection of React and Tailwind CSS components designed to sit between an AI agent and the person reviewing its output.&lt;/p&gt;

&lt;p&gt;Currently, it includes four dedicated composers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;LinkedIn Composer:&lt;/strong&gt; Create, edit and preview LinkedIn posts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Twitter/X Thread Composer:&lt;/strong&gt; Work with multi-post threads, character limits and thread previews.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Email Composer:&lt;/strong&gt; Review outreach emails and newsletters, including subject lines and email content.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub PR Composer:&lt;/strong&gt; Review AI-generated pull request descriptions, metadata and checklists.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each composer has its own interface and content model, rather than forcing every use case into the same generic editor.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I built it
&lt;/h2&gt;

&lt;p&gt;Imagine building an AI marketing assistant. Your agent can generate a LinkedIn post, a Twitter thread and an outreach email.&lt;/p&gt;

&lt;p&gt;The model can return structured JSON, but you still need to turn that JSON into a usable interface.&lt;/p&gt;

&lt;p&gt;You might need to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Display the generated content in an editable form.&lt;/li&gt;
&lt;li&gt;Show a realistic preview of how it will appear.&lt;/li&gt;
&lt;li&gt;Validate content against platform-specific constraints.&lt;/li&gt;
&lt;li&gt;Allow users to approve or reject drafts.&lt;/li&gt;
&lt;li&gt;Send feedback to the agent when revisions are needed.&lt;/li&gt;
&lt;li&gt;Keep the UI synchronized while the agent is generating content.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now imagine doing all of that for several different content types.&lt;/p&gt;

&lt;p&gt;That's the problem AgentComposerUI is intended to address. It provides reusable, platform-specific interfaces and the state management needed for human review.&lt;/p&gt;

&lt;h2&gt;
  
  
  Four composers, four different use cases
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. LinkedIn Composer
&lt;/h3&gt;

&lt;p&gt;The LinkedIn Composer is designed for AI-generated LinkedIn posts.&lt;/p&gt;

&lt;p&gt;It includes an editor, author information, hashtag controls, a media dropzone, character counting and a LinkedIn-style preview.&lt;/p&gt;

&lt;p&gt;The preview supports desktop and mobile layouts, including simulated feed truncation and the familiar "see more" behavior.&lt;/p&gt;

&lt;p&gt;You can use the ready-made component or build your own layout using its compound components.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;LinkedInComposer&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="s2"&gt;agentcomposerui&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;LinkedInComposer&lt;/span&gt;
  &lt;span class="na"&gt;data&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;post&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
  &lt;span class="na"&gt;status&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"reviewing"&lt;/span&gt;
  &lt;span class="na"&gt;onChange&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;setPost&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
  &lt;span class="na"&gt;onApprove&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;handleApprove&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
  &lt;span class="na"&gt;onReject&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;handleReject&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is useful for social media agents that generate posts but should leave the final editing and publishing decision to a human.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Twitter/X Thread Composer
&lt;/h3&gt;

&lt;p&gt;A single text box isn't sufficient when an agent generates an entire thread.&lt;/p&gt;

&lt;p&gt;The Twitter/X Thread Composer is designed around multi-post content, with thread editing, character counting and a visual thread preview.&lt;/p&gt;

&lt;p&gt;It also includes a countdown ring, author information and approval and rejection controls.&lt;/p&gt;

&lt;p&gt;The composer can be integrated into an agent workflow where the model generates a thread, a human edits individual posts and the final thread is approved.&lt;/p&gt;

&lt;p&gt;This is particularly useful for social media automation tools that need to handle threads rather than individual posts.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Email Outreach and Newsletter Composer
&lt;/h3&gt;

&lt;p&gt;Email is another common use case for AI agents, particularly for outreach, marketing and customer communication.&lt;/p&gt;

&lt;p&gt;The Email Composer provides an interface for reviewing generated emails, with an editor and an email-style preview.&lt;/p&gt;

&lt;p&gt;It also includes dedicated subject analysis and a token bar, alongside the usual approval and rejection actions.&lt;/p&gt;

&lt;p&gt;That makes it possible to build an email review workflow in which an agent drafts an email, a user edits it and the agent can receive feedback for another revision.&lt;/p&gt;

&lt;p&gt;It's intended for applications such as AI outreach assistants, newsletter generators and email automation tools.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. GitHub Pull Request Composer
&lt;/h3&gt;

&lt;p&gt;AI coding agents can generate code, but their work often needs a human-readable pull request description and a review process.&lt;/p&gt;

&lt;p&gt;The GitHub PR Composer provides an interface for reviewing generated PR content, with a dedicated editor, preview, metadata sidebar and checklist.&lt;/p&gt;

&lt;p&gt;It also supports approval and rejection actions, making it possible to build a review step into an AI-assisted development workflow.&lt;/p&gt;

&lt;p&gt;For example, an agent could generate a pull request description and checklist after completing a coding task. A developer could then review and modify the content before approving it.&lt;/p&gt;

&lt;p&gt;The component is focused on the PR composition and review interface, not on replacing GitHub's underlying pull request functionality.&lt;/p&gt;

&lt;h2&gt;
  
  
  Human-in-the-loop workflows are built in
&lt;/h2&gt;

&lt;p&gt;One of the central ideas behind AgentComposerUI is that generating content and approving content are two different responsibilities.&lt;/p&gt;

&lt;p&gt;The library supports a state machine with the following states:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;idle&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;streaming&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;reviewing&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;approved&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;rejected&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A typical workflow looks like this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;An agent starts generating content.&lt;/li&gt;
&lt;li&gt;The UI displays the draft as it becomes available.&lt;/li&gt;
&lt;li&gt;The user reviews and edits the draft.&lt;/li&gt;
&lt;li&gt;The user approves it or requests changes.&lt;/li&gt;
&lt;li&gt;If changes are requested, feedback can be sent back to the agent.&lt;/li&gt;
&lt;li&gt;The updated draft can be reviewed again.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The library also provides &lt;code&gt;useComposerState&lt;/code&gt; for managing composer state outside the individual components.&lt;/p&gt;

&lt;p&gt;This lets developers connect the UI to their own agent orchestration and backend logic without having to implement the entire review state machine themselves.&lt;/p&gt;

&lt;h2&gt;
  
  
  Built for flexibility, not just drop-in usage
&lt;/h2&gt;

&lt;p&gt;Every composer has a ready-to-use component, but you aren't restricted to its default layout.&lt;/p&gt;

&lt;p&gt;The compound component API lets you arrange individual parts of the interface yourself.&lt;/p&gt;

&lt;p&gt;For example, the LinkedIn Composer exposes components such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Root&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Header&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Author&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;StageIndicator&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Editor&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;HashtagBar&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;MediaDropzone&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Preview&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Actions&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CharacterCount&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ApproveButton&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;RejectButton&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is useful when you want the built-in functionality but need a different layout to match your application.&lt;/p&gt;

&lt;p&gt;The library also exposes composer-specific hooks and contexts for more customized integrations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Connecting composers to LLMs
&lt;/h2&gt;

&lt;p&gt;A UI library is only one part of an AI workflow. The agent still needs a way to generate structured content.&lt;/p&gt;

&lt;p&gt;AgentComposerUI provides schemas that can be used with common LLM tool-calling approaches, including the Vercel AI SDK, OpenAI function calling and Anthropic tool definitions.&lt;/p&gt;

&lt;p&gt;For example, with the Vercel AI SDK:&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="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;tool&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="s2"&gt;ai&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&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;linkedInPostSchema&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="kd"&gt;type&lt;/span&gt; &lt;span class="nx"&gt;LinkedInPostData&lt;/span&gt;&lt;span class="p"&gt;,&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="s2"&gt;agentcomposerui/schemas&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;linkedInTool&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;tool&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Draft a LinkedIn post&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;parameters&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;linkedInPostSchema&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;execute&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="k"&gt;async &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="na"&gt;postData&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;LinkedInPostData&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="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;success&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;draft&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;postData&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="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The general idea is to have the model generate structured data and pass that data to the corresponding composer.&lt;/p&gt;

&lt;p&gt;The UI handles editing and review, while your application remains responsible for agent execution, persistence and any final external actions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting started
&lt;/h2&gt;

&lt;p&gt;AgentComposerUI is available on npm.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install &lt;/span&gt;agentcomposerui
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It requires React 18 or later, React DOM 18 or later and Tailwind CSS 3 or later.&lt;/p&gt;

&lt;p&gt;Import the library's base styles:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;agentcomposerui/styles.css&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For Tailwind CSS v4, add the package source to your CSS:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="k"&gt;@import&lt;/span&gt; &lt;span class="s1"&gt;"tailwindcss"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;@source&lt;/span&gt; &lt;span class="s1"&gt;"../node_modules/agentcomposerui"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can then import the composers you need:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;LinkedInComposer&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;TwitterThreadComposer&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;EmailOutreachComposer&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;GitHubPRComposer&lt;/span&gt;&lt;span class="p"&gt;,&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="s2"&gt;agentcomposerui&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You don't need to use all four. Each composer can be integrated into an application according to its requirements.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tech stack
&lt;/h2&gt;

&lt;p&gt;AgentComposerUI is built with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;React&lt;/strong&gt; for the component architecture.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TypeScript&lt;/strong&gt; for typed component APIs and data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tailwind CSS&lt;/strong&gt; for styling.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zod and JSON Schema&lt;/strong&gt; for structured data and LLM integration.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vitest&lt;/strong&gt; for testing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bun&lt;/strong&gt;, &lt;strong&gt;oxlint&lt;/strong&gt; and &lt;strong&gt;oxfmt&lt;/strong&gt; for development tooling.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The package is MIT licensed and available on npm.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's next?
&lt;/h2&gt;

&lt;p&gt;I built AgentComposerUI to make the human-facing side of AI agent workflows easier to implement.&lt;/p&gt;

&lt;p&gt;There are plenty of potential directions for expanding the library, including more platform-specific composers, additional integrations and further customization options.&lt;/p&gt;

&lt;p&gt;For now, the focus is on providing dedicated interfaces for social media, email and development workflows without requiring developers to build every review experience from scratch.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it out
&lt;/h2&gt;

&lt;p&gt;If you're building AI agents that generate content and need human approval, give AgentComposerUI a look.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/theajmalrazaq/agentcomposerui" rel="noopener noreferrer"&gt;https://github.com/theajmalrazaq/agentcomposerui&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;npm:&lt;/strong&gt; &lt;a href="https://www.npmjs.com/package/agentcomposerui" rel="noopener noreferrer"&gt;https://www.npmjs.com/package/agentcomposerui&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It's open source, and feedback, issues and contributions are welcome.&lt;/p&gt;

&lt;p&gt;If you're building something with it, I'd love to hear what you're working on.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>react</category>
      <category>showdev</category>
      <category>ui</category>
    </item>
  </channel>
</rss>
