Gopherbot

ChatOps Engine for Slack, written in Go, inspired by Hubot and Jenkins

Last verified:

Visit Gopherbot

What is Gopherbot?

Gopherbot is a ChatOps engine for Slack, written in Go, inspired by Hubot and Jenkins. It is designed for flexible automation and orchestration of infrastructure and development tasks for Slack teams. The bot runs as a Linux process on a server/VM or container in your infrastructure, connects to team chat, and responds to CLI-like commands matching regular expressions.

Key features include a dynamic pipeline-based architecture supporting complex multi-language workflows with scripting and libraries in Bash, Python, Ruby, and Go. It supports self-deploying and updating with GitOps-style management, threaded conversation support, hidden Slack slash commands for reducing channel noise, encrypted secrets, built-in Google Authenticator TOTP, a full-featured IDE and terminal connector for developing extensions, and highly configurable Go-templated YAML.

Gopherbot is ideal for DevOps engineers who want to provision resources, run reports, deploy software, or interact with CI/CD pipelines directly from team chat. It handles automation jobs scheduled with built-in cron or triggered by external messages like build complete notifications from CI/CD or commit messages from GitHub.

Gopherbot pricing

Pricing model: Freemium

Gopherbot is free and open source under the MIT license. There are no paid plans. You can download the latest release build from the GitHub release page, or use up-to-date container builds from GitHub Container Registry (ghcr.io/lnxjedi/gopherbot for production, ghcr.io/lnxjedi/gopherbot-dev for development with OpenVSCode Server). Building from source is free using 'make dist' with Go 1.18+ and standard build utilities.

Gopherbot pros

  • Written in Go for performance and concurrency
  • Supports multiple scripting languages: Bash, Python, Ruby, Go
  • GitOps-style self-deploying and updating
  • Threaded conversation support and thread-awareness
  • Hidden Slack slash commands reduce channel noise
  • Powerful pipeline-oriented engine for reusable components
  • Flexible encrypted secrets support
  • Built-in Google Authenticator TOTP security
  • Full-featured IDE connector for developing extensions
  • Terminal connector for local development
  • Highly configurable with Go-templated YAML
  • Dynamic Go extension support since v2.15.0
  • Docker container support for production and development
  • MIT license - free and open source
  • Scheduled jobs with built-in cron facility
  • Triggers from external automated tasks like CI/CD notifications
  • Simple robot API for each supported language

Gopherbot cons

  • Only Slack and terminal connectors currently supported
  • Windows and MacOS ports removed - Linux only
  • Documentation still incomplete and lagging
  • Bash library doesn't support long-term memories
  • Version 3 features still in development (expected Q1 2025)
  • Requires Git repository for robot configuration
  • Setup requires environment variables and encrypted credentials
  • Dynamic Go extensions only support stdlib and Gopherbot API
  • 50+ releases indicate frequent changes and potential instability

Frequently asked questions about Gopherbot

What is Gopherbot?

Gopherbot is a ChatOps engine for Slack written in Go, inspired by Hubot and Jenkins. It automates and orchestrates infrastructure and development tasks for Slack teams by responding to CLI-like commands in team chat.

What programming languages does Gopherbot support?

Gopherbot supports scripting and libraries in Bash, Python, Ruby, and Go. Go extensions can be dynamically loaded via Yaegi since version 2.15.0.

How do I deploy Gopherbot?

You can run Gopherbot as a Linux process on a server/VM or in a Docker container. It retrieves your robot's Git repository and encrypted credentials from environment variables, then connects to your team chat.

What is the Gopherbot IDE?

The Gopherbot IDE is a full-featured development environment with OpenVSCode Server for developing extensions. The dev container (ghcr.io/lnxjedi/gopherbot-dev) uses OpenVSCE Server as the entrypoint.

How does GitOps management work?

Gopherbot bootstraps and updates individual team robots from a Git repository containing configuration (mostly YAML), scripts, and libraries used for automation. After uploading your robot to Git, you only need the .env file for deployment.

What security features does Gopherbot have?

Gopherbot offers flexible encrypted secrets support, built-in Google Authenticator TOTP, hidden Slack slash commands to prevent sensitive information leaks, and deploy keys for repository access.

Can I use Gopherbot on Windows or MacOS?

No, Windows and Darwin (MacOS) ports have been removed. The recommended solution is to run Gopherbot in a Linux container using Docker Desktop, or use WSL for Windows.

How do I create a command plugin?

You can create command plugins in Bash, Python, Ruby, or Go. Each plugin defines regex matchers for commands and uses the robot API (like bot.Say() in Ruby) for chat interactions.

What are Gopherbot jobs?

Jobs are automation tasks that run either scheduled with the built-in cron facility or triggered by specific external messages like build complete notifications from CI/CD or commit messages from GitHub.

What is the current release version?

Version 2.16.0 is the latest release (December 3, 2024). Version 2 has been stable for over a year. Version 3 is expected Q1 2025 with dynamic Go extension support and migrated core features.

Categories

Use cases

Browse all AI tools on NeedAnAI