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,392 Pull Requests: 55 Issues Opened: 1,457 Estimated Coding Hours: 1,361.3h Current Streak: 121 days Commits This Week: 24 Weekly Trend: 24 commits 0% Avg Commits / Day: 9.4 Most Active Day: Wednesday Activity Grade: A+ Contributions This Year: 3,443 Public Repos: 66 Followers: 560 A+ 86%

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 - A bit of both. I'd call it evolution. I don't often write Regex from scratch; I often use tools and old tricks to cobble together regex or double-check syntax. Wrote this a long time ago, before AI. 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 - I turned 42 today! I also released a massive update to PipeScript! Now, PowerShell can run any interpreted language! Not sure if that's the answer to "life, the universe, and everything", but it's not too shabby ;> 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 - Cool! If you want this with object pipeline support, use ugit. ~~~PowerShell git branch | ? -not IsCurrentBranch | ? BranchName -ne "main" | git branch -d ~~~ Bonus points: this will prompt for confirmation. 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 - Very nice! Btw, I make a couple of modules that might be helpful in these endeavors. #OBS #PowerShell GitHub.com/StartAutomat... And RoughDraft ( general #ffmpeg and #media toolkit ) GitHub.com/StartAutomat... Hope this helps / Happy Holidays 🎄
— @

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 - Flexibly Format with PowerShell https://github.com/StartAutomating/EZOut
— @

Posh

PowerShell made Posh

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

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

Thumbnail - #PowerShell got a little more color in its cheeks this weekend, with a new release of Posh. #Posh now includes new formatting for: * Get-Service (with color!) * Get-FileHash (grouped by algorithm) * Get-Event gets a table view 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 - This is actually the right way to do it ( from a perf perspective ) See this #PowerShell project, PowerArcade, for more examples. 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

- Here's a hypnotizing #SVG animation of repeated hexagons ( made with a bit of clever #PowerShell ) github.com/StartAutomat...
— @

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 - Fun project! I've got about 40k mp3s myself. Fair warning: this can get a lot more complex than md5s. Another common cause of duplicates is bitrate. Need to make a super rename script and release it someday. Until then, there's RoughDraft 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 - Never typo during a talk again 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 - This is part of why I use / build HelpOut..... GitHub.com/StartAutomat... Cause nobody wants docs that say "doc me" 😉. Future versions will dovetail with PlatyPS vnext for best of both worlds.
— @

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 - Also, if that's an Elgato KeyLight ( or you just want to script the lights in your house), here's another #powershell module to help brighten things up: github.com/StartAutomat...
— @

Fun

A Fun PowerShell Server

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

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

Thumbnail - So, this works: function /close {"<script>window.close()</script>"} 🤯😱 🤷I think I just accidentally invented the #PowerShell Popup 🤣 🙏 sorry github.com/PoshWeb/Fun
— @

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 - More #PowerShell #FridayFun : a new build of the Emoji module. Added a .CSS property to every symbol, and table and custom formatter to view them. github.com/StartAutomat... (Get-Emoji -Name doughnut, 'pil*po*').Css Have fun!
— @

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

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

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

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

Thumbnail - Monday new #PowerShell module alert: PSAdapter shows you how to adapt anything into commands. GitHub.com/StartAutomat... Write an adapter to an ecosystem and then you can write any number of cmdlets with no code ( just #xml ) Adapters for #JSON, XML, Events, and #DotNet included.
— @

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

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-11

Thumbnail - The reason I suspect it would be the ISP is that another #GitHub workflow synchronized the data just fine. So the X-factors are: The ISP The Machine GitHub workflow run : github.com/StartAutomat...
— @

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

OP

Overpowered module for Open Packages

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

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

Thumbnail - Just dropped an Overpowered Module for Open Packages: github.com/PoshWeb/OP Talking about how Open Packages are Overpowered at 2:45 at #PSHSummit Anything can become a package! Simple Powerful example: ~~~PowerShell op at://mrpowershell.com/site.standard.document ~~~ More demos coming soon!
— @

Matrix

Matrix Transforms with PowerShell

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

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

- Thanks for the update. Still missed my module drop this week though 😕 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

- Hey #PowerShell people, JSON-LD 0.1.1 is out! Get Linked Data from any website! New in this version: Support for auto-conversion of Linked Data to #JSONSchema and #AtProto lexicons! ~~~PowerShell (JSONLD 'https://schema.org/Movie').GetJsonSchema() ~~~ github.com/PoshWeb/JSON...
— @

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 - New #PowerShell module alert: Finally released PSAdapter: github.com/StartAutomat... Demonstration module about CmdletAdapters and how to use them. Make one adapter to build a bridge to a whole ecosystem. Included example adapters for #JSON, #XML, HTML, Events, and any #DotNet api.
— @

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 - Just gave SearchScript a few little updates. Can now Search-Script -For ([type])! Find any references to any type within the #PowerShell AST Enjoy! 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 - Reposting my little weekend #powershell project.... Ever want to run multiple object pipelines ( conditionally )? I give you WhereFor. github.com/StartAutomat...
— @

Wave

Work with Wave Files in PowerShell

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

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

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 - Hey there. While you _can_ you Select-String, you can also use this module I made for Subtitles github.com/StartAutomat... Should be something like: Get-Subtitle $pathToSubtitles | Search-Subtitle -Phrase $phraseToSearch Will spit back out StartTime, EndTime, and Cue.
— @

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-07

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-11

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