{
  "version": "2",
  "generatedAt": "2026-11-03T22:49:39.280Z",
  "listing": {
    "slug": "LiveHelperChat--livehelperchat",
    "name": "Live Helper Chat",
    "tagline": "Apache-licensed live chat and bot platform with a settings.ini.php surface and a Builder-published REST API.",
    "shortTagline": "Live chat and bot platform",
    "description": "Live Helper Chat is a PHP live-support system that runs at sites handling 10,000+ chats a day: web widget, departments, canned messages, transfers, a bot builder that plugs into ChatGPT, Ollama, Gemini, Rasa or any REST API, plus Telegram, WhatsApp, Messenger and SMS bridges. Configuration lives in lhc_web/settings/settings.ini.php and the Builder publishes a REST API with Swagger docs.",
    "capabilities": [
      "adaptable",
      "operable"
    ],
    "vertical": "support-bookkeeping",
    "alternativeTo": [
      "Intercom",
      "LiveChat",
      "Zendesk Chat"
    ],
    "shape": "business-app",
    "formFactor": "web-app",
    "executionModel": "hybrid",
    "provenance": "human-written",
    "codeStack": {
      "languages": [
        "PHP",
        "JavaScript"
      ],
      "frameworks": [
        "React (widget and back office)"
      ],
      "packageManager": "composer, npm",
      "database": [
        "MySQL",
        "MariaDB"
      ],
      "hostingTarget": [
        "self-host",
        "Docker (LiveHelperChat/docker-standalone)",
        "DigitalOcean marketplace"
      ]
    },
    "modelStack": {
      "providers": [
        "OpenAI (optional)",
        "Ollama (optional)",
        "Google Gemini (optional)",
        "Rasa (optional)"
      ],
      "models": [],
      "requiredKeys": [],
      "promptLocations": [
        "bot builder (UI)"
      ],
      "tools": []
    },
    "repos": [
      {
        "url": "https://github.com/LiveHelperChat/livehelperchat",
        "owner": "LiveHelperChat",
        "name": "livehelperchat",
        "license": "Apache-2.0",
        "stars": 2242,
        "lastCommit": "2026-08-31"
      }
    ],
    "interface": {
      "kind": "api",
      "url": "https://demo.livehelperchat.com/restapi/swagger",
      "official": true,
      "hosted": "local"
    },
    "operability": "official",
    "recommendedWrapper": null,
    "reach": [
      {
        "job": "List chats, messages, and departments",
        "reachable": true,
        "evidence": "doc.livehelperchat.com/docs/development/rest-api: list chats, departments, messages, get chat information"
      },
      {
        "job": "Send operator messages into a chat",
        "reachable": true,
        "evidence": "REST API doc: supports sending messages; message types visitor, operator, system, bot"
      },
      {
        "job": "Check operator and department online status",
        "reachable": true,
        "evidence": "REST API doc: online status checks for general, users, departments"
      },
      {
        "job": "Track online visitors",
        "reachable": true,
        "evidence": "REST API doc: logging online visitor activity"
      },
      {
        "job": "Close or transfer a chat",
        "reachable": true,
        "evidence": "Swagger: POST /restapi/setchatstatus (status 2 = closed) and PUT /restapi/chat/{chat_id} to update chat fields; no dedicated transfer endpoint"
      },
      {
        "job": "Build and edit bot flows",
        "reachable": false,
        "evidence": "Swagger has POST/PUT/DELETE /restapi/bot for bot records, but trigger and flow editing is the back-office builder only"
      },
      {
        "job": "Canned messages",
        "reachable": false,
        "evidence": "No canned-message path among the 48 Swagger paths at demo.livehelperchat.com/restapi/swagger"
      },
      {
        "job": "Chat statistics and agent performance",
        "reachable": true,
        "evidence": "Swagger: GET /restapi/agentstatistic"
      },
      {
        "job": "Connect Telegram, WhatsApp, Messenger, SMS",
        "reachable": false,
        "evidence": "channel bridges are separate extensions configured in the back office"
      },
      {
        "job": "Voice and video calls",
        "reachable": false,
        "evidence": "Jitsi/Agora integrations are widget features"
      }
    ],
    "editions": [
      {
        "name": "Free (self-hosted)",
        "price": null,
        "open": true,
        "distributions": [
          {
            "kind": "source",
            "url": "https://github.com/LiveHelperChat/livehelperchat"
          },
          {
            "kind": "binary",
            "url": "https://github.com/LiveHelperChat/livehelperchat/releases"
          },
          {
            "kind": "container",
            "url": "https://github.com/LiveHelperChat/docker-standalone"
          },
          {
            "kind": "one-click",
            "url": "https://marketplace.digitalocean.com/apps/live-helper-chat/"
          }
        ]
      }
    ],
    "skills": {
      "kind": "none",
      "paths": [],
      "install": null,
      "note": "No SKILL.md, Claude Code plugin, or skills install target in the repo."
    },
    "customization": {
      "summary": "Copy lhc_web/settings/settings.ini.default.php to settings.ini.php and set site_admin_email, locale, theme, time_zone, site_address, webhooks.enabled, disable_rest_api_by_user, and redis/memcache servers. Bot flows, departments, canned messages, and the AI provider keys are entered in the back office, not files. Theme changes use the template override system; that is the only place code edits come in.",
      "envVars": [],
      "configFiles": [
        "lhc_web/settings/settings.ini.php",
        "lhc_web/settings/settings.ini.default.php"
      ],
      "promptFiles": [],
      "effort": "config-only",
      "editCount": 2
    },
    "useWhen": [
      "we want a free live chat widget on our site with a bot that answers from ChatGPT or Ollama and hands off to a human",
      "we run support on Telegram or WhatsApp and want every channel in one operator console we host"
    ],
    "accounts": [
      "OpenAI, Gemini, or an Ollama host (optional, for bot replies)",
      "Telegram, Meta, or Twilio accounts for channel bridges (optional)"
    ],
    "active": true,
    "lastActivity": "2026-08-31",
    "gotchas": [
      "Composer install needed on a git clone; releases ship without it",
      "Webhooks are off by default in settings.ini and extensions depend on them",
      "PHP 8.2 minimum; a separate Laravel rewrite exists and may split future effort",
      "REST API uses Basic auth with an API key or back-office login; scope it to a dedicated operator"
    ],
    "fit": {
      "adaptable": 3,
      "operable": 2
    },
    "evidence": {
      "formFactor": "README: lhc_web/index.php served by PHP; mobile and desktop apps are companions",
      "executionModel": "core chat is deterministic; bot builder calls ChatGPT, Ollama, Gemini or Rasa when configured",
      "operability": "Swagger 2.0 spec at demo.livehelperchat.com/restapi/swagger (linked from api.livehelperchat.com): 'Create API key in Live Helper Chat back office. During authorization provide operator username and key instead of password'; securityDefinitions login type basic; 48 paths under /restapi/ for chats, messages, users, departments, bots, files, surveys, webhooks, statistics. doc.livehelperchat.com/docs/development/rest-api confirms Basic auth and the .htaccess Authorization passthrough.",
      "effort": "README points at settings.ini.default.php lines 13-16 and 86 for debug and webhook toggles; file has 'site' array with named keys",
      "editions": "README: bring live support to your site for free; no paid edition found",
      "active": "gh api: pushed 2026-08-31, 2242 stars"
    },
    "confidence": {
      "formFactor": 0.95,
      "executionModel": 0.8,
      "operability": 0.95,
      "effort": 0.85,
      "reach": 0.85,
      "editions": 0.85
    },
    "openQuestions": [
      "Is there a transfer-to-department endpoint, or is updatechatattributes/PUT /restapi/chat the intended route?",
      "Whether any paid support or hosting edition exists beyond donations"
    ],
    "sources": [
      {
        "url": "https://github.com/LiveHelperChat/livehelperchat",
        "foundBy": "sourcing:support-bookkeeping:curated"
      },
      {
        "url": "https://doc.livehelperchat.com/",
        "foundBy": "sourcing:support-bookkeeping:curated"
      },
      {
        "url": "https://doc.livehelperchat.com/docs/development/rest-api",
        "foundBy": "analysis"
      }
    ],
    "research": {
      "stage": "verified",
      "verdict": "approve",
      "reason": "Builder-published REST API with a Swagger spec, HTTP Basic auth using an operator username plus an API key created in the back office, no browser session required. Reach is six of ten jobs: bot flows, canned messages, channels, and calls stay in the UI.",
      "disputed": []
    },
    "url": "apps/LiveHelperChat--livehelperchat.html",
    "coverage": "partial",
    "paid": false,
    "source": "research/verified/LiveHelperChat--livehelperchat.json"
  }
}
