Gleap.Core
0.1.0-beta.1
dotnet add package Gleap.Core --version 0.1.0-beta.1
NuGet\Install-Package Gleap.Core -Version 0.1.0-beta.1
<PackageReference Include="Gleap.Core" Version="0.1.0-beta.1" />
<PackageVersion Include="Gleap.Core" Version="0.1.0-beta.1" />
<PackageReference Include="Gleap.Core" />
paket add Gleap.Core --version 0.1.0-beta.1
#r "nuget: Gleap.Core, 0.1.0-beta.1"
#:package Gleap.Core@0.1.0-beta.1
#addin nuget:?package=Gleap.Core&version=0.1.0-beta.1&prerelease
#tool nuget:?package=Gleap.Core&version=0.1.0-beta.1&prerelease
Gleap C# SDK
Cross-platform C# SDK for Gleap — customer support, in-app messenger, bug reporting, feature requests, surveys and more — for Unity, .NET MAUI, and Windows Desktop (WPF/WebView2).
Status: early access. The platform-agnostic core is implemented, unit-tested (129 tests,
-warnaserrorclean), and — the important part — validated live against the real Gleap server and web widget: the bridge handshake,config/session, messenger navigation, feedback submit (/bugs/v2), and the banner/modal outbound protocol were all confirmed against the live services. The host-side behaviour now mirrors the native iOS/Android SDKs (studied from their source), not just inference. Windows (WPF/WebView2) renders the live messenger natively; the MAUI and Unity bindings compile (their mobile/WebGL targets need the platform SDKs to build + run on a device). See Status & parity. Past "does it work", not yet a 1.0.
How it works
The real chat/messenger/help-center/survey UI is the same web widget used by all Gleap SDKs
(messenger-app.gleap.io), hosted in a native WebView. This SDK follows the industry-standard
pattern (Firebase/Sentry/AppsFlyer-style): a stable public Gleap facade over a small,
platform-agnostic engine (Gleap.Core), with thin per-platform packages supplying the WebView
host, persistence, metadata, and capture.
Gleap (public facade — identical API everywhere)
-> IGleapBackend
-> ManagedBackend (pure C# engine in Gleap.Core: session, config, the web-widget
bridge protocol, data collection, feedback, outbound polling, callbacks)
-> IWebViewChannel / IHttpTransport / IKeyValueStore / IMetadataProvider / IScreenshotProvider
(platform packages implement these seams)
Repository layout
src/Gleap.Core/ .NET Standard 2.0 engine - the reusable heart (unit-tested)
src/Gleap.WebView2/ Windows Desktop binding (WebView2) - net8.0-windows10.0.19041.0
examples/Gleap.Sample.Wpf/ WPF sample: a floating launcher + messenger overlay (GleapMessenger)
maui/Gleap.Maui/ .NET MAUI binding (reuses Gleap.Core) - net10.0-*
examples/Gleap.Sample.Maui/ MAUI sample app
unity/com.gleap.sdk/ Unity UPM package (reuses Gleap.Core; Core DLLs bundled)
tests/Gleap.Core.Tests/ xUnit tests for the core
docs/ design specs + implementation plans (docs/superpowers)
Gleap.sln Core + tests - builds cross-platform (macOS/Linux/Windows)
Gleap.Windows.sln Core + WebView2 + WPF sample - Windows only
Build & test (core)
Requires the .NET 8 SDK (the repo also builds on the .NET 10 SDK). The WPF sample additionally
needs the .NET 8 Desktop Runtime; the MAUI binding needs the maui workload
(dotnet workload install maui).
dotnet test Gleap.sln # build + run the core tests (129)
dotnet build Gleap.sln -warnaserror # quality gate (0 warnings)
dotnet format Gleap.sln --verify-no-changes
Gleap.Windows.sln (WebView2/WPF) builds on Windows only - see
WINDOWS-RUNBOOK.md to run the sample app against the live widget.
Unity and MAUI have their own READMEs
(unity/com.gleap.sdk/README.md,
maui/Gleap.Maui/README.md).
Quick start (Windows Desktop)
using GleapSDK;
using GleapSDK.WebView2;
// Drop the launcher control into your window: it floats a button (styled from your project config)
// that slides the messenger in as an overlay and back, like the web SDK. Session/config load lazily.
var messenger = new GleapMessenger { SdkKey = "YOUR_SDK_KEY" };
rootGrid.Children.Add(messenger);
// Drive it from anywhere via the stable facade:
Gleap.StartBot(""); // or StartConversation / OpenHelpCenter / OpenNews / ShowSurvey
await Gleap.IdentifyContactAsync("user-123", new GleapSDK.Models.GleapUserProperty { Email = "a@b.c" });
Gleap.TrackEvent("checkout_completed");
(For full control you can instead host a WebView2 yourself and call
GleapWebView2Host.AttachAsync(webView, "YOUR_SDK_KEY").)
Status & parity
Honest state (✅ = done + verified where noted; the host-side behaviour was checked against the native iOS/Android SDK source):
| Capability | State |
|---|---|
| Messenger / Bot / AI chat / Help Center / News / Surveys / Classic Forms | ✅ live-validated — handshake, config/session, and navigation confirmed against the real messenger-app.gleap.io widget; renders natively in the WPF app |
| Identify / updateContact / clearIdentity, events, logs, custom data, ticket attributes, tags | ✅ core done |
Feedback submit (/bugs/v2) + attachments + replay |
✅ /bugs/v2 confirmed live (HTTP 201) |
| Interactive screenshot (capture → annotate in-widget → attach) | ✅ wired to iOS parity (screenshot-update / screenshot-updated / cleanup-drawings) |
Silent crash report; callbacks (RegisterListener); config setters; open-url (system browser) |
✅ done |
Outbound polling (/sessions/ping, unread count, auto survey/feedback-flow) |
✅ core done + auto-polled by the Windows launcher |
| Outbound Banner + Modal rendering | ✅ Windows host built to the native contract; the appMessage / banner-data / modal-data protocol validated live against outboundmedia.gleap.io (end-to-end with a real configured outbound: pending) |
AI / Frontend tools (RegisterAgentTool(name, handler)) |
✅ full execution round-trip — runs the registered handler on frontend-tool-execute and posts frontend-tool-result back to the agent (matches the JS SDK; missing-handler/error/empty folded into the result string, deduped by toolCallId) |
| Windows (WPF/WebView2) | ✅ runs live — composition-hosted messenger + native launcher (styled from config); -warnaserror clean |
| .NET MAUI (Android / iOS / Windows) | ✅ MauiWebViewChannel per platform + sample; net10.0-windows compiles; Android/iOS build+run need the platform SDKs (Android Studio / a Mac) |
| Unity (UPM) | ✅ package + bundled Core DLLs + IL2CPP-safe NewtonsoftJsonSerializer (camelCase + null-omit + raw JsonElement pass-through, and honors System.Text.Json [JsonPropertyName] so it stays byte-identical to the STJ output) + link.xml IL2CPP strip-protection + plugin-agnostic channel; the Unity-dependent runtime (PlayerPrefs/metadata marshalled onto the main-thread pump) is verified on Unity editor import |
In-app notification toasts, mobile activation (shake/screenshot), push, WebSocket, Unity WebGL (JS-SDK path) |
not built (platform/runtime-dependent) |
Design docs and per-feature implementation plans live under docs/superpowers/.
License
Copyright (C) 2026 Gleap GmbH. See LICENSE.md. Proprietary - use as-is; modifications
and reselling require written permission from Gleap GmbH.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- System.Text.Json (>= 10.0.9)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on Gleap.Core:
| Package | Downloads |
|---|---|
|
Gleap.WebView2
Gleap SDK for Windows (WPF) — a drop-in WebView2 messenger control for in-app feedback, bug reporting, surveys, product tours and live chat, matching the Gleap web widget on the desktop. |
|
|
Gleap.Maui
Gleap SDK for .NET MAUI — in-app feedback, bug reporting, surveys, product tours and live chat on Android, iOS, MacCatalyst and Windows. |
|
|
Gleap.Extensions.Logging
Gleap SDK logging integration — an ILogger provider that forwards Microsoft.Extensions.Logging output into the Gleap session log, so console/network/log context is attached to feedback and bug reports. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.0-beta.1 | 80 | 7/15/2026 |