DEV Community

Shivansh Mehra
Shivansh Mehra

Posted on

A Local Voice Accountability Partner for Task Paralysis

Hacktoberfest Weekend Challenge: Build for a Friend Submission 🤝

The First Ten Minutes: A Local Voice Accountability Partner for Task Paralysis

This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend.

What I Built

I built Build for a Friend, a voice-first accountability partner for someone who freezes when a task feels too large or ambiguous.

My friend, can want to complete a task and still be unable to start it. A large project, a presentation, or even a daily checklist can become so overwhelming that ordinary productivity apps only add more visual noise.

This agent turns that large task into one immediate action. It asks what is wrong, listens to the blocker, isolates one five-to-ten-minute step, and tells the person to do it and report back.

The goal is not to manage the person's entire life. The goal is to make starting feel possible.

Demo

The project currently runs locally so personal conversations stay on the user's machine.

ollama run gemma:2b
npm.cmd run test:agent -- "I am frozen at my desk."
Enter fullscreen mode Exit fullscreen mode

The agent asks what is wrong. Reply with the real blocker, for example:

I am afraid I will miss my presentation and look stupid.
Enter fullscreen mode Exit fullscreen mode

The agent then gives one direct solution for the next ten minutes and generates voice output. The local setup creates check-in.wav and solution.wav. ElevenLabs can optionally create MP3 output.

Code

The source code is available on GitHub:

github.com/Shivansh-Mehra/Weekend

How I Built It

The project uses:

  • Mastra for the accountability agent and workflow orchestration.
  • Ollama running the open-weight gemma:2b model locally.
  • Native Windows speech synthesis for fully offline voice output.
  • ElevenLabs as an optional provider for more realistic cloud voice output.
  • Zod for workflow input and output validation.

The conversation has two core turns:

User starts a check-in
        |
        v
Mastra accountability agent
        |
        v
Ollama asks: "What's blocking you?"
        |
        v
User explains the blocker
        |
        v
Ollama gives one concrete 5-10 minute action
        |
        +--> Native TTS -> solution.wav
        |
        +--> Optional ElevenLabs -> solution.mp3
Enter fullscreen mode Exit fullscreen mode

The important design decision was to keep the process internal to the agent. The model must speak only as the accountability partner. It must not invent the user's reply or read labels such as PLAN and EXECUTE aloud.

Why Does Open Innovation Matter?

Open innovation matters here because the data is personal. A conversation about missed meals, deadlines, anxiety, or executive dysfunction should not automatically leave the user's computer.

Cost

With Ollama, model inference costs $0 per query after the model is downloaded. There are no per-request model charges. ElevenLabs remains optional for users who want cloud-generated realistic voices.

Privacy

The default setup uses a local model and native machine TTS. The user's blockers, schedule, and accountability conversation can stay offline.

Control

The open stack lets me change the system instructions, conversation flow, TTS provider, and Temporal reminder behavior directly. I am not locked into a closed assistant platform's prompt rules or product decisions.

That control also made it possible to fix a subtle but important failure mode: a small model was initially simulating the entire conversation and speaking internal workflow labels. I could change the prompt and sanitize the speech boundary until the output became a direct partner response.

Prize Categories

  • Mastra
  • ElevenLabs
  • Temporal
  • GitHub Copilot

What I Learned

The hardest part was not generating text. It was controlling the interaction.

For someone experiencing task paralysis, a perfect productivity plan is less useful than one clear next action. The agent does not need to solve the whole project. It needs to help the person begin.

That is the idea behind Build for a Friend: less passive notification, more immediate human-style accountability, starting with the next ten minutes.

Top comments (0)