Shiny.Core 5.2.1

Prefix Reserved
dotnet add package Shiny.Core --version 5.2.1
                    
NuGet\Install-Package Shiny.Core -Version 5.2.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Shiny.Core" Version="5.2.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Shiny.Core" Version="5.2.1" />
                    
Directory.Packages.props
<PackageReference Include="Shiny.Core" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Shiny.Core --version 5.2.1
                    
#r "nuget: Shiny.Core, 5.2.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Shiny.Core@5.2.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Shiny.Core&version=5.2.1
                    
Install as a Cake Addin
#tool nuget:?package=Shiny.Core&version=5.2.1
                    
Install as a Cake Tool

Shiny Client for .NET

<img src="https://github.com/shinyorg/shiny/raw/master/art/logo.png" width="100" />

Shiny is a cross-platform framework designed to make working with device services and background processes easy, testable, and consistent while bringing things like dependency injection & logging in a structured way to your code!

Features

  • Handles all of the cruft like Permissions, main thread traversal, persistent storage and app restarts
  • Brings your infrastructure to the background
  • Provides logging to ensure you know when your services fail in the background
  • Gives a clean & testable API surface for your code
  • Native AOT & trim-friendly across all modules
  • Cross-platform: iOS, Android, Mac Catalyst, macOS, Windows, Linux, and Blazor WebAssembly (where the platform allows)

Modules

  • Background Jobs - periodic background work backed by BGTaskScheduler (iOS), WorkManager (Android), COM-activated background tasks (Windows), and an in-process managed runner for Linux/macOS/Blazor WASM
  • HTTP Transfers - resumable background uploads/downloads on NSURLSession (iOS), an HttpClient-driven managed loop with Range-based resume (Android, Windows, Linux, macOS, .NET base), and Service Worker Background Sync (Blazor WASM). Pause/resume support - pause stops a transfer without cancelling it (downloads continue from where they left off, uploads restart). First-class Azure Blob Storage and AWS S3 (SigV4) request builders included
  • Data Sync - bidirectional JSON record sync over HTTP with the same platform tiers as HTTP Transfers: outbox + inbox on NSURLSession (iOS/Mac Catalyst), Foreground Service + HttpClient (Android), HttpClient + connectivity loop (Windows/Linux/macOS), and LocalStorage-backed HttpClient (Blazor WASM). Includes batched outbox, tombstones, conflict resolution, retry with exponential backoff, and AOT-safe serialization through Shiny.Json
  • BluetoothLE Client - scan, connect, GATT, and L2CAP CoC on iOS/macOS, Android, Windows, Linux (BlueZ), and Blazor WebAssembly (Web Bluetooth)
  • BluetoothLE Hosting - GATT server, advertising, iBeacon broadcasting, and L2CAP CoC listeners on iOS/macOS, Android, Windows, and Linux (BlueZ AF_BLUETOOTH sockets)
  • Locations - foreground/background GPS, geofence monitoring, and motion-activity recognition (CMMotionActivity / ActivityRecognition)
  • Contacts - cross-platform device contact access with CRUD and LINQ queries (iOS/Android)
  • Local Notifications - scheduled, repeating, and geofence-triggered notifications on iOS/macOS, Android, Windows, and Linux (org.freedesktop.Notifications D-Bus)
  • Push Notifications - native APNs/FCM, Firebase Cloud Messaging, Azure Notification Hubs, and Blazor (Web Push)
  • Core - hosting, DI, key/value stores, object-store binding, lifecycle hooks, connectivity & battery monitoring, and the platform abstractions every Shiny module builds on

AI Tools

Optional *.Extensions.AI packages expose Shiny modules as Microsoft.Extensions.AI tool functions (AIFunctions) for LLM agents. You opt-in exactly which operations the model can see - a read/write allow-list you control on behalf of the agent (this is not an OS permission prompt; the underlying platform permissions must already be granted). Resolve the generated *AITools bundle from DI and pass .Tools to any IChatClient. All are AOT-compatible (hand-built schemas, no reflection).

  • Shiny.Contacts.Extensions.AI - AddContactsAITools(...)search_contacts, get_contact, and (write) create_contact, update_contact, delete_contact
  • Shiny.Notifications.Extensions.AI - AddNotificationAITools(...) → reminder-framed list_reminders, and (write) create_reminder (one-time or daily), cancel_reminder
  • Shiny.Locations.Extensions.AI - AddLocationAITool() → read-only get_current_location, get_distance_to, estimate_travel_time
builder.Services.AddContactStore();
builder.Services.AddContactsAITools(b => b.AddContacts(ContactAICapabilities.ReadWrite));

builder.Services.AddNotifications();
builder.Services.AddNotificationAITools(b => b.AddReminders(ReminderAICapabilities.ReadWrite));

builder.Services.AddGps();
builder.Services.AddLocationAITool();

// later, hand the tools to a chat client
var tools = sp.GetRequiredService<ContactAITools>().Tools;
var response = await chatClient.GetResponseAsync(messages, new ChatOptions { Tools = [.. tools] });
Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-android36.0 is compatible.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-ios26.0 is compatible.  net10.0-maccatalyst was computed.  net10.0-maccatalyst26.0 is compatible.  net10.0-macos was computed.  net10.0-macos26.0 is compatible.  net10.0-tvos was computed.  net10.0-windows was computed.  net10.0-windows10.0.19041 is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (50)

Showing the top 5 NuGet packages that depend on Shiny.Core:

Package Downloads
Shiny.Notifications

Shiny addon for all your notification needs

Shiny.Push

Shiny addon for all your push notification needs

Shiny.BluetoothLE.Common

Shiny BluetoothLE - Common components for Hosting and Client

Shiny.BluetoothLE

Shiny Reactive BluetoothLE Plugin for client/central operations

Shiny.Hosting.Maui

Shiny

GitHub repositories (2)

Showing the top 2 popular GitHub repositories that depend on Shiny.Core:

Repository Stars
jamesmontemagno/Hanselman.Forms
The most awesome Hanselman app
dansiegel/Prism.Container.Extensions
The packages here provide additional extensions around the Prism Ioc abstractions. This allows for more advanced scenarios.
Version Downloads Last Updated
5.2.1 242 7/6/2026
5.2.0 184 7/6/2026
5.2.0-beta-0071 173 7/6/2026
5.1.1 884 7/1/2026
5.1.0 591 6/29/2026
5.0.1 334 6/29/2026
5.0.1-beta-0078 309 6/28/2026
5.0.1-beta-0072 313 6/27/2026
5.0.1-beta-0071 317 6/27/2026
5.0.0 1,280 6/20/2026
5.0.0-beta-0140 331 6/15/2026
5.0.0-beta-0138 322 6/15/2026
5.0.0-beta-0137 336 6/10/2026
5.0.0-beta-0136 320 6/9/2026
5.0.0-beta-0135 334 6/9/2026
5.0.0-beta-0134 333 6/9/2026
5.0.0-beta-0133 405 6/7/2026
5.0.0-beta-0132 438 6/6/2026
5.0.0-beta-0131 306 6/5/2026
5.0.0-beta-0130 296 6/5/2026
Loading failed