MrPowerShell

My GitHub Repos

My GitHub Repositories

(I write a lot of code)

Some Stats:

James Brundage's GitHub Stats James Brundage's GitHub Stats Total Stars Earned: 1,741 Total Commits (2026): 1,396 Pull Requests: 55 Issues Opened: 1,465 Estimated Coding Hours: 1,366.5h Current Streak: 125 days Commits This Week: 19 Weekly Trend: 19 commits -44% Avg Commits / Day: 9.4 Most Active Day: Wednesday Activity Grade: A+ Contributions This Year: 3,455 Public Repos: 66 Followers: 562 A+ 100%

Repos

Sort by:

PSDevOps

PowerShell Tools for DevOps

★ 154 | Forks: 31 | Watchers: 154 | Open Issues: 44

Created: 2019-11-17 | Updated: 2026-09-08

Thumbnail - For an example of a module that does this from the get-go, look at github.com/StartAutomat... I friggin _hate_ the "Whose ID is it anyway" problem space. It may be all other developers' fault, but boy am I glad I've got a solid way to workaround.
— @

Irregular

Regular Expressions made Strangely Simple

★ 112 | Forks: 8 | Watchers: 112 | Open Issues: 44

Created: 2019-09-16 | Updated: 2026-08-10

Thumbnail - #PowerShell #Regex reminder: New-RegEx is your friend. github.com/StartAutomat...
— @

PipeScript

A Metaprogramming Language for PowerShell (and anything else)

★ 110 | Forks: 7 | Watchers: 110 | Open Issues: 370

Created: 2022-06-21 | Updated: 2026-08-14

Thumbnail - To finish the first set of posting to #BlueSky/#AtProtocol #PowerShell off, let's see if this makes a webcard pointing to PipeScript.
— @

ugit

Updated Git: A powerful PowerShell wrapper for git that lets you extend git, automate multiple repos, and output git as objects.

★ 103 | Forks: 9 | Watchers: 103 | Open Issues: 55

Created: 2022-03-18 | Updated: 2026-07-24

Thumbnail - Ugit lets you use git in the object pipeline: github.com/StartAutomat...
— @

obs-powershell

Script OBS with PowerShell

★ 88 | Forks: 3 | Watchers: 88 | Open Issues: 38

Created: 2022-12-09 | Updated: 2026-09-21

Thumbnail - Ummm... Not _exactly_ github.com/StartAutomat... Works over their websocket api, and can connect to any obs instance with the port open on any network 😎 Have fun!
— @

EZOut

EZOut is a PowerShell module to help take the pain out of writing format and types XML

★ 76 | Forks: 8 | Watchers: 76 | Open Issues: 48

Created: 2014-05-05 | Updated: 2026-10-06

Thumbnail - Yes. You just need to write a format file to do it. Got a very old easy module for that: github.com/StartAutomat... Table formatters can right align or center a column Write-FormatView -TypeName Foo -Property bar, baz -AlignProperty @{baz='Right'}
— @

Posh

PowerShell made Posh

★ 74 | Forks: 6 | Watchers: 74 | Open Issues: 99

Created: 2023-07-20 | Updated: 2026-09-14

Thumbnail - Explore #DotNet types in #PowerShell with the reflection formatter in #Posh github.com/StartAutomat...
— @

PowerArcade

A Retro Arcade Game Console in PowerShell

★ 70 | Forks: 0 | Watchers: 70 | Open Issues: 5

Created: 2020-04-01 | Updated: 2026-09-30

Thumbnail - I was figuring it might make sense to just make them easy to output. There's a lot of "little code here / little code there" stuff, but nothing cohesive and easy to import and use. Can make some bidirectional code work, too. ~ half this stuff is already in PowerArcade github.com/StartAutomat...
— @

Pipeworks

PowerShell Pipeworks is a web platform built in Windows PowerShell, and a toolkit for putting it all together with PowerShell

★ 70 | Forks: 15 | Watchers: 70 | Open Issues: 29

Created: 2014-09-02 | Updated: 2025-10-27

Thumbnail - Oh it was fun. This command makes N different UIs from hashtables. I think about half are/were jQueryUI. ( The rise and fall of jQuery was part of why that project got abandoned.... Too much technical debt and too hard to refinance it ) github.com/StartAutomat...
— @

Splatter

Simple Scripts to Supercharge Splatting

★ 68 | Forks: 0 | Watchers: 68 | Open Issues: 26

Created: 2019-07-06 | Updated: 2026-02-25

Thumbnail - 💯 its ridiculously overpowered to just basically be like: Find me all commands that have the letter G in them and have a parameter named X with Y type. Apropos of old fun cool tools that might make Defender yell a bit. GitHub.com/StartAutomat...
— @

ScriptDeck

PowerShell Tools for Elgato StreamDeck

★ 62 | Forks: 15 | Watchers: 62 | Open Issues: 63

Created: 2021-03-31 | Updated: 2026-08-04

