AD
Launch on Firsto—Launch your project today — get a DR57 backlink instantly.
BSkyInfo LogoBskyInfo
All ToolsCategoriesCollectionsFeed DirectoryLabeler DirectoryArticlesGuidesGlossaryBluesky SDKsSponsor
Submit
All ToolsCategoriesCollectionsFeed DirectoryLabeler DirectoryGuidesGlossaryArticlesBluesky SDKsSponsorSubmit
  1. SDKs
  2. /C#
  3. /idunno.Bluesky
blowdart

idunno.Bluesky

A C# SDK for Bluesky and AT Protocol by blowdart

A .NET class library for the Bluesky social network.

GitHub Stats

76stars
10forks
9contributors
0open issues

Dates

Created:April 25, 2024
Last updated:October 20, 2025

README

The following content is from idunno.Bluesky's GitHub repository. All rights reserved by the original author.

The Bluesky butterfly logo, except in purpleidunno.Bluesky - .NET SDK for Bluesky.

A .NET 8 and .NET 9 library and SDK for Bluesky and the AT Protocol

GitHub License Last Commit GitHub Tag NuGet Version NuGet Downloads

OpenSSF Scorecard OpenSSF Best Practices

Getting Started

Add the idunno.Bluesky package to your project, and then

BlueskyAgent agent = new ();

var loginResult = await agent.Login(username, password);
if (loginResult.Succeeded)
{
    var response = await agent.CreatePost("Hello World");
    if (response.Succeeded)
    {
    }
}

Please see the documentation for much more useful documentation and samples.

The API status page shows what APIs are currently implemented.

Key Features

  • Creating and deleting posts
    • Posting with mentions, links and hashtags
    • Posting images and video, with alt text support.
    • Setting a post's language
    • Gating threads and posts
    • Liking, quoting, and reposting posts
  • Viewing a user's timeline and notifications
  • Viewing feeds
  • Viewing threads
  • Viewing notifications
  • Viewing and setting preferences for
    • Subscribing to user activities
    • Viewing user profiles
    • Notifications
  • Following and unfollowing users
  • Muting and blocking users
  • Sending, receiving, and deleting direct messages
  • Create, deleting and listing a user's bookmarks
  • Handle / password and OAuth authentication
  • Jetstream support for simple firehose consumption
  • Automatic session management with background token refreshes

Trimming is supported for applications targeting .NET 9.0 or later.

Current Build Status

Build Status CodeQL Scan Dependency Review

Release History

The releases page provides details of each release and what was added, changed or removed.

Release Verification

The project uses an Authenticode certificate to sign assemblies and to author sign the nupkg packages. nuget validates the signatures during its publication process.

To validate these signatures use

dotnet nuget verify [<package-path(s)>]

The subject name of the signing certificate should be

Subject Name: CN=Barry Dorrans, O=Barry Dorrans, L=Bothell, S=Washington, C=US

In addition, for GitHub artifact signing the project uses minisign with the following public key.

RWTsT4BHHChe/Rj/GBAuZHg3RaZFnfBDqaZ7KzLvr44a7mO6fLCxSAFc

To validate a file using an artifact signature from a release download the .nupkg from nuget and the appropriate .minisig from the release page, then use the following command, replacing <package-path> with the file name you wish to verify.

minisign -Vm <package-path> -P RWTsT4BHHChe/Rj/GBAuZHg3RaZFnfBDqaZ7KzLvr44a7mO6fLCxSAFc

Pre-releases

If you want to test pre-releases you can find them in the myget feed.

You can add this as a Package Source in Visual Studio or through the command line

The package source URI is https://www.myget.org/F/blowdart/api/v3/index.json

Due to the way pre-release builds are stamped with the git commit the "latest" version on myget may not always be the latest version.

Either check the Last Updated column in the myget gallery on the individual package details to find the true latest version, or if you want to get a pre-release for a specific commit, if one was produced,

  1. Check the version value in version.json,
  2. Check Pre-release publish runs,
  3. Select the latest run,
  4. The latest pre-release package will have the first 10 digits of the commit sha, prefixed with a g as the build number.

