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,738 Total Commits (2026): 1,646 Pull Requests: 63 Issues Opened: 1,492 Estimated Coding Hours: 1,514.3h Current Streak: 85 days Commits This Week: 59 Weekly Trend: 59 commits +269% Avg Commits / Day: 10.1 Most Active Day: Wednesday Activity Grade: A+ Contributions This Year: 3,741 Public Repos: 66 Followers: 556 A+ 100%

Repos

Sort by:

PSDevOps

PowerShell Tools for DevOps

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

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

Thumbnail - Or just do it all in PowerShell.... And use New-GitHubWorkflow in PSDevOps to make the workflow for you.... github.com/StartAutomat...
@

Irregular

Regular Expressions made Strangely Simple

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

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

Thumbnail - I must be a bit broken, because I actually decided to #powershell my way to never having to relearn #regex a few years ago... New-RegEx is all I need 😉🥰 github.com/StartAutomat... (Monthly cost, $0 )
@

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 - Well, since #powershell is a shell language that can easily run anything, it's not an either / or. Fun fact, you can use PipeScript to implicitly interpret a lot of languages in PowerShell, including #python #nodejs #go And many more github.com/StartAutomat...
@

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 - Some days you figure out beautiful new things you can do with #git / #ugit Like passing in a range of issues to fix in a commit ~~~PowerShell git commit -m "Fixing Stuff" -Fix (1..10) ~~~ Are you all gitting what you can do once you can use #git with #powershell ? github.com/StartAutomat...
@

obs-powershell

Script OBS with PowerShell

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

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

Thumbnail - I'm using #obs + #obs-powershell to load the #svg and record a short timeframe. github.com/StartAutomat...
@

EZOut

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

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

Created: 2014-05-05 | Updated: 2026-07-31

Thumbnail - Friendly reminder that EZOut is basically just a compiler / builder of types and format files. You're still making .ps1xml, just with less pain. github.com/StartAutomat...
@

Posh

PowerShell made Posh

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

Created: 2023-07-20 | Updated: 2026-05-31

Thumbnail - Got a #PowerShell blog? Let us know the URL and we can add it to an upcoming release of #Posh. Bring Out Your Blogs! (Feed Support Coming) · StartAutomating/Posh · Discussion #172 (github.com)
@

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 - I feel you... part of why I haven't come back to it. That and wanting other people to have a chance to make a mark. Here's the _very_ old Pipeworks Invoke-Parallel (at least 12 years old now [almost a teenager]) github.com/StartAutomat...
@

PowerArcade

A Retro Arcade Game Console in PowerShell

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

Created: 2020-04-01 | Updated: 2026-08-11

Thumbnail - This is actually the right way to do it ( from a perf perspective ) See this #PowerShell project, PowerArcade, for more examples. 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 - Ignoring the mess ( God knows I've got my own)... I spy a StreamDeck, and feel obligated to mention that I make a PowerShell Plugin for those :-) github.com/StartAutomat... ( And I swear someday I'll release an update with StreamDeck+ support and new coolness )
@

Benchpress

Easy Benchmarking with PowerShell

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

Created: 2019-03-23 | Updated: 2026-03-20

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 - I'll be doing a recording and might start to do more videos with this technique in the future. I'd say about 75/25 on the gruel factor. I have a lot of SVG examples around but getting them in the right form was annoying. Keeping it condensed was, too. #svg examples: github.com/StartAutomat...
@

RoughDraft

A Fun PowerShell Module for Multimedia (using FFMpeg)

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

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

Thumbnail - And I'm using #ffmpeg ( thru #RoughDraft to convert to .MP4 ) github.com/StartAutomat...
@

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 - Demo your PowerShell 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: 100 | 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 - I feel like this is something I have a script for somewhere..... Here's one repo / function that has the harder half of it, using the AST to find all references. github.com/StartAutomat...
@

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

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

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

Thumbnail - Definitely a toolmaker / craftsman. Still only the tip of the iceberg. Been automating one battle after another for ~20 years. For real fun, check out a more recent example: #Turtle #Graphics in #PowerShell: GitHub.com/PoshWeb/Turtle I tend to build tools often and talk about them rarely 😕
@

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

WebSocket

Work with WebSockets in PowerShell

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

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

Rocker

Rock Docker with PowerShell

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

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

Thumbnail - Ready to Rock your Containers with #PowerShell? New bits of Rocker are out! github.com/StartAutomat... (now including a PowerShell + Docker-In-Docker Image) #Docker #Containers #GitHub
@

TerminalVelocity

Fine tuning Windows Terminal

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

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

Thumbnail - I'd be shocked / annoyed if that wasn't part of the profile schema. And it is :-) And it's already covered in TerminalVelocity 😎 github.com/StartAutomat... (seriously love it when my code generation gets to a feature I didn't even know existed 😉 )
@

LightScript

Smarter Lighting with PowerShell

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

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

