# Introduction
A shadcn-style registry of complete, production-ready AI agent recipes. Copy, paste, ship.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
**agentcn** is a registry of complete, production-ready agent recipes. It is **not** a UI component registry — each recipe distributes the
backend agent files (instructions, tools, skills, workflows) that you copy
straight into your project with the [shadcn CLI](https://ui.shadcn.com).
## Philosophy [#philosophy]
agentcn follows the shadcn model for backend agents: copy-paste recipes you can
own, with zero lock-in and sensible defaults that work immediately.
Agents are too often shipped as opaque packages — you import a black box and
fight its constraints the moment you need something different. agentcn takes the
opposite approach. You get the full source of each agent and stay close to your
framework's primitives, so you can read every line, swap the model, extend the
tools, or reshape the output without working around a library.
## Why agentcn? [#why-agentcn]
Most agent setups are either too opinionated or too scattered. agentcn is built
for teams that want to ship quickly without giving up control:
* **Own Your Code:** Copy recipes into your project and customize everything.
* **Start Fast:** Run one command and get a working agent with production-ready
defaults.
* **Scale Safely:** Build on Eve or Flue directly, then drop to the raw
framework APIs whenever you need more control.
## Frameworks [#frameworks]
Every recipe ships in both flavors where it makes sense, so you can adopt the
pattern in whichever framework you already use:
* **[Eve](https://vercel.com/docs/eve)** — a filesystem-first framework for
durable backend AI agents that run on Vercel Functions.
* **[Flue](https://flueframework.com)** — an agent runtime with first-class
subagents, skills, and bounded workflows.
* **[Mastra](https://mastra.ai)** — an agent framework with built-in tools,
memory, and workflow orchestration.
* **[LangGraph](https://www.langchain.com/langgraph)** — LangGraph agents built with Dawn,
a meta-framework that discovers agents, tools, and skills automatically via
`dawn.config.ts`.
## Features [#features]
# Installation
Install an agent recipe into your Eve, Flue, Mastra, or LangGraph (Dawn) project.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Prerequisites [#prerequisites]
Complete these before running the install command.
**1. An agent project.** Start from an existing one or scaffold a new project:
* **Eve** — `npx eve@latest init my-agent` ([docs](https://vercel.com/docs/eve)).
Recipes install under `agent/`, which Eve discovers automatically.
* **Flue** — `npx flue@latest init my-agent` ([docs](https://flueframework.com)).
Recipes install under `agents/`, `workflows/`, `tools/`, and `skills/`.
* **Mastra** — `npx create-mastra@latest` ([docs](https://mastra.ai)).
Recipes install under `src/mastra/agents//`, which Mastra discovers automatically.
* **LangGraph (Dawn)** — `npx dawn init my-agent` ([docs](https://dawn-ai.dev)).
Recipes install under the project root alongside `dawn.config.ts`. Dawn is the
meta-framework that discovers LangGraph agents, tools, and skills automatically.
**2. The framework package.** Each recipe declares its framework package (`eve`,
`@flue/runtime`, `@mastra/core`, or `@dawn-ai/sdk`) as a dependency, so the
shadcn CLI prompts to install it if it is missing.
**3. Environment variables.** Some recipes call external services and need
secrets set in your project's environment — for example `BRIGHTDATA_API_KEY` for
web search, `WORKSPACE_DIR` for the sandboxed assistant, or a database URL for the
SQL recipe. The required keys are documented in each recipe's tools and
instructions; add them to your `.env` before invoking the agent.
**4. Live preview (optional).** To run a recipe's preview from this docs site,
set `ANTHROPIC_API_KEY`. The Eve preview can additionally proxy a deployed Eve
instance via `EVE_PREVIEW_URL` — see the
[Preview Backend](https://github.com/shadcn-labs/agentcn#preview-backend) notes.
## Add a Recipe [#add-a-recipe]
From your project root, run the install command shown on the recipe's page. For
example, the [Deep Search](/docs/agents/eve/deep-search) agent:
### Eve [#eve]
```bash
npx shadcn@latest add @agentcn/eve/deep-search
```
### Flue [#flue]
```bash
npx shadcn@latest add @agentcn/flue/deep-search
```
### Mastra [#mastra]
```bash
npx shadcn@latest add @agentcn/mastra/deep-search
```
### LangGraph (Dawn) [#langgraph-dawn]
```bash
npx shadcn@latest add @agentcn/langgraph/deep-search
```
The CLI writes the recipe's files into your project at their target paths — for
Eve, under `agent/`; for Flue, under `agents/`, `workflows/`, `tools/`, and
`skills/`; for Mastra, under `src/mastra/agents//` with `config.ts`,
`instructions.md`, and `tools/*.ts`; for LangGraph (Dawn), under the project root
with `index.ts`, `instructions.md`, `tools/`, and `subagents/`. Your framework
discovers them automatically.
Prefer short names like `@agentcn/eve/deep-search`? Register the namespace once —
see [Registry](/docs/registry).
## Customize [#customize]
The installed files are plain source — you own them. Common changes:
* **Swap the model** in the agent definition.
* **Extend the tools** by adding files alongside the installed ones.
* **Reshape the output** schema to capture the fields you care about.
See each recipe's **Customization** section for specifics.
## Usage [#usage]
Start your project's dev server (for example `pnpm dev`) and invoke the agent
through your framework — Eve exposes it through a durable session, Flue through
its route handler, Dawn via `dawn dev`. You can also try any recipe before
installing it using the **live preview** embedded in its docs page.
# MCP
Use the shadcn MCP server to discover and install agentcn recipes from your editor.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
[MCP](https://modelcontextprotocol.io/) is an open protocol that standardizes how
applications provide context to LLMs. The shadcn CLI can register an MCP server
so your editor can discover registry items — including the agent recipes you
install from **agentcn** via the same CLI.
## Configure MCP [#configure-mcp]
Run:
```bash
npx shadcn@latest mcp init
```
Choose your MCP client when prompted, then enable the MCP server in that client
to finish setup.
To resolve recipes by short name (`@agentcn/eve/deep-search`), add the namespace
to `components.json` first — see [Registry](/docs/registry).
## Usage [#usage]
With MCP enabled, ask your editor to scaffold and install agent recipes, then
wire them into your project. Example prompts:
* Add the **Deep Search** recipe for Eve and set up the `BRIGHTDATA_API_KEY` it needs.
* Install the **Chat with PDF** recipe for Flue and show me how to call it.
* Build a Slack bot from the **Slack Agent** recipe and explain the approval flow.
* Set up the **Chat with Database** recipe and point it at my Postgres schema.
* Compare the Eve and Flue versions of the **GitHub PR Review** recipe.
* Install the **Deep Search** recipe for Mastra and configure the tools.
Install recipes with `npx shadcn@latest add @agentcn//` — see
[Registry](/docs/registry) for details. This site also
exposes [`llms.txt`](/llms.txt) and an [API catalog](/.well-known/api-catalog)
for agents that prefer to browse the registry directly.
# Registry
Use the agentcn registry with the shadcn CLI.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
The **agentcn** registry ships complete Eve, Flue, Mastra, and LangGraph (Dawn)
agent recipes in the [shadcn registry format](https://ui.shadcn.com/docs/registry).
Each item bundles everything one recipe needs — the agent definition, instructions,
tools, skills, and workflows. Register the namespace once in `components.json`,
then pull recipes by name with the CLI.
## Setup [#setup]
Add a **registries** entry pointing at this site. See the
[shadcn registry documentation](https://ui.shadcn.com/docs/registry) for every
`components.json` field and behavior.
```json
{
"registries": {
"@agentcn": "https://agentcn.vercel.app/r/{name}.json"
}
}
```
You can replace `@agentcn` with another namespace; it only needs to match what
you pass to `shadcn add`.
## Usage [#usage]
Recipe names are `/` — the same path as the JSON file under
`/r/` (without the `.json` extension). Install with the namespace and the recipe
name:
```bash
# Eve
npx shadcn@latest add @agentcn/eve/deep-search
```
```bash
# Flue
npx shadcn@latest add @agentcn/flue/deep-search
```
```bash
# Mastra
npx shadcn@latest add @agentcn/mastra/deep-search
```
```bash
# LangGraph (Dawn)
npx shadcn@latest add @agentcn/langgraph/deep-search
```
Without a registry alias, use the full URL shown on each recipe page:
```bash
npx shadcn@latest add https://agentcn.vercel.app/r/eve/deep-search.json
```
## Browse the registry [#browse-the-registry]
The registry index lists every recipe and the framework it ships for:
```bash
curl https://agentcn.vercel.app/r/registry.json
```
Browse the catalog in the [Agents](/docs/agents) section, or follow the
[Installation](/docs/installation) guide for the one-time project setup.
# Agents
Here you can find all the agent-recipes available in the library.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
# June 20, 2026 - Initial Release
17 agent recipes for Eve and Flue.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
We shipped the initial release of agentcn with 17 agent recipes for both Eve and Flue.
# June 23, 2026 - Bright Data Integration
Bright Data is now the default provider for the Browser, Deep Search, and Chat with YouTube agents.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
Bright Data joins agentcn as a gold sponsor.
We made [Bright Data](https://get.brightdata.com/zdgqtwgnmhkw) the default provider for the Browser, Deep Search, and Chat with YouTube agents — real-time SERP results, the Web Unlocker, and a managed anti-bot browser, all configured through `BRIGHTDATA_*` environment variables.
# June 25, 2026 - AI SEO Audit and Extract DESIGN.md
Two new context.dev-powered agent recipes for Eve and Flue.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
Two new context.dev-powered agent recipes, each shipped for both Eve and Flue, bringing the catalog to 19.
**What's New:**
* **AI SEO Audit** — fetches a page through context.dev and scores its readability to AI answer engines (ChatGPT, Claude, Perplexity) across six categories, returning the failing checks and a copy-paste, agent-ready fix prompt.
* **Extract DESIGN.md** — pulls a site's design tokens, brand assets, screenshot, and page Markdown through context.dev and composes a self-contained `DESIGN.md` design-system document.
* Both recipes wire into the catalog, docs, and live previews, and add the `CONTEXT_DEV_API_KEY` environment variable.
# July 4, 2026 - Mastra Support
19 Mastra agent recipes added to the registry.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
We've added Mastra as a supported framework, bringing the total to 57 agent recipes across Eve, Flue, and Mastra.
Mastra is a TypeScript framework for building AI agents with support for workflows, RAG, memory, and tool-calling. Today, we're adding complete support for Mastra's file-based agent convention.
### What's New [#whats-new]
* **19 Mastra agents** - Every recipe from the catalog is now available for Mastra: `ai-seo-audit`, `browser-agent`, `chat-with-pdf`, `chat-with-youtube`, `claw`, `company-knowledge`, `csv-to-questions`, `deep-search`, `docs-chatbot`, `docs-expert`, `extract-design-md`, `feedback-summary`, `flashcards-pdf`, `github-review`, `google-sheets`, `meeting-notes`, `slack-agent`, `text-to-sql`, and `weather`.
* **File-based agent pattern** - All agents follow Mastra's convention with `config.ts`, `instructions.md`, `tools/*.ts`, `memory.ts`, and `workflows/` where applicable.
* **Production-ready** - Agents include proper tooling, memory, workflows, and subagents matching official Mastra template repos.
### Installation [#installation]
Install any Mastra agent with the shadcn CLI:
```bash
npx shadcn@latest add @agentcn/mastra/weather
```
Or copy the files manually:
```bash
npm install @mastra/core @mastra/libsql @mastra/memory
```
### File-Based Convention [#file-based-convention]
Mastra agents use a file-based convention where each option maps to a file:
```text
agents/weather/
├── config.ts # Model and agent config (uses agentConfig())
├── instructions.md # Agent instructions
├── memory.ts # Memory instance
├── tools/
│ └── get_weather.ts # Tool definition (default export)
└── workflows/
└── weather.ts # Workflow definition
```
```tsx
// config.ts - Uses agentConfig() from @mastra/core/agent
import { agentConfig } from "@mastra/core/agent";
export default agentConfig({
model: "openai/gpt-5.2",
});
```
### Switching Frameworks [#switching-frameworks]
Use the framework switcher on any agent page to see the Eve, Flue, and Mastra versions side by side. The agents work the same way — only the implementation changes.
# July 9, 2026 - LangGraph Support
19 LangGraph agent recipes added to the registry, built with Dawn as the meta-framework.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
We've added LangGraph as a supported framework, built with [Dawn](https://dawn-ai.dev) as the meta-framework — bringing the total to 76 agent recipes across four frameworks.
[LangGraph](https://www.langchain.com/langgraph) is a low-level orchestration framework for building controllable agents as graphs. It provides customizable architectures, long-term memory, and human-in-the-loop to reliably handle complex tasks.
### What's New [#whats-new]
* **19 LangGraph agents** - Every recipe from the catalog is now available for LangGraph: `ai-seo-audit`, `browser-agent`, `chat-with-pdf`, `chat-with-youtube`, `claw`, `company-knowledge`, `csv-to-questions`, `deep-search`, `docs-chatbot`, `docs-expert`, `extract-design-md`, `feedback-summary`, `flashcards-pdf`, `github-review`, `google-sheets`, `meeting-notes`, `slack-agent`, `text-to-sql`, and `weather`.
* **Dawn meta-framework** - Agents use `@dawn-ai/sdk` and follow Dawn's file convention with `index.ts`, `instructions.md`, `tools/`, and `subagents/` where applicable.
* **Production-ready** - Agents include proper tooling, skills, and subagents matching LangGraph best practices.
### Installation [#installation]
Install any LangGraph agent with the shadcn CLI:
```bash
npx shadcn@latest add @agentcn/langgraph/weather
```
Or copy the files manually:
```bash
npm install @dawn-ai/sdk
```
### Dawn File Convention [#dawn-file-convention]
LangGraph agents built with Dawn use a file-based convention:
```text
weather/
├── index.ts # Agent definition (model + config)
├── instructions.md # Agent instructions
└── tools/
└── get_weather.ts # Tool definition
```
```ts
// index.ts
import { agent } from "@dawn-ai/sdk";
export default agent({
model: "anthropic/claude-sonnet-4-6",
description: "Looks up the current weather for a location.",
});
```
After copying, run `dawn check` to regenerate route and tool metadata. Use `dawn dev`, `dawn build`, and `dawn verify` for the full workflow.
### Switching Frameworks [#switching-frameworks]
Use the framework switcher on any agent page to see the Eve, Flue, Mastra, and LangGraph versions side by side. The agents work the same way — only the implementation changes.
# Changelog
Latest updates and announcements for agentcn.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## July 2026 - LangGraph Support [#july-2026---langgraph-support]
We added 19 LangGraph agent recipes built with Dawn as the meta-framework, bringing the catalog to 76 recipes across four frameworks. LangGraph recipes use Dawn's file convention (`index.ts` + `instructions.md` + `tools/*.ts`).
## July 2026 - Mastra Framework Support [#july-2026---mastra-framework-support]
We added 19 Mastra agent recipes to the registry, bringing the catalog to 57 recipes across three frameworks. Mastra recipes use the file-based agent convention (`config.ts` + `instructions.md` + `tools/*.ts`).
## June 2026 - Initial Release [#june-2026---initial-release]
We shipped the initial release of agentcn with 19 agent recipes for both Eve and Flue.
# AI SEO Audit
Runs a deterministic AI-SEO audit on a page through context.dev — scoring ~30 checks across six categories into a 0–100 total, returning failing checks and an agent-ready fix prompt.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **AI SEO Audit Agent** evaluates a page for how readable it is to AI answer
engines — ChatGPT, Claude, and Perplexity — rather than classic blue-link
search. It fetches the page through context.dev (never touching the site
directly), then runs a **deterministic rubric** of \~30 checks across six
categories to a 0–100 total. The model doesn't eyeball the score — `audit_page`
computes it in `agent/lib/rules.ts`, so the same page always yields the same
result. The agent presents the breakdown, lists the failing checks by impact,
and returns an **agent-ready fix prompt** you can paste straight into a coding
agent. Reach for it when you want a page to get cited by AI assistants.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/eve/ai-seo-audit
```
Install the following dependencies:
```bash
npm install eve context.dev
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
agent/
├── agent.ts # Agent definition (model + config)
├── instructions.md # Audit-and-report instructions
├── tools/
│ └── audit_page.ts # Runs the deterministic audit, returns the scored result
├── lib/
│ ├── audit.ts # Fetches via context.dev, parses, and scores the rules
│ ├── rules.ts # The ~30 checks and six category weights
│ ├── agent-fix-prompt.ts # Builds the copy-paste fix prompts from the findings
│ ├── audit-types.ts # Shared result types
│ └── url.ts # URL normalization helpers
└── skills/
└── seo-audit/
└── SKILL.md # How the agent presents the audit_page result
```
## Customization [#customization]
* **Fetching.** The page is fetched through [context.dev](https://context.dev) —
the recipe never hits the audited site directly. Set `CONTEXT_DEV_API_KEY`.
* **Tune the rubric.** Edit `agent/lib/rules.ts` to add checks, reweight
categories, or change the scoring bands — this is the single source of truth
for the score.
* **Reshape the output.** Edit `agent/instructions.md` or `SKILL.md` to emit
JSON, a shorter summary, or a different fix-prompt format.
* **Swap the model.** Edit `agent/agent.ts`. The model only narrates the
deterministic result, so any capable model works.
# Browser
Drives a real browser with Playwright using a snapshot-and-selector pattern to complete web tasks.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Browser Agent** completes tasks on the live web by driving a real Chromium
browser. It uses a snapshot-and-selector loop — the model sees a stable list of
interactive elements instead of brittle CSS — to navigate, click, and type. Reach
for it to automate flows, scrape interactive pages, or test UIs.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/eve/browser-agent
```
Install the following dependencies:
```bash
npm install eve playwright
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
agent/
├── agent.ts # Agent definition (model + config)
├── instructions.md # Snapshot-then-act loop instructions
├── lib/
│ └── browser.ts # Shared Playwright page + snapshot helper
└── tools/
├── browser_goto.ts # Navigate to a URL
├── browser_snapshot.ts # Read the current page + elements
├── browser_click.ts # Click an element by selector
└── browser_type.ts # Type into an input by selector
```
## Customization [#customization]
* **Managed remote browser.** `lib/browser.ts` connects to the [Bright Data
Browser API](https://docs.brightdata.com/scraping-automation/scraping-browser) —
a managed, anti-bot-resistant Chromium with no local infra. Set
`BRIGHTDATA_BROWSER_AUTH` to your zone `username:password`, or point
`BROWSER_CDP_URL` at any other CDP endpoint. With neither set it falls back to
local Chromium for development.
* **Richer snapshots.** Extend `lib/browser.ts` to include roles, ARIA, or
bounding boxes.
* **Add actions.** Add tools for scrolling, file uploads, or screenshots.
* **Swap the model.** Edit `agent/agent.ts`.
# Chat with PDF
Indexes a PDF into a vector store and answers questions over it with page-cited retrieval.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Chat with PDF Agent** lets you ask questions about a PDF and get answers
grounded in the document, with a page citation for every claim. It indexes the
PDF into a vector store, retrieves only the relevant chunks per question, and can
also generate comprehension quizzes from real passages. Reach for it to turn
manuals, papers, and reports into something you can query.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/eve/chat-with-pdf
```
Install the following dependencies:
```bash
npm install eve @libsql/client @ai-sdk/openai ai unpdf
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
agent/
├── agent.ts # Agent definition (model + config)
├── instructions.md # Retrieval-grounded answering instructions
├── lib/
│ └── vector-store.ts # libSQL vector store + embeddings helpers
└── tools/
├── index_pdf.ts # Chunk, embed, and store a PDF
└── search_docs.ts # Retrieve relevant chunks for a query
```
## Customization [#customization]
* **Swap the vector store.** `lib/vector-store.ts` wraps libSQL — replace it with
Pinecone, Qdrant, Chroma, or pgvector behind the same `upsertChunks`/`search`
functions.
* **Tune chunking.** Adjust `chunkText`'s size and overlap for your documents.
* **Swap the embedding model.** Change the model in `lib/vector-store.ts`.
* **Add quizzes.** The instructions already support quiz generation from
retrieved passages — extend them with your preferred format.
# Chat with YouTube
Fetches a video's metadata and transcript, then answers questions with clickable timestamp citations.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Chat with YouTube Agent** answers questions about a video using its
transcript. It pulls the video's metadata and full transcript, then summarizes,
answers follow-ups, and generates chapter timestamps — each citation a clickable
link straight to that moment. Reach for it to skim long talks, lectures, or
podcasts without watching end to end.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/eve/chat-with-youtube
```
Install the following dependencies:
```bash
npm install eve
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
agent/
├── agent.ts # Agent definition (model + config)
├── instructions.md # Transcript-grounded answering instructions
├── lib/
│ └── brightdata.ts # Web Unlocker fetch + YouTube parsing helpers
└── tools/
├── video_metadata.ts # Title / author / id via oEmbed
└── get_transcript.ts # Timestamped transcript segments
```
## Customization [#customization]
* **Reliable fetching.** Metadata and transcripts are pulled through the [Bright
Data Web Unlocker](https://docs.brightdata.com/scraping-automation/web-unlocker),
which handles YouTube at scale with no rate limits or blocks. Set
`BRIGHTDATA_API_KEY` (and optionally `BRIGHTDATA_UNLOCKER_ZONE`).
* **Add chapters export.** Add a tool that writes the chapter list back as a
YouTube description or VTT file.
* **Handle missing transcripts.** Fall back to an STT service when a video has no
captions.
* **Swap metadata source.** Use the YouTube Data API for richer metadata.
* **Swap the model.** Edit `agent/agent.ts`.
# Claw Autonomous Assistant
Operates a sandboxed workspace — read/write files and run shell commands — to finish multi-step tasks.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
**Claw** is an autonomous assistant that operates a sandboxed workspace to finish
multi-step tasks. It reads and writes files, runs shell commands scoped to a
workspace directory, and follows reusable skills. Reach for it as a base for
coding assistants, repo automation, or any agent that needs a real filesystem.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/eve/claw
```
Install the following dependencies:
```bash
npm install eve
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
agent/
├── agent.ts # Agent definition (model + config)
├── instructions.md # Autonomous, sandbox-safe instructions
├── lib/
│ └── workspace.ts # Sandbox root + path guard
├── tools/
│ ├── read_file.ts # Read a workspace file
│ ├── write_file.ts # Write a workspace file
│ └── run_shell.ts # Run a command in the workspace
└── skills/
└── workspace/
└── SKILL.md # Plan / inspect / act / verify procedure
```
## Customization [#customization]
* **Harden the sandbox.** Run `run_shell` inside a container or jail; the path
guard only constrains file paths, not arbitrary commands.
* **Add web browsing.** Pair with the [Browser Agent](/docs/agents/eve/browser-agent)
tools for tasks that need the web.
* **Add skills.** Drop more `SKILL.md` procedures under `skills/`.
* **Swap the model.** Edit `agent/agent.ts`.
# Company Knowledge
Indexes internal documents into a vector store and answers questions over them, with PII redaction.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Company Knowledge Agent** answers questions over your internal documents —
issues, wiki pages, notes. It indexes them into a vector store, searches the
corpus first, and redacts personal data (emails, phone numbers, SSNs, card
numbers, API keys) from responses. Reach for it to build an internal "ask the
company" assistant.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/eve/company-knowledge
```
Install the following dependencies:
```bash
npm install eve @libsql/client @ai-sdk/openai ai
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
agent/
├── agent.ts # Agent definition (model + config)
├── instructions.md # Corpus-first, PII-safe instructions
├── lib/
│ ├── pii.ts # PII redaction helper
│ └── vector-store.ts # libSQL vector store + embeddings
└── tools/
├── index_document.ts # Add a document to the corpus
└── search_knowledge.ts # Search the corpus (redacted)
```
## Customization [#customization]
* **Connect sources.** Feed `index_document` from Linear, Notion, or your wiki —
on a schedule for fresh data.
* **Swap the vector store.** Replace `lib/vector-store.ts` with pgvector/Neon,
Pinecone, or Qdrant.
* **Tune redaction.** Edit the patterns in `lib/pii.ts` for your data.
* **Swap the model.** Edit `agent/agent.ts`.
# CSV to Questions
Summarizes a CSV dataset to stay within token limits, then generates focused analytical questions.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **CSV to Questions Agent** takes a CSV dataset and turns it into a set of
sharp, answerable analytical questions. It first summarizes the data — columns,
types, ranges, patterns — to compress large files and avoid token-limit errors,
then generates questions a data analyst would actually ask. Reach for it to
kickstart exploratory analysis or build study material from raw data.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/eve/csv-to-questions
```
Install the following dependencies:
```bash
npm install eve
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
agent/
├── agent.ts # Agent definition (model + config)
├── instructions.md # Summarize-then-question instructions
└── tools/
└── fetch_csv.ts # Loads a CSV file from a URL
```
## Customization [#customization]
* **Read local files.** Swap `fetch_csv` to read from disk or object storage
instead of a URL.
* **Control the question style.** Edit `instructions.md` to bias toward trends,
comparisons, or hypothesis tests.
* **Swap the model.** Edit `agent/agent.ts`. A large-context model handles wide
datasets without truncation.
* **Chunk huge files.** Summarize in row batches and merge the profiles before
generating questions.
# Deep Search
Researches a question, evaluates its own findings, and iterates until the answer is complete and cited.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Deep Search Agent** takes a research question, searches the web, and then
critiques its own findings — re-searching to close gaps until the question is
fully answered. It returns an answer grounded only in the sources it found, with
a citation for every claim. Reach for it whenever a single search isn't enough
and you need a verified, sourced answer.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/eve/deep-search
```
Install the following dependencies:
```bash
npm install eve
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
agent/
├── agent.ts # Agent definition (model + config)
├── instructions.md # Self-evaluating research instructions
├── tools/
│ └── web_search.ts # Web search via the Bright Data SERP API
└── skills/
└── research/
└── SKILL.md # Iterative research procedure
```
## Customization [#customization]
* **Search provider.** Searches run through the [Bright Data SERP
API](https://docs.brightdata.com/scraping-automation/serp-api) — real-time,
unblocked results billed per successful request. Set `BRIGHTDATA_API_KEY` (and
optionally `BRIGHTDATA_SERP_ZONE`). Edit `agent/tools/web_search.ts` to point
at a different provider — keep the input/output shape.
* **Bound the iterations.** Add a max-rounds guard in `instructions.md` so the
agent stops after N search rounds.
* **Swap the model.** Edit `agent/agent.ts` — `anthropic/claude-sonnet-4-6` for
deeper synthesis, `anthropic/claude-haiku-4-5` for speed.
* **Add scraping.** Add a `scrape_url` tool so the agent can read full pages, not
just search snippets.
# Docs Chatbot
Answers questions about a library's functions by looking up structured documentation.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Docs Chatbot Agent** answers questions about a code library's API. It looks
up structured function documentation — signatures, parameters, and examples — and
answers using only what the docs say. Reach for it to drop a grounded "ask the
docs" assistant into a docs site, an IDE, or a support channel.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/eve/docs-chatbot
```
Install the following dependencies:
```bash
npm install eve
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
agent/
├── agent.ts # Agent definition (model + config)
├── instructions.md # Docs-grounded answering instructions
├── data/
│ └── functions.json # Sample documentation source
└── tools/
└── lookup_docs.ts # Looks up functions by name or keyword
```
## Customization [#customization]
* **Point at your docs.** Replace `data/functions.json` with your generated API
docs (e.g. from TypeDoc), or change `lookup_docs` to fetch from a remote source.
* **Improve matching.** Swap the substring filter for embeddings-based search to
handle paraphrased questions.
* **Expose it as MCP.** Wrap `lookup_docs` in an MCP server so other clients can
query the same docs.
* **Swap the model.** Edit `agent/agent.ts`.
# Docs Expert
Answers questions about libraries and APIs by searching the live web and citing sources.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Docs Expert Agent** answers technical questions about libraries, APIs, and
tools by searching the live web — preferring official documentation and citing
every claim. Reach for it as a grounded "ask the docs" helper that returns
copy-pasteable answers instead of hallucinated APIs.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/eve/docs-expert
```
Install the following dependencies:
```bash
npm install eve
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
agent/
├── agent.ts # Agent definition (model + config)
├── instructions.md # Cite-your-sources answering instructions
└── tools/
└── web_search.ts # Web search via the Exa API
```
## Customization [#customization]
* **Swap the search provider.** Edit `web_search.ts` for Brave, Tavily, or a
docs-specific index.
* **Constrain to your docs.** Restrict queries to a domain to build a
product-specific expert.
* **Add page fetching.** Add a `scrape_url` tool so the agent reads full pages.
* **Swap the model.** Edit `agent/agent.ts`.
# Extract DESIGN.md
Turns a domain into a self-contained DESIGN.md — gathering the styleguide, screenshot, and homepage Markdown from context.dev, then composing the document in a single Claude call.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Extract DESIGN.md Agent** turns any public website into design artifacts.
The `compose_design_md` tool gathers the styleguide, brand, a homepage
screenshot, and clean page Markdown through context.dev, then returns **three
outputs**, which the agent relays verbatim:
* **DESIGN.md** — composed in **one Claude call** (screenshot passed as
a vision image): token frontmatter (`version: alpha`, colors, typography,
rounded, spacing, components) plus the canonical sections (Overview, Colors,
Typography, Layout, Elevation, Shapes, Components, Do's and Don'ts).
* **Tailwind v4 `@theme` block** — derived **deterministically** from the
styleguide + brand in `agent/lib/derive-tokens.ts`.
* **CSS `:root` tokens** — the same tokens as vanilla CSS variables.
It follows the [designmd.supply](https://designmd.supply) pipeline — the same
prompt spec and deterministic token derivers — running on Claude.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/eve/extract-design-md
```
Install the following dependencies:
```bash
npm install eve context.dev ai @ai-sdk/anthropic
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
agent/
├── agent.ts # Agent definition (model + config)
├── instructions.md # Call compose_design_md, relay all three artifacts
├── tools/
│ └── compose_design_md.ts # Returns DESIGN.md + Tailwind + CSS
└── lib/
├── compose.ts # Fetches signals; Claude call + token derivers
├── design-md.ts # The verbatim DESIGN.md prompt spec
└── derive-tokens.ts # Deterministic Tailwind v4 @theme + CSS :root tokens
```
## Customization [#customization]
* **Data source.** The styleguide, screenshot, and Markdown are pulled through
[context.dev](https://context.dev). Set `CONTEXT_DEV_API_KEY`, and
`ANTHROPIC_API_KEY` for the model call.
* **Reshape the document.** Edit `agent/lib/design-md.ts` — the prompt spec is
the single source of truth for the frontmatter keys, token names, and sections.
* **Swap the model.** Change the model in `agent/lib/compose.ts` — it uses
`claude-sonnet-4-6` (vision-capable). The reference uses `gpt-5.4-mini`; any
multimodal model that can read the screenshot works.
* **Temperature.** Adjust `temperature` in `agent/lib/compose.ts` (the reference
uses `0.2`) to trade determinism for variety.
# Customer Feedback Summary
Retrieves, categorizes, and summarizes customer feedback into an executive report with recommendations.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Customer Feedback Summary Agent** answers questions about your customer
feedback. It retrieves entries from your data source, categorizes them by theme
and segment, and produces an executive summary with representative quotes and
concrete recommendations. Reach for it to turn a backlog of reviews, tickets, or
survey responses into something a team can act on.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/eve/feedback-summary
```
Install the following dependencies:
```bash
npm install eve
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
agent/
├── agent.ts # Agent definition (model + config)
├── instructions.md # Retrieve / categorize / summarize instructions
└── tools/
└── get_feedback.ts # Paginated feedback retrieval
```
## Customization [#customization]
* **Connect your source.** Point `get_feedback` at your database, support desk,
or reviews API — keep the pagination + segment parameters.
* **Change the categories.** Edit `instructions.md` to use your own taxonomy
(severity tiers, product areas, sentiment).
* **Swap the model.** Edit `agent/agent.ts` — a larger model for nuanced
synthesis, a smaller one for speed.
* **Add a scorer.** Track summary quality across runs to tune the prompt.
# Flash Cards from PDF
Turns a PDF into study flash cards, with optional AI-generated images per concept.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Flash Cards from PDF Agent** turns a document into ready-to-study flash
cards. It extracts the text, identifies the concepts worth memorizing, and writes
concise front/back pairs — and on request, generates an illustrative image for
each card. Reach for it to build study decks from textbooks, slides, or notes.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/eve/flashcards-pdf
```
Install the following dependencies:
```bash
npm install eve unpdf
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
agent/
├── agent.ts # Agent definition (model + config)
├── instructions.md # Card-writing instructions
└── tools/
├── parse_pdf.ts # Extract text from a PDF
└── generate_image.ts # Generate an image for a concept
```
## Customization [#customization]
* **Change the card style.** Edit `instructions.md` for cloze deletions,
definitions, or Q\&A pairs.
* **Swap the image model.** Edit `generate_image.ts` to use a different provider
or skip images entirely.
* **Export the deck.** Add a tool that writes cards to Anki, CSV, or your SRS.
* **Swap the model.** Edit `agent/agent.ts`.
# GitHub PR Code Review
Fetches a GitHub pull request and returns adaptive, file-by-file code review feedback.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **GitHub PR Code Review Agent** reviews a pull request and returns actionable
feedback. It fetches the PR's files and patches, adapts its depth to the diff
size, and reports bugs, security issues, and style notes grouped by file — ending
with an approve / request-changes recommendation. Reach for it to triage reviews
or give contributors fast first-pass feedback.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/eve/github-review
```
Install the following dependencies:
```bash
npm install eve
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
agent/
├── agent.ts # Agent definition (model + config)
├── instructions.md # Adaptive, file-by-file review instructions
└── tools/
└── fetch_pr.ts # Fetches PR metadata + changed files
```
## Customization [#customization]
* **Tune the depth thresholds.** Edit `instructions.md` to change how review depth
scales with PR size.
* **Skip more files.** Add glob patterns for generated or vendored paths.
* **Post back to GitHub.** Add a tool that creates a review via the GitHub API
instead of replying in chat.
* **Swap the model.** Edit `agent/agent.ts`.
# Google Sheets Analysis
Reads, analyzes, and edits Google Sheets via the Sheets API.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Google Sheets Analysis Agent** reads a spreadsheet, answers questions about
it, and — on request — writes results back. It loads ranges in A1 notation,
computes totals/trends/joins, and updates cells only when you ask. Reach for it to
turn a sheet into a conversational analyst or to automate routine spreadsheet
edits.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/eve/google-sheets
```
Install the following dependencies:
```bash
npm install eve
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
agent/
├── agent.ts # Agent definition (model + config)
├── instructions.md # Read-before-write analysis instructions
└── tools/
├── read_range.ts # Reads a range (A1 notation)
└── update_range.ts # Writes values to a range
```
## Customization [#customization]
* **Use a service account.** Mint the access token from a service account for
unattended runs.
* **Add operations.** Add tools for appending rows, formatting, or creating sheets.
* **Guard writes.** Require explicit confirmation before any `update_range` call.
* **Swap the model.** Edit `agent/agent.ts`.
# Eve Agents
Here you can find all the agent recipes for the Eve framework
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
# Meeting Notes
Turns a raw meeting transcript into a structured summary, decisions, and action items.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Meeting Notes Agent** takes a raw meeting transcript and returns clean,
structured notes: a short summary, the decisions that were made, action items as
owner/task pairs, and any open questions. Reach for it to close out standups,
planning sessions, or customer calls without writing up notes by hand.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/eve/meeting-notes
```
Install the following dependencies:
```bash
npm install eve
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
agent/
├── agent.ts # Agent definition (model + config)
├── instructions.md # Notes-extraction instructions
└── tools/
└── save_notes.ts # Saves the structured notes
```
## Customization [#customization]
* **Reshape the notes.** Edit the schema in `save_notes` to add fields like
attendees, risks, or next meeting date.
* **Persist the output.** Change `save_notes` to write to Notion, Linear, or a
database instead of returning JSON.
* **Tune the extraction.** Edit `instructions.md` to change how owners are
inferred or how decisions are phrased.
* **Swap the model.** Edit `agent/agent.ts` for longer transcripts or faster runs.
# Slack
Replies to Slack mentions and DMs, scoped to the thread, via the Slack Web API.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Slack Agent** turns your agent into a Slack bot. It answers mentions and
direct messages, keeps each conversation scoped to its thread, and replies with
Slack formatting. Reach for it to put an assistant where your team already works —
an on-call helper, a docs bot, or a triage assistant.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/eve/slack-agent
```
Install the following dependencies:
```bash
npm install eve
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
agent/
├── agent.ts # Agent definition (model + config)
├── instructions.md # Slack reply style + threading instructions
└── tools/
└── post_message.ts # Posts a (threaded) Slack message
```
## Customization [#customization]
* **Verify signatures.** Add Slack request-signature verification in your event
route before invoking the agent.
* **Add more actions.** Add tools for reactions, file uploads, or opening modals.
* **Scope memory by thread.** Key agent sessions on `thread_ts` for clean context.
* **Swap the model.** Edit `agent/agent.ts`.
# Chat with Database
Introspects a database schema, converts questions to SQL, and runs read-only queries.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Chat with Database Agent** answers questions about your data in plain
English. It introspects the schema, writes the SQL, runs it read-only, and
explains the results. Reach for it to give non-SQL users a safe way to query a
database, or to prototype analytics without hand-writing queries.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/eve/text-to-sql
```
Install the following dependencies:
```bash
npm install eve @libsql/client
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
agent/
├── agent.ts # Agent definition (model + config)
├── instructions.md # Introspect → SQL → execute instructions
├── lib/
│ └── db.ts # Database client (SQLite by default)
└── tools/
├── introspect_schema.ts # Lists tables and columns
└── run_query.ts # Runs a read-only SELECT
```
## Customization [#customization]
* **Swap the database.** Replace the client in `lib/db.ts` with Postgres or MySQL.
* **Allow writes (carefully).** The `run_query` tool blocks non-`SELECT` SQL by
default — relax that only behind explicit confirmation.
* **Add row limits.** Cap result size in `run_query` to protect against huge scans.
* **Swap the model.** Edit `agent/agent.ts`.
# Weather
Looks up the current weather for a location via the Open-Meteo API.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Weather Agent** is the classic starter: ask about a place and it reports the
current conditions. It geocodes the location and fetches live weather from the
free Open-Meteo API — no key required. Reach for it as a minimal, end-to-end
example of an agent with a single tool.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/eve/weather
```
Install the following dependencies:
```bash
npm install eve
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
agent/
├── agent.ts # Agent definition (model + config)
├── instructions.md # Weather assistant instructions
└── tools/
└── get_weather.ts # Geocode + current forecast (Open-Meteo)
```
## Customization [#customization]
* **Add a forecast.** Extend `get_weather` to request daily/hourly data.
* **Add units.** Pass a `units` parameter (metric/imperial) to the API.
* **Add more tools.** This is a good base to graduate into a travel or planning
agent.
* **Swap the model.** Edit `agent/agent.ts`.
# AI SEO Audit
Runs a deterministic AI-SEO audit on a page through context.dev — scoring ~30 checks across six categories into a 0–100 total, returning failing checks and an agent-ready fix prompt.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **AI SEO Audit Agent** evaluates a page for how readable it is to AI answer
engines — ChatGPT, Claude, and Perplexity — rather than classic blue-link
search. It fetches the page through context.dev (never touching the site
directly), then runs a **deterministic rubric** of \~30 checks across six
categories to a 0–100 total. The model doesn't eyeball the score — `audit_page`
computes it in `lib/rules.ts`, so the same page always yields the same result.
The agent presents the breakdown, lists the failing checks by impact, and
returns an **agent-ready fix prompt** you can paste straight into a coding agent.
Reach for it when you want a page to get cited by AI assistants.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/flue/ai-seo-audit
```
Install the following dependencies:
```bash
npm install @flue/runtime context.dev
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
agents/
└── ai-seo-audit.ts # Agent: call audit_page, then present the result
tools/
└── audit-page.ts # Runs the deterministic audit, returns the scored result
lib/
├── audit.ts # Fetches via context.dev, parses, and scores the rules
├── rules.ts # The ~30 checks and six category weights
├── agent-fix-prompt.ts # Builds the copy-paste fix prompts from the findings
├── audit-types.ts # Shared result types
└── url.ts # URL normalization helpers
skills/
└── seo-audit/
└── SKILL.md # How the agent presents the audit_page result
```
## Customization [#customization]
* **Fetching.** The page is fetched through [context.dev](https://context.dev) —
the recipe never hits the audited site directly. Set `CONTEXT_DEV_API_KEY`.
* **Tune the rubric.** Edit `lib/rules.ts` to add checks, reweight categories, or
change the scoring bands — this is the single source of truth for the score.
* **Reshape the output.** Adjust the agent instructions or `SKILL.md` to emit
JSON, a shorter summary, or a different fix-prompt format.
* **Swap the model.** Change the `model` on the agent in `agents/ai-seo-audit.ts`.
The model only narrates the deterministic result, so any capable model works.
# Browser
Drives a real browser with Playwright using a snapshot-and-selector pattern to complete web tasks.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Browser Agent** completes tasks on the live web by driving a real Chromium
browser. It uses a snapshot-and-selector loop — the model sees a stable list of
interactive elements instead of brittle CSS — to navigate, click, and type. Reach
for it to automate flows, scrape interactive pages, or test UIs.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/flue/browser-agent
```
Install the following dependencies:
```bash
npm install @flue/runtime playwright
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
agents/
└── browser-agent.ts # Agent with the four browser tools
tools/
└── browser.ts # browser_goto / snapshot / click / type
lib/
└── browser.ts # Shared Playwright page + snapshot helper
```
## Customization [#customization]
* **Managed remote browser.** `lib/browser.ts` connects to the [Bright Data
Browser API](https://docs.brightdata.com/scraping-automation/scraping-browser) —
a managed, anti-bot-resistant Chromium with no local infra. Set
`BRIGHTDATA_BROWSER_AUTH` to your zone `username:password`, or point
`BROWSER_CDP_URL` at any other CDP endpoint. With neither set it falls back to
local Chromium for development.
* **Richer snapshots.** Extend `lib/browser.ts` to include roles, ARIA, or
bounding boxes.
* **Add actions.** Add tools for scrolling, file uploads, or screenshots.
* **Swap the model.** Change the `model` field on the agent.
# Chat with PDF
Indexes a PDF into a vector store and answers questions over it with page-cited retrieval.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Chat with PDF Agent** lets you ask questions about a PDF and get answers
grounded in the document, with a page citation for every claim. It indexes the
PDF into a vector store, retrieves only the relevant chunks per question, and can
also generate comprehension quizzes from real passages. Reach for it to turn
manuals, papers, and reports into something you can query.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/flue/chat-with-pdf
```
Install the following dependencies:
```bash
npm install @flue/runtime @libsql/client @ai-sdk/openai ai unpdf
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
agents/
└── chat-with-pdf.ts # Conversational Q&A agent
workflows/
└── chat-with-pdf.ts # Index-then-answer, typed cited output
tools/
├── index-pdf.ts # Chunk, embed, and store a PDF
└── search-docs.ts # Retrieve relevant chunks for a query
lib/
└── vector-store.ts # libSQL vector store + embeddings helpers
```
## Customization [#customization]
* **Swap the vector store.** `lib/vector-store.ts` wraps libSQL — replace it with
Pinecone, Qdrant, Chroma, or pgvector behind the same functions.
* **Tune chunking.** Adjust `chunkText`'s size and overlap for your documents.
* **Reshape the answer.** Edit the `Answer` valibot schema in the workflow.
* **Swap the embedding model.** Change the model in `lib/vector-store.ts`.
# Chat with YouTube
Fetches a video's metadata and transcript, then answers questions with clickable timestamp citations.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Chat with YouTube Agent** answers questions about a video using its
transcript. It pulls the video's metadata and full transcript, then summarizes,
answers follow-ups, and generates chapter timestamps — each citation a clickable
link straight to that moment. Reach for it to skim long talks, lectures, or
podcasts without watching end to end.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/flue/chat-with-youtube
```
Install the following dependencies:
```bash
npm install @flue/runtime
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
agents/
└── chat-with-youtube.ts # Agent that composes the two tools
lib/
└── brightdata.ts # Web Unlocker fetch + YouTube parsing helpers
tools/
├── metadata.ts # Title / author / id via oEmbed
└── transcript.ts # Timestamped transcript segments
```
## Customization [#customization]
* **Reliable fetching.** Metadata and transcripts are pulled through the [Bright
Data Web Unlocker](https://docs.brightdata.com/scraping-automation/web-unlocker),
which handles YouTube at scale with no rate limits or blocks. Set
`BRIGHTDATA_API_KEY` (and optionally `BRIGHTDATA_UNLOCKER_ZONE`).
* **Add chapters export.** Add a tool that writes the chapter list as a
description or VTT file.
* **Handle missing transcripts.** Fall back to an STT service when captions are
unavailable.
* **Add a workflow.** Wrap the tools in a workflow with a typed chapters schema.
* **Swap the model.** Change the `model` field on the agent.
# Claw Autonomous Assistant
Operates a sandboxed workspace — read/write files and run shell commands — to finish multi-step tasks.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
**Claw** is an autonomous assistant that operates a sandboxed workspace to finish
multi-step tasks. It reads and writes files, runs shell commands scoped to a
workspace directory, and follows reusable skills. Reach for it as a base for
coding assistants, repo automation, or any agent that needs a real filesystem.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/flue/claw
```
Install the following dependencies:
```bash
npm install @flue/runtime
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
agents/
└── claw.ts # Agent + workspace skill + tools
tools/
├── read-file.ts # Read a workspace file
├── write-file.ts # Write a workspace file
└── run-shell.ts # Run a command in the workspace
lib/
└── workspace.ts # Sandbox root + path guard
skills/
└── workspace/
└── SKILL.md # Plan / inspect / act / verify procedure
```
## Customization [#customization]
* **Harden the sandbox.** Run `run_shell` inside a container or jail; the path
guard only constrains file paths, not arbitrary commands.
* **Add web browsing.** Pair with the [Browser Agent](/docs/agents/flue/browser-agent)
tools for tasks that need the web.
* **Add skills.** Drop more `SKILL.md` procedures under `skills/`.
* **Swap the model.** Change the `model` field on the agent.
# Company Knowledge
Indexes internal documents into a vector store and answers questions over them, with PII redaction.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Company Knowledge Agent** answers questions over your internal documents —
issues, wiki pages, notes. It indexes them into a vector store, searches the
corpus first, and redacts personal data (emails, phone numbers, SSNs, card
numbers, API keys) from responses. Reach for it to build an internal "ask the
company" assistant.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/flue/company-knowledge
```
Install the following dependencies:
```bash
npm install @flue/runtime @libsql/client @ai-sdk/openai ai
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
agents/
└── company-knowledge.ts # Corpus-first, PII-safe agent
workflows/
└── index-knowledge.ts # Scheduled re-index workflow
tools/
├── search-knowledge.ts # Search the corpus (redacted)
└── index-document.ts # Add a document to the corpus
lib/
├── vector-store.ts # libSQL vector store + embeddings
└── pii.ts # PII redaction helper
```
## Customization [#customization]
* **Connect sources.** Feed `index-knowledge` from Linear, Notion, or your wiki
on a cron for fresh data.
* **Swap the vector store.** Replace `lib/vector-store.ts` with pgvector/Neon,
Pinecone, or Qdrant.
* **Tune redaction.** Edit the patterns in `lib/pii.ts` for your data.
* **Swap the model.** Change the `model` field on the agent.
# CSV to Questions
Summarizes a CSV dataset to stay within token limits, then generates focused analytical questions.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **CSV to Questions Agent** takes a CSV dataset and turns it into a set of
sharp, answerable analytical questions. It first summarizes the data — columns,
types, ranges, patterns — to compress large files and avoid token-limit errors,
then generates questions a data analyst would actually ask. Reach for it to
kickstart exploratory analysis or build study material from raw data.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/flue/csv-to-questions
```
Install the following dependencies:
```bash
npm install @flue/runtime
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
agents/
└── csv-to-questions.ts # Single-agent variant with the fetch_csv tool
workflows/
└── csv-to-questions.ts # summarizer → questioner pipeline (typed output)
tools/
└── fetch-csv.ts # Loads a CSV file from a URL
```
## Customization [#customization]
* **Read local files.** Swap `fetch-csv.ts` to read from disk or object storage.
* **Reshape the output.** Edit the `Questions` valibot schema to add fields such
as difficulty or the column each question targets.
* **Swap the models.** Use a large-context model on the summarizer for wide
datasets; a smaller one on the questioner for speed.
* **Chunk huge files.** Summarize in row batches and merge before questioning.
# Deep Search
Researches a question, evaluates its own findings, and iterates until the answer is complete and cited.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Deep Search Agent** takes a research question, searches the web, and then
critiques its own findings — re-searching to close gaps until the question is
fully answered. It returns an answer grounded only in the sources it found, with
a citation for every claim. Reach for it whenever a single search isn't enough
and you need a verified, sourced answer.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/flue/deep-search
```
Install the following dependencies:
```bash
npm install @flue/runtime
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
agents/
└── deep-search.ts # Orchestrator + searcher/evaluator subagents
workflows/
└── deep-search.ts # Bounded iteration returning a cited answer
tools/
└── search.ts # Web search via the Bright Data SERP API
skills/
└── research/
└── SKILL.md # Iterative research procedure
```
## Customization [#customization]
* **Search provider.** Searches run through the [Bright Data SERP
API](https://docs.brightdata.com/scraping-automation/serp-api) — real-time,
unblocked results billed per successful request. Set `BRIGHTDATA_API_KEY` (and
optionally `BRIGHTDATA_SERP_ZONE`). Edit `tools/search.ts` to point at a
different provider — keep the parameters and return shape.
* **Tune the loop.** Adjust `maxRounds` in `workflows/deep-search.ts` to trade
depth for cost.
* **Reshape the answer.** Edit the `Answer` valibot schema to add fields such as
confidence or a source list.
* **Swap the model.** Change the `model` on the orchestrator or subagents.
# Docs Chatbot
Answers questions about a library's functions by looking up structured documentation.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Docs Chatbot Agent** answers questions about a code library's API. It looks
up structured function documentation — signatures, parameters, and examples — and
answers using only what the docs say. Reach for it to drop a grounded "ask the
docs" assistant into a docs site, an IDE, or a support channel.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/flue/docs-chatbot
```
Install the following dependencies:
```bash
npm install @flue/runtime
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
agents/
└── docs-chatbot.ts # Agent with the lookup_docs tool
tools/
└── lookup-docs.ts # Looks up functions by name or keyword
data/
└── functions.json # Sample documentation source
```
## Customization [#customization]
* **Point at your docs.** Replace `data/functions.json` with your generated API
docs, or change `lookup-docs.ts` to fetch from a remote source.
* **Improve matching.** Swap the substring filter for embeddings-based search.
* **Expose it as MCP.** Wrap the tool in an MCP server for other clients.
* **Swap the model.** Change the `model` field on the agent.
# Docs Expert
Answers questions about libraries and APIs by searching the live web and citing sources.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Docs Expert Agent** answers technical questions about libraries, APIs, and
tools by searching the live web — preferring official documentation and citing
every claim. Reach for it as a grounded "ask the docs" helper that returns
copy-pasteable answers instead of hallucinated APIs.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/flue/docs-expert
```
Install the following dependencies:
```bash
npm install @flue/runtime
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
agents/
└── docs-expert.ts # Agent with the web_search tool
tools/
└── search.ts # Web search via the Exa API
```
## Customization [#customization]
* **Swap the search provider.** Edit `search.ts` for Brave, Tavily, or a
docs-specific index.
* **Constrain to your docs.** Restrict queries to a domain to build a
product-specific expert.
* **Add page fetching.** Add a `scrape_url` tool so the agent reads full pages.
* **Swap the model.** Change the `model` field on the agent.
# Extract DESIGN.md
Turns a domain into a self-contained DESIGN.md — gathering the styleguide, screenshot, and homepage Markdown from context.dev, then composing the document in a single Claude call.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Extract DESIGN.md Agent** turns any public website into design artifacts.
Given a domain, it gathers the styleguide, brand, a homepage screenshot, and
clean page Markdown through context.dev, then returns **three outputs**:
* **DESIGN.md** — composed in **one Claude call** (screenshot passed as
a vision image): token frontmatter (`version: alpha`, colors, typography,
rounded, spacing, components) plus the canonical sections (Overview, Colors,
Typography, Layout, Elevation, Shapes, Components, Do's and Don'ts).
* **Tailwind v4 `@theme` block** — derived **deterministically** from the
styleguide + brand in `lib/derive-tokens.ts`.
* **CSS `:root` tokens** — the same tokens as vanilla CSS variables.
It follows the [designmd.supply](https://designmd.supply) pipeline — the same
prompt spec and deterministic token derivers — running on Claude.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/flue/extract-design-md
```
Install the following dependencies:
```bash
npm install @flue/runtime context.dev ai @ai-sdk/anthropic
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
workflows/
└── extract-design-md.ts # Workflow: returns DESIGN.md + Tailwind + CSS
lib/
├── compose.ts # Fetches signals; Claude call + token derivers
├── design-md.ts # The verbatim DESIGN.md prompt spec
└── derive-tokens.ts # Deterministic Tailwind v4 @theme + CSS :root tokens
```
## Customization [#customization]
* **Data source.** The styleguide, screenshot, and Markdown are pulled through
[context.dev](https://context.dev). Set `CONTEXT_DEV_API_KEY`, and
`ANTHROPIC_API_KEY` for the model call.
* **Reshape the document.** Edit `lib/design-md.ts` — the prompt spec is the
single source of truth for the frontmatter keys, token names, and sections.
* **Swap the model.** Change the model in `lib/compose.ts` — it uses
`claude-sonnet-4-6` (vision-capable). The reference uses `gpt-5.4-mini`; any
multimodal model that can read the screenshot works.
* **Temperature.** Adjust `temperature` in `lib/compose.ts` (the reference uses
`0.2`) to trade determinism for variety.
# Customer Feedback Summary
Retrieves, categorizes, and summarizes customer feedback into an executive report with recommendations.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Customer Feedback Summary Agent** answers questions about your customer
feedback. It retrieves entries from your data source, categorizes them by theme
and segment, and produces an executive summary with representative quotes and
concrete recommendations. Reach for it to turn a backlog of reviews, tickets, or
survey responses into something a team can act on.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/flue/feedback-summary
```
Install the following dependencies:
```bash
npm install @flue/runtime
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
agents/
└── feedback-summary.ts # Agent definition with the get_feedback tool
tools/
└── get-feedback.ts # Paginated feedback retrieval
```
## Customization [#customization]
* **Connect your source.** Point `get-feedback.ts` at your database, support
desk, or reviews API — keep the pagination + segment parameters.
* **Change the categories.** Edit the agent instructions to use your own taxonomy.
* **Add a workflow.** Wrap retrieval + summarization in a workflow with a typed
report schema if you want structured output.
* **Swap the model.** Change the `model` field on the agent.
# Flash Cards from PDF
Turns a PDF into study flash cards, with optional AI-generated images per concept.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Flash Cards from PDF Agent** turns a document into ready-to-study flash
cards. It extracts the text, identifies the concepts worth memorizing, and writes
concise front/back pairs — and on request, generates an illustrative image for
each card. Reach for it to build study decks from textbooks, slides, or notes.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/flue/flashcards-pdf
```
Install the following dependencies:
```bash
npm install @flue/runtime unpdf
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
agents/
└── flashcards-pdf.ts # Conversational card-writing agent
workflows/
└── flashcards-pdf.ts # Typed Flashcards output
tools/
├── parse-pdf.ts # Extract text from a PDF
└── generate-image.ts # Generate an image for a concept
```
## Customization [#customization]
* **Reshape the deck.** Edit the `Flashcards` valibot schema to add tags, hints,
or difficulty.
* **Swap the image model.** Edit `generate-image.ts` or drop images entirely.
* **Export the deck.** Add a tool that writes to Anki, CSV, or your SRS.
* **Swap the model.** Change the `model` field on the agent.
# GitHub PR Code Review
Fetches a GitHub pull request and returns adaptive, file-by-file code review feedback.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **GitHub PR Code Review Agent** reviews a pull request and returns actionable
feedback. It fetches the PR's files and patches, adapts its depth to the diff
size, and reports bugs, security issues, and style notes grouped by file — ending
with an approve / request-changes recommendation. Reach for it to triage reviews
or give contributors fast first-pass feedback.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/flue/github-review
```
Install the following dependencies:
```bash
npm install @flue/runtime
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
agents/
└── github-review.ts # Chat review agent
workflows/
└── github-review.ts # pr-review workflow → typed Review
tools/
└── fetch-pr.ts # Fetches PR metadata + changed files
```
## Customization [#customization]
* **Reshape the review.** Edit the `Review` valibot schema (add line numbers,
suggested patches).
* **Tune depth + skips.** Adjust the agent instructions for size thresholds and
ignored paths.
* **Post back to GitHub.** Add a tool that creates a review via the GitHub API.
* **Swap the model.** Use Sonnet for depth or Haiku for speed.
# Google Sheets Analysis
Reads, analyzes, and edits Google Sheets via the Sheets API.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Google Sheets Analysis Agent** reads a spreadsheet, answers questions about
it, and — on request — writes results back. It loads ranges in A1 notation,
computes totals/trends/joins, and updates cells only when you ask. Reach for it to
turn a sheet into a conversational analyst or to automate routine spreadsheet
edits.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/flue/google-sheets
```
Install the following dependencies:
```bash
npm install @flue/runtime
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
agents/
└── google-sheets.ts # Agent with read + update tools
tools/
├── read-range.ts # Reads a range (A1 notation)
└── update-range.ts # Writes values to a range
```
## Customization [#customization]
* **Use a service account.** Mint the access token from a service account for
unattended runs.
* **Add operations.** Add tools for appending rows, formatting, or creating sheets.
* **Guard writes.** Require explicit confirmation before any `update_range` call.
* **Swap the model.** Change the `model` field on the agent.
# Flue Agents
Here you can find all the agent recipes for the Flue framework
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
# Meeting Notes
Turns a raw meeting transcript into a structured summary, decisions, and action items.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Meeting Notes Agent** takes a raw meeting transcript and returns clean,
structured notes: a short summary, the decisions that were made, action items as
owner/task pairs, and any open questions. Reach for it to close out standups,
planning sessions, or customer calls without writing up notes by hand.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/flue/meeting-notes
```
Install the following dependencies:
```bash
npm install @flue/runtime
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
agents/
└── meeting-notes.ts # Single-agent variant
workflows/
└── meeting-notes.ts # Workflow returning a typed Notes object
```
## Customization [#customization]
* **Reshape the notes.** Edit the `Notes` valibot schema to add fields like
attendees, risks, or next meeting date.
* **Persist the output.** Add a tool that writes the notes to Notion, Linear, or
a database.
* **Tune the extraction.** Edit the agent instructions to change how owners are
inferred or how decisions are phrased.
* **Swap the model.** Change the `model` field for longer transcripts or speed.
# Slack
Replies to Slack mentions and DMs, scoped to the thread, via the Slack Web API.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Slack Agent** turns your agent into a Slack bot. It answers mentions and
direct messages, keeps each conversation scoped to its thread, and replies with
Slack formatting. Reach for it to put an assistant where your team already works —
an on-call helper, a docs bot, or a triage assistant.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/flue/slack-agent
```
Install the following dependencies:
```bash
npm install @flue/runtime
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
agents/
└── slack-agent.ts # Agent + route handler stub for Slack events
tools/
└── post-message.ts # Posts a (threaded) Slack message
```
## Customization [#customization]
* **Verify signatures.** Implement Slack signature verification in the exported
`route` before calling `next()`.
* **Add more actions.** Add tools for reactions, file uploads, or modals.
* **Scope memory by thread.** Key sessions on `thread_ts` for clean context.
* **Swap the model.** Change the `model` field on the agent.
# Chat with Database
Introspects a database schema, converts questions to SQL, and runs read-only queries.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Chat with Database Agent** answers questions about your data in plain
English. It introspects the schema, writes the SQL, runs it read-only, and
explains the results. Reach for it to give non-SQL users a safe way to query a
database, or to prototype analytics without hand-writing queries.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/flue/text-to-sql
```
Install the following dependencies:
```bash
npm install @flue/runtime @libsql/client
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
agents/
└── text-to-sql.ts # Agent with the two database tools
tools/
├── introspect-schema.ts # Lists tables and columns
└── run-query.ts # Runs a read-only SELECT
lib/
└── db.ts # Database client (SQLite by default)
```
## Customization [#customization]
* **Swap the database.** Replace the client in `lib/db.ts` with Postgres or MySQL.
* **Allow writes (carefully).** `run-query.ts` blocks non-`SELECT` SQL by default.
* **Add a workflow.** Wrap introspect + query in a workflow with a typed result.
* **Swap the model.** Change the `model` field on the agent.
# Weather
Looks up the current weather for a location via the Open-Meteo API.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Weather Agent** is the classic starter: ask about a place and it reports the
current conditions. It geocodes the location and fetches live weather from the
free Open-Meteo API — no key required. Reach for it as a minimal, end-to-end
example of an agent with a single tool.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/flue/weather
```
Install the following dependencies:
```bash
npm install @flue/runtime
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
agents/
└── weather.ts # Agent with the get_weather tool
tools/
└── get-weather.ts # Geocode + current forecast (Open-Meteo)
```
## Customization [#customization]
* **Add a forecast.** Extend `get-weather.ts` to request daily/hourly data.
* **Add units.** Pass a `units` parameter (metric/imperial) to the API.
* **Add a workflow.** Wrap it in a workflow with a typed forecast schema.
* **Swap the model.** Change the `model` field on the agent.
# AI SEO Audit
Runs a deterministic AI-SEO audit on a page through context.dev — scoring ~30 checks across six categories into a 0–100 total, returning failing checks and an agent-ready fix prompt.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **AI SEO Audit Agent** evaluates a page for how readable it is to AI answer
engines — ChatGPT, Claude, and Perplexity — rather than classic blue-link
search. It fetches the page through context.dev (never touching the site
directly), then runs a **deterministic rubric** of \~30 checks across six
categories to a 0–100 total. The model doesn't eyeball the score — `audit_page`
computes it in `lib/rules.ts`, so the same page always yields the same
result. The agent presents the breakdown, lists the failing checks by impact,
and returns an **agent-ready fix prompt** you can paste straight into a coding
agent. Reach for it when you want a page to get cited by AI assistants.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/langgraph/ai-seo-audit
```
Install the following dependencies:
```bash
npm install @dawn-ai/sdk
```
Copy and paste the following agent route files into your project.
Run `dawn check` after copying so route and tool metadata are regenerated.
`dawn dev`, `dawn build`, and `dawn verify` also run the same discovery path.
## Composition [#composition]
```text
├── index.ts
├── instructions.md
├── lib/agent-fix-prompt.ts
├── lib/audit-types.ts
├── lib/audit.ts
├── lib/rules.ts
├── lib/url.ts
├── skills/seo-audit/SKILL.md
├── tools/audit_page.ts
```
## Customization [#customization]
* Edit `index.ts` to change the model, description, or system prompt.
* Add route-local tools under `tools/`; tool input and output types are inferred from TypeScript.
* Run `dawn verify` before deploying generated LangGraph artifacts.
# Browser
A browser-operating agent that interacts with live web pages using Playwright-based tools with accessibility-tree ref ids.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Browser Agent** completes tasks on the live web by driving a real Chromium
browser. It uses Playwright-based tools with accessibility-tree ref ids for
stable element targeting, web search as a fallback, and persists state to
Turso (libSQL). Reach for it to automate flows, scrape interactive pages, or
test UIs.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/langgraph/browser-agent
```
Install the following dependencies:
```bash
npm install @ai-sdk/openai @dawn-ai/sdk playwright-chromium
```
Copy and paste the following agent route files into your project.
Run `dawn check` after copying so route and tool metadata are regenerated.
`dawn dev`, `dawn build`, and `dawn verify` also run the same discovery path.
## Composition [#composition]
```text
├── index.ts
├── instructions.md
```
## Customization [#customization]
* Edit `index.ts` to change the model, description, or system prompt.
* Add route-local tools under `tools/`; tool input and output types are inferred from TypeScript.
* Run `dawn verify` before deploying generated LangGraph artifacts.
# Chat with PDF
Indexes a PDF into a vector store and answers questions over it with page-cited retrieval and stratified sampling.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Chat with PDF Agent** lets you ask questions about a PDF and get answers
grounded in the document, with a page citation for every claim. It indexes the
PDF into a vector store, retrieves only the relevant chunks per question using
stratified sampling across page ranges, and can also generate comprehension
quizzes from real passages. Reach for it to turn manuals, papers, and reports
into something you can query.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/langgraph/chat-with-pdf
```
Install the following dependencies:
```bash
npm install @dawn-ai/sdk pdf-parse
```
Copy and paste the following agent route files into your project.
Run `dawn check` after copying so route and tool metadata are regenerated.
`dawn dev`, `dawn build`, and `dawn verify` also run the same discovery path.
## Composition [#composition]
```text
├── index.ts
├── instructions.md
├── lib/vector-store.ts
├── tools/list_documents.ts
├── tools/query_pdf.ts
```
## Customization [#customization]
* Edit `index.ts` to change the model, description, or system prompt.
* Add route-local tools under `tools/`; tool input and output types are inferred from TypeScript.
* Run `dawn verify` before deploying generated LangGraph artifacts.
# Chat with YouTube
Fetches a video's metadata and transcript, then answers questions with clickable timestamp citations.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Chat with YouTube Agent** answers questions about a video using its
transcript. It pulls the video's metadata and full transcript, then summarizes,
answers follow-ups, and generates chapter timestamps — each citation a clickable
link straight to that moment. Reach for it to skim long talks, lectures, or
podcasts without watching end to end.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/langgraph/chat-with-youtube
```
Install the following dependencies:
```bash
npm install @dawn-ai/sdk youtube-transcript-scraper
```
Copy and paste the following agent route files into your project.
Run `dawn check` after copying so route and tool metadata are regenerated.
`dawn dev`, `dawn build`, and `dawn verify` also run the same discovery path.
## Composition [#composition]
```text
├── index.ts
├── instructions.md
├── lib/youtube-utils.ts
├── tools/youtube-metadata.ts
├── tools/youtube-transcript.ts
```
## Customization [#customization]
* Edit `index.ts` to change the model, description, or system prompt.
* Add route-local tools under `tools/`; tool input and output types are inferred from TypeScript.
* Run `dawn verify` before deploying generated LangGraph artifacts.
# Claw Autonomous Assistant
Operates a sandboxed workspace — read/write files and run shell commands — to finish multi-step tasks.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
**Claw** is an autonomous assistant that operates a sandboxed workspace to finish
multi-step tasks. It reads and writes files, runs shell commands scoped to a
workspace directory, and follows reusable skills. Reach for it as a base for
coding assistants, repo automation, or any agent that needs a real filesystem.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/langgraph/claw
```
Install the following dependencies:
```bash
npm install @dawn-ai/sdk
```
Copy and paste the following agent route files into your project.
Run `dawn check` after copying so route and tool metadata are regenerated.
`dawn dev`, `dawn build`, and `dawn verify` also run the same discovery path.
## Composition [#composition]
```text
├── index.ts
├── instructions.md
├── lib/workspace.ts
├── skills/workspace/SKILL.md
├── tools/delete_file.ts
├── tools/edit_file.ts
├── tools/grep.ts
├── tools/list_files.ts
├── tools/read_file.ts
├── tools/run_shell.ts
├── tools/write_file.ts
```
## Customization [#customization]
* Edit `index.ts` to change the model, description, or system prompt.
* Add route-local tools under `tools/`; tool input and output types are inferred from TypeScript.
* Run `dawn verify` before deploying generated LangGraph artifacts.
# Company Knowledge
Indexes internal documents into a vector store and answers questions over them, with PII redaction.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Company Knowledge Agent** answers questions over your internal documents —
issues, wiki pages, notes. It indexes them into a vector store, searches the
corpus first, and redacts personal data (emails, phone numbers, SSNs, card
numbers, API keys) from responses. Reach for it to build an internal "ask the
company" assistant.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/langgraph/company-knowledge
```
Install the following dependencies:
```bash
npm install @ai-sdk/openai @dawn-ai/sdk @libsql/client ai
```
Copy and paste the following agent route files into your project.
Run `dawn check` after copying so route and tool metadata are regenerated.
`dawn dev`, `dawn build`, and `dawn verify` also run the same discovery path.
## Composition [#composition]
```text
├── index.ts
├── instructions.md
├── lib/pii.ts
├── lib/vector-store.ts
├── tools/index_document.ts
├── tools/search_knowledge.ts
```
## Customization [#customization]
* Edit `index.ts` to change the model, description, or system prompt.
* Add route-local tools under `tools/`; tool input and output types are inferred from TypeScript.
* Run `dawn verify` before deploying generated LangGraph artifacts.
# CSV to Questions
Summarizes a CSV dataset to stay within token limits, then generates focused analytical questions.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **CSV to Questions Agent** takes a CSV dataset and turns it into a set of
sharp, answerable analytical questions. It first summarizes the data — columns,
types, ranges, patterns — to compress large files and avoid token-limit errors,
then generates questions a data analyst would actually ask. Reach for it to
kickstart exploratory analysis or build study material from raw data.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/langgraph/csv-to-questions
```
Install the following dependencies:
```bash
npm install @dawn-ai/sdk
```
Copy and paste the following agent route files into your project.
Run `dawn check` after copying so route and tool metadata are regenerated.
`dawn dev`, `dawn build`, and `dawn verify` also run the same discovery path.
## Composition [#composition]
```text
├── index.ts
├── instructions.md
├── tools/fetch_csv.ts
├── tools/generate_questions.ts
```
## Customization [#customization]
* Edit `index.ts` to change the model, description, or system prompt.
* Add route-local tools under `tools/`; tool input and output types are inferred from TypeScript.
* Run `dawn verify` before deploying generated LangGraph artifacts.
# Deep Search
A multi-agent deep search system that researches questions by clarifying intent, planning queries, evaluating results, and synthesizing answers.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Deep Search Agent** is a multi-agent system that researches questions through an iterative process. It clarifies user intent, plans search queries, evaluates results for completeness, and synthesizes a comprehensive answer. The system uses 4 specialized agents working together in a workflow to produce well-researched, cited answers.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/langgraph/deep-search
```
Install the following dependencies:
```bash
npm install @dawn-ai/sdk
```
Copy and paste the following agent route files into your project.
Run `dawn check` after copying so route and tool metadata are regenerated.
`dawn dev`, `dawn build`, and `dawn verify` also run the same discovery path.
## Composition [#composition]
```text
├── index.ts
├── instructions.md
├── skills/research/SKILL.md
├── subagents/answerer/index.ts
├── subagents/answerer/instructions.md
├── subagents/intent-clarifier/index.ts
├── subagents/intent-clarifier/instructions.md
├── subagents/research-planner/index.ts
├── subagents/research-planner/instructions.md
├── subagents/search-result-evaluator/index.ts
├── subagents/search-result-evaluator/instructions.md
```
## Customization [#customization]
* Edit `index.ts` to change the model, description, or system prompt.
* Add route-local tools under `tools/`; tool input and output types are inferred from TypeScript.
* Run `dawn verify` before deploying generated LangGraph artifacts.
# Docs Chatbot
Answers questions about a library's functions by looking up structured documentation.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Docs Chatbot Agent** answers questions about a code library's API. It looks
up structured function documentation — signatures, parameters, and examples — and
answers using only what the docs say. Reach for it to drop a grounded "ask the
docs" assistant into a docs site, an IDE, or a support channel.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/langgraph/docs-chatbot
```
Install the following dependencies:
```bash
npm install @dawn-ai/sdk
```
Copy and paste the following agent route files into your project.
Run `dawn check` after copying so route and tool metadata are regenerated.
`dawn dev`, `dawn build`, and `dawn verify` also run the same discovery path.
## Composition [#composition]
```text
├── data/functions.json
├── index.ts
├── instructions.md
├── tools/lookup_docs.ts
```
## Customization [#customization]
* Edit `index.ts` to change the model, description, or system prompt.
* Add route-local tools under `tools/`; tool input and output types are inferred from TypeScript.
* Run `dawn verify` before deploying generated LangGraph artifacts.
# Docs Expert
Answers questions about libraries and APIs by searching the live web and citing sources.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Docs Expert Agent** answers technical questions about libraries, APIs, and
tools by searching the live web — preferring official documentation and citing
every claim. Reach for it as a grounded "ask the docs" helper that returns
copy-pasteable answers instead of hallucinated APIs.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/langgraph/docs-expert
```
Install the following dependencies:
```bash
npm install @dawn-ai/sdk
```
Copy and paste the following agent route files into your project.
Run `dawn check` after copying so route and tool metadata are regenerated.
`dawn dev`, `dawn build`, and `dawn verify` also run the same discovery path.
## Composition [#composition]
```text
├── index.ts
├── instructions.md
├── tools/web_search.ts
```
## Customization [#customization]
* Edit `index.ts` to change the model, description, or system prompt.
* Add route-local tools under `tools/`; tool input and output types are inferred from TypeScript.
* Run `dawn verify` before deploying generated LangGraph artifacts.
# Extract DESIGN.md
Turns a domain into a self-contained DESIGN.md — gathering the styleguide, screenshot, and homepage Markdown from context.dev, then composing the document in a single Claude call.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Extract DESIGN.md Agent** turns any public website into design artifacts.
The `compose_design_md` tool gathers the styleguide, brand, a homepage
screenshot, and clean page Markdown through context.dev, then returns **three
outputs**, which the agent relays verbatim:
* **DESIGN.md** — composed in **one Claude call** (screenshot passed as
a vision image): token frontmatter (`version: alpha`, colors, typography,
rounded, spacing, components) plus the canonical sections (Overview, Colors,
Typography, Layout, Elevation, Shapes, Components, Do's and Don'ts).
* **Tailwind v4 `@theme` block** — derived **deterministically** from the
styleguide + brand in `lib/derive-tokens.ts`.
* **CSS `:root` tokens** — the same tokens as vanilla CSS variables.
It follows the [designmd.supply](https://designmd.supply) pipeline — the same
prompt spec and deterministic token derivers — running on Claude.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/langgraph/extract-design-md
```
Install the following dependencies:
```bash
npm install @dawn-ai/sdk
```
Copy and paste the following agent route files into your project.
Run `dawn check` after copying so route and tool metadata are regenerated.
`dawn dev`, `dawn build`, and `dawn verify` also run the same discovery path.
## Composition [#composition]
```text
├── index.ts
├── instructions.md
├── lib/compose.ts
├── lib/derive-tokens.ts
├── lib/design-md.ts
├── tools/compose_design_md.ts
```
## Customization [#customization]
* Edit `index.ts` to change the model, description, or system prompt.
* Add route-local tools under `tools/`; tool input and output types are inferred from TypeScript.
* Run `dawn verify` before deploying generated LangGraph artifacts.
# Customer Feedback Summary
Retrieves, categorizes, and summarizes customer feedback into an executive report with recommendations.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Customer Feedback Summary Agent** answers questions about your customer
feedback. It retrieves entries from your data source, categorizes them by theme
and segment, and produces an executive summary with representative quotes and
concrete recommendations. Reach for it to turn a backlog of reviews, tickets, or
survey responses into something a team can act on.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/langgraph/feedback-summary
```
Install the following dependencies:
```bash
npm install @dawn-ai/sdk
```
Copy and paste the following agent route files into your project.
Run `dawn check` after copying so route and tool metadata are regenerated.
`dawn dev`, `dawn build`, and `dawn verify` also run the same discovery path.
## Composition [#composition]
```text
├── index.ts
├── instructions.md
├── tools/get_feedback.ts
```
## Customization [#customization]
* Edit `index.ts` to change the model, description, or system prompt.
* Add route-local tools under `tools/`; tool input and output types are inferred from TypeScript.
* Run `dawn verify` before deploying generated LangGraph artifacts.
# Flash Cards from PDF
Turns a PDF into study flash cards, with optional AI-generated images per concept.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Flash Cards from PDF Agent** turns a document into ready-to-study flash
cards. It extracts the text, identifies the concepts worth memorizing, and writes
concise front/back pairs — and on request, generates an illustrative image for
each card. Reach for it to build study decks from textbooks, slides, or notes.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/langgraph/flashcards-pdf
```
Install the following dependencies:
```bash
npm install @dawn-ai/sdk pdf-parse
```
Copy and paste the following agent route files into your project.
Run `dawn check` after copying so route and tool metadata are regenerated.
`dawn dev`, `dawn build`, and `dawn verify` also run the same discovery path.
## Composition [#composition]
```text
├── index.ts
├── instructions.md
├── tools/generate_image.ts
├── tools/parse_pdf.ts
```
## Customization [#customization]
* Edit `index.ts` to change the model, description, or system prompt.
* Add route-local tools under `tools/`; tool input and output types are inferred from TypeScript.
* Run `dawn verify` before deploying generated LangGraph artifacts.
# GitHub PR Code Review
Fetches a GitHub pull request and returns adaptive, file-by-file code review feedback.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **GitHub PR Code Review Agent** reviews a pull request and returns actionable
feedback. It fetches the PR's files and patches, adapts its depth to the diff
size, and reports bugs, security issues, and style notes grouped by file — ending
with an approve / request-changes recommendation. Reach for it to triage reviews
or give contributors fast first-pass feedback.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/langgraph/github-review
```
Install the following dependencies:
```bash
npm install @dawn-ai/sdk
```
Copy and paste the following agent route files into your project.
Run `dawn check` after copying so route and tool metadata are regenerated.
`dawn dev`, `dawn build`, and `dawn verify` also run the same discovery path.
## Composition [#composition]
```text
├── index.ts
├── instructions.md
├── tools/fetch_pr.ts
├── tools/get_file_content.ts
├── tools/get_pr_files.ts
├── tools/parse_github_url.ts
```
## Customization [#customization]
* Edit `index.ts` to change the model, description, or system prompt.
* Add route-local tools under `tools/`; tool input and output types are inferred from TypeScript.
* Run `dawn verify` before deploying generated LangGraph artifacts.
# Google Sheets Analysis
Reads, analyzes, and edits Google Sheets via the Sheets API.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Google Sheets Analysis Agent** reads a spreadsheet, answers questions about
it, and — on request — writes results back. It loads ranges in A1 notation,
computes totals/trends/joins, and updates cells only when you ask. Reach for it to
turn a sheet into a conversational analyst or to automate routine spreadsheet
edits.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/langgraph/google-sheets
```
Install the following dependencies:
```bash
npm install @dawn-ai/sdk
```
Copy and paste the following agent route files into your project.
Run `dawn check` after copying so route and tool metadata are regenerated.
`dawn dev`, `dawn build`, and `dawn verify` also run the same discovery path.
## Composition [#composition]
```text
├── index.ts
├── instructions.md
├── tools/read_range.ts
├── tools/update_range.ts
```
## Customization [#customization]
* Edit `index.ts` to change the model, description, or system prompt.
* Add route-local tools under `tools/`; tool input and output types are inferred from TypeScript.
* Run `dawn verify` before deploying generated LangGraph artifacts.
# LangGraph Agents
Here you can find all the agent recipes for the LangGraph framework
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
# Meeting Notes
Turns a raw meeting transcript into a structured summary, decisions, and action items.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Meeting Notes Agent** takes a raw meeting transcript and returns clean,
structured notes: a short summary, the decisions that were made, action items as
owner/task pairs, and any open questions. Reach for it to close out standups,
planning sessions, or customer calls without writing up notes by hand.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/langgraph/meeting-notes
```
Install the following dependencies:
```bash
npm install @dawn-ai/sdk
```
Copy and paste the following agent route files into your project.
Run `dawn check` after copying so route and tool metadata are regenerated.
`dawn dev`, `dawn build`, and `dawn verify` also run the same discovery path.
## Composition [#composition]
```text
├── index.ts
├── instructions.md
├── tools/get_transcript.ts
├── tools/list_meetings.ts
├── tools/save_notes.ts
```
## Customization [#customization]
* Edit `index.ts` to change the model, description, or system prompt.
* Add route-local tools under `tools/`; tool input and output types are inferred from TypeScript.
* Run `dawn verify` before deploying generated LangGraph artifacts.
# Slack
Replies to Slack mentions and DMs, scoped to the thread, via the Slack Web API.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Slack Agent** turns your agent into a Slack bot. It answers mentions and
direct messages, keeps each conversation scoped to its thread, and replies with
Slack formatting. Reach for it to put an assistant where your team already works —
an on-call helper, a docs bot, or a triage assistant.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/langgraph/slack-agent
```
Install the following dependencies:
```bash
npm install @dawn-ai/sdk
```
Copy and paste the following agent route files into your project.
Run `dawn check` after copying so route and tool metadata are regenerated.
`dawn dev`, `dawn build`, and `dawn verify` also run the same discovery path.
## Composition [#composition]
```text
├── index.ts
├── instructions.md
├── tools/post_message.ts
```
## Customization [#customization]
* Edit `index.ts` to change the model, description, or system prompt.
* Add route-local tools under `tools/`; tool input and output types are inferred from TypeScript.
* Run `dawn verify` before deploying generated LangGraph artifacts.
# Chat with Database
Introspects a database schema, converts questions to SQL, and runs read-only queries.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Chat with Database Agent** answers questions about your data in plain
English. It introspects the schema, writes the SQL, runs it read-only, and
explains the results. Reach for it to give non-SQL users a safe way to query a
database, or to prototype analytics without hand-writing queries.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/langgraph/text-to-sql
```
Install the following dependencies:
```bash
npm install @dawn-ai/sdk @libsql/client
```
Copy and paste the following agent route files into your project.
Run `dawn check` after copying so route and tool metadata are regenerated.
`dawn dev`, `dawn build`, and `dawn verify` also run the same discovery path.
## Composition [#composition]
```text
├── index.ts
├── instructions.md
├── lib/db.ts
├── tools/execute-sql.ts
├── tools/introspect-database.ts
```
## Customization [#customization]
* Edit `index.ts` to change the model, description, or system prompt.
* Add route-local tools under `tools/`; tool input and output types are inferred from TypeScript.
* Run `dawn verify` before deploying generated LangGraph artifacts.
# Weather
Looks up the current weather for a location via the Open-Meteo API.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Weather Agent** is the classic starter: ask about a place and it reports the
current conditions. It geocodes the location and fetches live weather from the
free Open-Meteo API — no key required. Reach for it as a minimal, end-to-end
example of an agent with a single tool.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/langgraph/weather
```
Install the following dependencies:
```bash
npm install @dawn-ai/sdk
```
Copy and paste the following agent route files into your project.
Run `dawn check` after copying so route and tool metadata are regenerated.
`dawn dev`, `dawn build`, and `dawn verify` also run the same discovery path.
## Composition [#composition]
```text
├── index.ts
├── instructions.md
├── tools/get_weather.ts
```
## Customization [#customization]
* Edit `index.ts` to change the model, description, or system prompt.
* Add route-local tools under `tools/`; tool input and output types are inferred from TypeScript.
* Run `dawn verify` before deploying generated LangGraph artifacts.
# AI SEO Audit
Runs a deterministic AI-SEO audit on a page through context.dev — scoring ~30 checks across six categories into a 0–100 total, returning failing checks and an agent-ready fix prompt.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **AI SEO Audit Agent** evaluates a page for how readable it is to AI answer
engines — ChatGPT, Claude, and Perplexity — rather than classic blue-link
search. It fetches the page through context.dev (never touching the site
directly), then runs a **deterministic rubric** of \~30 checks across six
categories to a 0–100 total. The model doesn't eyeball the score — `audit_page`
computes it in `lib/rules.ts`, so the same page always yields the same
result. The agent presents the breakdown, lists the failing checks by impact,
and returns an **agent-ready fix prompt** you can paste straight into a coding
agent. Reach for it when you want a page to get cited by AI assistants.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/mastra/ai-seo-audit
```
Install the following dependencies:
```bash
npm install @mastra/core context.dev
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
├── config.ts # Agent definition (model + config)
├── instructions.md # Audit-and-report instructions
├── tools/
│ └── audit_page.ts # Runs the deterministic audit, returns the scored result
├── lib/
│ ├── audit.ts # Fetches via context.dev, parses, and scores the rules
│ ├── rules.ts # The ~30 checks and six category weights
│ ├── agent-fix-prompt.ts # Builds the copy-paste fix prompts from the findings
│ ├── audit-types.ts # Shared result types
│ └── url.ts # URL normalization helpers
└── skills/
└── seo-audit/
└── SKILL.md # How the agent presents the audit_page result
```
## Customization [#customization]
* **Fetching.** The page is fetched through [context.dev](https://context.dev) —
the recipe never hits the audited site directly. Set `CONTEXT_DEV_API_KEY`.
* **Tune the rubric.** Edit `lib/rules.ts` to add checks, reweight
categories, or change the scoring bands — this is the single source of truth
for the score.
* **Reshape the output.** Edit `instructions.md` or `SKILL.md` to emit
JSON, a shorter summary, or a different fix-prompt format.
* **Swap the model.** Edit `config.ts`. The model only narrates the
deterministic result, so any capable model works.
# Browser
A browser-operating agent that interacts with live web pages using Playwright-based tools with accessibility-tree ref ids.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Browser Agent** completes tasks on the live web by driving a real Chromium
browser. It uses Playwright-based tools with accessibility-tree ref ids for
stable element targeting, web search as a fallback, and persists state to
Turso (libSQL). Reach for it to automate flows, scrape interactive pages, or
test UIs.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/mastra/browser-agent
```
Install the following dependencies:
```bash
npm install @mastra/core @mastra/agent-browser @mastra/libsql @mastra/memory @ai-sdk/openai playwright-chromium
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
├── config.ts # Agent config with browser, model, and web_search tool
├── instructions.md # Comprehensive browser operation instructions
└── memory.ts # Memory with last 10 messages
```
## Environment Variables [#environment-variables]
```bash
BROWSER_HEADLESS= # Optional: Set to "false" for visible browser (default: true)
BROWSER_CDP_URL= # Optional: CDP endpoint for remote browser
TURSO_DATABASE_URL= # Required: Turso libSQL URL for storage
TURSO_AUTH_TOKEN= # Optional: Turso auth token
```
## How It Works [#how-it-works]
1. **Navigate** - Call `browser_goto` with the target URL
2. **Snapshot** - Call `browser_snapshot` to get the accessibility tree with ref ids
3. **Interact** - Use ref ids from snapshot for `browser_click`, `browser_type`, etc.
4. **Re-snapshot** - Take new snapshot after actions to see updated state
5. **Verify** - Take final snapshot to confirm results before reporting
6. **Fallback** - Use `web_search` for quick factual questions
## Customization [#customization]
* **Remote browser.** Set `BROWSER_CDP_URL` to connect to a remote CDP endpoint like Bright Data Browser API.
* **Headless mode.** Set `BROWSER_HEADLESS=false` for visible browser during development.
* **Swap models.** Edit the `model` field in `config.ts`.
* **Adjust steps.** Modify `maxSteps` in `config.ts` (default: 100).
# Chat with PDF
Indexes a PDF into a vector store and answers questions over it with page-cited retrieval and stratified sampling.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Chat with PDF Agent** lets you ask questions about a PDF and get answers
grounded in the document, with a page citation for every claim. It indexes the
PDF into a vector store, retrieves only the relevant chunks per question using
stratified sampling across page ranges, and can also generate comprehension
quizzes from real passages. Reach for it to turn manuals, papers, and reports
into something you can query.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/mastra/chat-with-pdf
```
Install the following dependencies:
```bash
npm install @mastra/core @mastra/libsql @mastra/rag pdf-parse
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
├── config.ts # Agent definition (model + config)
├── instructions.md # Detailed assistant instructions
├── memory.ts # Memory instance for conversation history
├── lib/
│ └── vector-store.ts # LibSQLVector store + index management
├── tools/
│ ├── list_documents.ts # List all indexed PDF documents
│ └── query_pdf.ts # Query with stratified page sampling
└── workflows/
└── index_pdf.ts # 3-step workflow: download → chunk → embed
```
## Customization [#customization]
* **Swap the vector store.** `lib/vector-store.ts` uses `@mastra/libsql` — replace it with
Pinecone, Qdrant, Chroma, or pgvector by swapping the vector store import.
* **Tune chunking.** Adjust the `splitIntoChunks` step's `maxSize` and `overlap` in `workflows/index_pdf.ts`.
* **Swap the embedding model.** Change the model in tools and workflows from `openai/text-embedding-3-small`.
* **Add quizzes.** The instructions already support quiz generation from
retrieved passages — extend them with your preferred format.
* **Add more tools.** Create additional tools in `tools/` — they'll be auto-discovered.
# Chat with YouTube
Fetches a video's metadata and transcript, then answers questions with clickable timestamp citations.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Chat with YouTube Agent** answers questions about a video using its
transcript. It pulls the video's metadata and full transcript, then summarizes,
answers follow-ups, and generates chapter timestamps — each citation a clickable
link straight to that moment. Reach for it to skim long talks, lectures, or
podcasts without watching end to end.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/mastra/chat-with-youtube
```
Install the following dependencies:
```bash
npm install @mastra/core @mastra/libsql @mastra/memory youtube-transcript-scraper
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
├── config.ts # Agent definition (model + config)
├── instructions.md # Comprehensive YouTube assistant instructions
├── memory.ts # Memory instance
├── lib/
│ └── youtube-utils.ts # Video ID extraction + timestamp formatting
└── tools/
├── youtube-metadata.ts # Fetch video title, author, description, duration
└── youtube-transcript.ts # Fetch timestamped transcript segments
```
## How It Works [#how-it-works]
1. **Get Metadata** - `fetch-youtube-metadata` retrieves video title, author, description, and duration
2. **Get Transcript** - `fetch-youtube-transcript` fetches the full transcript with timestamps
3. **Answer Questions** - The agent answers based on transcript content with clickable timestamp citations
4. **Generate Chapters** - Creates chapter timestamps in YouTube description format
## Customization [#customization]
* **Swap the model.** Edit the `model` field in `config.ts`.
* **Add chapters export.** Add a tool that writes the chapter list back as a YouTube description or VTT file.
* **Handle missing transcripts.** Fall back to an STT service when a video has no captions.
* **Swap metadata source.** Use the YouTube Data API for richer metadata.
# Claw Autonomous Assistant
Operates a sandboxed workspace — read/write files and run shell commands — to finish multi-step tasks.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
**Claw** is an autonomous assistant that operates a sandboxed workspace to finish
multi-step tasks. It reads and writes files, runs shell commands scoped to a
workspace directory, and follows reusable skills. Reach for it as a base for
coding assistants, repo automation, or any agent that needs a real filesystem.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/mastra/claw
```
Install the following dependencies:
```bash
npm install @mastra/core
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
├── config.ts # Agent definition (model + config)
├── instructions.md # Autonomous, sandbox-safe instructions
├── lib/
│ └── workspace.ts # Sandbox root + path guard
├── tools/
│ ├── read_file.ts # Read a workspace file
│ ├── write_file.ts # Write a workspace file
│ └── run_shell.ts # Run a command in the workspace
└── skills/
└── workspace/
└── SKILL.md # Plan / inspect / act / verify procedure
```
## Customization [#customization]
* **Harden the sandbox.** Run `run_shell` inside a container or jail; the path
guard only constrains file paths, not arbitrary commands.
* **Add web browsing.** Pair with the [Browser Agent](/docs/agents/mastra/browser-agent)
tools for tasks that need the web.
* **Add skills.** Drop more `SKILL.md` procedures under `skills/`.
* **Swap the model.** Edit `config.ts`.
# Company Knowledge
Indexes internal documents into a vector store and answers questions over them, with PII redaction.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Company Knowledge Agent** answers questions over your internal documents —
issues, wiki pages, notes. It indexes them into a vector store, searches the
corpus first, and redacts personal data (emails, phone numbers, SSNs, card
numbers, API keys) from responses. Reach for it to build an internal "ask the
company" assistant.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/mastra/company-knowledge
```
Install the following dependencies:
```bash
npm install @mastra/core @libsql/client @ai-sdk/openai ai
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
├── config.ts # Agent definition (model + config)
├── instructions.md # Corpus-first, PII-safe instructions
├── lib/
│ ├── pii.ts # PII redaction helper
│ └── vector-store.ts # libSQL vector store + embeddings
└── tools/
├── index_document.ts # Add a document to the corpus
└── search_knowledge.ts # Search the corpus (redacted)
```
## Customization [#customization]
* **Connect sources.** Feed `index_document` from Linear, Notion, or your wiki —
on a schedule for fresh data.
* **Swap the vector store.** Replace `lib/vector-store.ts` with pgvector/Neon,
Pinecone, or Qdrant.
* **Tune redaction.** Edit the patterns in `lib/pii.ts` for your data.
* **Swap the model.** Edit `config.ts`.
# CSV to Questions
Summarizes a CSV dataset to stay within token limits, then generates focused analytical questions.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **CSV to Questions Agent** takes a CSV dataset and turns it into a set of
sharp, answerable analytical questions. It first summarizes the data — columns,
types, ranges, patterns — to compress large files and avoid token-limit errors,
then generates questions a data analyst would actually ask. Reach for it to
kickstart exploratory analysis or build study material from raw data.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/mastra/csv-to-questions
```
Install the following dependencies:
```bash
npm install @mastra/core
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
├── config.ts # Agent definition (model + config)
├── instructions.md # Summarize-then-question instructions
└── tools/
└── fetch_csv.ts # Loads a CSV file from a URL
```
## Customization [#customization]
* **Read local files.** Swap `fetch_csv` to read from disk or object storage
instead of a URL.
* **Control the question style.** Edit `instructions.md` to bias toward trends,
comparisons, or hypothesis tests.
* **Swap the model.** Edit `config.ts`. A large-context model handles wide
datasets without truncation.
* **Chunk huge files.** Summarize in row batches and merge the profiles before
generating questions.
# Deep Search
A multi-agent deep search system that researches questions by clarifying intent, planning queries, evaluating results, and synthesizing answers.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Deep Search Agent** is a multi-agent system that researches questions through an iterative process. It clarifies user intent, plans search queries, evaluates results for completeness, and synthesizes a comprehensive answer. The system uses 4 specialized agents working together in a workflow to produce well-researched, cited answers.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/mastra/deep-search
```
Install the following dependencies:
```bash
npm install @mastra/core @mastra/libsql
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
├── config.ts # Main agent config with workflow
├── instructions.md # Main agent instructions
├── subagents/
│ ├── intent-clarifier/
│ │ ├── config.ts # Intent clarifier config
│ │ └── instructions.md # Generates clarifying questions
│ ├── research-planner/
│ │ ├── config.ts # Research planner config
│ │ └── instructions.md # Writes search queries
│ ├── search-result-evaluator/
│ │ ├── config.ts # Search evaluator config
│ │ └── instructions.md # Evaluates result quality
│ └── answerer/
│ ├── config.ts # Answerer config
│ └── instructions.md # Synthesizes final answer
├── skills/
│ └── research/
│ └── SKILL.md # Research procedure
└── workflows/
└── deep-search.ts # Orchestrates all agents
```
## How It Works [#how-it-works]
1. **Clarify Intent** - The intent-clarifier agent asks 3 clarifying questions to understand the user's needs
2. **Plan Queries** - The research-planner agent generates 3-5 search queries based on the clarified intent
3. **Search** - The system executes searches using Bright Data SERP API
4. **Evaluate** - The search-result-evaluator agent checks if results are sufficient
5. **Iterate** - If results are insufficient, the system loops back to step 2 (up to 4 iterations)
6. **Answer** - The answerer agent synthesizes a comprehensive, cited answer
## Environment Variables [#environment-variables]
```bash
BRIGHTDATA_API_KEY= # Required: Bright Data API key
BRIGHTDATA_SERP_ZONE= # Optional: Bright Data SERP zone (defaults to "serp_api")
```
## Customization [#customization]
* **Search provider.** Replace the `performSearch` function in `workflows/deep-search.ts` with another provider like [Exa](https://exa.ai), SerpAPI, or Google Custom Search.
* **Swap models.** Edit the `model` field in each subagent's `config.ts`.
* **Adjust iterations.** Modify the loop limit in `workflows/deep-search.ts` (currently 4).
* **Add more agents.** Create new subagents under `subagents/` and wire them into the workflow.
# Docs Chatbot
Answers questions about a library's functions by looking up structured documentation.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Docs Chatbot Agent** answers questions about a code library's API. It looks
up structured function documentation — signatures, parameters, and examples — and
answers using only what the docs say. Reach for it to drop a grounded "ask the
docs" assistant into a docs site, an IDE, or a support channel.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/mastra/docs-chatbot
```
Install the following dependencies:
```bash
npm install @mastra/core
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
├── config.ts # Agent definition (model + config)
├── instructions.md # Docs-grounded answering instructions
├── data/
│ └── functions.json # Sample documentation source
└── tools/
└── lookup_docs.ts # Looks up functions by name or keyword
```
## Customization [#customization]
* **Point at your docs.** Replace `data/functions.json` with your generated API
docs (e.g. from TypeDoc), or change `lookup_docs` to fetch from a remote source.
* **Improve matching.** Swap the substring filter for embeddings-based search to
handle paraphrased questions.
* **Expose it as MCP.** Wrap `lookup_docs` in an MCP server so other clients can
query the same docs.
* **Swap the model.** Edit `config.ts`.
# Docs Expert
Answers questions about libraries and APIs by searching the live web and citing sources.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Docs Expert Agent** answers technical questions about libraries, APIs, and
tools by searching the live web — preferring official documentation and citing
every claim. Reach for it as a grounded "ask the docs" helper that returns
copy-pasteable answers instead of hallucinated APIs.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/mastra/docs-expert
```
Install the following dependencies:
```bash
npm install @mastra/core
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
├── config.ts # Agent definition (model + config)
├── instructions.md # Cite-your-sources answering instructions
└── tools/
└── web_search.ts # Web search via the Exa API
```
## Customization [#customization]
* **Swap the search provider.** Edit `web_search.ts` for Brave, Tavily, or a
docs-specific index.
* **Constrain to your docs.** Restrict queries to a domain to build a
product-specific expert.
* **Add page fetching.** Add a `scrape_url` tool so the agent reads full pages.
* **Swap the model.** Edit `config.ts`.
# Extract DESIGN.md
Turns a domain into a self-contained DESIGN.md — gathering the styleguide, screenshot, and homepage Markdown from context.dev, then composing the document in a single Claude call.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Extract DESIGN.md Agent** turns any public website into design artifacts.
The `compose_design_md` tool gathers the styleguide, brand, a homepage
screenshot, and clean page Markdown through context.dev, then returns **three
outputs**, which the agent relays verbatim:
* **DESIGN.md** — composed in **one Claude call** (screenshot passed as
a vision image): token frontmatter (`version: alpha`, colors, typography,
rounded, spacing, components) plus the canonical sections (Overview, Colors,
Typography, Layout, Elevation, Shapes, Components, Do's and Don'ts).
* **Tailwind v4 `@theme` block** — derived **deterministically** from the
styleguide + brand in `lib/derive-tokens.ts`.
* **CSS `:root` tokens** — the same tokens as vanilla CSS variables.
It follows the [designmd.supply](https://designmd.supply) pipeline — the same
prompt spec and deterministic token derivers — running on Claude.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/mastra/extract-design-md
```
Install the following dependencies:
```bash
npm install @mastra/core context.dev ai @ai-sdk/anthropic
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
├── config.ts # Agent definition (model + config)
├── instructions.md # Call compose_design_md, relay all three artifacts
├── tools/
│ └── compose_design_md.ts # Returns DESIGN.md + Tailwind + CSS
└── lib/
├── compose.ts # Fetches signals; Claude call + token derivers
├── design-md.ts # The verbatim DESIGN.md prompt spec
└── derive-tokens.ts # Deterministic Tailwind v4 @theme + CSS :root tokens
```
## Customization [#customization]
* **Data source.** The styleguide, screenshot, and Markdown are pulled through
[context.dev](https://context.dev). Set `CONTEXT_DEV_API_KEY`, and
`ANTHROPIC_API_KEY` for the model call.
* **Reshape the document.** Edit `lib/design-md.ts` — the prompt spec is
the single source of truth for the frontmatter keys, token names, and sections.
* **Swap the model.** Change the model in `lib/compose.ts` — it uses
`claude-sonnet-4-6` (vision-capable). The reference uses `gpt-5.4-mini`; any
multimodal model that can read the screenshot works.
* **Temperature.** Adjust `temperature` in `lib/compose.ts` (the reference
uses `0.2`) to trade determinism for variety.
# Customer Feedback Summary
Retrieves, categorizes, and summarizes customer feedback into an executive report with recommendations.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Customer Feedback Summary Agent** answers questions about your customer
feedback. It retrieves entries from your data source, categorizes them by theme
and segment, and produces an executive summary with representative quotes and
concrete recommendations. Reach for it to turn a backlog of reviews, tickets, or
survey responses into something a team can act on.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/mastra/feedback-summary
```
Install the following dependencies:
```bash
npm install @mastra/core
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
├── config.ts # Agent definition (model + config)
├── instructions.md # Retrieve / categorize / summarize instructions
└── tools/
└── get_feedback.ts # Paginated feedback retrieval
```
## Customization [#customization]
* **Connect your source.** Point `get_feedback` at your database, support desk,
or reviews API — keep the pagination + segment parameters.
* **Change the categories.** Edit `instructions.md` to use your own taxonomy
(severity tiers, product areas, sentiment).
* **Swap the model.** Edit `config.ts` — a larger model for nuanced
synthesis, a smaller one for speed.
* **Add a scorer.** Track summary quality across runs to tune the prompt.
# Flash Cards from PDF
Turns a PDF into study flash cards, with optional AI-generated images per concept.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Flash Cards from PDF Agent** turns a document into ready-to-study flash
cards. It extracts the text, identifies the concepts worth memorizing, and writes
concise front/back pairs — and on request, generates an illustrative image for
each card. Reach for it to build study decks from textbooks, slides, or notes.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/mastra/flashcards-pdf
```
Install the following dependencies:
```bash
npm install @mastra/core unpdf
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
├── config.ts # Agent definition (model + config)
├── instructions.md # Card-writing instructions
└── tools/
├── parse_pdf.ts # Extract text from a PDF
└── generate_image.ts # Generate an image for a concept
```
## Customization [#customization]
* **Change the card style.** Edit `instructions.md` for cloze deletions,
definitions, or Q\&A pairs.
* **Swap the image model.** Edit `generate_image.ts` to use a different provider
or skip images entirely.
* **Export the deck.** Add a tool that writes cards to Anki, CSV, or your SRS.
* **Swap the model.** Edit `config.ts`.
# GitHub PR Code Review
Fetches a GitHub pull request and returns adaptive, file-by-file code review feedback.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **GitHub PR Code Review Agent** reviews a pull request and returns actionable
feedback. It fetches the PR's files and patches, adapts its depth to the diff
size, and reports bugs, security issues, and style notes grouped by file — ending
with an approve / request-changes recommendation. Reach for it to triage reviews
or give contributors fast first-pass feedback.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/mastra/github-review
```
Install the following dependencies:
```bash
npm install @mastra/core
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
├── config.ts # Agent definition (model + config)
├── instructions.md # Adaptive, file-by-file review instructions
└── tools/
└── fetch_pr.ts # Fetches PR metadata + changed files
```
## Customization [#customization]
* **Tune the depth thresholds.** Edit `instructions.md` to change how review depth
scales with PR size.
* **Skip more files.** Add glob patterns for generated or vendored paths.
* **Post back to GitHub.** Add a tool that creates a review via the GitHub API
instead of replying in chat.
* **Swap the model.** Edit `config.ts`.
# Google Sheets Analysis
Reads, analyzes, and edits Google Sheets via the Sheets API.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Google Sheets Analysis Agent** reads a spreadsheet, answers questions about
it, and — on request — writes results back. It loads ranges in A1 notation,
computes totals/trends/joins, and updates cells only when you ask. Reach for it to
turn a sheet into a conversational analyst or to automate routine spreadsheet
edits.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/mastra/google-sheets
```
Install the following dependencies:
```bash
npm install @mastra/core
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
├── config.ts # Agent definition (model + config)
├── instructions.md # Read-before-write analysis instructions
└── tools/
├── read_range.ts # Reads a range (A1 notation)
└── update_range.ts # Writes values to a range
```
## Customization [#customization]
* **Use a service account.** Mint the access token from a service account for
unattended runs.
* **Add operations.** Add tools for appending rows, formatting, or creating sheets.
* **Guard writes.** Require explicit confirmation before any `update_range` call.
* **Swap the model.** Edit `config.ts`.
# Mastra Agents
Here you can find all the agent recipes for the Mastra framework
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
# Meeting Notes
Turns a raw meeting transcript into a structured summary, decisions, and action items.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Meeting Notes Agent** takes a raw meeting transcript and returns clean,
structured notes: a short summary, the decisions that were made, action items as
owner/task pairs, and any open questions. Reach for it to close out standups,
planning sessions, or customer calls without writing up notes by hand.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/mastra/meeting-notes
```
Install the following dependencies:
```bash
npm install @mastra/core
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
├── config.ts # Agent definition (model + config)
├── instructions.md # Notes-extraction instructions
└── tools/
└── save_notes.ts # Saves the structured notes
```
## Customization [#customization]
* **Reshape the notes.** Edit the schema in `save_notes` to add fields like
attendees, risks, or next meeting date.
* **Persist the output.** Change `save_notes` to write to Notion, Linear, or a
database instead of returning JSON.
* **Tune the extraction.** Edit `instructions.md` to change how owners are
inferred or how decisions are phrased.
* **Swap the model.** Edit `config.ts` for longer transcripts or faster runs.
# Slack
Replies to Slack mentions and DMs, scoped to the thread, via the Slack Web API.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Slack Agent** turns your agent into a Slack bot. It answers mentions and
direct messages, keeps each conversation scoped to its thread, and replies with
Slack formatting. Reach for it to put an assistant where your team already works —
an on-call helper, a docs bot, or a triage assistant.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/mastra/slack-agent
```
Install the following dependencies:
```bash
npm install @mastra/core
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
├── config.ts # Agent definition (model + config)
├── instructions.md # Slack reply style + threading instructions
└── tools/
└── post_message.ts # Posts a (threaded) Slack message
```
## Customization [#customization]
* **Verify signatures.** Add Slack request-signature verification in your event
route before invoking the agent.
* **Add more actions.** Add tools for reactions, file uploads, or opening modals.
* **Scope memory by thread.** Key agent sessions on `thread_ts` for clean context.
* **Swap the model.** Edit `config.ts`.
# Chat with Database
Introspects a database schema, converts questions to SQL, and runs read-only queries.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Chat with Database Agent** answers questions about your data in plain
English. It introspects the schema, writes the SQL, runs it read-only, and
explains the results. Reach for it to give non-SQL users a safe way to query a
database, or to prototype analytics without hand-writing queries.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/mastra/text-to-sql
```
Install the following dependencies:
```bash
npm install @mastra/core @libsql/client
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
├── config.ts # Agent definition (model + config)
├── instructions.md # Introspect → SQL → execute instructions
├── lib/
│ └── db.ts # Database client (SQLite by default)
└── tools/
├── introspect-database.ts # Lists tables and columns
└── execute-sql.ts # Runs a read-only SELECT
```
## Customization [#customization]
* **Swap the database.** Replace the client in `lib/db.ts` with Postgres or MySQL.
* **Allow writes (carefully).** The `run_query` tool blocks non-`SELECT` SQL by
default — relax that only behind explicit confirmation.
* **Add row limits.** Cap result size in `run_query` to protect against huge scans.
* **Swap the model.** Edit `config.ts`.
# Weather
Looks up the current weather for a location via the Open-Meteo API.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Summary [#summary]
The **Weather Agent** is the classic starter: ask about a place and it reports the
current conditions. It geocodes the location and fetches live weather from the
free Open-Meteo API — no key required. Reach for it as a minimal, end-to-end
example of an agent with a single tool.
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @agentcn/mastra/weather
```
Install the following dependencies:
```bash
npm install @mastra/core
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Composition [#composition]
```text
├── config.ts # Agent definition (model + config)
├── instructions.md # Weather assistant instructions
└── tools/
└── get_weather.ts # Geocode + current forecast (Open-Meteo)
```
## Customization [#customization]
* **Add a forecast.** Extend `get_weather` to request daily/hourly data.
* **Add units.** Pass a `units` parameter (metric/imperial) to the API.
* **Add more tools.** This is a good base to graduate into a travel or planning
agent.
* **Swap the model.** Edit `config.ts`.