For example, commit 190d63e produced a nightly build and packages. The package build number is be 1.1.0-prerelease.g190d63e20d

Please note that nightly builds are signed with Trusted Signing, the signing certificate chain will not match the signing chain of a release build. The subject name remains the same.

License

idunno.Bluesky, idunno.AtProto and idunno.AtProto.OAuthCallBack are available under the MIT license, see the LICENSE file for more information.

Planned work

Major

  • Logging in idunno.Bluesky
  • GIF attaching
  • Wider test coverage
  • More deserialization tests with captured responses

Awaiting external

  • Automatic Open Graph card generation when link facets detected.

Dependencies

idunno.AtProto takes a dependency on System.Text.Json v9 to support deserializing derived types where the $type property is not the first property in the JSON object.

External dependencies

  • Microsoft.Extensions.Logging - used to provide log messages.
  • Microsoft.IdentityModel.Tokens - used to extract the expiry date and time of the JWT tokens issued by Bluesky.
  • Duende.IdentityModel.OidcClient - used to do the OAuth heavy lifting.
  • DnsClient - used in Handle to DID resolution.
  • PeterO.CBor - used in Fire Hose decoding.
  • SimpleBase - used in decoding CIDs.
  • ZstdSharp - used in Jetstream decompression.

External analyzers used during builds

  • DotNetAnalyzers.DocumentationAnalyzers - used to validate XML docs on public types.
  • SonarAnalyzer.CSharp - used for common code smell detection.

External build & testing tools

  • docfx - used to generate the documentation site.
  • DotNet.ReproducibleBuilds - used to easily set .NET reproducible build settings.
  • Coverlet.Collector - used to produce code coverage files
  • JunitXml.TestLogger - used in CI builds to produce test results in a format understood by the test-summary GitHub action.
  • NerdBank.GitVersioning - used for version stamping assemblies and packages.
  • ReportGenerator - used to produce code coverage reports.
  • sign - used to code sign assemblies and nuget packages.
  • xunit - used for unit tests.

Other .NET Bluesky libraries and projects

  • FishyFlip
  • X.Bluesky
  • atprotosharp
  • atompds - an implementation of an AtProto Personal Data Server in C#
  • AppViewLite - an implementation of the Bluesky AppView in C# focused on low resource consumption

Topics

atprotoblueskybluesky-apibluesky-social

Related SDKs

drasticactionsFishyFlip

Fishyflip - a .NET ATProtocol/Bluesky Library

108•C#
alnkesqAppViewLite

A Bluesky appview focused on low resource consumption

166•C#
shinolabsPinkSea

An oekaki BBS board running on top of the AT Protocol.

94•C#
a-gubskiyX.Bluesky

Client for Bluesky

48•C#
FireCubeStudiosDarkSky

BlueSky client for Windows 10/11

229•C#
dariogriffobluesky-net

48•C#

Resources

GitHub Repository

License

MIT

Author

blowdart
blowdart

Activity

Last commit: October 20, 2025
Commit frequency: Unknown

Our Sponsors

Your Brand Here!

50K+ engaged viewers every month

Limited spots available!

📧 Contact us via email🦋 Contact us on Bluesky
BSkyInfo LogoBskyInfo

The Most Comprehensive Bluesky Tools Directory

Stay updated with the latest Bluesky tools and ecosystem news 🦋

Bluesky butterfly logo
Quick LinksSubmit a ToolSponsorAboutLegal Information
ToolsFeed DirectoryLabeler DirectorySchedulingAnalyticsAll ToolsCategoriesCollectionsTags
ResourcesArticlesBluesky GuidesBluesky GlossaryBluesky SDKsBluesky ResourcesSkyRaffleMeida Coverage
Our ProductsRaffleBlueAiTeach ToolsLaiewAI affiliate listFirstoCoast Fire CalculatorAsphalt CalculatorDog Names World

This website may contain affiliate links

© 2025 BskyInfo. All rights reserved.