Thumbnail - Sounds like a fun integration! In case you want to script some other devices around the house (and have #Hue #NanoLeaf or #Twinkly lights), here's LightScript github.com/StartAutomat...
@

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

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

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

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...
@

Fun

A Fun PowerShell Server

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

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

Thumbnail - You know you're a geek when you realize you've been running 50 severs in a single PowerShell process for days. 😎 Now back to finalizing some Fun with WebSockets.. github.com/PoshWeb/Fun
@

Emoji

⟩⚡PowerShell Emoji 😎😉😍🥰🤔😟

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

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

Thumbnail - Well, you asked... Here's how you make computers talking to each other thru #PowerShell and #Emoji GitHub.com/StartAutomat... Pretty sure this module only works on #PowerShell core though. Almost as sure this module is like 5 forms of a bad idea.
@

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

PSPrettifier

Prettify your PowerShell

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

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

GitPub

Easily Automate Publishing from GitHub

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

Created: 2022-10-10 | Updated: 2026-08-05

MarkX

MarkX - Markdown, XML, and PowerShell

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

Created: 2025-12-24 | Updated: 2026-08-04

Servers101

Simple Servers in PowerShell

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

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

- Want a server? Want to know how easy it is to write servers in #PowerShell? Check out Servers101: github.com/PoshWeb/Serv... Want a demo in a skeet? Try this one-liner to run a local file server. ~~~PowerShell irm cdn.jsdelivr.net/gh/PoshWeb/S... | iex ~~~ #WebDev #IndieWeb
@

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

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

Thumbnail - Cool, and also, I put that out about a year ago in the PSA module. github.com/StartAutomat... Great minds, amiright ?
@

ollama-powershell

Ollama PowerShell: Play with AI in PowerShell

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

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

Thumbnail - Hey #PowerShell people and #AI #PromptEngineers I made a wrapper for #ollama One cool feature: Run language models by name For example: phi3 "What is your purpose?" Have fun! 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

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

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

PSJekyll

PowerShell Tools for Jekyll

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

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

MrPowerShell

Jack of all Trades, Master of PowerShell

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

Created: 2024-12-21 | Updated: 2026-09-05

Thumbnail - Every once in a while I make a commit message that is kinda epic in it's own right.... github.com/StartAutomat... 😂 Might as well add it to the git log for posterity. 😂
@

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 - Also got a few small modules out.... In order of recency, we've got Glass, which was meant to help find #Glassware #Glassworm messages in files or packages, and help people understand the vector: 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

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
@

TerminalTunes

A Music Player for Terminals

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

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

PoshWeb

WebDev with PowerShell

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

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

PS3D

PowerShell Tools for 3D Printing

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

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

PowRoku

Script your Roku with PowerShell

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

Created: 2021-08-03 | Updated: 2025-07-27

OP

Overpowered module for Open Packages

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

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

Thumbnail - Nice! Definitely might bring a few more into the fold.🙏🩵 Somewhat related... Dropped a packaging module last week. Now anything can become an open package, and any package can become a web app. Including any collection / record in at proto 😉 GitHub.com/PoshWeb/OP More simple: atproto -> .zip 😎
@

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...
@

PSData

In-Memory .NET Databases in PowerShell

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

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

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!
@

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
@

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.
@

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

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...
@

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

oEmbed

Open Embedding with PowerShell

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

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

Vector

Vectors in PowerShell

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

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

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!
@

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...
@

GQL

Get GraphQL in PowerShell

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

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

AI

Automate AI with PowerShell

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

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

Zippy

Easy Compression in PowerShell

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

Created: 2026-08-04 | Updated: 2026-08-10

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

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...
@

HtmxPS

Script Htmx and PowerShell Microservices

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

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

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

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...
@

AtPowerShellSummit

What happens at PowerShell Summit

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

Created: 2025-04-06 | Updated: 2026-09-03

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 - Also recently made a tool for hierarchical grouping, in anticipation of similar scenarios. github.com/StartAutomat... Figured I would need something like this to automatically reorganize my media collection, and it's best to keep concerns separated.
@

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
@

OpenXML

Automate OpenXML with PowerShell

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

Created: 2025-10-14 | 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

MathML

PowerShell and MathML

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

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

4kbMarkdownFiles

Performance Testing Parsing of 4kb Markdown Files

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

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

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
@

PowerShellWeb

PowerShell Web Development

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

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

Matrix

Matrix Transforms with PowerShell

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

Created: 2026-08-10 | Updated: 2026-08-25

Thumbnail - New PowerShell Module Alert: github.com/PoshWeb/Matr... This helps us master matrix transforms in PowerShell. Transform vectors in #PowerShell the same way we would in #CSS The website includes tons of examples of Matrices in #html, #svg, #css, and #mathml.
@

Neocities

Personal Webpages in PowerShell

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

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

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.
@

Shape

CSS Shapes with PowerShell

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

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

Glyph

Manage and Manipulate fonts with PowerShell

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

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

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...
@

.github

PowerShellWeb Org

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

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

PoshaKucha

PechaKucha Presentations with PowerShell

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

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

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?
@

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

Badger

Build Badges in PowerShell

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

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

.github

PoshWeb GitHub Profile

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

Created: 2026-07-11 | Updated: 2026-09-05

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