{"id":16005950,"url":"https://github.com/thibaudcolas/rubegoldbash","last_synced_at":"2026-02-16T06:31:22.628Z","repository":{"id":26277619,"uuid":"29725093","full_name":"thibaudcolas/rubegoldbash","owner":"thibaudcolas","description":"A command-line quest where your goal is to invent Rube Goldberg machines in bash! #GGJ","archived":false,"fork":false,"pushed_at":"2016-09-12T10:58:15.000Z","size":99,"stargazers_count":3,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-01-14T14:59:54.110Z","etag":null,"topics":["bash","globalgamejam","rube-goldberg-machine","shell"],"latest_commit_sha":null,"homepage":"http://www.rubegoldbash.com","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thibaudcolas.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-01-23T09:07:40.000Z","updated_at":"2022-03-29T19:44:35.000Z","dependencies_parsed_at":"2022-09-03T07:20:37.770Z","dependency_job_id":null,"html_url":"https://github.com/thibaudcolas/rubegoldbash","commit_stats":null,"previous_names":["thibweb/rubegoldbash"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/thibaudcolas/rubegoldbash","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thibaudcolas%2Frubegoldbash","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thibaudcolas%2Frubegoldbash/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thibaudcolas%2Frubegoldbash/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thibaudcolas%2Frubegoldbash/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thibaudcolas","download_url":"https://codeload.github.com/thibaudcolas/rubegoldbash/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thibaudcolas%2Frubegoldbash/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29501914,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-16T05:57:17.024Z","status":"ssl_error","status_checked_at":"2026-02-16T05:56:49.929Z","response_time":115,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bash","globalgamejam","rube-goldberg-machine","shell"],"created_at":"2024-10-08T11:22:32.767Z","updated_at":"2026-02-16T06:31:22.612Z","avatar_url":"https://github.com/thibaudcolas.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"[RubeGoldBash](http://www.rubegoldbash.com) [![Build Status](https://img.shields.io/travis/thibaudcolas/rubegoldbash.svg?style=flat-square)](https://travis-ci.org/thibaudcolas/rubegoldbash)\n==============\n\n~~~\n______         _            _____         _      _                           \n| ___ \\       | |          |  __ \\       | |    | |    ____             __   \n| |_/ / _   _ | |__    ___ | |  \\/  ___  | |  __| |   / __ )____ ______/ /_  \n|    / | | | ||  _ \\  / _ \\| | __  / _ \\ | | / _  |  / __  / __ // ___/ __ \\ \n| |\\ \\ | |_| || |_) ||  __/| |_\\ \\| (_) || || (_| | / /_/ / /_/ (__  ) / / / \n\\_| \\_| \\____||____/  \\___| \\____/ \\___/ |_| \\____//_____/\\____/____/_/ /_/  \n(っ◕‿◕)っ is an awesome game!\n~~~\n\n\u003e A command-line quest where your goal is to invent Rube Goldberg machines in bash! Create the longest one-liners you can, the more pipes (|) the better.\n\u003e Master Rube ((◕‿◕) Hi there!) will help you during your quest.\n\n- View the [RubeGoldBash website](http://www.rubegoldbash.com)!\n- Look at the [RubeGoldBash High Scores](http://highscore.rubegoldbash.com)!\n- Look at this [little demo](http://showterm.io/a06f7dcf548aadbbcb751)!\n\n## Getting Started\n\nFirst open your favorite prompt, and then:\n\n~~~bash\nbash\nsource \u003c(curl -sL start.rubegoldbash.com)\n\n# Use share to submit your score:\nrubeshare\n# Use exit to stop RubeGoldBash\nexit\n~~~\n\nThe game relies on `bash` and `curl` to work, as well as other bash builtins and standard UNIX tools.\n\n## Look, screenshot!\n\n![Screenshot](rubegoldbash-screenshot.png)\n\n## Built with\n\n- A lot of Bash\n- ASCII Art!\n- Some Node, Express, MongoDB\n\n- http://heroku.com/\n- http://simplybuilt.com/\n- https://github.com/thibaudcolas/dotfiles\n\n### Online services\n\n- http://commandlinefu.com/\n- http://www.yodaquotes.net/\n- http://ip.appspot.com/\n- http://whenwillitbedone.trgdy.com/\n- http://translate.google.com/\n- http://ifconfig.me/\n- http://openweathermap.org/\n- http://freegeoip.net/\n- http://showterm.io/\n\n### Command line\n\n- http://patorjk.com/software/taag/#p=display\u0026h=2\u0026v=1\u0026f=Slant\u0026t=RubeGoldBash\n- https://github.com/olizilla/asciify\n- https://github.com/maxogden/cool-ascii-faces\n\n## Related\n\n### Main concept\n\n- https://en.wikipedia.org/wiki/Rube_Goldberg_machine\n- https://en.wikipedia.org/wiki/Unix_philosophy\n- https://en.wikipedia.org/wiki/Turboencabulator\n- http://blog.codinghorror.com/rube-goldberg-software-devices/\n\n### Games\n\n- https://github.com/mprat/Terminus\n- https://xss-game.appspot.com/\n- https://github.com/Gazler/githug\n- https://alexnisnevich.github.io/untrusted/\n- http://www.mobygames.com/game/dos/incredible-machine\n\n### Videos\n\n- https://www.youtube.com/watch?v=_ve4M4UsJQo\n- https://www.youtube.com/watch?v=H6wXKVpWWHY\n\n## Contributing\n\n- [High Score server repository](https://github.com/thibaudcolas/rubegoldbash-server)\n\n## Examples of RubeGoldBash (SPOILERS!)\n\n~~~bash\n# Retrieve the weather for your location\ncurl -s ip.appspot.com | xargs -n 1 curl -s \"freegeoip.net/csv/$1\" | cut -d ',' -f '9 10' | sed 's/,/\\\u0026lon=/g' | xargs -n 1 echo \"http://api.openweathermap.org/data/2.5/weather?mode=html\u0026lat=$1\" | sed 's/ //g' | xargs -n 1 curl -s $1 | tee weather.html\n# Same request, with display to the prompt using lynx\ncurl -s ip.appspot.com | xargs -n 1 curl -s \"freegeoip.net/csv/$1\" | cut -d ',' -f '9 10' | sed 's/,/\\\u0026lon=/g' | xargs -n 1 echo \"http://api.openweathermap.org/data/2.5/weather?mode=html\u0026lat=$1\" | sed 's/ //g' | xargs -n 1 curl -s $1 | lynx -stdin -dump\n\n# Retrieve the answer to \"When will it be done?\" (scraping) and make a nice voice read it for you.\nlynx --dump whenwillitbedone.trgdy.com | head -n 8 | tail -n 4 | tr \"\\\\n\" ' ' | cut -d '[' -f 1 | sed 's/   //g' | sed \"s/'/ /g\" | perl -pe 's/([^a-zA-Z0-9_.!~*()'\\''-])/sprintf(\"%%%02X\", ord($1))/ge' | xargs -n 1 echo \"http://translate.google.com/translate_tts?ie=UTF-8\u0026tl=en\u0026q=$1\" | sed 's/ //g' | xargs -n 1 curl -s \"$1\" \u003e whenwillitbedone.mp3\n# File can be read with\nafplay whenwillitbedone.mp3\n\n# Count the number of folders in the current working directory.\nls -l | cut -c 1 | grep d | wc -l\n\n# Find the longest name\ncat /usr/share/dict/propernames | grep 'S' | awk '{print length($1), $1}' | sort -n | tail -n 1 | cut -d ' ' -f 2\n# And spell it\ncat /usr/share/dict/propernames | grep 'S' | awk '{print length($1), $1}' | sort -n | tail -n 1 | cut -d ' ' -f 2 | say\n~~~\n\n## Related commands to play with\n\n~~~bash\n# DNS IP lookup\ndig +short myip.opendns.com @resolver1.opendns.com\n\n# WS IP lookup\ncurl ip.appspot.com\ncurl ifconfig.me/ip\ncurl ipinfo.io/ip\n\n# WS location lookup\ncurl freegeoip.net/csv/116.193.147.34\ncurl ipinfo.io/geo\n\n# Current weather (it wouldn't be Rube Goldberg-y if it was useful)\ncurl \"http://api.openweathermap.org/data/2.5/weather?lat=-41.00\u0026lon=174.00\u0026mode=html\"\n\n# Sound\ncurl \"http://translate.google.com/translate_tts?ie=UTF-8\u0026tl=en\u0026q=hello+world\" \u003e test.mp3\nafplay test.mp3\n\n# Dict\ncurl dict://dict.org/d:test\n\n# Scraping\ncurl whenwillitbedone.trgdy.com | grep '\u003cp\u003e'\n\n## Cal\ncal | sed \"s/.*/ \u0026 /;s/ $(date +%d) / [] /\"\ncal | sed \"s/.*/ \u0026 /;s/ $(date +%d) / $(printf '\\e[0;31m[]\\e[0m') /\"\n\n## Cool one-liners\nperl -le '$l=80;$l2=\"!\" x $l;substr+($l2^=$l2),$l/2,1,\"\\xFF\";{local $_=$l2;y/\\0\\xFF/ ^/;print;($lf,$rt)=map{substr $l2 x 2,$_%$l,$l;}1,-1;$l2=$lf^$rt;select undef,undef,undef,.1;redo}'\necho -e \"\\e[32m\"; while :; do for i in {1..16}; do r=\"$(($RANDOM % 2))\"; if [[ $(($RANDOM % 5)) == 1 ]]; then if [[ $(($RANDOM % 4)) == 1 ]]; then v+=\"\\e[1m $r   \"; else v+=\"\\e[2m $r   \"; fi; else v+=\"     \"; fi; done; echo -e \"$v\"; v=\"\"; done\nyes \"$(seq 232 255;seq 254 -1 233)\" | while read i; do printf \"\\x1b[48;5;${i}m\\n\"; sleep .01; done\n\n## Building blocks to use\nlast\ncat /dev/urandom | hexdump -C | grep \"ca fe\"\ncat /usr/share/dict/propernames\ncat /usr/share/dict/connectives\nwhatis\n~~~\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthibaudcolas%2Frubegoldbash","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthibaudcolas%2Frubegoldbash","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthibaudcolas%2Frubegoldbash/lists"}