Ask HN: Small scripts, hacks and automations you're proud of?

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • headless-ida

    Run IDA scripts headlessly.

    IDA doesn't have a real headless mode. Instead, you can only run scripts within the TUI and hide the TUI interface, which makes output or errors not visible. So, I made this yesterday just to run IDA headlessly. I guess that still counts as a "small script" since it's roughly 50 lines of code.

    https://github.com/DennyDai/headless-ida

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • dragon

    Drag and drop source/target for X

    I write a lot of extremely simple but handy shell functions.

    This one lets me drag/and drop things out of a terminal session (kind of) into applications with https://github.com/mwh/dragon and i use it way too often!

  • scrape-hacker-news-by-domain

    Scrape HN to track links from specific domains

    I have a neat Hacker News scraping setup that I'm really pleased with.

    The problem: I want to know when content from one of my sites is submitted to Hacker News, and keep track of the points and comments over time. I also want to be alerted when it happens.

    Solution: https://github.com/simonw/scrape-hacker-news-by-domain/

    This repo does a LOT of things.

    It's an implementation of my Git scraping pattern - https://simonwillison.net/2020/Oct/9/git-scraping/ - in that it runs a script once an hour to check for more content.

    It scrapes https://news.ycombinator.com/from?site=simonwillison.net (scraping the HTML because this particular feature isn't supported by the Hacker News API) using shot-scraper - a tool I built for command-line browser automation: https://shot-scraper.datasette.io/

    The scraper works by running this JavaScript against the page and recording the resulting JSON to the Git repository: https://github.com/simonw/scrape-hacker-news-by-domain/blob/...

    That solves the "monitor and record any changes" bit.

    But... I want alerts when my content shows up.

    I solve that using three more tools I built: https://datasette.io/ and https://datasette.io/plugins/datasette-atom and https://datasette.cloud/

    This script here runs to push the latest scraped JSON to my SQLite database hosted using my in-development SaaS platform, Datasette Cloud: https://github.com/simonw/scrape-hacker-news-by-domain/blob/...

    I defined this SQL view https://simon.datasette.cloud/data/hacker_news_posts_atom which shows the latest data in the format required by the datasette-atom plugin.

    Which means I can subscribe to the resulting Atom feed (add .atom to that URL) in NetNewsWire and get alerted when my content shows up on Hacker News!

    I wrote a bit more about how this all works here: https://simonwillison.net/2022/Dec/2/datasette-write-api/

  • shot-scraper

    A command-line utility for taking automated screenshots of websites

    I have a neat Hacker News scraping setup that I'm really pleased with.

    The problem: I want to know when content from one of my sites is submitted to Hacker News, and keep track of the points and comments over time. I also want to be alerted when it happens.

    Solution: https://github.com/simonw/scrape-hacker-news-by-domain/

    This repo does a LOT of things.

    It's an implementation of my Git scraping pattern - https://simonwillison.net/2020/Oct/9/git-scraping/ - in that it runs a script once an hour to check for more content.

    It scrapes https://news.ycombinator.com/from?site=simonwillison.net (scraping the HTML because this particular feature isn't supported by the Hacker News API) using shot-scraper - a tool I built for command-line browser automation: https://shot-scraper.datasette.io/

    The scraper works by running this JavaScript against the page and recording the resulting JSON to the Git repository: https://github.com/simonw/scrape-hacker-news-by-domain/blob/...

    That solves the "monitor and record any changes" bit.

    But... I want alerts when my content shows up.

    I solve that using three more tools I built: https://datasette.io/ and https://datasette.io/plugins/datasette-atom and https://datasette.cloud/

    This script here runs to push the latest scraped JSON to my SQLite database hosted using my in-development SaaS platform, Datasette Cloud: https://github.com/simonw/scrape-hacker-news-by-domain/blob/...

    I defined this SQL view https://simon.datasette.cloud/data/hacker_news_posts_atom which shows the latest data in the format required by the datasette-atom plugin.

    Which means I can subscribe to the resulting Atom feed (add .atom to that URL) in NetNewsWire and get alerted when my content shows up on Hacker News!

    I wrote a bit more about how this all works here: https://simonwillison.net/2022/Dec/2/datasette-write-api/

  • datasette

    An open source multi-tool for exploring and publishing data

    I have a neat Hacker News scraping setup that I'm really pleased with.

    The problem: I want to know when content from one of my sites is submitted to Hacker News, and keep track of the points and comments over time. I also want to be alerted when it happens.

    Solution: https://github.com/simonw/scrape-hacker-news-by-domain/

    This repo does a LOT of things.

    It's an implementation of my Git scraping pattern - https://simonwillison.net/2020/Oct/9/git-scraping/ - in that it runs a script once an hour to check for more content.

    It scrapes https://news.ycombinator.com/from?site=simonwillison.net (scraping the HTML because this particular feature isn't supported by the Hacker News API) using shot-scraper - a tool I built for command-line browser automation: https://shot-scraper.datasette.io/

    The scraper works by running this JavaScript against the page and recording the resulting JSON to the Git repository: https://github.com/simonw/scrape-hacker-news-by-domain/blob/...

    That solves the "monitor and record any changes" bit.

    But... I want alerts when my content shows up.

    I solve that using three more tools I built: https://datasette.io/ and https://datasette.io/plugins/datasette-atom and https://datasette.cloud/

    This script here runs to push the latest scraped JSON to my SQLite database hosted using my in-development SaaS platform, Datasette Cloud: https://github.com/simonw/scrape-hacker-news-by-domain/blob/...

    I defined this SQL view https://simon.datasette.cloud/data/hacker_news_posts_atom which shows the latest data in the format required by the datasette-atom plugin.

    Which means I can subscribe to the resulting Atom feed (add .atom to that URL) in NetNewsWire and get alerted when my content shows up on Hacker News!

    I wrote a bit more about how this all works here: https://simonwillison.net/2022/Dec/2/datasette-write-api/

  • docker-essential-aliases

    docker essential aliases (dea) makes working with docker just a little bit easier!

    I actually just opensourced a personal project/tool I've been using often.

    https://github.com/robswc/docker-essential-aliases

    When deep diving into containers, I got tired of typing/tabbing out container names and docker formatting lol

    Nothing revolutionary but it has saved me a ton of combined time.

  • validator

    Nu Html Checker – Helps you catch problems in your HTML/CSS/SVG (by validator)

    I write a ton of CSS and could not find a command line stylesheet checker. I did find the NuHTML checker from W3C, cough, which also checks CSS: https://github.com/validator/validator/releases/tag/20.6.30

    I wrote a script to convert the inset a CSS file into a dummy one-line HTML file, so that I can pass a CSS file to the script, and when errors are generated from the CSS, they are given using the correct line number.

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  • thoughts

    Dump of my thoughts (by ravivooda)

    MyQ Garage Automation had issues with my account and wouldn’t send me notifications when the door is left open for a long time.

    So I automated the notification system using IFTTT.

    https://github.com/ravivooda/thoughts/blob/main/docs/garage_...

  • emergency-poncho

    Emergency Poncho - an HTTP Archive replayer

    I've created a tool for replaying HTTP archives:

    https://github.com/Tade0/emergency-poncho

    There are many like it, but this one is mine.

    Useful when you're a front-end developer and the backend app is not easily deployable locally and the test environment is down.

    Also with it you can make a blazing-fast, browsable snapshot of JIRA.

  • intellij-community

    IntelliJ IDEA Community Edition & IntelliJ Platform

    > I can make the batch file chimeric so it can run in a linux shell as well. Maybe that'll to be my lazy Sunday afternoon?

    You may want to draw inspiration from the latest incarnation of JetBrains build bootstrapping script:

    https://github.com/JetBrains/intellij-community/blob/idea/22...

  • probe

    probe - a new kind of cd+ls (by dp12)

    I made a fzf-powered tool that makes cd'ing into deep directory trees quite fast and easy. It's somewhat reminiscent of ranger/nnn/broot, but in my mind, it eliminates the mental context switch of entering/exiting those tools.

    Some gifs (with speed comparisons) here: https://github.com/dp12/probe

  • SetProxy

    A Proxy Manager for Windows

    Not a "small" script, but this allows me to painlessly switch proxy configurations in git/npm and windows.

    https://github.com/JDeepD/SetProxy

  • my-alternatives

    A wrapper for update-alternatives offering user-level customizations with support for Debian, SUSE, and RedHat

    I'm really happy with this script I wrote that is a wrapper over update-alternatives that lets you make user-level (and even per-shell) changes:

    https://github.com/TekWizely/my-alternatives

  • BotServer

    LLM Orchestrator powered by langchain and Bot Framework V4 & several features including Whatsapp.

    https://github.com/GeneralBots/BotServer/blob/main/packages/...

  • gpt-emacs-macro

    Connect GPT-3 to Emacs and run "semantic" kbd macros

    I wrote a quick integration to the GPT-3 API to Emacs [0]. Although it's a very simple implementation, it's made many small things I would've previously done manually much quicker (ie - one-off calls to convert a hyperlink in X format to markdown; abbreviate first names of author lists of papers; convert some "text message speak" messages into a paragraph).

    [0] https://github.com/samrawal/gpt-emacs-macro

  • dotfiles

    ben's dotfiles (by benwinding)

    Which finds all squash-merged branches in the current Git repo, and warns you before deleting!

    https://github.com/benwinding/dotfiles/blob/master/bin/git-d...

  • work-cli

    Awesome command line tools for managing the lifecycle of Github pull requests.

    I made a CLI tool for quickly starting new branches with draft PRs, asking for reviews, etc: https://github.com/dbalatero/work-cli

    Made a bunch of Hammerspoon plugins for macOS:

  • SkyRocket.spoon

    Resize and move windows using the mouse and modifier keys. A Hammerspoon clone of Zooom/2 functionality.

    - https://github.com/dbalatero/SkyRocket.spoon - mod+click to resize/drag windows

  • VimMode.spoon

    Adds vim keybindings to all OS X inputs

    - https://github.com/dbalatero/VimMode.spoon - Vim mode everywhere

  • HyperKey.spoon

    This library allows you to bind keys to a modifier, and shows you a popup overlay of all your key binds when you hold down the modifier key.

    - https://github.com/dbalatero/HyperKey.spoon - pop-up menu for when you forget your keybinds (like neovim's which-key or spacemacs)

  • Traccar

    Traccar GPS Tracking System

  • android

    OwnTracks Android App (by owntracks)

  • auto_meet

    back in the covid period, i wrote a small set of scripts to automatically attend my university lectures on zoom:

    https://github.com/WantGuns/auto_meet

    it does the bare minimum of:

  • pngquant

    Lossy PNG compressor — pngquant command based on libimagequant library

  • oxipng

    Multithreaded PNG optimizer written in Rust

  • ImageOptim

    GUI image optimizer for Mac

  • o

    o, the little helper to edit filenames in command line parameters (by jes5199)

    my favorite is a little command line helper called “o”. it’s a helper for copy and rename commands. If I want to edit a misspelled filename I can just type

    o mv mispelled.txt

    and it will make an interactive prompt that looks like:

    mv mispelled.txt mispelled.txt_

    but the last word is editable, so I can use the arrow keys to alter it in place

    https://github.com/jes5199/o

  • Gmaid

    Keeps your inbox from being a shitshow

    This tiny script keeps my gmail inbox surprisingly manageable.

    It auto-archives any emails older than 2 days (you can change this obviously) unless they're starred - this changes my email experience in two ways:

    1) My email inbox ONLY has emails that are either new or that I decided were relevant. I have two days to notice this.

    2) When I'm scanning my email, if I see something important that I don't have time to deal with, I can star it and keep moving and know that it'll still be visible and in a manageable-size queue later.

    When I travel off-grid it is a bit of a pain since I have to go through a lot of archives, but that can be addressed by just turning it off.

    I also ruthlessly unsubscribe to things I've stopped reading to keep everything manageable.

    https://github.com/AlexMakiJokela/Gmaid

  • diaryman

    Lazy (wo)man's CLI diary manager

    Diary script.

    `$ diary` create/open a file for today's diary in vim: https://github.com/Aperocky/diaryman/blob/master/diaryman.sh

    Or try `pip install diarycli`: https://github.com/Aperocky/diarycli, for a pip packaged python version that does the exact same thing.

    I've actually kept diary and work logs, things I did not know I was capable of.

  • diarycli

    diaryman.sh as pip package

    Diary script.

    `$ diary` create/open a file for today's diary in vim: https://github.com/Aperocky/diaryman/blob/master/diaryman.sh

    Or try `pip install diarycli`: https://github.com/Aperocky/diarycli, for a pip packaged python version that does the exact same thing.

    I've actually kept diary and work logs, things I did not know I was capable of.

  • GenFortune

    A clone of the unix "fortune" utility supporting more advanced features like dynamic generation and modern JSON syntax while still using less than

    I've done three worth mentioning.

    One is GenFortune: https://github.com/EternityForest/GenFortune

  • dotFiles

    My dot files (by harish2704)

    Project specific Bash history.

    https://github.com/harish2704/dotFiles/blob/master/home/.loc...

    This script + SpaceFM file manager saving lot of time for me

  • ugit

    🚨️ ugit helps undo git commands. Your damage control git buddy. Undo from 20+ git scenarios.

    Ugit (undo git): https://github.com/Bhupesh-V/ugit/blob/master/ugit

    I got this idea from a Twitter discussion which eventually blew up a year later after its initial release.

  • Calligraphic-Rulings

    A simple program to create ruling pages for English calligraphy

    I used to run a site for tutorial screencasts. My "video workflow" involved recording, adding an intro and outro, transcoding to multiple formats and finally uploading the videos to the Internet Archive.

    I automated everything except the actual recording using a Makefile that's over here https://gist.github.com/nibrahim/2466292. I think I added some sox commands to clean up audio too in a later version but lost the file.

    Another one I did was a small script to create ruling sheets for calligraphy. It's a tedious process by hand and having a script create a PDF based on nib width is a great time saver https://github.com/nibrahim/Calligraphic-Rulings

  • ps3000

  • gorss

    Go Terminal Feed Reader

    I've made 2 projects that I use everyday for several years now. Not sure if I'm proud really, but they are such useful tools in my daily life so I guess I should be!

    One is a RSS feed reader (GORSS) for the terminal that I use to always be up to date with stuff that interests me. The other is a simple todo-list that I use for work, shopping etc (DoIT).

    https://github.com/lallassu/gorss

  • doit

    Simple Todo List - Wunderlist Replacement (by Lallassu)

  • cowboy-bike-remote-ble

    nRF52 project for controlling a cowboy e-bike

    https://blog.waleson.com/2022/03/the-worlds-first-cowboy-key...

    Source code here: https://github.com/jtwaleson/cowboy-bike-remote-ble

    I’m currently working on finalizing the PCB version, the first one had some flaws so the battery drained really quickly.

  • gmail-sidebar-drive

    A simple gmail add on to display all the drive folders and files in sidebar.

    1. List the files in order of last modified or last opened. This way I can list 25 latest files and go to the ones opened by me. (no folders needed, just the last opened ones).

    2. With last modified date, tells me when the file was modified last. (useful if you collect data in sheets from forms or other stuff, tells you when you have a new lead). Also tells you when the colleague you share a file with has edited it or not.

    I wanted to enhance it with adding more stuff like: show diff, so I know what has changed. And then, show the content from a doc right here in sidebar, because well it's easier to type a mail by looking at that.

    [1]: https://github.com/ankitmaloo/gmail-sidebar-drive

  • home-bin

    copy of my ~/bin

    Not proud, but useful:

    https://github.com/rurban/home-bin

  • blog

    blog, en: https://www.owenyoung.com/en/ , 中文: https://www.owenyoung.com/ (by theowenyoung)

    JSONBin: https://github.com/theowenyoung/blog/tree/main/scripts/jsonb...

  • logtimer

    Enhance your output with a timer / date

  • semanticText

    Copy paste tool that analyzes the semantic description of all text in the DOM

    A small copy/paste tool to assess the semantic quality of any webpage:

    https://github.com/prettydiff/semanticText

  • Kiilogger

    C# based keylogger for general purpose keyboard logging and computer usage debugging :stuck_out_tongue:

    I was not saying complete truth. It records much more details. I use the my home made https://github.com/XEonAX/Kiilogger

    At work I use autohotkey script that dumps clipboard to a text file with a timestamp.

    I will see if i can get the code.

  • degrotesque

    A web type setter.

    I like my web type setter written in Python very much: https://github.com/dkrajzew/degrotesque

    It replaces common ASCII characters by their typographic counterpart, e.g. "Hello - I'm back" will get "Hello — I'm back"

  • watermark

    watermark an image with a specific text (by Eun)

    Made a watermark tool to watermark images in the browser, using it whenever I send images to third party:

    https://github.com/Eun/watermark

  • zettelkasten

    Creating notes with the zettelkasten note taking method and storing all notes on github

    I wrote a bash script to collect demographic information for everyone in the country using the us census. I also created a simple bash script to take notes following the method, you can check it out here: https://github.com/AndrewCopeland/zettelkasten

  • careful_rm

    A safe wrapper for rm that adds useful warnings and an optional recycle/trash mode

    I use a similar thing that also handles when you forget -rf, with confirmation & stuff; https://github.com/MikeDacre/careful_rm

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Announcing a New Series: Deep Dive into Golly

    6 projects | dev.to | 21 Jul 2024
  • Never Update Anything

    5 projects | news.ycombinator.com | 19 Jul 2024
  • 🎉 Finally! Official launch of the Gowebly project on ProductHunt

    2 projects | dev.to | 19 Jul 2024
  • Creating A Carousel with Vanilla JS

    1 project | dev.to | 19 Jul 2024
  • Show HN: Horizon – Private alternative to Imgur

    1 project | news.ycombinator.com | 17 Jul 2024