You make a request
The Meeseek fulfills the request
And then it stops existing
Meeseeks is a ChatOps Construction Kit that allows anyone to build their own automations following the UNIX principle of using small tools that know how to do one thing right.
Meeseeks-Box is the component that knows how to talk to Slack, listen for messages and dispatch jobs to be executed as if it was being executed by a user in a shell.
The core tenets of the tool are simplicity, security and flexibility.
Meeseeks is a way of running any executable on a host through Slack while keeping things simple and secure.
The project is based on the fact that server infrastructures aren't pretty. As much as we would like to have great elegant, resilient systems, oftentimes all we really need is to simply run some shell scripts (or curl, or a db query, or whatever) somewhere in the fleet to perform a job.
So, instead of building ambitious projects that will never reach stability (let alone be deployed) you can start automating your toil away right now.
Download a single binary file and create a Slack API token. That's pretty much it.
Any language.
The Meeseeks run commands using fork+exec
so you can use anything that can be executed from a shell.
None. Or better said, POSIX.
Write what you want to read to stdout: that's the text that will be transported back to the chat. Returning an exit code different than 0 will be interpreted as a command failure but the output will still be transported back.
The Meeseeks are built for an imperfect world in which things can take a long time. The default timeout is 60 seconds but it can be configured on a per command basis. You can even spawn commands without a time limit.
Yes. You can cancel your own jobs with cancel job_id
. Admins can cancel any job with kill job_id
: this will send a kill signal to the running command.
Yes. Use tail
to show the last output lines from the last command that you launched.
- Make sure you have a valid GitHub token and export it in your shell environment as
GITHUB_TOKEN
. - Check out the latest version with
git tag --list
. - Tag a new version with
git tag <new version>
. - Release with
make release
.
For more in depth details, check the docs.