# Huginn

> Self-hosted agents that watch the web and act for you — a hackable IFTTT on your own server

- Category: Agents & Automation / Workflow Automation
- Language: Ruby
- Licence: MIT
- Repository: https://github.com/huginn/huginn
- Canonical page: https://ai-tldr.dev/tools/huginn/

## In short

Huginn is a system for building agents that perform automated tasks for you online. Agents read the web, watch for events, and take actions on your behalf. It sits in the Workflow Automation category of the Agents & Automation tools and is open-source, written in Ruby and licensed MIT. To get started: try it with Docker.

## Overview

Huginn is a system for building agents that perform automated tasks for you online. Agents read the web, watch for events, and take actions on your behalf. Each agent creates and consumes events, which propagate along a directed graph, so you can chain simple steps into larger workflows.

Think of it as a hackable version of IFTTT or Zapier that runs on your own server. Because you host it yourself, your data stays with you. It fits the low-code workflow-automation space: you configure agents through a web UI rather than writing a full application, but you can still drop in custom JavaScript or your own agent code.

It suits developers and self-hosters who want web monitoring, scraping, alerting, and integrations without sending their data to a third-party SaaS. It connects to services like Slack, RSS, IMAP, MQTT, Twilio, Twitter, and many more, and supports sending and receiving WebHooks.

## What it does

- Event-driven agents that create and consume events along a directed graph, letting you chain steps into workflows
- Scrape websites and get notified by email when they change, or track feeds, weather, and travel/shopping deals
- Built-in connectors for Slack, RSS, IMAP, Jabber, JIRA, MQTT, Pushbullet, Pushover, Twilio, Twitter, and more
- Send and receive WebHooks, and run custom JavaScript functions inside agents
- Detect spikes in high-frequency events (for example a search term) and send an SMS or digest alert
- Extensible: write new agents, or add external agents via the ADDITIONAL_GEMS environment variable

## Getting started

The quickest way to try Huginn is the official Docker image; for development you can run it locally with Ruby, Bundler, and MySQL or PostgreSQL.

1. Try it with Docker

   The official Docker image is the fastest way to check out Huginn. See the Docker install documentation in the repo for the full command and configuration options.

2. Set up a local development copy

   Fork the repository, add the upstream remote, then copy the example environment file and set APP_SECRET_TOKEN in .env.

```bash
git remote add upstream https://github.com/huginn/huginn.git
cp .env.example .env
```

3. Install dependencies and create the database

   Make sure MySQL or PostgreSQL is installed, then install gems and set up a development database seeded with example agents. Prepend DATABASE_ADAPTER=postgresql to the rake commands if you use PostgreSQL.

```bash
bundle
bundle exec rake db:create
bundle exec rake db:migrate
bundle exec rake db:seed
```

4. Start Huginn and log in

   Run the app, open http://localhost:3000/, and log in with username 'admin' and password 'password'. Then set up some agents.

```bash
bundle exec foreman start
```

## When to use it

- Monitor websites or RSS feeds and get an email or Slack message when something changes
- Track a term across Twitter or other sources and alert you (email/SMS) when discussion spikes
- Glue services together with incoming and outgoing WebHooks instead of using a hosted IFTTT/Zapier
- Send a scheduled digest email collecting weather, deals, or project mentions you care about
