Automatically generate and host a standards-compliant llms.txt file (following llmstxt.org) for your GoHighLevel sub-accounts. Make your funnels and pages discoverable by AI assistants like ChatGPT, Claude, and Perplexity in seconds.
- Official llms.txt Support: Full compliance with the llmstxt.org specification.
- OAuth 2.0 Integration: Secure connection to GHL sub-accounts using the official
@gohighlevel/api-client. - Automated Discovery: Deep-scans all funnels and pages within a location.
- Automatic Hosting: Uploads the generated file directly to the GHL Media Library.
- Instant Redirects: Automatically creates a
/llms.txt301 redirect on your custom domain. - SSO Dashboard: Deeply integrated into the GHL UI as a Custom Page with built-in onboarding.
- Supabase Persistence: Reliable session and token management.
- A GoHighLevel Developer Account.
- A Supabase Project (for session storage).
- An app created in the GHL Marketplace.
Create a .env file in the root directory (use .env.example as a template):
# GHL API Keys
GHL_CLIENT_ID="your_client_id"
GHL_CLIENT_SECRET="your_client_secret"
GHL_REDIRECT_URI="http://localhost:3000/api/auth/callback"
# App Configuration
NEXT_PUBLIC_APP_URL="http://localhost:3000"
# Supabase Configuration
NEXT_PUBLIC_SUPABASE_URL=""
NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY=""
SUPABASE_SERVICE_ROLE_KEY=""- Go to your Supabase Dashboard -> SQL Editor.
- Copy the contents of
supabase_schema.sql(found in the root of this project). - Run the script to create the
sessionstable.
npm installnpm run dev- Initialize OAuth: Open
http://localhost:3000and click "Connect GoHighLevel". - Authorize: Select a GHL sub-account and authorize the app.
- Dashboard Access: After redirect, you'll land on
/dashboard. - Generate: Enter a Site Name and click "Generate llms.txt".
- Verify: Check your GHL Media Library for the new
llms.txtfile and verify the redirect in your domain settings.
To test the SSO logic inside the GHL UI:
- Go to your GHL Marketplace App Settings.
- Set the Iframe URL to
http://localhost:3000/dashboard. - Open a GHL Sub-account β Settings β Custom Pages.
- Launch your app. The dashboard will automatically detect your
locationIdvia query parameters.
Follow the Publishing Guide for full details.
GHL requires public URLs for:
- Privacy Policy: your-domain.com/privacy
- Terms of Service: your-domain.com/terms
- Support Email:
[email protected]
Ensure your app has the following scopes in the Developer Portal:
funnels/funnel.readonlyfunnels/page.readonlyfunnels/redirect.readonlyfunnels/redirect.writemedias.readonlymedias.writelocations.readonly
/app/api/auth: OAuth initiation and callback handlers./app/api/llms: Generation and upload endpoints./app/dashboard: The main GHL integrated UI./app/privacy&/app/terms: Legal documentation pages./lib/ghl: GHL SDK wrappers and client logic./lib/supabase: Supabase client and session management./public: Assets including the official logo and app icon.
This project is licensed under the MIT License - see the LICENSE file for details.
Developed with β€οΈ by Zeon Studio.