Thumbnail - You might also be able to sidestep BurntToast by using the .NET apis directly. Found an ScriptDeck/WindowsPowerShell.StreamDeckPluginTemplate.ps1 at b33ce2b69f1b2fb42387291a6ac05b21e9ee37c9 · StartAutomating/ScriptDeck (github.com) (to long to skeet/tweet/whatever we're calling it)
— @

Benchpress

Easy Benchmarking with PowerShell

★ 59 | Forks: 4 | Watchers: 59 | Open Issues: 11

Created: 2019-03-23 | Updated: 2026-10-06

Thumbnail - Want to compare and contrast #performance of a #PowerShell script? There's a module for that: github.com/StartAutomat...
— @

PSSVG

Script SVGs with PowerShell

★ 45 | Forks: 2 | Watchers: 45 | Open Issues: 120

Created: 2022-09-08 | Updated: 2026-06-20

Thumbnail - There's also a fairly fully featured wrapper to produce any #SVG. GitHub.com/StartAutomat... This would be especially useful in reducing file sizes, as you can craft a grid pattern out of only one copy of a small set of tiles ( no prerendering required )
— @

RoughDraft

A Fun PowerShell Module for Multimedia (using FFMpeg)

★ 45 | Forks: 5 | Watchers: 45 | Open Issues: 49

Created: 2021-11-29 | Updated: 2026-09-29

Thumbnail - Cool stuff! Hot tip: RoughDraft makes it easy to get/set lyrics in a song. Also, since lyrics are plain text, one *could* make them VTT or SRT, thus giving you timing. GitHub.com/StartAutomat... Get-Media $mp3 | select lyric*
— @

ScriptCop

ScriptCop is a static analysis and testing tool for Windows PowerShell

★ 44 | Forks: 4 | Watchers: 44 | Open Issues: 1

Created: 2014-05-05 | Updated: 2025-11-18

ShowDemo

A simple tool to showcase your scripts.

★ 41 | Forks: 2 | Watchers: 41 | Open Issues: 15

Created: 2022-12-03 | Updated: 2026-04-13

Thumbnail - Show off your scripts ShowDemo
— @

Eventful

Easy Eventful PowerShell

★ 38 | Forks: 1 | Watchers: 38 | Open Issues: 13

Created: 2021-11-02 | Updated: 2026-03-30

PowerShellAI

PowerShell meets GPT - Artificial Intelligence

★ 36 | Forks: 98 | Watchers: 36 | Open Issues: 0

Created: 2023-01-12 | Updated: 2026-08-24

HelpOut

A Helpful Toolkit for Managing PowerShell Help

★ 36 | Forks: 4 | Watchers: 36 | Open Issues: 18

Created: 2019-06-18 | Updated: 2026-08-02

Thumbnail - #PowerShell people, help yourself to new bits: HelpOut 0.5.3 is out! https://github.com/StartAutomating/HelpOut
— @

Patchy

Patchy is a PowerShell module that helps smooth out the chop of maintaining Windows Updates

★ 27 | Forks: 3 | Watchers: 27 | Open Issues: 0

Created: 2014-05-05 | Updated: 2026-01-09

PSMinifier

A Miniature Minifier For PowerShell

★ 26 | Forks: 5 | Watchers: 26 | Open Issues: 10

Created: 2020-01-21 | Updated: 2026-07-23

Thumbnail - Why stop at just removing comments? StartAutomating/PSMinifier: A Miniature Minifier For PowerShell (github.com) (all seriousness, keep comments in your shipped module, they help... minify only if you want the speed/bandwidth savings).
— @

Turtle

Turtle Graphics in PowerShell

★ 24 | Forks: 9 | Watchers: 24 | Open Issues: 54

Created: 2025-07-23 | Updated: 2026-09-07

Thumbnail - Now is the time to mention that Turtles already live in PowerShell 🐢😎 github.com/PoshWeb/Turtle There's also a graphical shell / repl builder github.com/PoshWeb/Rept... Both are pretty friendly to agents. All part of the Fun: github.com/PoshWeb/Fun
— @

MenuShell

MenuShell is a PowerShell module for rapidly making console menus

★ 22 | Forks: 2 | Watchers: 22 | Open Issues: 1

Created: 2014-05-05 | Updated: 2025-07-22

Rocker

Rock Docker with PowerShell

★ 21 | Forks: 0 | Watchers: 21 | Open Issues: 31

Created: 2024-04-03 | Updated: 2026-04-13

Thumbnail - Want to #rock #docker with #PowerShell? github.com/StartAutomat...
— @

WebSocket

Work with WebSockets in PowerShell

★ 21 | Forks: 3 | Watchers: 21 | Open Issues: 22

Created: 2024-11-27 | Updated: 2026-08-05

TerminalVelocity

Fine tuning Windows Terminal

★ 20 | Forks: 1 | Watchers: 20 | Open Issues: 3

Created: 2020-05-14 | Updated: 2026-08-22

- Changing the tab colors like how? I wrote this a while back, but haven't done in an update round in a while. github.com/StartAutomat... Should be possible to change any part of a profile/terminal, might need updates for newer parts of the schema.
— @

LightScript

Smarter Lighting with PowerShell

★ 20 | Forks: 5 | Watchers: 20 | Open Issues: 58

Created: 2021-12-23 | Updated: 2026-04-13

Thumbnail - Alright this little directory should be a goldmine of #PowerShell #Color scripts github.com/StartAutomat... That module controls smart lighting btw. I'll try to make something that's just for colors soon. You might also want to check out Pansies.
— @

Fun

A Fun PowerShell Server

★ 17 | Forks: 3 | Watchers: 17 | Open Issues: 49

Created: 2026-06-07 | Updated: 2026-09-10

Thumbnail - I've been doing a lot of GitHub pages with PowerShell workflows. It's been working fine. For a lightweight local server, I recently had some fun building Fun. github.com/PoshWeb/Fun Was working a bit on updates to it this morning.
— @

OnQ

Easy Asynchronous Event-Driven Scripting with PowerShell

★ 17 | Forks: 1 | Watchers: 17 | Open Issues: 0

Created: 2021-01-24 | Updated: 2025-11-04

PowerNix

Linux Tools for PowerShell People.

★ 17 | Forks: 1 | Watchers: 17 | Open Issues: 14

Created: 2021-05-19 | Updated: 2026-01-18

AutoBrowse

AutoBrowse is a Windows PowerShell module that lets you automate browsing with Internet Explorer

★ 16 | Forks: 6 | Watchers: 16 | Open Issues: 0

Created: 2014-05-05 | Updated: 2025-10-27

Discovery

Discovery is a powerful PowerShell module that lets you probe the inner depths of the operating system.

★ 16 | Forks: 4 | Watchers: 16 | Open Issues: 1

Created: 2014-05-07 | Updated: 2026-01-09

PowerHistory

PowerShell History Made More Powerful

★ 16 | Forks: 1 | Watchers: 16 | Open Issues: 0

Created: 2020-03-03 | Updated: 2026-01-09

Thumbnail - Some other additional bonus points : history objects are "sticky". Changes to them will persist as long as the session is open. Made a module a while back to play with history objects. Enjoy! github.com/StartAutomat...
— @

Emoji

⟩⚡PowerShell Emoji 😎😉😍🥰🤔😟

★ 15 | Forks: 0 | Watchers: 15 | Open Issues: 23

Created: 2024-02-20 | Updated: 2026-06-27

Thumbnail - Aww thanks Find-Emoji -Pattern "Hugging Face" 🤗 (brief related side-note... github.com/StartAutomat...)
— @

Piecemeal

Easy Extensible Plugins for PowerShell

★ 14 | Forks: 1 | Watchers: 14 | Open Issues: 2

Created: 2021-12-19 | Updated: 2025-05-21

CodeCraft

CodeCraft is a Powershell module full of code generators that helps you crank out tedious code.

★ 13 | Forks: 5 | Watchers: 13 | Open Issues: 0

Created: 2014-05-05 | Updated: 2026-04-27

PSMetrics

A Module for Metrics in PowerShell

★ 13 | Forks: 1 | Watchers: 13 | Open Issues: 12

Created: 2023-04-25 | Updated: 2026-04-13

GitPub

Easily Automate Publishing from GitHub

★ 12 | Forks: 3 | Watchers: 12 | Open Issues: 31

Created: 2022-10-10 | Updated: 2026-10-02

MarkX

MarkX - Markdown, XML, and PowerShell

★ 12 | Forks: 1 | Watchers: 12 | Open Issues: 63

Created: 2025-12-24 | Updated: 2026-10-14

PSPrettifier

Prettify your PowerShell

★ 11 | Forks: 0 | Watchers: 11 | Open Issues: 10

Created: 2022-09-28 | Updated: 2025-05-21

Servers101

Simple Servers in PowerShell

★ 10 | Forks: 2 | Watchers: 10 | Open Issues: 13

Created: 2025-12-07 | Updated: 2026-08-05

- Let's start with the one I updated yesterday: GitHub.com/PoshWeb/Serv... The basic point of this module is to share short servers that help explain / demonstrate how to write web servers. Will be putting more servers into that module over time. Happy to take requests / issues.
— @

StartAutomating

Save Time, Save Money, Start Automating.

★ 9 | Forks: 0 | Watchers: 9 | Open Issues: 46

Created: 2022-08-28 | Updated: 2026-06-09

Winformal

Winformal is a PowerShell module to let you script WinForms with cmdlets

★ 9 | Forks: 2 | Watchers: 9 | Open Issues: 0

Created: 2014-05-08 | Updated: 2025-05-21

PSA

PowerShell Announcements (with AtProtocol)

★ 9 | Forks: 1 | Watchers: 9 | Open Issues: 31

Created: 2023-09-12 | Updated: 2026-04-08

- Last night I did a late name drop of an old #PowerShell tool that had been gathering dust on the shelf. GitHub.com/StartAutomat... Learn how to use Cmdlet Adapters and XML to open up whole ecosystems with a small amount of code.
— @

PingMe

PingMe is a PowerShell module to simplify different types of network checks on a machine

★ 9 | Forks: 3 | Watchers: 9 | Open Issues: 0

Created: 2014-05-10 | Updated: 2023-07-17

ollama-powershell

Ollama PowerShell: Play with AI in PowerShell

★ 8 | Forks: 3 | Watchers: 8 | Open Issues: 36

Created: 2025-03-02 | Updated: 2026-09-01

Thumbnail - I swear I need to share more. Want to play with #ollama in #powershell? Interact with any #ai with sweet and simple syntax: ~~~PowerShell tinyllama "What are you?" ~~~ github.com/StartAutomat...
— @

SecureSettings

SecureSettings is a small PowerShell module to manage storing settings information securely

★ 7 | Forks: 2 | Watchers: 7 | Open Issues: 0

Created: 2014-05-06 | Updated: 2022-10-16

PSJekyll

PowerShell Tools for Jekyll

★ 7 | Forks: 0 | Watchers: 7 | Open Issues: 31

Created: 2024-09-30 | Updated: 2026-08-05

HeatMap

HeatMap is a PowerShell module for monitoring performance counters in PowerShell

★ 7 | Forks: 2 | Watchers: 7 | Open Issues: 0

Created: 2014-05-05 | Updated: 2022-06-11

PowerCode

A PowerShell Module for Customizing Visual Studio Code

★ 7 | Forks: 0 | Watchers: 7 | Open Issues: 73

Created: 2023-02-23 | Updated: 2025-10-06

MrPowerShell

Jack of all Trades, Master of PowerShell

★ 6 | Forks: 2 | Watchers: 6 | Open Issues: 70

Created: 2024-12-21 | Updated: 2026-10-13

Thumbnail - No problem. For an example of just tracking your own #AtProto activity, here's the #GitHub repo for my own site: github.com/StartAutomat... It uses a #PowerShell #WebSocket action to just store anything I post to anywhere. And yeah, the whole static site is built in pure PowerShell, too 😉
— @

PowRoku

Script your Roku with PowerShell

★ 5 | Forks: 0 | Watchers: 5 | Open Issues: 3

Created: 2021-08-03 | Updated: 2026-10-07

Glass

Glass is a module for seeing thru invisible characters

★ 5 | Forks: 1 | Watchers: 5 | Open Issues: 0

Created: 2025-10-23 | Updated: 2025-11-02

Thumbnail - Ironically, actual malicious code tries _really_ hard to look safe, or to be so minified / obfuscated that you don't even want to try. Or, if it's being _extra_ sneaky, it goes all out and makes itself invisible. See: github.com/StartAutomat... (invisible code) or github.com/StartAutomat...
— @

PoshMacros

Sleek and Simple PowerShell Macros

★ 5 | Forks: 0 | Watchers: 5 | Open Issues: 0

Created: 2020-02-09 | Updated: 2023-09-16

OP

Overpowered module for Open Packages

★ 4 | Forks: 0 | Watchers: 4 | Open Issues: 17

Created: 2025-10-27 | Updated: 2026-08-12

Thumbnail - Hey #PowerShell people, module update alert: The #OpenGraph module just got an update! Now with improved support for unclosed meta tags github.com/PoshWeb/Open... Use this module to see if your sites are #SEO friendly. Have fun!
— @

Matrix

Matrix Transforms with PowerShell

★ 4 | Forks: 0 | Watchers: 4 | Open Issues: 0

Created: 2026-08-10 | Updated: 2026-09-30

Thumbnail - Cool! You let your imagination work with AI. This is a required ingredient. Stay creative! Btw / re matrixes... Did you see that I figured out how to make CSS transform matrixes work in PowerShell? github.com/PoshWeb/Matrix
— @

PoshWeb

WebDev with PowerShell

★ 4 | Forks: 0 | Watchers: 4 | Open Issues: 3

Created: 2026-02-21 | Updated: 2026-08-05

JSON-LD

Get JSON Linked Data with PowerShell

★ 4 | Forks: 1 | Watchers: 4 | Open Issues: 1

Created: 2025-03-16 | Updated: 2026-08-05

Thumbnail - Hey #PowerShell people: Minor module updates are out JSON-LD got a quick new version (0.1.2) Slightly better aliasing and support for direct URLs. github.com/PoshWeb/JSON... Use this module to work with linked data, and to help test your #SEO
— @

PS3D

PowerShell Tools for 3D Printing

★ 4 | Forks: 0 | Watchers: 4 | Open Issues: 76

Created: 2022-04-25 | Updated: 2025-08-21

TerminalTunes

A Music Player for Terminals

★ 4 | Forks: 1 | Watchers: 4 | Open Issues: 34

Created: 2022-09-24 | Updated: 2026-10-10

PSAdapter

Adapt anything into PowerShell Commands

★ 4 | Forks: 1 | Watchers: 4 | Open Issues: 33

Created: 2024-09-08 | Updated: 2026-04-29

Thumbnail - Hey, seriously, please look me up and stop presuming. Here's something I put out last week about a feature *not* well documented from that time.... Cmdlet Adapters: GitHub.com/StartAutomat...
— @

PrimeTime

The Power of Primes

★ 3 | Forks: 1 | Watchers: 3 | Open Issues: 0

Created: 2026-07-12 | Updated: 2026-08-05

Thumbnail - New #PowerShell #CSS module alert. It's PrimeTime! github.com/PoshWeb/Prim... A simple prime number animation framework, built with PowerShell and CSS. Its demo page will repeat in ~100 Trillion Years 🤯😱 primetime.poshweb.org
— @

OpenGraph

Get OpenGraph with PowerShell

★ 3 | Forks: 1 | Watchers: 3 | Open Issues: 0

Created: 2025-03-16 | Updated: 2026-08-05

Thumbnail - Hey #PowerShell people, module update alert: The #OpenGraph module just got an update! Now with improved support for unclosed meta tags github.com/PoshWeb/Open... Use this module to see if your sites are #SEO friendly. Have fun!
— @

Reptile

Read Evaluate Print Terminal Input Loop Editor - A Scaley Simple PowerShell Data REPL.

★ 3 | Forks: 2 | Watchers: 3 | Open Issues: 10

Created: 2025-12-30 | Updated: 2026-08-05

Thumbnail - Cool! I'd love to collab a bit on the future format. Specifically: I feel like a new PowerShell Pack format should be able to "snap in" like it was an MMC plugin or launch standalone. I'd love it if we can make both Avalonia apps and local web apps work, a la github.com/PoshWeb/Rept...
— @

Vector

Vectors in PowerShell

★ 3 | Forks: 0 | Watchers: 3 | Open Issues: 0

Created: 2025-10-04 | Updated: 2026-09-30

Thumbnail - Just updated Vector, the #PowerShell #Math module for Vectors. github.com/PoshWeb/Vector Turn anything into vectors and manipulate them in 2D, 3D, or 4D. Have fun!
— @

Zippy

Easy Compression in PowerShell

★ 3 | Forks: 0 | Watchers: 3 | Open Issues: 2

Created: 2026-08-04 | Updated: 2026-09-30

- Just dropped Zippy, a quick PowerShell module for compression: github.com/PoshWeb/Zippy Compress/Expand data using Brotli, Deflate, GZip, or ZLib
— @

SearchScript

Search PowerShell Scripts

★ 3 | Forks: 0 | Watchers: 3 | Open Issues: 1

Created: 2025-12-12 | Updated: 2026-08-03

Thumbnail - What did you use? I wrote a mini module to help this sort of find / replace job with the AST github.com/StartAutomat...
— @

formulaic

Formulaic is a PowerShell module containing useful math, physics, and statistcs functions

★ 3 | Forks: 2 | Watchers: 3 | Open Issues: 24

Created: 2014-04-30 | Updated: 2026-04-02

PSData

In-Memory .NET Databases in PowerShell

★ 3 | Forks: 0 | Watchers: 3 | Open Issues: 106

Created: 2024-07-21 | Updated: 2025-05-21

WhereFor

Wherefore Art Thou PowerShell? Multiple Object Pipelines

★ 3 | Forks: 0 | Watchers: 3 | Open Issues: 4

Created: 2024-12-07 | Updated: 2025-05-21

Thumbnail - Did you ever wonder what would happen if the #PowerShell commands Where-Object and Foreach-Object had a baby? Check out WhereFor: github.com/StartAutomat... Process multiple conditionals and outputs in a single object pipeline.
— @

Wave

Work with Wave Files in PowerShell

★ 2 | Forks: 2 | Watchers: 2 | Open Issues: 112

Created: 2026-09-13 | Updated: 2026-10-08

Thumbnail - Got my DMTF tone generator working! And then realized the issue number is the star code for "block this number" 🤣 It's the little things github.com/PoshWeb/Wave...
— @

Dice

Roll the Dice and Play with Probability in PowerShell - ⚀ ⚅

★ 2 | Forks: 0 | Watchers: 2 | Open Issues: 1

Created: 2024-08-10 | Updated: 2025-05-21

Thumbnail - Nice script! If you want to take that idea up to 11 and add datatables for long term tracking of all of the Dice rolls, I _might_ have gone a bit overboard with this little module. github.com/StartAutomat... Reminds me I need to build it's sibling module one of these days...
— @

Escape

Escape the pain of escape sequences

★ 2 | Forks: 0 | Watchers: 2 | Open Issues: 0

Created: 2026-02-05 | Updated: 2026-08-01

Thumbnail - New #PowerShell module alert! Escape! Escape the pain of escape sequences github.com/StartAutomat... Initial build has over 100 escape sequences to use without looking up arcane syntax. Hat tip to @sneakyness.com for the inspiration! Have fun!
— @

PowerShellPowerPoints

A Collection of Presentations I've given on PowerShell

★ 2 | Forks: 0 | Watchers: 2 | Open Issues: 0

Created: 2020-05-15 | Updated: 2023-08-10

oEmbed

Open Embedding with PowerShell

★ 2 | Forks: 0 | Watchers: 2 | Open Issues: 6

Created: 2025-03-15 | Updated: 2026-08-05

Shortcut

Simple Shortcuts with PowerShell

★ 2 | Forks: 0 | Watchers: 2 | Open Issues: 1

Created: 2026-08-08 | Updated: 2026-08-09

Thumbnail - Cool! Give Shortcut a try and let me know how it could be improved. Please also feed GitHub with a star. GitHub.com/StartAutomat...
— @

Gradient

Gradient Generation with PowerShell

★ 2 | Forks: 0 | Watchers: 2 | Open Issues: 3

Created: 2025-12-29 | Updated: 2026-08-05

Thumbnail - Aliases rock, especially if they're more clear: For example, I've got a module for CSS gradient generation. The command is Get-Gradient The alias is simple Gradient So I can just type ~~~PowerShell gradient red green blue ~~~ And get back a gradient. 😎 github.com/PoshWeb/Grad...
— @

AI

Automate AI with PowerShell

★ 2 | Forks: 1 | Watchers: 2 | Open Issues: 0

Created: 2025-02-23 | Updated: 2025-12-17

HtmxPS

Script Htmx and PowerShell Microservices

★ 2 | Forks: 0 | Watchers: 2 | Open Issues: 47

Created: 2024-10-21 | Updated: 2026-04-19

GQL

Get GraphQL in PowerShell

★ 2 | Forks: 0 | Watchers: 2 | Open Issues: 5

Created: 2024-12-16 | Updated: 2026-08-05

Organize

Get Organized - Fast Grouping by multiple conditions

★ 1 | Forks: 0 | Watchers: 1 | Open Issues: 1

Created: 2026-01-05 | Updated: 2026-09-04

Thumbnail - Woot! Nice to see your progress on this. Congrats! BTW, don't know if I mentioned this but I made a quick mini-module for multi-selection grouping: github.com/StartAutomat...
— @

OpenXML

Automate OpenXML with PowerShell

★ 1 | Forks: 1 | Watchers: 1 | Open Issues: 32

Created: 2025-10-14 | Updated: 2026-08-05

PowerShellWeb

PowerShell Web Development

★ 1 | Forks: 0 | Watchers: 1 | Open Issues: 30

Created: 2024-11-03 | Updated: 2024-12-04

4kbMarkdownFiles

Performance Testing Parsing of 4kb Markdown Files

★ 1 | Forks: 2 | Watchers: 1 | Open Issues: 3

Created: 2026-01-14 | Updated: 2026-08-05

ROI

Calculate Return on Investment

★ 1 | Forks: 0 | Watchers: 1 | Open Issues: 0

Created: 2026-02-12 | Updated: 2026-02-15

Thumbnail - Hey #PowerShell people, I made a mini-module this weekend: ROI: github.com/StartAutomat... Simple Return on Investment calculator. It has some pretty interesting examples: My top 3: 1. The ROI for writing Open Source 2. The ROI of Automation 3. The highly volatile ROI of #AI
— @

Subtitles

Script Subtitles with PowerShell.

★ 1 | Forks: 1 | Watchers: 1 | Open Issues: 4

Created: 2025-12-23 | Updated: 2026-05-27

Thumbnail - Yep. New places for attackers to hide. It's One Battle After Another. Which is why I just dropped a Subtitles module. github.com/StartAutomat... #CyberSecurity #PowerShell #Accessibility
— @

MathML

PowerShell and MathML

★ 1 | Forks: 0 | Watchers: 1 | Open Issues: 0

Created: 2025-10-02 | Updated: 2026-08-05

StartAutomating.github.io

Save Time, Save Money, Start Automating.

★ 1 | Forks: 0 | Watchers: 1 | Open Issues: 0

Created: 2021-12-28 | Updated: 2024-01-01

Shuffle

Simple Shuffle with PowerShell

★ 1 | Forks: 0 | Watchers: 1 | Open Issues: 0

Created: 2025-12-07 | Updated: 2026-01-03

AtPowerShellSummit

What happens at PowerShell Summit

★ 1 | Forks: 1 | Watchers: 1 | Open Issues: 2

Created: 2025-04-06 | Updated: 2026-10-13

CTAN

PowerShell module for the Comprehensive TeX Archive Network

★ 0 | Forks: 0 | Watchers: 0 | Open Issues: 0

Created: 2026-01-24 | Updated: 2026-01-25

Thumbnail - In other #PowerShell module releases of the weekend, there's CTAN. github.com/StartAutomat... Just a quick PowerShell module to help you work with the Comprehensive #TeX archive network API.
— @

AtGitHub

At Protocol and GitHub

★ 0 | Forks: 0 | Watchers: 0 | Open Issues: 6

Created: 2025-05-28 | Updated: 2025-10-24

Thumbnail - Monitor #GitHub activity on #AtProto / #BlueSky ( built with #PowerShell, #WebSocket, and #GitHubActions ) github.com/PowerShellWe...
— @

Shape

CSS Shapes with PowerShell

★ 0 | Forks: 0 | Watchers: 0 | Open Issues: 3

Created: 2026-01-04 | Updated: 2026-08-05

Badger

Build Badges in PowerShell

★ 0 | Forks: 0 | Watchers: 0 | Open Issues: 33

Created: 2024-12-11 | Updated: 2024-12-11

Glyph

Manage and Manipulate fonts with PowerShell

★ 0 | Forks: 0 | Watchers: 0 | Open Issues: 2

Created: 2025-09-14 | Updated: 2026-08-03

PocketMarkdown

Pocket Blog to Markdown

★ 0 | Forks: 0 | Watchers: 0 | Open Issues: 2

Created: 2026-04-12 | Updated: 2026-08-05

- Another answer to "What Have I Done?" github.com/PoshWeb/Pock... Dropped this this weekend, partially as a test of using some other tech to release modules. Will be making a pocket blog post and expanding it soon. Then it's @offprint.app 's turn. Then @leaflet.pub . Who's next?
— @

PoshaKucha

PechaKucha Presentations with PowerShell

★ 0 | Forks: 1 | Watchers: 0 | Open Issues: 12

Created: 2025-01-21 | Updated: 2026-08-01

.github

PoshWeb GitHub Profile

★ 0 | Forks: 0 | Watchers: 0 | Open Issues: 0

Created: 2026-07-11 | Updated: 2026-10-15

Neocities

Personal Webpages in PowerShell

★ 0 | Forks: 0 | Watchers: 0 | Open Issues: 0

Created: 2025-03-25 | Updated: 2026-08-05

Lerp

Linear Interpolation in PowerShell

★ 0 | Forks: 0 | Watchers: 0 | Open Issues: 0

Created: 2026-07-14 | Updated: 2026-08-05

Thumbnail - Now officially at two #PowerShell #Math modules in one day! github.com/PoshWeb/Lerp
— @

StandardSiteIndex

An Index of Standard.site Content

★ 0 | Forks: 0 | Watchers: 0 | Open Issues: 3

Created: 2026-01-29 | Updated: 2026-05-22

.github

PowerShellWeb Org

★ 0 | Forks: 0 | Watchers: 0 | Open Issues: 1

Created: 2024-09-28 | Updated: 2024-09-29

View Source

<#
.SYNOPSIS
    Gets my GitHub repositories
.DESCRIPTION
    Gets my GitHub repositories and displays them as HTML.
.EXAMPLE
    ./index.html.ps1
.LINK
    https://MrPowerShell.com/GitHub
#>
#requires -Module PSDevOps
param(
    [string]
    $did = 'did:plc:hlchta7bwmobyum375ltycg5',

    [string]
    $GitHubUserName = 'StartAutomating',

    [Alias('GitHubOrgs','GitHubOrg')]
    [string[]]
    $GitHubOrganizations = @('StartAutomating', 'PowerShellWeb','PoshWeb')
)

$Title = "My GitHub Repos"
$Description = "Most of My GitHub repositories"

if (-not $script:CachedRepoList) {
    $script:CachedRepoList = [Ordered]@{}    
    $connectedToGitHub = Connect-GitHub
    $myGitHubInfo = api.github.com/users/<username> -username $GitHubUserName
    foreach ($githubOrg in $gitHubOrganizations) {
        $script:CachedRepoList[$githubOrg] = api.github.com/users/<username>/repos -username $githubOrg -perPage 100    
    }
}

$myRepos = @($script:CachedRepoList.Values) | . { process { $_ } }
$myRepos | ConvertTo-Json -Depth 10 | Set-Content -Path $PSScriptRoot/Repos.json
$myReposByPopularity = $myRepos | Where-Object -Not Fork | Sort-Object stargazers_count -Descending 
$totalStars = ($myRepos | Measure-Object -Property stargazers_count -Sum).Sum

if (-not $atProtocolData -and $at.AtData) {
    $atProtocolData = $at.AtData
}

$postsAboutRepos =
    if ($atProtocolData) {
        foreach ($message in @($atProtocolData.Tables['app.bsky.feed.post'].Select("did = '$($did -replace '_', ':')'", "createdAt DESC")).message) {
            $messageLink = $message.commit.record.embed.external.uri -as [uri]
            if (-not $messageLink) { continue }
            if ($messageLink.DnsSafeHost -match 'github\.com$') {
                $message
            }
        }
    }


$gitHubStats = Invoke-RestMethod https://ghstats.dev/api/card?username=$GitHubUserName

$gitHubStats | 
    Select-Xml //* | 
        ForEach-Object {
            $node =$_.Node
            switch ($node.LocalName) {
                circle {
                    if ($node.Class) {
                        $node.Class = "foreground-stroke $($node.Class)"
                    } else {
                        $node.SetAttribute("class", "foreground-stroke")    
                    }
                }
                text {
                    if ($node.Class) {
                        $node.Class = "foreground-fill $($node.Class)"
                    } else {
                        $node.SetAttribute("class", "foreground-fill")    
                    }
                }
                path {
                    if ($node.Class) {
                        $node.Class = "foreground-fill foreground-stroke $($node.Class)"
                    } else {
                        $node.SetAttribute("class", "foreground-fill foreground-stroke")    
                    }
                }
                svg {
                    $node.SetAttribute("class", "foreground-fill foreground-stroke")
                }
                style {
                    $node.InnerText = $node.InnerText -replace 'fill:.+?;'
                }
            }
        }

$gitHubStats.svg.Class += " github-stats"

"<style>"
".github-stats { text-align: center}"
"</style>"

$markdown = @(

"# My GitHub Repositories"

"(I write a lot of code)"

"## Some Stats:"

"  * $totalStars ★"
"  * [$($myGitHubInfo.followers) followers](https://github.com/$GitHubUserName/?tab=followers)"
"  * $($myRepos.Count) public repos"
foreach ($key in $script:CachedRepoList.Keys) {
"    * [$($key)](https://github.com/$key/?tab=repositories)($($script:CachedRepoList[$key].Count))"
}
"  * $($($myRepos | Where-Object -Not Fork | Measure-Object).Count) of my repos are original"
"  * $($($myRepos | Where-Object Fork | Measure-Object).Count) of my repos are forks"
"  * $($($myRepos | Measure-Object -Property forks_count -Sum).Sum) forks of my repos"
"  * $($($myRepos | Measure-Object -Property watchers_count -Sum).Sum) watchers of my repos"
"  * $($($myRepos | Measure-Object -Property open_issues_count -Sum).Sum) open issues in my repos"

) -join [Environment]::NewLine

(ConvertFrom-Markdown -InputObject $markdown).Html

"<style>"
".stats-grid { display: grid; place-items: center; }"
".center-text { text-align: center; }"
"</style>"

"<section class='stats-grid'>"
$gitHubStats.OuterXml
"</section>"

"<h3 class='center-text'>Repos</h3>"

"<style>"
".github-repos { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 2.5em; margin: 2.5em}"
".github-repo-sorter { font-size: 1.5em; text-align: center;}"
".repo-thumbnail { max-width: 100%; height: auto; }"
"</style>"



"<div class='github-repo-sorter'>"
"Sort by:"
"<select id='sort-repos'>"
"<option value='repoRandom'>Random</option>"
"<option value='repoStars' selected>Stars</option>"
"<option value='repoUpdatedAt'>Updated At</option>"
"<option value='repoCreatedAt'>Created At</option>"
"<option value='repoOpenIssues'>Open Issues</option>"
"<option value='repoForks'>Forks</option>"
"<option value='repoName'>Name</option>"
"<option value='repoWatchers'>Watchers</option>"
"</select>"
"<script>"
"document.getElementById('sort-repos').addEventListener('change', function(event) {"
"    const sortBy = event.target.value;"
"    const container = document.querySelector('.github-repos');"
"    const repos = Array.from(container.children);"
"    repos.sort((a, b) => {"
"        if (sortBy === 'repoStars') {"
"            return parseInt(b.dataset.repoStars) - parseInt(a.dataset.repoStars);"
"        } else if (sortBy === 'repoForks') {"
"            return parseInt(b.dataset.repoForks) - parseInt(a.dataset.repoForks);"
"        } else if (sortBy === 'repoOpenIssues') {"
"            return parseInt(b.dataset.repoOpenIssues) - parseInt(a.dataset.repoOpenIssues);"
"        } else if (sortBy === 'repoName') {"
"            return a.dataset.repoName.localeCompare(b.dataset.repoName);"
"        } else if (sortBy === 'repoWatchers') {"
"            return parseInt(b.dataset.repoWatchers) - parseInt(a.dataset.repoWatchers);"
"        } else if (sortBy === 'repoCreatedAt') {"
"            return new Date(b.dataset.repoCreatedAt) - new Date(a.dataset.repoCreatedAt);"
"        } else if (sortBy === 'repoUpdatedAt') {"
"            return new Date(b.dataset.repoUpdatedAt) - new Date(a.dataset.repoUpdatedAt);"
"        } else if (sortBy === 'repoRandom') {"
"            return Math.random() - 0.5;"
"        }"
"        return 0;"
"    });"
"    for (let i = 0; i < repos.length; i++) {"
"        repos[i].style.order = i + 1;"
"    }"
"});"
"</script>"
"</div>"
"<div class='github-repos'>"
foreach ($repoInfo in $myRepos | Where-Object Fork -Not | Sort-Object stargazers_count -Descending) {
    $attributes = [Ordered]@{
        'class' = 'github-repo'
        'data-repo-name' = $repoInfo.Name
        'data-repo-url' = $repoInfo.html_url
        'data-repo-stars' = $repoInfo.stargazers_count
        'data-repo-forks' = $repoInfo.forks_count
        'data-repo-watchers' = $repoInfo.watchers_count
        'data-repo-open-issues' = $repoInfo.open_issues_count
        'data-repo-created-at' = $repoInfo.created_at.ToString('o')
        'data-repo-updated-at' = $repoInfo.updated_at.ToString('o')
    }
    $attributeString = @(
        foreach ($attributeName in $attributes.Keys) {
            "$attributeName='$($attributes[$attributeName])'"
        }
    ) -join ' '
    "<div $attributeString>"
        "<h2><a href='$($repoInfo.html_url)'>$($repoInfo.Name)</a></h2>"
        "<p>$([Web.HttpUtility]::HtmlEncode($repoInfo.Description))</p>"
        "<p>★ $($repoInfo.stargazers_count) | Forks: $($repoInfo.forks_count) | Watchers: $($repoInfo.watchers_count) | Open Issues: $($repoInfo.open_issues_count)</p>"
        "<p>Created: $($repoInfo.created_at.ToString('yyyy-MM-dd')) | Updated: $($repoInfo.updated_at.ToString('yyyy-MM-dd'))</p>"
        if ($postsAboutRepos) {
            $post = $postsAboutRepos | Where-Object { $_.commit.record.embed.external.uri -match "^$([Regex]::Escape($repoInfo.html_url))" } | Get-Random
            if ($post) {
                $thumbRef = $post.commit.record.embed.external.thumb.ref.'$link'
                $imageTag =  if ($thumbRef) {
                    "<img class='repo-thumbnail' src='https://cdn.bsky.app/img/feed_thumbnail/plain/$($post.did)/$thumbRef@png' alt='Thumbnail' />"
                } else { '' }
                    
                "<blockquote>$imageTag - $(
                    [Web.HttpUtility]::HtmlEncode($post.commit.record.text)
                ) <br/>— <a href='https://bsky.app/profile/$($post.did)/post/$($post.commit.rkey)'>@$($post.author.handle)</a></blockquote>"
            }
        }
    "</div>"
}

"</div>"


#region View Source
"<details id='view-source'>"
"<summary>View Source</summary>"
"<pre><code class='language-powershell'>"
[Web.HttpUtility]::HtmlEncode("$($MyInvocation.MyCommand.ScriptBlock)")
"</code></pre>"
"</details>"
#endregion View Source