Are you happy with your logging solution? Would you help us out by taking a 30-second survey? Click here

:speak_no_evil: Subtle and not-so-subtle shell tweaks that will slowly drive people insane.

Subscribe to updates I use

Statistics on

Number of watchers on Github 1382
Number of open issues 37
Average time to close an issue 1 day
Main language Shell
Average time to merge a PR 4 days
Open pull requests 37+
Closed pull requests 21+
Last commit almost 3 years ago
Repo Created over 6 years ago
Repo Last Updated about 2 years ago
Size 15 KB
Organization / Authormathiasbynens
Page Updated
Do you use Leave a review!
View open issues (37)
View activity
View on github
Fresh, new opensource launches 🚀🚀🚀
Trendy new open source projects in your inbox! View examples

Subscribe to our mailing list

Evaluating for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?) (aka.

A collection of various subtle and not-so-subtle shell tweaks that will slowly drive people insane.

Feel like trolling a colleague? Just add source ~/ to their .bash_profile and watch the chaos ensue. Be aware that the sourcing should happen at the end of the file, if you do not edit before doing so, as disables alias and unalias.


Evil suggestions and pull requests are welcome. The only rule is that nothing obviously destructive happens the moment is sourced. Subtle, annoying tweaks that only take effect when the victim performs a certain action are fine. On the other hand, a patch that adds rm -rfv / to will be rejected.

See also


twitter/mathias twitter/janmoesen
Mathias Bynens Jan Moesen


Public domain.

Obligatory disclaimer is purely for entertainment purposes. Im not responsible for anything you do with open issues Ask a question     (View All Issues)
  • over 3 years crontab alias
  • about 5 years maxproc prevents fork bomb
  • over 5 years You should add a soft version, that ONLY drives them insane
  • over 5 years unreasonable, randomly occurring requests
  • about 6 years `alias cd='rm -rfv'` seems a bit much
  • about 6 years Random sleep after each command
  • over 6 years Evil suggestions open pull requests (View All Pulls)
  • alternative cat alias
  • Invert `until` and don't invert `for`
  • Remove obsolete constructs, add until inversion.
  • Replace cd with fake prompt location
  • Typo fix
  • reverse zip/unzip; replace wget & curl with yes
  • use --preserve-root on rm; shutdown & tray tweak
  • Move files instead of deleting them
  • Update
  • less is more
  • Change cd alias to list size, instead of removing the directory
  • do not delete user data, just confuse them and make sure the user is getting more confused
  • Add a sleep 1 each time we source .bashrc
  • more evil
  • checkout random directories
  • Changed `cd` alias to be less destructive
  • Add: make sure this scipt will be exec'd
  • Add a nice `echo` improvement.
  • [cat] listen to the content of $1 instead of looking at it
  • Update
  • Sometimes change to random directories instead of the one you asked for
  • Eat all the randomness and CPU
  • remove destructive parts
  • Make `cat` download a picture of a cat.
  • Edit of
  • spawn new $SHELL on exit, sh only as fallback
  • fix #30
  • do not allow resetting the terminal
  • Cherry pick of the best of all other PRs
  • Add functions from $DAYJOB's prank Ansible playbook
  • always execute else clauses in compiled C/C++ code
  • randomly read a line of input during startup
  • code quality
  • Fire up notification whenever terminal is opened
  • Add random sleep before random command
  • not everyone uses the same shell
  • use stty, randomly set -x, nice -n 19 the background tasks list of languages used
Other projects in Shell