Skip to content
SupportPages-ioPublic

About

WTFM: Write the F***ing Manual. A plugin for your coding agent that writes your user docs, screenshots included.

Topics

Resources

Security policy

Stars

93 stars

Watchers

1 watching

Forks

 
 

Repository files navigation

WTFM

Write the Fing Manual.* A plugin for your coding agent that writes the user docs. Screenshots included.

Ask Codex for a guide and it reads your source, writes the steps in plain language, and shows every screen with a screenshot rendered from your real templates and CSS. No running app, no manual captures, no account.

This is the Codex plugin build of SupportPages-io/wtfm, generated by its release workflow. Source, issues and the full documentation live there.

Install

codex plugin marketplace add SupportPages-io/wtfm
codex plugin add wtfm@supportpages

Then start a new Codex session. To update, run codex plugin add wtfm@supportpages again.

You'll need macOS or Linux (on Windows, use WSL), Git, and Node.js 22.12 or later with npm on your PATH. The first time the plugin starts, it installs its npm packages without running their install scripts, and Chromium for screenshots downloads in the background. Codex asks you to review the plugin's two hooks in /hooks before they run; WTFM works without them.

Quick start

Open Codex in your product's folder and ask:

Set up WTFM for this project.

Then ask for an article in plain words:

Write an illustrated guide to inviting a teammate.

A few minutes later the article is in your project as an index.md with its screenshots beside it.

Privacy

  • Local projects send only anonymous usage counts and crash reports to SupportPages.io (see below). Your coding agent and its model provider read your source, as they do for any other task.
  • Publishing uploads the article, its images and a small provenance record. Your source code is never uploaded.
  • wtfm yolo writes on SupportPages.io from the repository you connect there; it is the only command that gives SupportPages.io access to your code.
  • Credentials are stored in private files under ~/.config/supportpages, never in your repository. Signing in also saves your account email there, to show which account is connected.
  • Other network requests carry none of your code or articles. Chromium for screenshots downloads from Google's Chrome for Testing storage, and the plugin's packages install from the npm registry. When a project's own styles can't be compiled, analysis fetches its CSS framework (Bootstrap, Bulma or Foundation) from the jsDelivr CDN, and a mockup with no project styles loads Tailwind from its CDN while rendering. An article's optional generated images use OpenAI only if you have set your own OPENAI_API_KEY; WTFM never sets it.
  • Project analysis runs unattended. init and analyse start your agent with its permission prompts off (--dangerously-skip-permissions for Claude Code, --dangerously-bypass-approvals-and-sandbox for Codex). Writing articles uses the agent's normal approval prompts.

Plugin hooks

Installed as a Claude Code plugin, WTFM registers two hooks. Neither sends anything over the network except the Chromium download, and neither can block or change a tool call.

  • SessionStart checks whether Chromium for screenshots is installed. If it isn't, it starts puppeteer's Chromium download in the background, once, and returns straight away without printing anything into the session.
  • PostToolUse runs after every tool call, but does nothing unless an article is being written (a .rtfm-trace/CURRENT marker in your project). During a run it appends one line per tool call to .rtfm-trace/<article>.ndjson in your project: the time, tool name, file path, search pattern and the first 500 characters of a shell command. The trace stays on your computer and is used to spot repeated work in a run. It prints nothing and always exits successfully.

Anonymous usage counts and crash reports

WTFM tells us how many installs are in use and when something breaks, so we can fix it. It says so the first time you set up a project, and it's easy to turn off. It is sent to SupportPages.io without your sign-in and stays anonymous until you sign in from this computer; after that, usage from this computer is linked to your account. Turning it off stops both.

What is sent

  • A random install ID created on this computer (not derived from it), the WTFM version, the coding client's name (e.g. claude-code), your OS, CPU architecture and Node.js major version.
  • A count when WTFM is first used and when it is uninstalled (and whether its settings were kept), when a project is set up (local or hosted), and when an article or video walkthrough finishes: its outcome, where it went (local, uploaded or generated on SupportPages.io), an error code if it failed, and how many seconds it took; likewise when a wtfm yolo run starts and ends.
  • For unexpected errors only: the error type and code, and stack frames with every path outside WTFM replaced by <external>. Messages from other code are never sent.

What is never sent: your code, file names or paths, article titles or content, repository or project names, or credentials. Your IP address is not stored. The install ID is also sent when you sign in from this computer, which is what links later usage from it to your account.

Turn it off with any of these:

  • ask your coding agent to turn off SupportPages telemetry;
  • run wtfm telemetry off;
  • set SUPPORTPAGES_TELEMETRY=0 or DO_NOT_TRACK=1.

It is always off in CI. wtfm doctor shows whether it's on and why; set SUPPORTPAGES_TELEMETRY_DEBUG=1 to print each report to stderr as it is sent.

License

Apache 2.0. The UI stylesheets bundled under engine/ keep their own licenses; see NOTICE. The license doesn't cover the SupportPages name or logo.

About

WTFM: Write the F***ing Manual. A plugin for your coding agent that writes your user docs, screenshots included.

Topics

Resources

Security policy

Stars

93 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages