WTF (aka 'wtfutil') is the personal information dashboard for your terminal, providing at-a-glance access to your very important but infrequently-needed stats and data.
Used by thousands of developers and tech people around the world, WTF is free and open-source. To support the continued use and development of WTF, please consider sponsoring WTF via [GitHub Sponsors](https://github.com/sponsors/senorprogrammer).
#
* [Installation](#installation)
* [Installing via Homebrew](#installing-via-homebrew)
* [Installing via MacPorts](#installing-via-macports)
* [Installing via Scarf](#installing-via-scarf)
* [Installing a Binary](#installing-a-binary)
* [Installing from Source](#installing-from-source)
* [Running via Docker](#running-via-docker)
* [Communication](#communication)
* [Slack](#slack)
* [Twitter](#twitter)
* [Documentation](#documentation)
* [Modules](#modules)
* [Getting Bugs Fixed or Features Added](#getting-bugs-fixed-or-features-added)
* [Contributing to the Source Code](#contributing-to-the-source-code)
* [Adding Dependencies](#adding-dependencies)
* [Contributing to the Documentation](#contributing-to-the-documentation)
* [Contributors](#contributors)
* [Acknowledgements](#acknowledgments)
## Installation
### Installing via Homebrew
The simplest way from Homebrew:
```console
brew install wtfutil
wtfutil
```
That version can sometimes lag a bit, as recipe updates take time to get accepted into `homebrew-core`. If you always want the bleeding edge of releases, you can tap it:
```console
brew tap wtfutil/wtfutil
brew install wtfutil
wtfutil
```
### Installing via MacPorts
You can also install via [MacPorts](https://www.macports.org/):
```console
sudo port selfupdate
sudo port install wtfutil
wtfutil
```
### Installing via Scarf
You can also install via [Scarf](https://scarf.sh/package/senorprogrammer/wtfutil):
```console
scarf install wtfutil
wtfutil
```
### Installing a Binary
[Download the latest binary](https://github.com/wtfutil/wtf/releases) from GitHub.
WTF is a stand-alone binary. Once downloaded, copy it to a location you can run executables from (ie: `/usr/local/bin/`), and set the permissions accordingly:
```bash
chmod a+x /usr/local/bin/wtfutil
```
and you should be good to go.
### Installing from Source
If you want to run the build command from within your `$GOPATH`:
```bash
# Set the Go proxy
export GOPROXY="https://proxy.golang.org,direct"
# Disable the Go checksum database
export GOSUMDB=off
# Enable Go modules
export GO111MODULE=on
go get -u github.com/wtfutil/wtf
cd $GOPATH/src/github.com/wtfutil/wtf
make install
make run
```
If you want to run the build command from a folder that is not in your `$GOPATH`:
```bash
# Set the Go proxy
export GOPROXY="https://proxy.golang.org,direct"
go get -u github.com/wtfutil/wtf
cd $GOPATH/src/github.com/wtfutil/wtf
make install
make run
```
**Note:** WTF is _only_ compatible with Go versions **1.12.0** or later (due to the use of Go modules and newer standard library functions). If you would like to use `gccgo` to compile, you _must_ use `gccgo-9` or later which introduces support for Go modules.
## Running via Docker
You can run `wtf` inside a docker container:
```bash
# download the source
git clone https://github.com/wtfutil/wtf
# build the docker container
docker build -t wtfutil .
# run the container
docker run -it wtfutil
```
## Communication
### Slack
If you’re a member of the Gophers Slack community (https://invite.slack.golangbridge.org) there’s a WTFUtil channel you should join for all your WTF questions, development conversations, etc.
Find #wtfutil on https://gophers.slack.com/ and join us.
### Twitter
Also, follow [on Twitter](https://twitter.com/wtfutil) for news and latest updates.
## Documentation
See [https://wtfutil.com](https://wtfutil.com) for the definitive
documentation. Here's some short-cuts:
* [Installation](https://wtfutil.com/getting_started/installation/)
* [Configuration](https://wtfutil.com/configuration/)
* [Module Documentation](https://wtfutil.com/modules/)
## Modules
Modules are the chunks of functionality that make WTF useful. Modules are added and configured by including their configuration values in your `config.yml` file. The documentation for each module describes how to configure them.
Some interesting modules you might consider adding to get you started:
* [GitHub](https://wtfutil.com/modules/github/)
* [Google Calendar](https://wtfutil.com/modules/google/gcal/)
* [HackerNews](https://wtfutil.com/modules/hackernews/)
* [Have I Been Pwned](https://wtfutil.com/modules/hibp/)
* [NewRelic](https://wtfutil.com/modules/newrelic/)
* [OpsGenie](https://wtfutil.com/modules/opsgenie/)
* [Security](https://wtfutil.com/modules/security/)
* [Transmission](https://wtfutil.com/modules/transmission/)
* [Trello](https://wtfutil.com/modules/trello/)
## Getting Bugs Fixed or Features Added
WTF is open-source software, informally maintained by a small collection of volunteers who come and go at their leisure. There are absolutely no guarantees that, even if an issue is opened for them, bugs will be fixed or features added.
If there is a bug that you really need to have fixed or a feature you really want to have implemented, you can greatly increase your chances of that happening by creating a bounty on [BountySource](https://www.bountysource.com) to provide an incentive for someone to tackle it.
## Contributing to the Source Code
First, kindly read [Talk, then code](https://dave.cheney.net/2019/02/18/talk-then-code) by Dave Cheney. It's great advice and will often save a lot of time and effort.
Next, kindly read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests.
Then create your branch, write your code, submit your PR, and join the rest of the awesome people who've contributed their time and effort towards WTF. Without their contributors, WTF wouldn't be possible.
Don't worry if you've never written Go before, or never contributed to an open source project before, or that your code won't be good enough. For a surprising number of people WTF has been their first Go project, or first open source contribution. If you're here, and you've read this far, you're the right stuff.
## Contributing to the Documentation
Documentation now lives in its own repository here: [https://github.com/wtfutil/wtfdocs](https://github.com/wtfutil/wtfdocs).
Please make all additions and updates to documentation in that repository.
### Adding Dependencies
Dependency management in WTF is handled by [Go modules](https://github.com/golang/go/wiki/Modules). Please check out that page for more details on how Go modules work.
## Contributors
| [
Chris Cummer](https://twitter.com/senorprogrammer)
| [
Anand Sudhir Prayaga](https://github.com/anandsudhir)
| [
Hossein Mehrabi](https://github.com/jeangovil)
| [
FengYa](https://github.com/Fengyalv)
| [
deltax](https://fluxionnetwork.github.io/fluxion/)
| [
Bill Keenan](https://github.com/BillKeenan)
| [
June S](http://blog.sapara.com)
|
| :---: | :---: | :---: | :---: | :---: | :---: | :---: |
| [
liyiheng](https://github.com/XanthusL)
| [
baustinanki](https://github.com/baustinanki)
| [
lucus lee](https://github.com/lixin9311)
| [
Mike Lloyd](https://github.com/mxplusb)
| [
Sergio Rubio](http://rubiojr.rbel.co)
| [
Farhad Farahi](https://github.com/FarhadF)
| [
Lasantha Kularatne](http://lasantha.blogspot.com/)
|
| [
Mark Old](https://github.com/dlom)
| [
flw](http://flw.tools/)
| [
David Barda](https://github.com/davebarda)
| [
Geoff Lee](https://github.com/matrinox)
| [
George Opritescu](http://international.github.io)
| [
Grazfather](https://twitter.com/Grazfather)
| [
Michael Cordell](http://www.mikecordell.com/)
|
| [
Patrick José Pereira](http://patrick.ibexcps.com)
| [
sherod taylor](https://github.com/sherodtaylor)
| [
Andrew Scott](http://cogentia.io)
| [
Lassi Piironen](https://github.com/lsipii)
| [
BlackWebWolf](https://github.com/BlackWebWolf)
| [
andrewzolotukhin](https://github.com/andrewzolotukhin)
| [
Leon Stigter](https://retgits.github.io)
|
| [
Amr Tamimi](https://tamimi.se)
| [
Jagdeep Singh](https://jagdeep.me)
| [
Lineu Felipe](https://github.com/darkSasori)
| [
Konstantin](https://github.com/kvj)
| [
Brendan O'Leary](http://www.brendanoleary.com)
| [
bertl4398](https://github.com/bertl4398)
| [
Ferenc-](https://github.com/Ferenc-)
|
| [
Rohan Verma](http://rohanverma.net)
| [
Tim Fitzgerald](https://github.com/fimtitzgerald)
| [
Federico Ruggi](https://github.com/ruggi)
| [
Craig Woodward](https://github.com/ctwoodward)
| [
ReadmeCritic](https://twitter.com/ReadmeCritic)
| [
Eugene](https://github.com/jdevelop)
| [
Kenny Wu](https://github.com/Trinergy)
|
| [
Renán Romero](http://www.romeroruiz.com)
| [
Bastian Groß](https://github.com/sticreations)
| [
nicholas-eden](https://github.com/nicholas-eden)
| [
Dan Rabinowitz](https://github.com/danrabinowitz)
| [
David Missmann](https://github.com/dvdmssmnn)
| [
Mathias Weber](https://github.com/mweb)
| [
TheRedSpy15](https://github.com/TheRedSpy15)
|
| [
Harald Nordgren](https://www.linkedin.com/in/harald-nordgren-44778192)
| [
Matei Alexandru Gardus](http://stormfirefox1.github.io)
| [
Sean Smith](https://github.com/Seanstoppable)
| [
Halil Kaskavalci](http://kaskavalci.com)
| [
Johan Denoyer](http://www.johandenoyer.fr)
| [
Jelle Vink](https://skymeyer.be)
| [
Devin Collins](http://imdevinc.com)
|
| [
Danne Stayskal](http://danne.stayskal.com/)
| [
Max Beizer](https://www.maxbeizer.com)
| [
E:V:A](http://tinyurl.com/nwmj4as)
| [
Gabriel](https://github.com/GaboFDC)
| [
Andrew Scibek](https://github.com/AndrewScibek)
| [
FriedCosey](https://github.com/FriedCosey)
| [
Michele Gerarduzzi](https://michelegera.dev/)
|
| [
Jack Morris](https://github.com/rudolphjacksonm)
| [
foorb](https://github.com/foorb)
| [
Levi Baber](http://researchit.las.iastate.edu)
| [
Graham Anderson](https://github.com/gnanderson)
| [
Romain Bossart](https://github.com/bosr)
| [
Kirill Motkov](http://eonix.ru)
| [
Brian Choromanski](http://www.BrianChoromanski.com)
|
| [
Sean DuBois](http://siobud.com)
| [
Gary Kim](https://github.com/gary-kim)
| [
Dylan](https://dylanbartels.com)
| [
Dmytro Prokhorenkov](http://liet.me)
| [
Elliot](https://github.com/elliotrushton)
| [
chenrui](http://chenrui.dev)
| [
Andrew Suderman](https://github.com/sudermanjr)
|
| [
Bob 'Wombat' Hogg](https://github.com/rwhogg)
| [
Christopher Hall](https://github.com/hxw)
| [
Heitor Neiva](https://github.com/hneiva)
| [
Herby Gillot](https://github.com/herbygillot)
| [
James Canning](http://brudil.com)
| [
jeffz](https://twitter.com/jeffz4000)
| [
Mikkel Jeppesen Juhl](https://mikkeljuhl.com)
|
| [
Erik](https://github.com/lesteenman)
| [
Nate Yourchuck](https://github.com/nyourchuck)
| [
Casey Primozic](https://cprimozic.net/)
| [![Alvaro [Andor]](https://avatars3.githubusercontent.com/u/2430915?v=4)
Alvaro [Andor]](http://pierdelacabeza.com/maruja)
| [
Joel Valentine](https://github.com/Midnight-Conqueror)
| [
Viktor Braun](https://www.viktor-braun.de)
| [
ChrisDBrown](https://www.chrisdbrown.co.uk/)
|
| [
Narendra L](https://narengowda.github.io/)
| [
ibaum](https://github.com/ibaum)
| [
Tim Scheuermann](https://github.com/noxer)
| [
Indradhanush Gupta](https://indradhanush.github.io/)
| [
Victor Hugo Avelar Ossorio](https://victoravelar.com)
| [
Steven Whitehead](https://github.com/scw007)
| [
Lawrence Craft](https://github.com/lawrencecraft)
|
| [
Avi Press](http://avi.press)
| [
Sarah Kraßnigg](https://github.com/Tardog)
| [
Jason Schweier](http://jmks.ca)
| [
Massa](https://github.com/massa1240)
| [
Vighnesh SK](http://boot-error.github.io)
| [
Alex Fornuto](http://alexfornuto.com)
| [
stevenwhitehead](https://github.com/stevenwhitehead)
|
| [
Johan Denoyer](https://github.com/jdenoy-saagie)
| [
Albert Salim](https://albertsalim.dev)
| [
Ricardo N Feliciano](https://Feliciano.Tech)
| [
Omer Davutoglu](https://github.com/3mard)
| [
Hemu](https://github.com/hemu)
| [
Dan Bent](https://github.com/Daanikus)
| [
C123R](https://cizer.dev)
|
| [
Matjaž Depolli](https://github.com/madepolli)
| [
Toon Schoenmakers](https://blog.schoentoon.blue)
|
## Acknowledgments
The inspiration for `WTF` came from Monica Dinculescu's
[tiny-care-terminal](https://github.com/notwaldorf/tiny-care-terminal).
WTF is built atop [tcell](https://github.com/gdamore/tcell) and [tview](https://github.com/rivo/tview), fantastic projects both. WTF is built, packaged, and deployed via [GoReleaser](https://goreleaser.com).