Skip to content

Instantly share code, notes, and snippets.

View PSingletary's full-sized avatar
🔍
Search

PSingletary PSingletary

🔍
Search
View GitHub Profile
@jacob-ebey
jacob-ebey / atproto-example.ts
Last active September 29, 2025 12:12
An ATProto OAuth client for cloudflare workers.
const oauthClient = new AtprotoOAuthClient({
AtpBaseClient,
callbackPathname: oauthCallbackPathname,
clientMetadataPathname: oauthClientMeatadataPathname,
clientMetadata: {
client_name: "AtprotoTest",
client_uri: new URL("/", request.url).href,
scope: "atproto transition:generic",
},
namespace: env.OAUTH_STORAGE,
@mary-ext
mary-ext / bluesky-osa.md
Last active December 10, 2025 20:28
Bluesky's age assurance sucks, here's how to work around it.

Bluesky's age assurance sucks, here's how to work around it.

Bluesky has implemented age verification measures in response to regional laws that restrict access, prompting users to verify their age through Epic Games' Kids Web Services before they can access adult content.

This sucks, but thankfully there are ways to work around it.

Before diving in: I encourage you to read this entire document, including the

@iameli
iameli / streamplace.json
Created May 22, 2025 20:51
Graze custom feed for Streamplace
{
"order": "new",
"manifest": {
"filter": {
"and": [
{
"or": [
{
"regex_matches": [
"text",
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@mary-ext
mary-ext / bsky-annoyances.txt
Last active December 6, 2025 08:55
custom scriptlet for removing Bluesky's annoyances
bsky.app##+js(user-bsky-annoyances.js)
main.bsky.dev##+js(user-bsky-annoyances.js)
||go.bsky.app/redirect$urlskip=?u
@StartAutomating
StartAutomating / EventBasedServer.ps1
Last active August 8, 2025 17:43
Gist a small event-based HTTP server in PowerShell
$JobName = "http://localhost:$(Get-Random -Min 4200 -Max 42000)/"
$httpListener = [Net.HttpListener]::new()
$httpListener.Prefixes.Add($JobName)
$httpListener.Start()
Start-ThreadJob -ScriptBlock {
param($MainRunspace, $httpListener, $SourceIdentifier = 'http')
while ($httpListener.IsListening) {
$contextAsync = $httpListener.GetContextAsync()
while (-not ($contextAsync.IsCompleted -or $contextAsync.IsFaulted -or $contextAsync.IsCanceled)) {}
@b0o
b0o / 0.md
Last active February 18, 2025 02:40
Bluesky Starter Pack List Adder

Install UserScript Follow Me

2024-12-18_21-22-05_region_re.mp4
@parsingphase
parsingphase / bluesky-replies-only.css
Created November 14, 2024 22:47
User Stylesheet to only view replies on your Bluesky notification page (no follows, likes, reposts)
/*
This stylesheet can be used to hide all but reply notifications on your Bluesky notifications page (https://bsky.app/notifications)
You'll generally need a plugin such as https://addons.mozilla.org/en-US/firefox/addon/styl-us/ on firefox -
other plugins or ways of adding a user stylesheet are available for other browers.
You'll probably only want to enable it on the one page, and you'll have to turn it off to see any other notification types.
This stylesheet will work until something critical changes on the Bluesky notifications page.
If it breaks, the [data-testid="notificationsScreen"] line is the most likely culprit - you can just remove it & the matching {}s
*/
@mackuba
mackuba / bsky_user_stats.rb
Created September 6, 2024 22:40
Script to check how much given Bluesky users post daily on average
#!/usr/bin/env ruby
begin
require 'minisky'
rescue LoadError
puts "Install minisky: '[sudo] gem install minisky'"
exit 1
end
require 'time'
@mary-ext
mary-ext / delete-follow-orphans.ts
Last active June 14, 2024 13:32
bluesky delete orphaned follows
import { Agent } from '@externdefs/bluesky-client/agent';
import type { Records, RefOf } from '@externdefs/bluesky-client/atp-schema';
const BSKY_USERNAME = '';
const BSKY_PASSWORD = '';
const agent = new Agent({ serviceUri: 'https://bsky.social' });
await agent.login({ identifier: BSKY_USERNAME, password: BSKY_PASSWORD });
const did = agent.session!.did;