CLI tool
fleschutz/PowerShell avatar
fleschutz/PowerShell

fleschutz/PowerShell: 600+ Stand-Alone Scripts for Windows, Linux and macOS

600+ free PowerShell scripts (.ps1) for Linux, macOS, and Windows.

3,259 stars548 forksPowerShellCC0-1.0

At a glance

What is it?
A CC0-licensed collection of .ps1 files you clone rather than install, covering audio, computer management, automation and remote control. The value is in reading and adapting individual scripts, not in running them blind.
Who is it for?
Adopt this collection if you want readable, single-purpose .ps1 examples you can copy into your own tooling, or if you need a quick script for a machine you administer over SSH. Do not adopt it as a managed library: there is no module, no package feed and no versioning contract beyond the tagged releases.
Can I use it commercially?
Yes. CC0-1.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 2 days ago.
What is it written in?
Mainly PowerShell, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 30, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What the fleschutz/PowerShell Collection Actually Solves

PowerShell ships with a large command surface, but the gap most people hit is not cmdlet knowledge. It is the small, boring task: checking free space on a drive, listing installed text-to-speech voices, turning the volume down, speaking a checklist out loud. Writing that from scratch means remembering which .NET type exposes the value, whether the call needs admin rights, and how it behaves on Linux or macOS.

The repository is a catalogue of those tasks. The README describes it as containing "600+ free and stand-alone PowerShell scripts for Linux, macOS, and Windows" and states that all scripts live in the scripts/ subfolder. The stated audiences are command-line use, remote control over SSH, automation at startup, shutdown, login, logoff or on a daily and hourly schedule, context menus, and people who simply want to learn PowerShell by reading working code. A gui/ directory and a docs/ directory sit alongside scripts/ at the top level.

The word "stand-alone" matters. These are individual .ps1 files, not a module you import. There is no manifest that declares dependencies, no gallery package, and no shared helper library the README points to. Each script is meant to be read and run on its own, which is why the collection doubles as a learning resource. If you want a function library with a stable API surface, this is the wrong shape of project.

How the Repository Is Organised and How a Script Runs

The layout is flat and predictable: README.md at the root, LICENSE, docs/, gui/, scripts/, and .github/ for repository automation. The README is the index. It groups scripts under headings such as Audio & Voice and Computer Management, and each row is a table entry with a link to the .ps1 file in scripts/ and a second link to a matching page under docs/.

That two-link pattern is the mechanism worth understanding. The scripts/ file is the executable artefact. The docs/ file is the explanation, and the README names it directly, for example "Read more »" pointing at docs/list-voices.md for scripts/list-voices.ps1. So the data flow for a user is: find the row in the README, open the docs page to see what the script expects, then run or copy the .ps1.

The README also states that the scripts support Unicode for a modern console such as Windows Terminal. That is not decoration. Scripts that speak text, spell a word or print box-drawing output will render differently in a legacy console, and the README frames the modern terminal as the expected environment. The topics list on the repository adds automation, command-line, cross-platform, remote-control and sample-scripts, which matches what the README text describes rather than expanding it.

Running Your First fleschutz/PowerShell Script

There is no installer. The README's download link points at the GitHub releases page, and the scripts are plain files in the repository, so the practical path is to obtain the repository and run a script from the scripts/ directory. The releases are tagged, with v1.6 published on 2025-12-27, v1.5 on 2025-06-05 and v1.4 on 2025-01-23, so you can pin to a tag if you want a known set of files.

The README gives this example for running a script from the command line:

bash
./play-beep-sound.ps1

That is the invocation form the README shows. The script itself is listed in the README as play-beep-sound.ps1, described as playing a short beep sound, with a matching page at docs/play-beep-sound.md. On Windows the same file runs under the built-in PowerShell host. On Linux and macOS the cross-platform PowerShell executable is used; the README does not spell out the executable name, so check how PowerShell is invoked on your system before scheduling anything.

For a script that takes input, read the matching docs page first. The README links speak-text.ps1 to docs/speak-text.md, and the script is described as speaking the given text by text-to-speech. The docs page is where the argument shape is documented, so open it before guessing at parameters. The expected result is that your system's text-to-speech engine reads the string aloud. Voice availability is a platform property, not something the script controls, which is exactly why list-voices.ps1 exists in the same folder and is described in the README as listing the installed text-to-speech voices.

Where the Collection Breaks Down

The first limitation is the one the README implies by omission: there is no dependency or prerequisite documentation at the collection level. The README does flag privilege requirements where they apply, for example add-firewall-rules.ps1 is described as needing admin rights and check-file-system.ps1 likewise. But there is no central statement of which PowerShell version each script targets, and no compatibility matrix. With 600+ files, that means per-script verification is your job.

Cross-platform support is described at the collection level, not the script level. The README says the scripts are for Linux, macOS and Windows, but a script that manipulates Windows firewall rules cannot do anything useful on macOS. The topics include cross-platform, and the README's own examples include Windows-specific operations. Treat the platform claim as covering the collection, and check the individual script before you schedule it on a Linux host.

