Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@mdream/action

Package Overview
Dependencies
Maintainers
1
Versions
50
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@mdream/action

GitHub Action for mdream llms.txt generation

Source
npmnpm
Version
1.0.3
Version published
Maintainers
1
Created
Source

@mdream/action

GitHub Action that processes prerendered HTML files into llms.txt artifacts for CI/CD workflows.

Setup

Add the action to any workflow step after your site build completes. Requires Node.js to be available in the runner environment.

- uses: harlan-zw/mdream@v1
  with:
    glob: 'dist/**/*.html'
    site-name: My Documentation
    description: Technical documentation and guides
    origin: 'https://mydocs.com'

Usage

Basic

- name: Generate llms.txt artifacts
  uses: harlan-zw/mdream@v1
  with:
    glob: 'dist/**/*.html'
    site-name: My Documentation
    description: Technical documentation and guides
    origin: 'https://mydocs.com'

Generates llms.txt, llms-full.txt, and a md/ directory in the current working directory.

Full Workflow

name: Generate LLMs.txt

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

jobs:
  generate-llms-txt:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '24'

      - name: Install dependencies
        run: npm ci

      - name: Build documentation
        run: npm run build

      - name: Generate llms.txt artifacts
        id: llms
        uses: harlan-zw/mdream@v1
        with:
          glob: 'dist/**/*.html'
          site-name: My Documentation
          description: Technical documentation and guides
          origin: 'https://mydocs.com'
          output: dist

      - name: Upload llms.txt artifacts
        uses: actions/upload-artifact@v4
        with:
          name: llms-txt-artifacts
          path: |
            dist/llms.txt
            dist/llms-full.txt
            dist/md/

      - name: Deploy to GitHub Pages
        if: github.ref == 'refs/heads/main'
        uses: peaceiris/actions-gh-pages@v3
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          publish_dir: ./dist

Using Outputs

Reference the action outputs in subsequent steps:

- name: Generate llms.txt artifacts
  id: llms
  uses: harlan-zw/mdream@v1
  with:
    glob: 'dist/**/*.html'
    site-name: My Docs
    description: My documentation site
    origin: 'https://mydocs.com'
    output: dist

- name: Print generated file paths
  run: |
    echo "llms.txt: ${{ steps.llms.outputs.llms-txt-path }}"
    echo "llms-full.txt: ${{ steps.llms.outputs.llms-full-txt-path }}"
    echo "Markdown files: ${{ steps.llms.outputs.markdown-files }}"

Verbose Logging

- name: Generate llms.txt artifacts
  uses: harlan-zw/mdream@v1
  with:
    glob: 'dist/**/*.html'
    site-name: My Docs
    description: My documentation site
    origin: 'https://mydocs.com'
    verbose: 'true'

API Reference

Inputs

InputRequiredDefaultDescription
globYesGlob pattern to match HTML files (e.g., dist/**/*.html).
site-nameYesName of your site. Used as the heading in generated files.
descriptionYesDescription of your site content. Rendered as a blockquote below the site name.
originYesBase URL of your site (e.g., https://mysite.com). Used to construct full page URLs.
outputNo.Output directory for generated files. Created recursively if it does not exist.
chunk-sizeNo4096Chunk size for streaming processing.
verboseNofalseEnable verbose logging. Prints configuration values to the action log.

Outputs

OutputDescription
llms-txt-pathPath to the generated llms.txt file.
llms-full-txt-pathPath to the generated llms-full.txt file.
markdown-filesJSON array of paths to all generated individual Markdown files.

Generated Files

FileDescription
llms.txtIndex listing all pages with titles, URLs, and descriptions.
llms-full.txtFull Markdown content of every page with YAML frontmatter and a table of contents.
md/<path>.mdIndividual Markdown files mirroring the site URL hierarchy.

URL Path Resolution

HTML file paths are converted to URL paths automatically:

File PathResolved URL
dist/index.html/
dist/about.html/about
dist/docs/getting-started.html/docs/getting-started
dist/blog/2024/post.html/blog/2024/post

The .html extension is stripped. index.html files resolve to their parent directory path. The origin input is prepended to construct full URLs in the output.

Metadata Extraction

Metadata is extracted from each HTML file in the following priority order:

Title: <title> tag, then <meta property="og:title">. Description: <meta name="description">, then <meta property="og:description">.

Descriptions are truncated to 100 characters in the llms.txt listing. Full metadata is embedded as YAML frontmatter in llms-full.txt.

License

MIT

FAQs

Package last updated on 20 Mar 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts