HeadlessX

saifyxpro活跃维护

自托管的无头浏览器自动化平台,基于 Camoufox(Firefox)实现极低检测率,适合需要隐蔽抓取和规模化自动化的场景。

The undetected self-hosted browser automation platform. Powered by Camoufox (Firefox) for 0% detection rates. Built for speed, privacy, and scalability.

v2.1.2发布于 2026-03-25 09:59 UTC2,358star +2 / 7 天282fork同步于 2026-11-10 11:44 UTC

怎么上手

由 README 提炼,执行前请确认
npm install -g @headlessx-cli/core
headlessx init
headlessx status
硬件要求按 README 说明

README 未给出显存要求;最低 2 核 CPU、4 GB 内存、10 GB 磁盘,推荐 4 核以上、8-16 GB 内存、20 GB+ SSD;支持 macOS、Linux 及 Windows 11 WSL2。

有 Docker 镜像
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

自托管浏览器自动化平台,用 Camoufox 反检测抓取网页、搜索并接入 Agent 工作流

自托管的无头浏览器自动化平台,基于 Camoufox(Firefox)实现极低检测率,适合需要隐蔽抓取和规模化自动化的场景。

核心能力

  • 用 Camoufox(Firefox)驱动浏览器降低被检测概率
  • 提供抓取、爬取、站点地图、正文提取与截图算子
  • 内置 Google AI Search、Tavily、Exa、YouTube 搜索算子
  • 队列化任务并管理日志、API Key、代理与配置
  • 通过 /mcp 暴露远程 MCP 端点供 Agent 调用

容易踩的坑

