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
- 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.
- Read Creating New Modules. Follow the Development section's page rather than guessing at structure; it defines what a module must provide.
- Work from the source. The project is open source and hosted on GitHub (
wtfutil/wtf), so you can read real module implementations directly. - 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.
- 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.