Skip to content
GEO AI
AnalyzerCLIDocumentationSpecificationContact
Documentation

Getting Started

  • Introduction
  • Quick Start
  • Choose Your Package

GEO Specification

  • Overview
  • llms.txt
  • AI Metadata
  • Crawler Rules
  • Structured Signals
  • Scoring
  • Recommendations

Packages

  • GEO AI Core
  • GEO AI Next
  • GEO AI NestJSnew
  • NestJS — Module Setup
  • NestJS — Configuration
  • NestJS — Service API
  • NestJS — Middleware
  • NestJS — Guard
  • NestJS — Interceptor
  • NestJS — Decorators
  • NestJS — Content Provider
  • GEO AI Woo
  • GEO AI Shopify

Analyzer

  • Overview
  • Scoring
  • Recommendations

CLI

  • GEO AI CLI

Integrations

  • Laravelsoon

Reference

  • Configuration
  • API Reference
  • FAQ
DocsPackagesNestjsInterceptor

GeoAIInterceptor

Optional interceptor that appends the Link header pointing to llms.txt on all responses from the decorated controller or handler.

Per-controller

typescript
import { Controller, UseInterceptors } from '@nestjs/common';
import { GeoAIInterceptor } from 'geo-ai-nest';

@Controller('products')
@UseInterceptors(GeoAIInterceptor)
export class ProductsController {
  // All responses from this controller include the Link header
}

Global

typescript
// main.ts
const app = await NestFactory.create(AppModule);
app.useGlobalInterceptors(app.get(GeoAIInterceptor));

Via module config

Use injectLinkHeader: true in module config to inject the header via middleware on ALL routes without using the interceptor directly:

typescript
GeoAIModule.forRoot({
  // ...
  injectLinkHeader: true,
})
PreviousNestJS — GuardNextNestJS — Decorators

On this page

  • Per-controller
  • Global
  • Via module config
GEO AI

AI Search Optimization

AnalyzerCLIDocumentationSpecificationContactPrivacy Policy

© 2026 GEO AI · Open Source · MIT License