10 ms·
Launch HN: Abbot (YC S21) – ChatOps as a Service, inspired by GitHub's Hubot
Hi HN, we're Phil and Paul and we make Abbot (https://ab.bot/ https://ab.bot/) – a tool for building and running simple automation via chat (currently Slack, Discord, and MS Teams). It's common to go from "I have an idea" to having a fully deployed chat command in under an hour.
The term "ChatOps" comes from GitHub, where the two of us worked together. GitHub was always a distributed company and early on developed a culture of doing most work via chat. Engineers automated the most repetitive processes (and some of their sense of humor, too), and that grew into a shared chat-based command line called Hubot. By typing terminal-style commands into chat, you can execute any sort of process that it makes sense for your team to automate. And because it’s in a shared chat room rather than hidden on your own machine, every time you run a task, you teach someone else how to do it.
Hubot has been wildly successful at GitHub and is amazing in action. We saw GitHub’s ops team fight off the biggest DDoS attack in history from chat using Hubot, while people were cheering along in another channel using Hubot to find appropriate hype gifs. But the effect on day-to-day work was even more amazing. Anyone could easily find out what was recently deployed, how to deploy, monitor servers, page people, you name it. New employees could see how to do all those things as soon as they joined. Since there were fun commands inside of Hubot, it was great for team building, too.
We believe more companies would benefit from working this way. When Covid hit, many companies suddenly found themselves struggling to make distributed teams work better. It is challenging to understand what everyone is doing, or even how to do regular tasks, since it's not easy to tap someone on the shoulder and ask. We decided to build Abbot to help teams adopt this style of work.
When we started, we built a list of what wasn’t fun about Hubot. Hubot required a lot of configuration, wasn’t reachable if chat was down, testing new scripts could be painful, there was no unified way to manage permissions, and so forth. We built Abbot as a hosted platform that handles all these things so developers don’t have to.
Because Abbot is a platform, we provide a unified interface for auditing, access control, data access and more. If users understand how to use a single Abbot command (or “skill” in Abbot parlance), they'll know how to use any other Abbot command. Since we built Abbot to support multiple chat systems, we made it so that all Abbot commands are cross platform – commands written for Slack will work in Discord, and so forth. You can write commands in C#, Python, or JavaScript (we will support more languages in the future). We also do a lot of things Hubot does not, like allowing users to control access to the execution of their commands from inside of chat, or exposing an API endpoint for every command so that they can react to the outside world. There’s nothing to fork or configure – you can get started in two clicks from our website.
Abbot has a Package Directory where people can share the commands they’ve written. There are a few dozen packages in the directory today, with more being added every week. Packages are MIT licensed and installable in one click. Because it's so easy to create new commands, teams tend to create a lot of small ones that accomplish a single task. For example, we have a `tweet` command that allows us to use chat as our communal Twitter client (available in the Package Directory at https://ab.bot/packages/aseriousbiz/tweet https://ab.bot/packages/aseriousbiz/tweet).
Today, people use Abbot to deploy Git branches to staging environments, track daily standups, figure out time zones for all their teammates, give each other internet high-fives (well, sparkle points), and even open their office door. We are focused on DevOps and customer support teams right now, but believe ChatOps can make a big impact on every team that has a channel in your chat.
We are open for business! You can add Abbot to your Slack, Discord, or MS Teams chat by clicking "Try for free" at https://ab.bot https://ab.bot. We have a free tier that allows people to try it out without any commitments. We don't ask for any information to sign up, you just have to authorize Abbot into chat. For paying users, we charge based on the number of custom commands, number of actions taken, or access to paid features like access controls. Right now we are SaaS only, but will offer a hybrid-premises version in the future.
We are sure that many of you have built your own chatbots and ChatOps tools before. We’re especially interested in hearing about what worked well and what was challenging when building and operating them! And we hope you can give Abbot a try. Have at it, HN!
- karlclement 5y agoThis is amazing, can't wait to setup my DevOps processes to be triggered by Abbot commands. Winner winner. Can I use Abbot along with Terraform on ECS? Would love to setup some deploy scripts
- haacked 5y agoThanks! I'm not too familiar with Terraform on ECS, but if there's an API, then you can script it with Abbot. For example, we have an existing package that uses the GitHub deploy API to deploy software https://ab.bot/packages/aseriousbiz/deploy https://ab.bot/packages/aseriousbiz/deploy If you trigger your deploys using GitHub's API, then you could just use that skill. Otherwise, you can copy that skill's code and adapt it to your needs. Hope that helps! (In case it's not clear, I'm the "Phil" in the post) :)
- karlclement 5y agoThanks Phil, this is awesome. I'm sure I can leverage AWS API/cli. Also could be a great fit to use Github Actions along with Abbot
- icey 5y agoboto3 is available in Python skills too, so there's probably a shortcut there for you :)
- nuclear79 5y agoSweet, this is sick!
- haacked 5y agoThanks!
- tyingq 5y agoInteresting, though I'm struggling a bit for when "chat initiated" is the best trigger for things that aren't in the fun category. That is, when is chat-initiated typically a better fit than something initiated by a check-in, build, incident detection, and so on? (Not knocking it, just curious)