Gort is a chatbot framework designed from the ground up for chatops.
Gort brings the power of the command line to the place you collaborate with your team: your chat window. Its open-ended command bundle support allows developers to implement functionality in the language of their choice, while powerful access control means you can collaborate around even the most sensitive tasks with confidence. A focus on extensibility and adaptability means that you can respond quickly to the unexpected, without your team losing visibility.
Gort's design philosophy emphasizes flexibility and security by allowing you to:
- Trigger commands through Slack (or another chat provider)
- Implement commands in any programming language of your choice
- Package commands into bundles that can be installed in Gort
- Organize users into groups, and permissions into roles
- Use a sophisticated identity and permission system to determine who can use commands
- Customizable system and command output at the application, bundle, and even command level
- Interact via Slack or Discord as first class chat providers (with more on the way!)
- Record all activity in an audit log
Gort lets you build commands in any language you want, using tooling you're already comfortable with, and can tightly control who can use them and how.
Gort was initially conceived of as a Go re-implementation of Operable's Cog Slack Bot, and while it remains heavily inspired by Cog, Gort has largely gone its own way.
During our initial design process, we found that many of Cog’s features, however innovative, went largely unused, and the codebase had become difficult to extend and maintain. Additionally, its implementation language -- Elixir -- had relatively few proficient developers. The solution, which was discussed for many months on the Cog Slack workspace, was to rewrite Cog from scratch in such as Go, removing some of less-used functionality and reducing complexity in the process.
This gave us the opportunity to consider and possibly redefine what Cog was meant to be. To choose the features that make sense, and to discard those that don't. In this way, Gort can be described more as a "spiritual successor" to Cog than a faithful re-implementation.