Check, Check, It
use checklists, like a boss
CheckCheckIt is a ruby library that exposes the command line program
check and companion web service that makes the process of going through a checklist easy to sync across multiple people.
Right now everything begins at the command line and a directory of checklists.
A "checklist" is just a text file. Every line that starts with a dash '-' is a step. Everything beneath a step is that step's body or description.
$ gem install checkcheckit
# it's all text $ cat ~/checkcheckit/personal/groceries.md - bacon - eggs - coffee - chicken apple sausage - avocados # start a list at the command line and keep it there $ check start ~/checkcheckit/personal/groceries.md |.......| Step 1: bacon Check: <enter> |+......| Step 2: eggs Check: ^C Goodbye! # start a list, open it in your browser, and skip the CLI interaction $ check start groceries --live --web-only --open $ check start groceries --live --no-cli -O Live at URL: http://checkcheckit.herokuapp.com/4f24b9d933d5467ec913461b8da3f952dbe724cb # Use it with any text file $ check start /Users/csquared/checkcheckit/groceries.md # When files are in `~/checkcheckit` # list your checklists $ check list # Checklists personal groceries work deploy # Start with shortcut names $ check start groceries # Run commands from the checklist $ cat ./hello.txt - say hello `echo hello` $ check start ./hello.txt |.| Step 1: say hello `echo hello` Run command `echo hello`? <enter>,y,n: running `echo hello` hello Check: |+| Done
start a checklist
You can go through a checklist by running
check start and then the checklist name.
If there are multiple checklists with the same name use the format
When you iterate through a checklist you can just type "enter", "y", or "+" to confirm a step and "no" or "-" to fail one.
This is fun.
check start <listname> --live will create an interactive companion URL on the web.
This URL is websockets-enabled and communicates with the command line. This means command line 'checks' get pushed to the web. Once a list is on the web you can disconnect the command line and continue finishing it (with others).
$ check start deploy --live Live at URL: http://checkcheckit.herokuapp.com/4f24b9d933d5467ec913461b8da3f952dbe724cb Websocket refused connection - using POST |........| Step 1: Make sure there are no uncommitted changes > `git status` Check: |+.......| Step 2: Pull everything from git > `git pull` Check: ^C bye
During that console session the web UI would be interactively crossing items off the list:
shell out to commands
This is useful.
check will recognize any text that is surrouned with backticks: `command with args` as a command to potentially run.
It will prompt you if you'd like it to run the command. You will then have the option to check it off.
$ cat ./hello.txt - say hello `echo hello` $ check start ./hello.txt |.| Step 1: say hello `echo hello` Run command `echo hello`? <enter>,y,n: running `echo hello` hello Check: |+| Done
check start <listname> --live -O/--open will open the url in your browser by shelling out to
Specify an email (or a comma-separated list) on the command line via the
$ check start deploy --email firstname.lastname@example.org,email@example.com Live at URL: http://checkcheckit.herokuapp.com/4f24b9d933d5467ec913461b8da3f952dbe724cb Websocket refused connection - using POST |........| Step 1: Make sure there are no uncommitted changes > `git status` Check: ^C bye
list the checklists
checkcheckit works with a normal filename.
However, it also assumes a home directory of ~/checkcheckit
In that directory are folders for your organizations, groups, etc so you can start them by name.
In those folders are your checklists.
$ check list # Checklists heroku todo personal todo vault deploy
- resume a run locally from URL
- push notes to web
- emit pass/fail and colorize
- post to campfire
- Fork it
- Create your feature branch (
git checkout -b my-new-feature)
- Commit your changes (
git commit -am 'Add some feature')
- Push to the branch (
git push origin my-new-feature)
- Create new Pull Request