Well, it’s fun to see Huginn on HN! I’m the original author, but now it’s maintained by other excellent folks.
I still use Huginn almost daily. It’s kind of my exocortex at this point, and the secret sauce for staying abreast of space industry news for Orbital Index (https://orbitalindex.com).
I have a few on my blog, https://blog.andrewcantino.com, but nothing comprehensive. I mostly use it to monitor Reddit/HN/Twitter/various blogs for certain keywords, and also to keep an eye on local things that I want to know about (weather, events, emergencies, etc.).
It's trivial to write your own agents, and use other 3rd party gems in those agents. For fetching data from LinkedIn, checkout https://github.com/mdesjardins/linkedin-v2 (YMMV)
I was in a similar position when I started using Huginn, I've managed to avoid Ruby for the most part (although dabbled in it for a few other things recently) and it's been pretty plain sailing. The only thing is you're limiting yourself to the pre-bundled "agents". For me that's been fine as I mostly do various bits of web scraping, api calls, etc, if you wanted to interact with more complex systems that don't run over HTTP you might find yourself wanting to write a custom agent.
I don't know Huginn much in detail, but if you do know any OOP language since before, just the basics around Objects, then Ruby will be fairly simple to pick up as well. Like most OOP languages, it has just minor differences in syntax in comparison to other OOP languages.
I found this a few years ago and was super intrigued JARVIS-like potential and dove into it. There's a STEEP learning curve but once you get it figured out a couple times, it's really powerful and you can do a lot.
My problem is that the things I could do.. didn't particularly seem useful. Sure, knowing the weather is useful but I can get a pretty good idea on my own or checking the times I need to know more. Knowing about trends up/down in my stock is only useful if I'm going to act. Now that I have solar, I can see some more use cases but most are also around curiosity vs knowing when to take action.
I may come to a different conclusion if I build an armored combat suit.
Or for a more realistic and fun story, check out Daniel Suarez's Daemon. It's great.
We run it in production. It works well but RRD backed graphs are a pain to work with so we’re currently looking at netdata instead to see how it compares.
I ran a startup that I shut down a few years ago that was designed to do something very similar to this. It is dead now but the site is up at https://refinery.io (docs have screenshots)
What I figured out is that... it's really hard to get this type of thing right. The more generic something is, the less useful it is. Zapier is a pretty amazing tool but it's also incredibly difficult to write all of their integrations. This tool suffers from a lot of the same problems (integrations are where the value is).
It's cool to see others talking about this though. It makes me want to Open Source the core tech we used to build Refinery (including the half-baked version that uses Temporal for long-running action sequences).
> The more generic something is, the less useful it is.
Funny how different people reach different conclusions :)
In my experience, tools and services that don't generalize enough (or allowing it rather), are less useful in the long-term and just solves something short-term. But it's easier to get traction if you solve something short-term, as it's often easier to market something that is more focused.
In this case, our "niche" was Jr. Devs that could write some code but couldn't get something deployed very easily. Kind of like Heroku.
The angle of it being "generic" was that it required that you knew how to code. We didn't really give you many pre-defined "building blocks" to get started with. We tried to find a "niche" within that space (like a web scraper) but we just never got it quite right without needing to re-think everything we'd built.
Since then, we've ended up doing Open Source security tooling instead[0]. We wrote up the first technical blog post about the recent log4j vuln[1] and that's been valuable for helping us identify "niche" problems that companies struggle with.
I'm CEO of robusta.dev (an automations tool for Kubernetes) and this has been our experience too.
People don't want the ability to write their own automations - they want something that just works out of the box.
Very early on we realized this based on feedback and pivoted to focusing on out of the box alert insights (powered by automations we wrote) and not write your own automations.
> People don't want the ability to write their own automations
I don't think that is true. People do want their own automations, but only when necessary. And as always, it should be as effortless as possible. That's the main fail where most of those tools struggle.
> they want something that just works out of the box.
Why not both? Personally, I want something gives me everything for the common tasks and services, but also has room to let me grow into the direction I need to go. This does not mean I want to build everything myself, or even start at zero. But between zero customizing, and doing everything yourself, there should be a common ground that allows me find my sweet spot.
And there are many good tools which do feed into this desires and are working well.
I should have elaborated more. We give you the useful content out of the box but you can customize to your heart's content and write your own automations.
All the APIs used to create the out of the box content are available for you too.
I thought of creating a similar tool just for marketing automation. I built a landing page [0], but haven't had the time to talk to potential customers.
I tried using this a year or two ago—seemed like a really cool idea, and I still think it is—but I couldn't find an actually useful application for it in my life.
Not saying there aren't plenty of neat applications out there, but once the initial "that's cool" feeling wore off, I wasn't sure how to actually get some value out of the system. For me, it felt like a time sink.
Curious to know if others have found use cases that are low-maintenance and high-value.
I setup huginn about two years ago primarily just because it looked interesting. I then sat there for a while wondering what to do with it. I setup the basic things like a morning weather alert, and daily digest email and basically ended up with the same feeling. I decided to leave it for a couple weeks or so and just see if I came up with anything else more useful. That was definitely the right way for me to get going with Huginn. It's ultimately a bit of a multi tool, if you keep it around you're bound to reach for it although you may not need it the second you buy it.
Since having it setup I've used it to:
* Monitor covid travel restriction changes on the UK gov site and email me when updates are made.
* Scrape the site of a housing development where I wanted to view a house early as a potential purchase to know first when they opened viewings.
* Look for a price drop on some computer monitors on Amazon as the price was quite high when I found them.
* Daily discord report on the price of flights on a particular date when I and a group of friends were thinking about a holiday together.
* Alert when an exchange rate dropped or increased by a certain amount to help figure out when to exchange money for the same trip.
I find most of my uses include some kind of web scraping, although not always, and are usually things I want to run frequently and have run reliably. Most don't live more than a few months but it's a great tool to have knocking around as the effort to spin up an automation is much lower compared to writing a custom script each time.
I actually have n8n.io self-hosted as well because it has some nice pre-bundled integrations with various services like Spotify which huginn doesn't. That said, I've not really enjoyed using it, I find myself hitting F5 a lot because the UI breaks and won't recover and while it's more visual it's actually much harder to view the logs of a workflow. I tend to default to huginn unless n8n has a particular integration which will make the task faster to setup. Once setup though, I've not had any problems with it.
I agree, I've never quite been able to figure out anything useful over alternatives. Like the usual "send me an SMS when the weather will be rainy" example - I use a highly customizable weather app that gives me more power to send me stuff like that without having to fiddle with a new system.
This system's integration with Mechanical Turk could be interesting, but I'm too dumb right now to figure out some cool things I could do with it.
I have “frenemies” who are semi popular. I want to keep alerts on their LinkedIn and Twitter. Similarly startups I want to know if they’ve stagnated or gotten funding. I would like to get earnings calls emails for some companies I like. I want to get a ping if the forex rate changes for some combos, or if gold price drops by some percent. I and family have many bank accounts and it’s a real thing that you need to keep an eye on the finances of your banks here (one goes down every few years). I will like to have news alerts on all the small towns my family is in so I know if something big happened anywhere.
I think it’s definitely a mindset to think of everything you do or read every day and think if you can offload it to someone or something else. Once you switch that knob on you notice so much every day.
> I have “frenemies” who are semi popular. I want to keep alerts on their LinkedIn and Twitter.
That sounds so far away from how I deal with "frenemies" (I just ignore them) that I have to ask: What do you get out of reading what they are up to on Twitter and LinkedIn?
An alternative to this (more similar to node red, actually) is n8n [1], which is pretty cool, but as others have said here, I never found a good application for this.
N8N is awesome for some tasks, but infuriating for others.
The time I've spent trying to filter seen data from a source is just mind-boggling. It would've been a lot faster to do the whole thing myself.
And I'm not alone in this. Pretty much every task that updates on a timer needs to exclude things it has already seen - and this is a herculean cryptic task in N8N.
I definitely think there needs to be some kind of sea change for this kind of tool to really have an impact. I fret that there's not enough middle-brow interest in tech & computers for even the best designed, most capable user-scripter (like Huginn or Node-RED) to become truly high impact. Developers tend to find a lot of value add versus deploying whatever industrial ops practices they know. So whose left to support & nurture these interesting vanguards, these more comprehensively-built & user-focused computing environments?
And reciprocally getting started with a project like this is somewhat daunting for the newcomer, while at the same time they're bombarded by far more options & places to get started in computing than they can handle. I think most folk kind of swear off involvement, don't have a way to casually check out a couple random computing attempts easily, dabble & sample. Computing rebuffs interest, alas.
I still believe in change. The dis-interest in computing is obvious & clear to me today, because most computing is back on shitty mainframes (cloud) in places we can't see or poke at (apps, cloud). Trying to better merge the developers back into the folk would help a lot. But real wins are needed broadly to tell users they're wanted on the other side, to make exploration fun and cool again.
We had a roll out of a (good) low code finance tool at work and frankly the uptake was breathtakingly underwhelming.
The average user is substantially less computer literate than most techies assume. The jump from navigating menus in excel to the logical flow of code just isn’t there, regardless of graphic or not.
I don’t mean that in a “users are stupid” sense but rather that the missing piece can’t really be filled in by low or no code. It’s the thinking pattern that’s missing entirely, not an issue with how that pattern is expressed.
Personally I don’t think it’ll change. If anything it is getting worse. Alexa and friends make people think there is some sort of magic that can be tapped into. Mirror opposite of how a programmer would reason through code flow.
In my experience, the biggest thing programmers do that normal people don't is imagine {all possible scenarios} and then design a system that's tolerant of them.
If you can funnel things into a well-defined state before turning it over to non-programmers (e.g. data warehouse), you get better results.
> In my experience, the biggest thing programmers do that normal people don't is imagine {all possible scenarios} and then design a system that's tolerant of them.
In my experience programmers don't do this any more than other people called on to design systems, and in fact frequently leverage the fact that software is updatable to avoid imagining failure scenarios until they occur, and only then making software resilient against that particular failure.
There are absolutely bad programmers, but it seems to be a fundamentally different way of thinking.
Simple example: Go find a business analyst. Someone who's performing a process daily, over a large number of items. And has done so for 2 years+. Ask them to list all the different types of items (i.e. require a different or modified process).
In my experience, ~10% of them will be able to give you a comprehensive list. And only ~5% will bring up anything approaching exception handling for unknown cases.
I implemented it where I used to work and it ended up being the glue between a lot of services.
Started using it when our Zapier bill started approaching $4k per month, and it ended up replacing most of the functionality that we were using Zapier for.
I looked into this, but ended up going with PagerDuty's Rundeck. It's a similar idea, but with a less public and more internal focus. I see it as one step beyond an active monitoring service (because of the scheduling services). We use it to aggregate scripts that rely on several disparate data sources. It's easy to create one-liners or short dependencies that are highly re-usable to and then use those to gather the right data for more complex scripts.
This service runs as an interim before we can migrate to full containers and rely on their orchestration services. Sometimes I imagine SysOps as layers, this is a Layer 7, where as K8s is all of Layers 3-5.
Is anyone here an active user of Huginn? Basically roll your own Zapier. I’ve always been interested in it but never taken the time to get it set up and configured.
I use it daily at my law firm. It monitors online court dockets for many of my lawsuits and sends me an email when there is a new entry/order/filing. Incredibly useful.
When I looked into it some time ago, what tripped me up was that it seemed that you needed to deploy it using Docker. Otherwise, you'd have quite an involving set up process: install Ruby, Rails, then a database. Then you'd probably want to figure out a set up to enable https + SSL. I had it running locally and was quite impressed by it, but wasn't ready to go the full Dockerized route on a VPS at that time. Maybe now I would.. just need to find the time.
Personally, I think a project like Huginn would have more success if the code was in GoLang (easier to deploy) or Python (more popular language = people more willing to set it up) and used SqlLite for the backend. And if it had SSL/https baked in, out of the box. For comparison purposes, I distinctly remember how much I appreciated that Nextcloud had it baked in. So I ran NC very happily for quite a while and skipped out on Huginn.
yes, i love the thing - i've been thinking of setting up klaxon from themarshallproject for the web diff/watching stuff i have - but still haven't looked in to it deeply (and not sure i like their ready-to-go deployment without flexibility)
Examples of what i do with huginn:
1) twitter watching for peaks in activity in keywords around my home country (this one is hard, football interferes with it)
2) pulling in data from an API and storing it (where i jury rig a grafana dashboard to read from a view over the huginn data)
3) stuff that sends me push notifications on certain events (a bit of a rube goldberg machine, but: homeassistant zigbee device action is to hit a webhook on huginn, that webhook sends a push notification through huginn + alexa notifier event)
4) I have a zigbee panic button outside the house (again, attached to home assistant) in case someone is locked out without a phone and without keys that will then hit a webhook on huginn that will call the other adults of the house with a message
5) keep an eye on the job pages of a few companies i was interested in, filter out for roles with keywords in the title, and email me the details.
6) I'm waiting for certain products to become available, i have huginn watching those pages and sends me an email if it becomes available (if the manufacturer doesn't have a 'let me know when available' function) - this is unfortunately quite custom for each site, but do have a common chain afterwards
7) there's an english language news site that doesn't have rss or any form of notification, so i scrape their headline ticker and send myself push notifications
It's not necessarily as flexible as i'd like - but it gets enough of the job done often enough, for anything else i can feed in webhooks from custom scripts, etc.
If you get used to thinking in huginn, you will also be able to remove a lot of duplicated work and create common chains/funnels for events, that way you'd only need to add in one new agent at the top of a chain and you've already done the rest of the work.
I ended up going with node-red over huginn since it met my needs better, but having a "glue" service like this is useful. Whether it's building an api for sites that lack one (eg, alert me when this clinical trial actually gets results) or handling exceptions (when X is down, toggle Y switch).
Sure, you can write code and deploy it, etc to do this. The glue service just presents a low code approach to most simple things.
When I first looked at Huginn, it wouldn't run on ARM (raspberry pi). I eventually just went with Python3, Cronjobs, and an app called Pushover (push notifications). No visual niceties, but it works rather well for my purposes.
I have scripts for:
- checking exchange rates
- checking the price of wine or other products
- sending me the latest messages that interesting people on HN post
- etc.
I still use Huginn almost daily. It’s kind of my exocortex at this point, and the secret sauce for staying abreast of space industry news for Orbital Index (https://orbitalindex.com).