Can I create my own module for WTF?

Updated

Yes. WTF (wtfutil.com) is an open-source terminal dashboard whose functionality is built from modules, and its documentation includes a Development section with a page on Creating New Modules. That page is the intended starting point if you want to build a module that isn't already covered by the built-in list.

What "module" means in WTF

A WTF dashboard is a grid of widgets, and each widget is a module. Every data source you see in the docs — GitHub, Jira, Kubernetes, Weather, Stocks, Todoist, and so on — is a module that fetches or renders something and drops it into a grid position. So creating your own module is the way to surface data that no existing module covers, using the same configuration and layout system as the built-in ones.

What the docs give you

The site's navigation shows a Development section containing Creating New Modules, alongside a blog. That's the reference material for module authors. The docs also list the full set of existing modules, which is useful in two ways:

  • Check before you build. With modules spanning services (Asana, Datadog, PagerDuty, Zendesk), infrastructure (Docker, Kubernetes, Azure Logs), finance (Bittrex, Finnhub, Yahoo Finance), and general utilities (Clocks, CmdRunner, Textfile, Todo), there's a reasonable chance something close already exists.
  • Use them as patterns. Existing modules are the closest thing to worked examples of how a module is structured and configured.

Practical path

  1. Confirm the gap. Scan the module list for anything that already pulls the data you want. If a near-match exists, adapting your config is cheaper than writing code.
  2. Read Creating New Modules. Follow the Development section's page rather than guessing at structure; it defines what a module must provide.
  3. Work from the source. The project is open source and hosted on GitHub (wtfutil/wtf), so you can read real module implementations directly.
  4. Wire it into your config. Once built, a custom module is placed and configured like any other, using the same configuration files, global settings, and grid layout described in the Configuration section.
  5. Get help if you stall. The site has Sponsoring and Support pages describing how to reach the project.

Things to keep in mind

  • The docs are the authority on specifics. This overview can tell you the capability exists and where to look, but the exact interface a module must implement lives on the Creating New Modules page — don't infer it from the module names alone.
  • Configuration is shared, not per-module invention. Layout, global settings, and common settings are handled at the dashboard level, so a new module slots into existing conventions rather than defining its own.
  • Start with a read-only module. Modules like CmdRunner and Textfile show that simple local sources are a legitimate scope; a small module that displays one thing is a fine first project before tackling an authenticated API.

If your goal is simply to see more data in your terminal, check the existing module list first — the answer may already be there. If it genuinely isn't, the Development docs and the GitHub source give you everything needed to add it.