developer 与 production 模式都强制依赖 Docker 和 Compose v2,Postgres 与 Redis 由 Docker 提供;Google AI Search 首次使用前必须在面板点 Build Cookies 手动过一次验证;YouTube 算子需 YT_ENGINE_URL 指向健康的 yt-engine 服务才可用,且本地默认端口非 3000/8000(web=34872、api=38473)。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v2.1.2
  1. v2.1.2v2.1.2 - 2026-03-25最新正式版2026-03-25 · 2026-03-25 09:59 UTC

    HeadlessX v2.1.2

    Released on March 25, 2026

    HeadlessX v2.1.2 is the current CLI-first release for self-hosted operators, dashboard workflows, and agent-ready automation.

    What's new

    CLI-first setup and updates

    • published lifecycle flow around headlessx init, start, stop, restart, status, doctor, logs, and init update
    • modern interactive prompts with @clack/prompts
    • improved health checks, loopback fallback, Docker log handling, and VPS operator UX
    • workspace updates now reconcile missing env keys instead of only pulling the repo

    Better self-hosting defaults

    • rare default public host ports to avoid local conflicts:
      • web 34872
      • api 38473
      • postgres 35432
      • redis 36379
      • html-to-md 38081
      • yt-engine 38090
    • new infra/domain-setup scaffold with Caddy for domain-based production deployment
    • headlessx restart rebuilds Docker for self-host and production installs

    Docker and browser runtime hardening

    • fixed Docker startup issues around native dependencies and browser runtime boot
    • switched API browser runtime to headfox-js
    • stabilized browser release fetching for Linux Docker builds
    • restored yt-engine in the full Docker stack
    • web now waits for a healthy API before startup

    Google AI Search improvements

    • added shared-profile Google cookie bootstrap
    • new Build Cookies and Stop Browser flow in the dashboard
    • first Google run now requires one manual bootstrap session on the shared persistent profile
    • improved structured errors and runtime setup messaging

    Dashboard and operator UX

    • improved operators catalog startup recovery
    • clarified operator availability errors, especially for YouTube
    • improved website crawl results with page overlay inspection
    • hardened crawl SSE behavior and reconnect flow

    Important changes

    • older installs should update with:
      • headlessx init update
      • headlessx restart
    • Google AI Search now requires a one-time cookie bootstrap before first real use
    • full Docker includes yt-engine by default
    • the tracked seeded browser profile has been removed; runtime profile data is now created and persisted on demand

    Recommended update commands

    Existing install on main

    npm install -g @headlessx-cli/core@latest
    headlessx init update
    headlessx restart
    headlessx status
    headlessx doctor
    
  2. v2.1.1v2.1.1 - 2026-03-202026-03-20 · 2026-03-20 15:00 UTC
    查看更新说明

    HeadlessX v2.1.1

    Released: 2026-03-20

    Highlights

    HeadlessX v2.1.1 focuses on operator-first API cleanup, Google AI Search improvements, a published CLI flow, Docker completeness, and runtime stability across the dashboard and backend.

    What Changed

    Operator-first routing

    • reorganized public API routes under /api/operators/*
    • added operator status at /api/operators/status
    • reorganized playground routes under /playground/operators/*
    • stabilized Website Scrape as a single frontend route with format switching inside the UI

    Persistent browser runtime

    • added one shared persistent Camoufox profile in the API
    • kept cookies, storage, and browser state on disk
    • made runtime prefer apps/api/data first, then apps/api/default-data
    • removed the old forced 1920x1080 browser size and improved viewport behavior

    Google AI Search

    • renamed the old Google flow to Google AI Search
    • added region, language, and time-filter targeting
    • kept plain google.com as the default start flow unless targeting is explicitly set
    • improved SSE stability and AI overview rendering
    • made CAPTCHA progress messaging appear only when a real CAPTCHA is detected
    • aligned the Google workbench UI with the Website UI

    CLI

    • published the CLI as @headlessx-cli/core
    • standardized the command as headlessx
    • made CLI output markdown-first by default
    • updated login, auth, operator, and Google AI Search command flows

    Crawl and queue reliability

    • fixed crawl cancel behavior
    • fixed the enqueue/cancel race window
    • improved worker-side cancellation handling
    • fixed crawl page budgeting
    • made Website Crawl use the advanced timeout value correctly

    Docker and self-hosting

    • added yt-engine to the full Docker stack
    • made full Docker closer to one-command setup
    • aligned setup and API docs with the current runtime model
    • documented that Website Crawl specifically requires Redis and the worker

    Settings and UX cleanup

    • simplified proxy settings UI
    • replaced browser-native alerts with in-app feedback
    • fixed operator Stop button behavior across workbenches
    • cleaned settings layout and section structure

    Docs and skills

    • refreshed setup, API, CLI, and docs-site content for the current release
    • added CLI and Agent Skills documentation
    • added the HeadlessX CLI skill install flow for supported AI agents

    Included Surfaces

    • Website
    • Google AI Search
    • Tavily
    • Exa
    • YouTube
    • Jobs
    • Remote MCP
    • Published CLI

    Notes

    • full Docker now includes yt-engine
    • headlessx uses the same backend API and browser state as the dashboard
    • Website Crawl remains the only website operator flow that requires Redis and the queue worker
  3. v2.1.0v2.1.0 - 2026-03-162026-03-16 · 2026-03-16 09:52 UTC
    查看更新说明

    HeadlessX v2.1.0

    Released on March 16, 2026

    Summary

    HeadlessX v2.1.0 expands the platform with new scraper workspaces, queue-backed website workflows, remote MCP support, updated setup and API docs, refreshed branding assets, and Docker fixes for browser runtime dependencies.

    Highlights

    Platform and Dashboard

    • removed profile-based runtime and session flows
    • simplified the dashboard around a global browser/runtime model
    • improved settings, sidebar behavior, overview, logs, API keys, and playground UX
    • added loading skeletons and aligned scraper workbench surfaces
    • updated sidebar resource links for hosted docs and changelog
    • refreshed version surfaces to v2.1.0

    Website Workflows and Jobs

    • added queue-backed website workflows for scrape, crawl, map, and extraction
    • improved worker and Redis handling for async jobs
    • tightened stream progress and queue status behavior
    • returned clearer queue-unavailable responses when Redis is missing

    New Scraper Workspaces

    • added Tavily workspace
    • added Exa workspace
    • added YouTube engine integration and workspace
    • removed unsupported YouTube web and tv fallback behavior

    MCP

    • added remote MCP endpoint at /mcp
    • MCP now uses normal dashboard-created API keys
    • kept DASHBOARD_INTERNAL_API_KEY out of MCP access
    • improved job access scoping for queue and stream status

    Docs and Setup

    • added setup guide
    • added API reference
    • refreshed README for v2.1.0
    • added CONTRIBUTING guide
    • aligned hosted docs links
    • expanded env documentation to use the full current .env.example
    • removed unused public env settings from docs

    Docker

    • Prisma migrations now run automatically on API and worker startup
    • added missing browser libraries for Docker runtime:
      • libgtk-3-0
      • libx11-xcb1

    Live Scrapers

    • Website
    • Google SERP
    • Tavily
    • Exa
    • YouTube

    Coming Soon

    • Google Maps
    • Twitter / X
    • LinkedIn
    • Instagram
    • Amazon
    • Facebook
    • Reddit

    Important Changes

    • profile-based flows were removed
    • dashboard runtime is now global rather than profile-scoped
    • MCP uses user-created API keys, not the dashboard internal key
    • YouTube web and tv fallback behavior was removed

    Docs

    Included Work

    • feat: add tavily playground and repo cleanup
    • feat: add exa search workspace and unify playground shells
    • feat: add youtube engine and unify playground workflows
    • feat: add playground loading skeletons and simplify youtube clients
    • docs: add setup and API guides and align scraper run actions
    • feat(api): add remote MCP server and secure job access
    • docs: refresh scraper visuals in README
    • docs: refresh v2.1.0 setup and contributor guidance
    • assets: update horizontal logo
    • docs: remove unused env settings
    • fix(docker): add missing browser libraries

    Deployment Notes

    • PostgreSQL and Redis are required for full production use
    • website crawl requires Redis plus the worker
    • Docker users should follow the setup guide
    • Docker browser runtime now includes the missing Linux libraries required by the API container
  4. v2.0.4v2.0.4 - 2026-03-072026-03-07 · 2026-03-07 14:23 UTC
    查看更新说明

    🖥️ UI & Dashboard UX Refactor

    • Flatten Dashboard Chrome: Flattened the shared dashboard surface system by removing shadow-heavy styling, disabling blur and smooth transitions, and strengthening borders across cards, dialogs, lists, and controls.
    • Normalize Layout Rhythm: Unified the dashboard shell around a single content width and flatter bordered surface system so page headers, cards, and scraper workspaces align on the same design rhythm.
    • Unify Scraper Workspace UX: Aligned the Website Scraper workspace with the Google SERP workspace by matching the header shell, page framing, and configuration card structure. Converted output and config options into dropdown-style controls.
    • Header Structure: Turned page headers into bordered section shells for a clearer screen structure.
    • Logs Route Redesign: Added a full-width /logs request workspace with a denser table, compact filter toolbar, and an overlay log details dialog to prevent compressing the table view.
    • Sidebar Adjustments: Kept Headless Mode enabled by default in settings, moved the collapse control into the header, and updated the primary logo text color to black and blue.

    🛠️ Backend API Enhancements

    • Automated Cloudflare Challenge Solver: Added automated Cloudflare turnstile bypass logic with simulated human mouse movements directly to the API, alongside retry logic and SSE progress rendering for the frontend.
    • Markdown Improvements: Integrated Mozilla Readability & GitHub Flavored Markdown for improved markdown extraction, along with expanding/collapsing results panel UI reliability enhancements.
    • Documentation: Added demo GIF and Cloudflare bypass proof images to the README.

    🔗 Related GitHub Commits

    • refactor(web): flatten dashboard chrome and unify scraper workspace UX (@saifyxpro)
    • refactor(web): normalize dashboard layout and improve logs workspace UX (@saifyxpro)
    • feat(api): add automated cloudflare challenge solver (@saifyxpro)
    • feat(api): enhance cloudflare challenge solver with retry and SSE progress (@saifyxpro)
    • fix(website-scraper): improve markdown extraction and results panel expand button reliability (@saifyxpro)
    • chore(web): update version to v2.0.4 (@saifyxpro)
    • style(web): update primary logo text color to black and blue (@saifyxpro)
    • docs(readme): add demo gif and cloudflare bypass proof images (@saifyxpro)
  5. v2.0.3v2.0.3 - 2026-03-072026-03-06 · 2026-03-06 22:55 UTC
    查看更新说明

    🔒 Security

    • Dashboard Auth Hardening: Removed the public dashboard-internal fallback key and localhost trust path from the backend auth layer.
    • Protected Admin Routes: Added API key protection to dashboard, profile, proxy, and job management endpoints that were previously exposed without auth.
    • Secret Storage Improvements:
      • API keys are now stored as hashes instead of plaintext.
      • Stored proxy and profile passwords are now encrypted at rest.
      • Dashboard and API responses now redact credential values instead of returning raw secrets.
    • Server-Side Dashboard Proxy: The dashboard now forwards /api/* requests through a Next.js server route so browser clients no longer send reusable internal keys.

    🛠️ Reliability & Behavior

    • Cloudflare Handling: Website scraping now fails fast with explicit Cloudflare challenge metadata instead of returning challenge pages as successful output.
    • REST/SSE Output Parity: Aligned html-js behavior between the REST API and streaming endpoint to reduce timing drift on dynamic pages like Shopee.
    • DOM Stability Waiting: Added a DOM stability wait before HTML extraction and screenshot capture so selector matches do not return partially rendered documents.
    • Streaming Job Cancellation: Job cancellation now interrupts active scraping work instead of only updating job status in the UI.
    • PDF Capability Cleanup: Removed unsupported PDF scraping/export paths from the API contract and dashboard UI.

    🖥️ Developer Experience

    • Fresh Install Fixes: Fixed a frontend startup failure caused by an invalid .npmrc encoding and resolved web/API port conflicts during local development.
    • Docker Fix: Corrected the web Dockerfile path mismatch so Compose builds now target the expected file.
    • Security Environment Variables: Added and documented required DASHBOARD_INTERNAL_API_KEY and CREDENTIAL_ENCRYPTION_KEY values for secure local and Docker deployments.
    • Browser Profile Stability: Fixed Firefox preference merging so timezone overrides no longer wipe other stealth-related preferences.

    📚 Documentation & UI

    • Documentation Navigation: Updated dashboard and docs links to point to the introduction page and removed obsolete sidebar references.
    • Landing Page Messaging: Removed outdated PDF export claims so the marketing copy matches the current product surface.
    • Changelog Coverage: This release now links the supporting GitHub issues and commit history directly for easier auditability.

    🐛 GitHub Issues

    • #34 Can't run Headless:
      • Fixed fresh-install startup failures in the frontend dev workflow.
      • Resolved .npmrc encoding problems and port collisions between web and API processes.
    • #32 Frontend response is different from backend:
      • Fixed REST and streaming output drift for JS-rendered pages.
      • Added DOM stabilization so API responses now match dashboard-rendered results more closely.

    🔗 Related GitHub Commits

    • a9e2367 chore: remove obsolete files and update documentation links in Sidebar component
    • e1b91d9 feat: update docs link to point to introduction
    • 7eb4a45 feat(api,web): improve scrape reliability and remove unsupported PDF flow
    • 27bd3e3 fix(web): resolve dev startup failures on fresh installs
    • 0abfb20 fix(api): align REST and SSE HTML rendering for dynamic pages
    • [`3c

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    HeadlessX Logo

    Self-hosted operators for website extraction, search, and agent workflows powered by Headfox JS and Camoufox

    Version Runtime Next.js License

    Setup Guide • API Reference • MCP


    HeadlessX Demo

    What's next (v2.5)

    I'm working on HeadlessX v2.5. I know the current dashboard and a lot of the system need a real redesign — cleaner UI, better UX, and a setup that actually fits how people use this with agents. That's what I'm building now.

    v2.1.2 is still what you run today. v2.5 will replace the playground-style UI and add a proper agent chat that calls operators. Live agentic browser sessions and taught recipes stay in Helium CLI — HeadlessX will not ship Interact or YAML workflows. Headed operator work (Google cookie setup, later logins) will still embed KasmVNC in the dashboard so keyboard and mouse go into the real browser window. Postgres will ship in Docker only (no Supabase). Platform install will be headlessx-setup: pick self-host or VPS, auto-detect OS (self-host on Linux/macOS/Windows; VPS Linux only), check Docker/npm/Bun, then on VPS validate DNS before start and print the Dashboard/API links. There is no developer mode.

    v2.5 launches Hexium (hexium-browser / Playwright launch() → Chrome 151). Not Camoufox. Not CloakBrowser.

    v2.5 will live under HeadlessXLabs. This repo stays v2.1 on @saifyxpro until that ship. Watch HeadlessXLabs and the releases here until the move.

    Inspired by

    Firecrawl zquestz/s Steel Browser pdf--inspector obscura agent-browser hexium-browser

    Overview

    HeadlessX is a self-hosted scraping platform with a web dashboard, protected API, queue-backed workflows, and a remote MCP endpoint.

    Current live operator surfaces:

    • Website operator: scrape, crawl, map, content extraction, screenshots
    • Google AI Search
    • Tavily
    • Exa
    • YouTube
    • Queue jobs, logs, API keys, proxy management, and config management
    • Remote MCP over /mcp

    Important operator setup notes:

    • Google AI Search requires a one-time Build Cookies run in the dashboard before the first search
    • the saved Google session is kept in the shared persistent browser profile and reused later
    • the YouTube workspace is active only when YT_ENGINE_URL points at a healthy yt-engine service

    What Changed In v2.1.2

    • Added the published HeadlessX CLI bootstrap flow with headlessx init, start, logs, stop, restart, status, and doctor
    • Upgraded the CLI prompt UX with guided modern setup and login prompts
    • Added Docker plus Caddy production domain scaffolding under infra/domain-setup
    • Moved local and Docker host defaults to rarer ports to avoid conflicts with common 3000 and 8000 stacks
    • Refreshed setup, CLI, and self-hosting docs around the current operator-first platform layout

    Sponsors

    I'm thankful to the people and companies who support HeadlessX. NodeMaven, Thordata, and Mango Proxy have been solid partners — that support is a big part of why this project can keep moving. If you need proxies for scraping or automation, start with them.

    Operators

    HeadlessX Live Operators

    Coming Soon

    OperatorDescriptionStatus
    Google MapsExtract business listings, reviews, categories, ratings, contact details, opening hours, and location metadata from Google Maps search results.Planned
    Twitter / XCapture profiles, posts, engagement metrics, media, hashtags, and conversation threads from public X pages.Planned
    LinkedInExtract public company and profile data, role details, locations, website links, and business metadata from LinkedIn surfaces.Planned
    InstagramCollect public profile data, captions, post metadata, media links, reels references, and engagement signals.Planned
    AmazonExtract product listings, seller data, pricing, ratings, reviews, availability, and catalog metadata from Amazon pages.Planned
    FacebookCapture public page data, posts, about fields, links, follower counts, and engagement metadata from Facebook pages.Planned
    RedditExtract subreddit, post, comment, author, score, flair, and discussion metadata from Reddit threads and listings.Planned
    ThomasNet Suppliers Real-Time ScraperExtract 70+ ThomasNet supplier fields including emails, phone numbers, company data, products, locations, certifications, and more.Planned
    TLS Appointment BookerAutomate TLS appointment availability checks and booking workflows with support for high-frequency monitoring and retry-safe session handling.Planned
    GlobalSpec Suppliers ScraperExtract 200,000+ industrial supplier profiles from GlobalSpec Engineering360 with contact data, business type, product catalogs, specs, and datasheets.Planned
    ImportYeti ScraperExtract supplier profiles, shipment records, and trade data from ImportYeti with 60+ fields including HS codes, shipping lanes, carriers, bills of lading, trading partners, and contact info.Planned
    MakersRow ScraperExtract 11,600+ US manufacturer profiles from MakersRow with email, phone, address, website, GPS coordinates, capabilities, ratings, gallery images, and business hours.Planned

    Agent Surfaces Coming Soon

    SurfaceDescriptionStatus
    Web AI Agent (/web)Interactive AI agent workspace inside the dashboard that can use all HeadlessX operators and related workflow actions, including Website, Google AI Search, Tavily, Exa, and YouTube.Planned

    Agent Skills

    You can add the HeadlessX CLI skill to AI coding agents such as Cursor, Claude Code, Warp, Windsurf, OpenCode, OpenClaw, Antigravity, and similar tools that support the skills installer flow.

    npx skills add https://github.com/saifyxpro/HeadlessX --skill cli
    

    This installs the HeadlessX CLI skill from this repository so the agent can use the published headlessx command and follow the packaged usage guidance.

    UI Screenshots

    Google AI Search (Recently Tested with Arabic Lang & Region)

    Google AI Search UI

    Website

    Website UI

    Proof

    BrowserScan

    BrowserScan

    Cloudflare Challenge

    Pixelscan

    Pixelscan

    Proxy Validation

    Proxy Validation

    Quick Start

    System Requirements

    ItemMinimumRecommended
    OSmacOS, Linux, or Windows 11 with WSL2Ubuntu 22.04+/24.04, Debian 12, or Windows 11 with WSL2
    CPU2 cores4+ cores
    RAM4 GB8-16 GB
    Disk10 GB free20+ GB SSD
    Networkoutbound internet for installs, browser downloads, and APIsstable broadband
    DockerDocker Engine + Compose v2current stable

    Mode requirements

    Developer — apps run on the host; Docker is required. Postgres and Redis run in Docker Compose. You still need Node.js, pnpm, and Git for apps/web, apps/api, and the worker.

    Production — the full stack runs in Docker, plus a domain layer (Caddy). You need:

    • a public server / VPS with Docker + Compose v2
    • two hostnames, for example dashboard.yourdomain.com and api.yourdomain.com
    • DNS A / AAAA records pointing both names at the server
    • ports 80 and 443 open (Caddy issues TLS)
    • an email for Let's Encrypt (--caddy-email)
    headlessx init --mode developer
    headlessx init --mode production --api-domain api.example.com --web-domain dashboard.example.com --caddy-email [email protected]
    

    Runtime Dependencies

    • Node.js 22+ and pnpm 10.32.1+ (developer mode; apps on the host)
    • Git
    • Docker + Compose v2 (required for developer and production)
    • Python/uv for yt-engine
    • Go for the HTML-to-Markdown sidecar (v2.1.2)

    PostgreSQL and Redis are not a separate install in either mode — they come from Docker.

    If your machine does not already use the pinned pnpm release, align it with:

    corepack enable
    corepack use [email protected]
    

    Practical Sizing Notes

    • 4 GB RAM is enough for light local testing
    • 8 GB RAM is the better baseline for the web, API, worker, Redis, and browser runtime together
    • 16 GB RAM is safer for heavier crawl jobs, YouTube flows, or multiple concurrent browser tasks

    CLI Bootstrap

    HeadlessX is now CLI-first for installation and local lifecycle management.

    npm install -g @headlessx-cli/core
    headlessx init
    headlessx status
    headlessx doctor
    

    The CLI bootstraps HeadlessX into ~/.headlessx by default and supports two setup modes:

    • developer: clone the repo, keep app services local, Docker required for Postgres and Redis
    • production: full Docker stack plus Caddy/domains (dashboard.yourdomain.com and api.yourdomain.com)

    Useful examples:

    headlessx init --mode developer
    headlessx init --mode production --api-domain api.example.com --web-domain dashboard.example.com --caddy-email [email protected]
    headlessx init update
    headlessx init update --branch develop
    headlessx start
    headlessx logs
    headlessx restart
    headlessx stop
    

    For existing VPS or Docker installs, use headlessx init update to pull the latest repo state into ~/.headlessx/repo, reconcile missing env keys for the saved mode, then run headlessx restart. For production, headlessx restart rebuilds Docker images before bringing the stack back up.

    HeadlessX intentionally uses uncommon localhost defaults to avoid conflicts with other tools: web=34872, api=38473, postgres=35432, redis=36379, html-to-md=38081, yt-engine=38090.

    For deeper setup details, direct repo development, env files, Docker internals, and MCP/client notes, see docs/setup-guide.md.

    Google AI Search First Run

    The first Google AI Search run now uses a shared persistent browser profile instead of a seeded browser profile committed into the repo.

    1. Open /playground/operators/google/ai-search
    2. Click Build Cookies
    3. Let the shared browser open Google
    4. Browse normally and solve any Google or reCAPTCHA prompt once
    5. Click Stop Browser to save the profile

    After that, the saved shared profile is reused for later Google searches.

    • Docker and VPS installs persist it in the browser_profile volume
    • local repo runs persist it under apps/api/data/browser-profile/default
    • the old tracked apps/api/default-data/browser-profile bundle has been removed

    YouTube Workspace

    The YouTube operator is live only when YT_ENGINE_URL is configured.

    • CLI developer and production init flows write it automatically
    • custom local setups must point YT_ENGINE_URL at a reachable yt-engine instance

    API Summary

    All non-health backend routes are protected with x-api-key.

    Core backend surfaces:

    • GET /api/health
    • GET/PATCH /api/config
    • GET /api/dashboard/stats
    • GET /api/logs
    • GET/POST/PATCH/DELETE /api/keys
    • proxy CRUD under /api/proxies
    • website operator routes under /api/operators/website/*
    • Google AI Search routes under /api/operators/google/ai-search/*
    • Tavily routes under /api/operators/tavily/*
    • Exa routes under /api/operators/exa/*
    • YouTube routes under /api/operators/youtube/*
    • queue job routes under /api/jobs/*
    • remote MCP endpoint at /mcp

    See the full route reference in docs/api-endpoints.md.

    MCP

    HeadlessX exposes a remote MCP endpoint from the API:

    http://localhost:38473/mcp
    

    Use a normal API key created from the dashboard API Keys page.

    Do not use DASHBOARD_INTERNAL_API_KEY for MCP clients.

    Example client config:

    {
      "mcpServers": {
        "headlessx": {
          "transport": "http",
          "url": "http://localhost:38473/mcp",
          "headers": {
            "x-api-key": "hx_your_dashboard_created_key"
          }
        }
      }
    }
    

    Monorepo Layout

    apps/
      api/                    Express API + worker + MCP
      web/                    Next.js dashboard
      yt-engine/              Python YouTube engine
      go-html-to-md-service/  Go HTML-to-Markdown sidecar
    docs/
      setup-guide.md
      api-endpoints.md
    infra/docker/
    

    Packages

    PackageDescriptionStatus
    @headlessx-cli/corePublished CLI package for HeadlessX operators, jobs, and search workflows. Command: headlessxAvailable
    HeadlessX Agent SkillsInstallable agent skill pack from this repository for Cursor, Claude Code, Warp, Windsurf, OpenCode, OpenClaw, Antigravity, and similar tools.Available

    Available

    PackageDescriptionStatus
    headfox-jsPublished TypeScript launcher and Playwright helper for Headfox, currently powered by Camoufox-compatible browser bundles.Available

    Coming Soon

    PackageDescriptionStatus
    hexium-browserPlaywright launch() for Hexium (Chrome 151). HeadlessX v2.5 will use this. Lives in HeadlessXLabs.Public now

    Notes

    • The dashboard uses the internal dashboard key for server-side internal requests
    • MCP uses normal user-created API keys, not the dashboard internal key
    • Queue-backed features return degraded/unavailable behavior when Redis is missing
    • Docker support now covers the full runtime stack, including yt-engine

    Contributing

    See CONTRIBUTING.md for the current contribution workflow, local setup expectations, pull request guidance, and commit message conventions.

    License

    HeadlessX is open source under the GNU Affero General Public License v3.0. Anyone may use, study, modify, and share it — individuals, teams, and companies. If you run a modified version as a network service, you must also share the source.

    Credits

    v2.1.2 is powered by Camoufox — a Firefox-based anti-detect browser with C++ fingerprint patches.

    v2.5 will run Hexium under HeadlessXLabs.

    Crypto scam warning

    Sketchy people are doing sketchy things with crypto tokens named "Camofox" now that this project is getting attention. Camofox is not a crypto project and will never be one. Any token, coin, or NFT using the Camofox name has nothing to do with us.