Documentation
Desktop App
docs

Install

Check your app

Use .NET 10. Add the MAUI workload for your target. The repo pins SDK and workload set 10.0.200. Use the Apple build tools your workload needs. The package uses Microsoft.Maui.Controls version 10.0.20.

TargetLowest OS version
net10.0-iosiOS 15.0
net10.0-androidAndroid API 24
net10.0-maccatalystMac Catalyst 15.0

Buoy.Core targets net10.0. Tests ran on iOS and Android. The Mac Catalyst target has no test claim here. There is no Windows target in this package. Does your .csproj list a Windows target? Then the plain package entry breaks Windows builds. Use the Windows guard from the release guide. Remove any Buoy entry that has no guard.

Add the package

Use this once the first beta is on NuGet. Run it in your app's project folder.

sh
dotnet add package Buoy.Maui --prerelease
dotnet add package Buoy.Maui --prerelease

Buoy.Maui brings in Buoy.Core for you. You do not need one package per tool. Keep the version that NuGet puts in your .csproj. Guard that entry with the release guide.

Set up your account

Run this beside the app's .csproj.

sh
npx buoy login
npx buoy login

A Free key goes in .env.development.local. A dev token uses that same file. A paid key goes in .env.local. Debug builds read both files, with the dev file first. Release builds read only .env.local when Buoy is included. Build your app again after you sign in. Keep both files out of source control.

An app can also set BuoyOptions.LicenseKey itself. That key wins over the build-time env key. Use your app's own key source. Do not hardcode keys. Set BuoyReadEnvKey=false to stop build-time env reads. Buoy saves a checked key in MAUI SecureStorage.

For sign-in with a code, use this setup:

text
#if DEBUG
builder.UseBuoy(options =>
{
    options.SignIn = new BuoySignInOptions();
});
#endif
#if DEBUG
builder.UseBuoy(options =>
{
    options.SignIn = new BuoySignInOptions();
});
#endif

Add using Buoy.Maui; inside a Debug guard too. At Sites, add app: plus your app ID. By default, it uses the bundle or package ID. Testers can then scan the code and sign in. Hosted Ask Buoy needs that sign-in session. A license key alone does not set up hosted chat.

Pick your tools

Add tool calls before builder.Build(). Use builder.UseBuoy() once for the host. Use the Quick start for a full small setup. The tool guide shows how each source connects.

Buoy adds its view to the MAUI window. Keep your app's pages, Shell, and base class. A Free or Pro account opens tools in Debug builds. Some tools and tasks need Pro. The app still runs with no key. Buoy shows a sign-in button.

Before you ship

Follow Release builds to remove Buoy from shipped builds. A hidden button does not remove its DLLs. If you choose to keep Buoy, Release access needs a paid plan. Desktop sync also needs EnableSyncInRelease = true. Network capture still only works in Debug builds.