PSBlueSky
2.4.0
A set of PowerShell commands that use the Bluesky AT Proto API. You can post and upload images from a PowerShell prompt, as well as get your timeline, feed, followers, and more. Run Open-BskyHelp after installation to launch a PDF guide. This module is written for PowerShell 7 and uses features like $PSStyle.
Minimum PowerShell version
7.4
Installation Options
Owners
Copyright
(c)2024-2025 JDH Information Technology Solutions, Inc.
Package Details
Author(s)
- Jeff Hicks
Tags
Bluesky skeet API atprotocol atproto
Functions
Add-BskyImage Block-BskyUser Find-BskyUser Get-BskyAccountDID Get-BskyBlockedList Get-BskyBlockedUser Get-BskyFeed Get-BskyFollowers Get-BskyFollowing Get-BskyLiked Get-BskyNotification Get-BskyProfile Get-BskySession Get-BskyModuleInfo Get-BskyTimeline New-BskyFollow New-BskyPost Open-BskyHelp Publish-BskyPost Remove-BskyFollow Start-BskySession Update-BskySession Get-BskyPreference Set-BskyPreference Export-BskyPreference Remove-BskyPreferenceFile Enable-BskyLogging Disable-BskyLogging Get-BskyLogging Remove-BskyLogging Set-BskyLogging Unblock-BskyUser
PSEditions
Dependencies
This module has no dependencies.
Release Notes
## [2.4.0] - 2025-01-22
### Added
- Added property `DID` to follower objects.
- Added a script method called `CreateHeader` to the Bluesky session object (`bskySession`). This header can be used with the Bluesky API for custom testing or development.
- Added commands `Block-BskyUser` and `Unblock-BskyUser`.
- Added properties `Viewer` and `Labels` to profile objects including blocked user profiles.
- Added a feature to create a log of API usage. Added properties `bskyLoggingEnabled` and `bskyLogFile` to the PSBluesky session object. The log is a JSON file of structured data. Logging is disabled by default on module import. Commands `Disable-BskyLogging`,`Enable-BskyLogging`,`Get-BskyLogging`,`Set-BskyLogging` and `Remove-BskyLogging` have been added to manage this feature.
- Added properties `isRead`, `Labels`, and `SeenAt` to`PSBlueSkyNotification` object. [[Issue #34](https://github.com/jdhitsolutions/PSBluesky/issues/34)]
- Added an alias property of `Username` for `AuthorHandle` on output from `Get-BskyNotification`.
### Changed
- Revised the module manifest description.
- Increased the refresh interval for the session runspace to 60 minutes. This should reduce the number of API calls. __This is a potential breaking change,__
- Cleaned up code to ensure consistency with commands. References to an endpoint should all use the same variable, `$apiUrl`. Responses from the API should all use the `$response` variable.
- Updated `Get-BskyBlockedUser` and the associated format file to show the date the account was blocked.
- Help updates.
- Updated `README.md`.
FileList
- PSBlueSky.nuspec
- ChangeLog.md
- README.md
- docs\Find-BskyUser.md
- docs\Get-BskyFollowing.md
- docs\Get-BskyProfile.md
- docs\Publish-BskyPost.md
- docs\Start-BSkySession.md
- formats\PSBlueskyBlockedUser.format.ps1xml
- formats\PSBlueskyProfile.format.ps1xml
- functions\Find-PSBlueSkyUser.ps1
- functions\Get-PSBlueSkyFollower.ps1
- functions\Get-PSBlueSkySession.ps1
- functions\preferences.ps1
- images\BlueskyLogo-icon.png
- images\bsky-information.png
- images\bskypreferences.png
- images\get-bskyblockeduser.png
- images\markdown-links.png
- images\x-notifications.png
- images\x-set-preference.png
- LICENSE.txt
- docs\Add-BskyImage.md
- docs\Get-BskyAccountDID.md
- docs\Get-BskyLiked.md
- docs\Get-BskySession.md
- docs\Remove-BskyFollow.md
- docs\Unblock-BskyUser.md
- formats\PSBlueskyFeed.format.ps1xml
- formats\PSBlueskySearchResult.format.ps1xml
- functions\follow.ps1
- functions\Get-PSBlueSkyFollowing.ps1
- functions\Get-PSBlueSkyTimeline.ps1
- functions\psblueskychat.ps1
- images\BlueskyLogo-medium.png
- images\bsky-moduleinfo.png
- images\create-appPassword.png
- images\get-bskylogging.png
- images\module-commands.png
- images\x-preferences-commands.png
- images\x-style-update.png
- PSBlueSky-Help.pdf
- docs\Block-BskyUser.md
- docs\Get-BskyBlockedList.md
- docs\Get-BskyLogging.md
- docs\Get-BskyTimeline.md
- docs\Remove-BskyLogging.md
- docs\Update-BskySession.md
- formats\PSBlueskyFollower.format.ps1xml
- formats\PSBlueskySession.format.ps1xml
- functions\Get-ModuleInfo.ps1
- functions\Get-PSBlueSkyLikes.ps1
- functions\helpers.ps1
- functions\Publish-PSBlueskyPost.ps1
- images\BlueskyLogo-small.png
- images\bsky-notification.png
- images\custom-verbose.png
- images\get-bskymoduleinfo.png
- images\PSBluesky-HelpPDF.png
- images\x-preferences.png
- images\x-verbose.png
- docs\Disable-BskyLogging.md
- docs\Get-BskyBlockedUser.md
- docs\Get-BskyModuleInfo.md
- docs\New-BskyFollow.md
- docs\Remove-BskyPreferenceFile.md
- en-US\PSBluesky-help.xml
- formats\PSBlueskyLiked.format.ps1xml
- formats\PSBlueSkyTimelinePost.format.ps1xml
- functions\Get-PSBlueskyBlockList.ps1
- functions\Get-PSBlueSkyNotification.ps1
- functions\logging.ps1
- functions\Start-PSBlueSkySession.ps1
- images\bsky-feed.png
- images\bsky-profile.png
- images\find-bskyuser-topic.png
- images\liked-customview.png
- images\settings-appPasswords.png
- images\x-profile-format.png
- images\x-verbose2.png
- PSBlueSky.psd1
- docs\Enable-BskyLogging.md
- docs\Get-BskyFeed.md
- docs\Get-BskyNotification.md
- docs\New-BskyPost.md
- docs\Set-BskyLogging.md
- en-US\PSBluesky.psd1
- formats\PSBlueskyModuleInfo.format.ps1xml
- functions\Add-PSBlueSkyImage.ps1
- functions\Get-PSBlueskyBlockUser.ps1
- functions\Get-PSBlueSkyPosts.ps1
- functions\New-PSBlueSkyPost.ps1
- functions\Update-PSBlueskySession.ps1
- images\bsky-follower.png
- images\bsky-repost.png
- images\find-bskyuser.png
- images\logging-objects.png
- images\x-getFollows.png
- images\x-profile.png
- types\PSBlueSky.types.ps1xml
- PSBlueSky.psm1
- docs\Export-BskyPreference.md
- docs\Get-BskyFollowers.md
- docs\Get-BskyPreference.md
- docs\Open-BskyHelp.md
- docs\Set-BskyPreference.md
- formats\PSBlueskyBlockedList.format.ps1xml
- formats\PSBlueskyNotification.format.ps1xml
- functions\blocks.ps1
- functions\Get-PSBlueSkyDID.ps1
- functions\Get-PSBlueSkyProfile.ps1
- functions\Open-README.ps1
- images\bluesky-apppassword.png
- images\bsky-following.png
- images\bsky-timeline.png
- images\get-bskyblockedlist.png