pipedog is an unofficial community port of Pipecat, not affiliated with Daily.
pipedog

Docs for AI tools

Read these docs from an LLM or coding agent, with llms.txt, llms-full.txt and a Markdown version of every page.

Every page of these docs is also available as plain Markdown, for LLMs and coding agents. The Markdown is generated at build time from the same source as the HTML, so it is always in sync.

llms.txt

/llms.txt is the index: every page, by section, with its title, its description and a link to its Markdown. It follows the llms.txt convention. Give an agent this URL first, so it can pick the pages it needs.

/llms-full.txt is every page in one file, for tools that take one big context.

A page as Markdown

Add .md to a page's URL:

PageMarkdown
/pipedog/docs//pipedog/docs.md
/pipedog/docs/concepts/frames//pipedog/docs/concepts/frames.md
/pipedog/docs/services/stt/deepgram//pipedog/docs/services/stt/deepgram.md

Each file starts with the page's title, description and URL. Option tables are rendered as Markdown tables, and code samples are inlined from the type-checked snippets.

On every page

The buttons under each page title:

  • Copy page copies the page's Markdown to the clipboard.
  • Open has the Markdown view, the page's source on GitHub, and links that open ChatGPT, Claude, Cursor or Scira with a prompt to read the page.

MCP server

@pipedog/mcp is a local MCP server for these docs. Coding agents (Claude Code, Cursor, VS Code, Windsurf and any other MCP client) start it over stdio and get four tools:

ToolWhat it does
list_pages(section?)Every page's slug, title and description, by section. section is a sidebar section (Services), a group (Speech-to-text) or a slug prefix (services/stt).
search_docs(query, limit?)Keyword search (BM25) over the page sections: the slug, title, section heading and a snippet.
read_page(slug)A page's full Markdown, e.g. services/stt/deepgram.
get_api(symbol)An exported class, function or type of the @pipedog/* packages: its import path, its constructor and options interface, its declaration from the .d.ts and the pages that document it.

Each page is also an MCP resource, pipedog://docs/<slug>, and llms.txt is pipedog://llms.txt.

The docs ship inside the package: each release bundles the docs and the API of that release, so the server works offline and matches the pipedog version it came with. To keep the two together, pin it to your pipedog version: npx -y @pipedog/mcp@<version>. With --live (or PIPEDOG_MCP_LIVE=1) it fetches the current docs from this site instead, and falls back to the bundled ones if the site doesn't answer within 10 seconds (--timeout <ms>). It needs Node.js 20 or later.

From pipedog init

pipedog init writes the entries below into a new project's .mcp.json, .cursor/mcp.json and .vscode/mcp.json, next to an AGENTS.md that tells the agent to use them. --no-mcp skips it.

Claude Code

claude mcp add pipedog -- npx -y @pipedog/mcp

Add --scope project to write it to the project's .mcp.json, for everyone on the repository.

Cursor

.cursor/mcp.json in the project, or ~/.cursor/mcp.json for every project:

{
  "mcpServers": {
    "pipedog": {
      "command": "npx",
      "args": ["-y", "@pipedog/mcp"]
    }
  }
}

VS Code

.vscode/mcp.json in the project (VS Code uses servers, not mcpServers):

{
  "servers": {
    "pipedog": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@pipedog/mcp"]
    }
  }
}

Windsurf

~/.codeium/windsurf/mcp_config.json (in Devin Desktop, Windsurf's successor, ~/.config/devin/mcp_config.json):

{
  "mcpServers": {
    "pipedog": {
      "command": "npx",
      "args": ["-y", "@pipedog/mcp"]
    }
  }
}

Options

OptionEnvironment variable
--livePIPEDOG_MCP_LIVE=1Read the current docs from the site, falling back to the bundled ones.
--docs-url <url>PIPEDOG_DOCS_URLThe docs site for --live (default: this site).
--timeout <ms>PIPEDOG_MCP_TIMEOUT_MSHow long --live waits for the site (default 10000).

With Bun, bunx @pipedog/mcp works too. For live mode, add "--live" to args, or -- npx -y @pipedog/mcp --live for Claude Code.

pipedog is an unofficial community TypeScript port of Pipecat. It is not affiliated with or endorsed by Daily or the Pipecat project.

Portions adapted from the Pipecat documentation, Copyright (c) 2024–2025 Daily, BSD-2-Clause (see apps/docs/LICENSE-pipecat-docs).

On this page