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,744 Total Commits (2026): 1,325 Pull Requests: 55 Issues Opened: 1,411 Estimated Coding Hours: 1,309.4h Current Streak: 138 days Commits This Week: 32 Weekly Trend: 32 commits +23% Avg Commits / Day: 9 Most Active Day: Wednesday Activity Grade: A+ Contributions This Year: 3,329 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

- Cool scripts / Good Article! Also, I feel compelled to ask / shamelessly promote.... Why not PSDevOps? 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 - This technique lets you define DSLs in PowerShell without having to write multiple distinct commands. One example of this: 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 - Lol, lots of companies should be paying me for advice. Also, check these two issues from over a year ago. github.com/StartAutomat... github.com/StartAutomat... "All functions that quack are ducks" is my fun example. ( Makes all functions with a quack parameter ducktyped as ducks )
— @

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

Created: 2022-03-18 | Updated: 2026-10-27

Thumbnail - I have not touched BitBucket in years and have no intention on going back. As far as git goes... Made this module a longwhile back and use it every day. Truly changes the way you git and makes it much more fun from PowerShell 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

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

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

Thumbnail - Extended Types made Easy 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 - It's one of the many extensions to manifest capabilities Posh brings to the table. github.com/StartAutomat... ( Others include .Videos, .Screenshots, .Demos ) All of these are just extra info in the .psd1 private data.
— @

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 - 2 out of 3 ain't bad: 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

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

Created: 2021-03-31 | Updated: 2026-10-25

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

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

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

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 - Yeah, it's pretty neat. While you're at it, you might want to know about a couple of other repos I make. PixelPosh is built atop PSSVG GitHub.com/StartAutomat... That's a basically full wrapper of the #SVG standard in #PowerShell, with a good batch of examples.
— @

RoughDraft

A Fun PowerShell Module for Multimedia (using FFMpeg)

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

Created: 2021-11-29 | Updated: 2026-10-27

Thumbnail - Cool. Starting with the ffmpeg stuff... GitHub.com/StartAutomat... This wraps ffmpeg and provides tab completion and help to most of the filters. All commands support background jobs.
— @

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 - Picking this up on BlueSky : github.com/StartAutomat... will propagate links from inline help just fine ;-) You can even fix where the link points to with `-ReplaceLink` Bonus points: also available as a GitHub Action. Just add a *.helpout.ps1 file to your repo and you're good to go.
— @

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 - Lol yeah the NanoLeaf API was a rough one. I don't recall if I ever got to adding support for their schedules. For about everything else, including touch event support and super fast UDP control, there's this gem of a module GitHub.com/StartAutomat... Also supports Hue and Twinkly
— @

Fun

A Fun PowerShell Server

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

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 - Did you know? Emoji can be #PowerShell commands. github.com/StartAutomat... #cybersecurity #infosec #fyi
— @

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

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

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

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

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 - @mozzius.dev Looks like you're having fun with BlueSky, too. Got a project page or something? I've put a #PowerShell client together, and would love to start connecting with other nerds who have wrapped the At Protocol. (mine is currently called PSA) github.com/StartAutomat...
— @

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

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

Thumbnail - What stage do we call it when you have written a harness around AI with PowerShell without vibe coding it? Asking for a friend. Apropos of nothing, need to give this module a cooler name ( and push an update ). 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-26

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 - Yeah. A million ways to die in the west. Could be worse. Could be #Malware and #Glassware Little scanner tool / POC below: 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 - 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 😎
— @

Matrix

Matrix Transforms with PowerShell

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

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

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

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

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 - Another day, another fun #powershell #pwsh module. Fresh out of the pipeline, I give you all WhereFor: github.com/StartAutomat... Run multiple Where-Object/Foreach-Objects in multiple object pipelines. Happy Scripting!
— @

Wave

Work with Wave Files in PowerShell

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

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 - The slightly more recent #PowerShell release is a little mini module for multiple groups: github.com/StartAutomat... Quickly create nested groupings with natural syntax: For example: ~~~PowerShell dir -Recurse -File | organize LastWriteTime.Year/Month/Day ~~~
— @

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

- Hey #PowerShell people, #accessibility aficionados, and #cybersecurity engineers: In light of the whole "One Battle After Another" thing, I made a module for Subtitles. 🎁 github.com/StartAutomat... Supports #SRT and #VTT 🎁 Lets you Get, Export, and Search-Subtitles. 🎄 #xmas #gift #merryxmas
— @

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

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