← All posts

From a notification to a product

DecisionPing started with a very small itch. I would kick off a long agent run on my computer — a refactor, a migration, a big test suite — and then just… sit there. Because if the agent hit a question it couldn't answer alone, it would either guess or stall until I came back to the keyboard.

Claude, Codex and Grok do have their own mobile apps that push notifications and let you keep chatting. But each one sees only its own cloud sessions — none of them will ping you about an agent running in a terminal on your machine, let alone on your server. And I was running several agents, not one: that's three apps, three notification settings, three silos. I wanted a single channel any agent could reach through MCP — with the answer coming back as a typed, structured decision a workflow can consume, not just a chat message.

So I built the obvious thing: a way for the agent to send me a notification. A question lands in an app on my phone, I tap an answer, the agent continues. If there are no questions, I get a single "done" report. That was the whole product: an MCP server with a handful of tools — notify, ask, wait.

The backpack problem

Then reality kept intervening. I'd leave the office, laptop in a backpack — and everything stopped. A laptop in a backpack runs exactly nothing. The answer was to move the work off the laptop entirely: connect your own server with agentd, run the agent and the chat there, and let the phone stay the control panel. Long tasks stopped caring where I was.

Removing the server, too

The next step asked itself: why should anyone have to rent and configure a server for this? Cloud chats spin up a managed workspace in seconds — Python, Go and the Android toolchain preinstalled — you just bring your own agent sign-in (Codex, Claude, and now Gemini CLI).

And my favorite part, born from the eternal meme — "check out my SaaS: https://localhost:3000". From a chat, the agent can build and deploy your project with your own tools, so what you share is a real URL, not a screenshot of your localhost.

Where it is now

The name stayed the same; the meaning grew. What began as a notification relay is now human-in-the-loop infrastructure: approvals and decisions over MCP, agents on your server or in the cloud, delivery to the channels you already use.

I'm still the product's first and most demanding user — my own development runs through DecisionPing every day. This devlog is where I'll keep writing down what changes and why.