The third issue is the absence of a versioning contract for consumers. Releases exist, but because the unit of delivery is a loose .ps1 file rather than an imported module, copying a script into your own repository freezes it at whatever state you copied. There is no upgrade path that tells you a script changed behaviour between v1.5 and v1.6. If you vendor scripts, you own them from that moment.

Finally, the collection is broad rather than deep. Scripts such as tell-joke.ps1 and play-super-mario.ps1 sit in the same index as check-health.ps1. That breadth is the point for a learning resource, but it means the collection is not a curated operations toolkit with a consistent quality bar. You should expect to read each script you intend to depend on.

How This Differs from PSReadLine, PSScriptTools and Pester

The nearest comparison is a PowerShell module distributed through the PowerShell Gallery, such as PSScriptTools. The difference is the delivery mechanism, not the language. A module gives you Import-Module, a declared version, a manifest listing dependencies, and Update-Module as an upgrade path. This repository gives you files in a folder and a tagged release. With a module, a maintainer can ship a fix and you receive it by updating. Here, a fix lands on main and you receive it by pulling, or not at all if you copied the file.

Pester is a different kind of alternative: a testing framework rather than a script collection. It is worth naming because the repository's .github/ directory and the presence of 600+ scripts raise the obvious question of how they are validated. The README does not describe a test suite, and no test framework is named anywhere in the repository's own documentation. If you need scripts with automated regression coverage behind them, a project built around Pester is the closer fit.

PSReadLine sits at yet another layer, providing the interactive command-line editing experience. It does not overlap with what these scripts do. The honest summary is that fleschutz/PowerShell competes with your own snippets folder and with searching Stack Overflow, not with a module ecosystem. Its advantage over a snippets folder is that the scripts are complete, named, indexed in the README and paired with docs pages. Its disadvantage is that nothing enforces consistency across them.

Licence, Maintenance and the Cost of Upgrading

The repository is licensed CC0-1.0. That is a public domain dedication rather than a permissive software licence, and it is unusual for a code collection. CC0 is not written with source code in mind, and it contains no patent grant and no warranty disclaimer phrased for software, which is the kind of thing a permissive licence such as MIT handles explicitly. Whether that matters to you depends on your organisation's policy on code provenance, and it is a question for your own legal review rather than something this article can settle.

The practical consequence of CC0 is that copying a script into your own project carries essentially no attribution obligation. That is convenient and it is also why vendoring is the common path. The trade-off is the one described above: once vendored, the script is yours to maintain.

On maintenance, the last push to the repository was on 2026-09-08 and the repository is not archived. The most recent tagged release is v1.6 from 2025-12-27. Upgrade cost is therefore low in the mechanical sense, since pulling the repository is a single git pull, and high in the verification sense, because no changelog is documented that maps script-level changes to release tags. If you depend on a script, diff it yourself between the tag you pinned and the tag you are moving to.

Editorial conclusion

Adopt this collection if you want readable, single-purpose .ps1 examples you can copy into your own tooling, or if you need a quick script for a machine you administer over SSH. Do not adopt it as a managed library: there is no module, no package feed and no versioning contract beyond the tagged releases. Before relying on any script in production, open the .ps1 file itself and read it end to end, because the README table and the docs/ page describe intent while the script is what actually executes.

Frequently asked questions

What does fleschutz/PowerShell actually do?

It is a collection of 600+ stand-alone PowerShell scripts stored in the scripts/ subfolder, covering tasks such as audio and voice output, computer management checks, automation and remote control. The README describes it as useful on the command line, over SSH, for scheduled automation and for learning PowerShell.

How do I install fleschutz/PowerShell?

There is no installer. The README's download link points to the GitHub releases page, and the scripts are plain .ps1 files, so obtaining the repository gives you the full set. Tagged releases include v1.6 from 2025-12-27, v1.5 from 2025-06-05 and v1.4 from 2025-01-23 if you want to pin a version.

How do I run a script from the fleschutz/PowerShell collection?

Run the .ps1 file from the command line, in the form the README shows: ./play-beep-sound.ps1. On Windows the same file runs under the built-in PowerShell host. For scripts that take input, open the matching page under docs/ first, since the README links each script to one.

Can I use fleschutz/PowerShell on macOS and Linux?

The README states the scripts are for Linux, macOS and Windows, and the topics list includes cross-platform. That describes the collection as a whole, not every script: entries such as add-firewall-rules.ps1 and check-file-system.ps1 are Windows-oriented operations, so check the individual script before scheduling it on a non-Windows host.

What licence does fleschutz/PowerShell use?

The repository is licensed CC0-1.0, a public domain dedication. It carries no attribution requirement, but CC0 was not drafted for source code and contains no patent grant or software-specific warranty disclaimer, so review it against your own policy before vendoring scripts.

Official sources

  1. fleschutz/PowerShell on GitHub
  2. Issues
  3. License: CC0-1.0
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/fleschutz-powershell.svg)](https://hysenlabs.com/projects/fleschutz-powershell)