← Fun & Random

Rubber Duck Debugging

Explain your problem to the duck. You will find the answer.

How it works

Rubber duck debugging is a method where you explain your code or problem out loud, line by line, to an inanimate object. The act of articulating the problem forces you to think through it clearly, which often reveals the bug or solution on its own.

The technique is described in The Pragmatic Programmer by Andrew Hunt and David Thomas. No data is collected, no AI is involved, and the duck will never judge you.

Frequently asked questions

Do I have to speak out loud, or can I explain silently?

Speaking or even whispering works best, because saying the words forces you to slow down and form complete sentences instead of skipping steps in your head. If you cannot talk out loud, typing the explanation into a notes file has a similar effect. The point is turning the problem into language, not just thinking about it.

Does this page record my voice or read my code?

No. This page is a static image with no microphone access, no text box, and no network requests. Nothing you say or type near it is captured, stored, or sent anywhere.

What if explaining it to the duck does not reveal the bug?

Read the code aloud line by line rather than summarizing what you think it does, and state each assumption explicitly, for example what a variable should contain at that point. The bug usually hides in the gap between what you meant and what you actually wrote, and that gap tends to surface the moment you describe both.

Why does talking to an inanimate object help at all?

Explaining to a listener who knows nothing about your project forces you to justify choices you would otherwise take for granted. The duck never interrupts or fills in the blanks, so every unspoken assumption has to be made explicit, which is where most bugs turn out to live.


More tools from Clean.tools

View all tools

Use Clean.tools from your AI agent

Clean.tools also runs an MCP server — read-only utility tools your AI agent can call directly. No key, no signup: requests are processed in memory and request contents are never stored.

Claude Code
claude mcp add --scope user --transport http clean-tools https://mcp.clean.tools/mcp
Any MCP client (streamable HTTP, authless)
https://mcp.clean.tools/mcp

Every tool, the REST API, and setup for Cursor, Claude Desktop, VS Code & more →