CharacterCardV3Sharp 1.0.0
dotnet add package CharacterCardV3Sharp --version 1.0.0
NuGet\Install-Package CharacterCardV3Sharp -Version 1.0.0
<PackageReference Include="CharacterCardV3Sharp" Version="1.0.0" />
<PackageVersion Include="CharacterCardV3Sharp" Version="1.0.0" />
<PackageReference Include="CharacterCardV3Sharp" />
paket add CharacterCardV3Sharp --version 1.0.0
#r "nuget: CharacterCardV3Sharp, 1.0.0"
#:package CharacterCardV3Sharp@1.0.0
#addin nuget:?package=CharacterCardV3Sharp&version=1.0.0
#tool nuget:?package=CharacterCardV3Sharp&version=1.0.0
CharacterCardV3Sharp
A .NET library for reading and writing Character Card V3 files — the character-definition format used by AI chat frontends such as SillyTavern. A CCv3 "card" is just a PNG avatar image with the character's data (personality, greetings, lorebook, etc.) embedded in its metadata, so the same file works as both a picture and a data file.
The library parses that embedded data into plain C# classes, and can go the other way too: take a CharacterCardV3 object and embed it into a PNG, producing a file that follows the spec.
What it does
- Read: loads a PNG's
ccv3metadata chunk into a fully-typedCharacterCardV3object (name, description, personality, scenario, greetings, lorebook/character book, assets, extensions, ...). Falls back to the legacy V2charachunk and upgrades it automatically if no V3 data is present. - Write: serializes a
CharacterCardV3back into a source PNG's metadata, without touching the image's pixel data. By default it also writes a legacy V2 chunk alongside the V3 one, so cards it produces stay readable by apps that don't support V3 yet. - Works directly on the PNG's chunk stream — no image-decoding library involved, so the artwork is never re-encoded.
- Targets both .NET 8 and .NET Standard 2.0, so it can be used from modern .NET apps as well as older/.NET Framework projects.
using CharacterCardV3Sharp;
// Read a card
CharacterCardV3 card = CharacterCardPng.Load("some-character.png");
Console.WriteLine(card.Data.Name);
// Edit and write it back into a (possibly different) PNG
card.Data.CreatorNotes = "Updated via CharacterCardV3Sharp";
CharacterCardPng.Save(card, sourcePngPath: "avatar.png", destinationPngPath: "some-character.png");
Character Card V3 Editor
The repository also includes CharacterCardV3Sharp.App, a cross-platform desktop GUI (built with Avalonia) for people who'd rather not write code: open a card's PNG, view and edit every field in a form, and save it back out as a spec-compliant V3 card.
The editor is fully localized (English, Italian, Spanish, French, German, Portuguese, Russian, Chinese and Japanese) with a language switcher that applies immediately, no restart needed.
Project layout
src/
CharacterCardV3Sharp/ the library (net8.0 + netstandard2.0)
CharacterCardV3Sharp.App/ the Avalonia desktop editor
tests/
CharacterCardV3Sharp.Tests/ xUnit tests for the library
Building
dotnet build
dotnet test tests/CharacterCardV3Sharp.Tests/CharacterCardV3Sharp.Tests.csproj
dotnet run --project src/CharacterCardV3Sharp.App
Spec reference
Implemented against the Character Card V3 specification. Not covered yet: the CHARX (zip-based) asset bundling format described in the spec as the successor to inline PNG asset chunks.
| 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 is compatible. 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 (>= 8.0.6)
-
net8.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 108 | 7/18/2026 |
First Release of CharacterCardV3Sharp. This library allows you to read and write Character Card V3 files in .NET applications.