<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: BrethofAI</title>
    <description>The latest articles on DEV Community by BrethofAI (@brethofai).</description>
    <link>https://dev.to/brethofai</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3878857%2Fd0b3f37e-54d4-4266-be08-06d204e8bb1a.jpg</url>
      <title>DEV Community: BrethofAI</title>
      <link>https://dev.to/brethofai</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/brethofai"/>
    <language>en</language>
    <item>
      <title>What changes in your working day when your agent stops forgetting</title>
      <dc:creator>BrethofAI</dc:creator>
      <pubDate>Wed, 14 Oct 2026 22:16:20 +0000</pubDate>
      <link>https://dev.to/brethofai/what-changes-in-your-working-day-when-your-agent-stops-forgetting-46mb</link>
      <guid>https://dev.to/brethofai/what-changes-in-your-working-day-when-your-agent-stops-forgetting-46mb</guid>
      <description>&lt;p&gt;You open a session with your agent the way you open a hundred others. Before any real work: the stack, the conventions, the decision from last Tuesday about why the auth flow is the way it is, the thing you tried in March that didn't work. You paste it in, or you point the agent at a markdown file you maintain by hand, or you type "as I discussed before" and hope. Then you work. Then the session ends and everything you spent establishing is gone.&lt;/p&gt;

&lt;p&gt;If you run an agent daily, this is your routine, and you've stopped noticing it's a routine. "Save context" before closing. A CLAUDE.md you edit like a wiki nobody owns. Five md files of notes that are really just a memory you're operating by hand, for software that costs more than your editor.&lt;/p&gt;

&lt;p&gt;Here's the strange part. The smartest tool on your machine is the only one that remembers nothing. Your editor remembers your settings. Your terminal remembers your history. Your agent — the thing that costs the most to brief — starts from zero every morning, and you've made peace with it.&lt;/p&gt;

&lt;p&gt;We hadn't. We tried the fixes on offer, they all failed the same test, so we built one that doesn't. This is what it is, what it does on an ordinary Tuesday, and the one sentence that installs it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three things that were supposed to fix this
&lt;/h2&gt;

&lt;p&gt;Judge every memory tool by one question: &lt;strong&gt;when the next prompt arrives, what does the agent actually know?&lt;/strong&gt; Not what's stored. Not what's findable. What's in front of the model, right now.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Markdown files — CLAUDE.md and its cousins.&lt;/strong&gt; Loaded once at session start, then frozen. Whatever you write there on Tuesday is what the agent believes all week, and nobody maintains the file because maintaining it is the same manual chore you were trying to escape. Within a month it's a junk drawer: three conflicting instructions, a stack list from two projects ago, a note-to-self that stopped being true. A snapshot, not a memory.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Memory tools the agent has to call.&lt;/strong&gt; These store things well. But they wait to be asked: nothing arrives before the agent answers unless it decides, mid-turn, to search, and remembers to. And at session end the handover is whatever the next session thinks to ask about. A library you have to remember to use is not a memory.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Search hooks.&lt;/strong&gt; The better ones do push something with every prompt: a few snippets of raw text that matched. That's real injection, and it's still not enough — snippets are retrieval, not briefing. They find fragments. They don't carry your standing rules, don't reconcile a fragment against what you decided later, and don't come with a reason attached. The agent gets a search result; it doesn't get told what's true.&lt;/p&gt;

&lt;p&gt;All three fail the same way: the knowledge exists somewhere, and the moment of the prompt — the only moment that matters — gets nothing, or almost nothing.&lt;/p&gt;

&lt;h2&gt;
  
  
  The test, then
&lt;/h2&gt;

&lt;p&gt;A working memory has to answer at three moments:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Session start.&lt;/strong&gt; A brief, before you say anything: where we left off, the rules in force, what's next on the plan.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Every prompt.&lt;/strong&gt; The records that bear on that specific prompt, arriving with it — without dumping the whole memory into your context window every turn.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;"Why is it like this?"&lt;/strong&gt; The decision, the date, the reason, and the option it beat — in the words of the conversation where it happened.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's the spec. Everything else is implementation detail.&lt;/p&gt;

&lt;h2&gt;
  
  
  One working day with a brain instead of a memory
&lt;/h2&gt;

&lt;p&gt;We run our own company's work on our own memory — it has run our estate since December 2025, archiving every conversation since April. This isn't a demo script; it's Tuesday.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Morning.&lt;/strong&gt; Start the machine, open the session, say "continue." The brief is already there — the last session's handover note, the project rules, the next lines of the plan, an index of the playbooks for this project. No re-explaining. No "quick recap of the repo." The session picks up the top line of the plan and starts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Midday.&lt;/strong&gt; Each prompt arrives pre-briefed. Not with everything — with the records that bear on &lt;em&gt;that prompt&lt;/em&gt;, and nothing else. When I ask about the rate limiter, the memory of the rate limiter conversation comes with the question. I stopped keeping md files in March and haven't missed them; there's no "save context" ritual because there's nothing to save — curation happened while we were talking.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Afternoon.&lt;/strong&gt; Two agents on one project: one on the front end, one on the back end, each with its own key, working from one memory. Neither has to be told what the other decided — once the front-end conversation is curated, the back-end agent's next prompt that touches it carries what was settled. Later, the front-end agent suggests an approach for the settings page, checks the memory, and the answer is already there: that option was rejected in March, here's the day, here's the reason, in the words of that conversation. Nobody re-litigates a dead option because nobody forgot it was dead.&lt;/p&gt;

&lt;p&gt;Everything above happens by saying it. I never file anything, never call a save tool, never run a sync. The agent manages the memory because the memory shows up in its context before it needs to be managed.&lt;/p&gt;

&lt;p&gt;One honest trade: injection costs context. A brief and per-prompt records occupy tokens — that's what injection is. What you get back is tool calls, turns and hunting. On balance, that trade has been lopsided in our favor for months.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this one is different under the hood
&lt;/h2&gt;

&lt;p&gt;Three layers, with different jobs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Curated records&lt;/strong&gt; are the truth of now. The memory reads your conversations in windows of five exchanges and keeps what the conversation &lt;em&gt;settled&lt;/em&gt; — reconciling new facts against old ones, quietly retiring records that describe something you replaced. You never file anything; there's nothing to file.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The decision graph&lt;/strong&gt; is how it got there. Every decision a line: dated, with its reason as it was said, and the option it beat. Reversals are new lines — history is never rewritten, so "why is it like this" always has an answer.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The full history&lt;/strong&gt; is everything, kept in full and searchable by keyword or meaning. Records are what's true; the graph is what happened; the archive is the floor under both.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Two details that matter in practice:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Projects are walled off.&lt;/strong&gt; Each has its own records, rules, graph and plan; nothing bleeds between them unless you call a cross-project search yourself. On hosted memory, scoped keys let you hand a teammate, a client or a subcontractor access to exactly the projects you choose — read-write, read-only or invisible — and nothing else.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rules can't rot into a junk drawer.&lt;/strong&gt; Each one is capped, the pool is capped, you're warned at 80%, and a save that would overfill is refused with the fix. Nothing you wrote is ever quietly trimmed or dropped.&lt;/p&gt;

&lt;p&gt;And the privacy line, because it's the reason we built it this way: your memory lives on your machine (a local container, stored there and nowhere else) or in our cloud, encrypted. Our hub processes pieces of it to make memory and compose briefs, and keeps none of those pieces.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why believe us
&lt;/h2&gt;

&lt;p&gt;Because we run on it. Our own company's work has gone through it every day since December 2025. Before that it was md files, and almost everything from those months is lost — which is the whole argument in one sentence. Every conversation since April is still there, searchable.&lt;/p&gt;

&lt;p&gt;And because of how it started. I tried most of the memory systems for AI agents. Each did a part of this, and none did what I needed. So I built the one that does.&lt;/p&gt;

&lt;h2&gt;
  
  
  Say one sentence
&lt;/h2&gt;

&lt;p&gt;You don't need IT knowledge for this. The install is one sentence to your agent: &lt;strong&gt;"install brethof-brain."&lt;/strong&gt; It fetches the client, wires the hooks, and checks its own work. The only human steps are the ones every application on earth asks for: sign up and choose local or hosted. On local, you approve a short code on brethof.ai and no key is ever shown, so your agent can run the whole install. On hosted, you copy your key and paste it once, with your passphrase, into a small window on your own screen, so your agent never sees either. Free to start, and it works with Claude Code, Codex, OpenClaw, Hermes and the other harnesses you're probably already running.&lt;/p&gt;

&lt;p&gt;If you've read this far, you've accepted re-explaining as part of the job. It isn't.&lt;/p&gt;

&lt;p&gt;Start at &lt;a href="https://brethof.ai/brain/" rel="noopener noreferrer"&gt;brethof.ai/brain/&lt;/a&gt; — and tell your agent: install brethof-brain.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;If you end up writing about it yourself, we run an affiliate programme — details at &lt;a href="https://brethof.ai/brain/affiliate/" rel="noopener noreferrer"&gt;brethof.ai/brain/affiliate/&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>llm</category>
      <category>agents</category>
    </item>
    <item>
      <title>Stop prompting. Start conversations with your agent.</title>
      <dc:creator>BrethofAI</dc:creator>
      <pubDate>Tue, 13 Oct 2026 13:04:28 +0000</pubDate>
      <link>https://dev.to/brethofai/stop-prompting-start-conversations-with-your-agent-gnc</link>
      <guid>https://dev.to/brethofai/stop-prompting-start-conversations-with-your-agent-gnc</guid>
      <description>&lt;p&gt;You have a folder. Somewhere in your repo or your notes app there is a growing pile of prompt templates: the system snippet, the codebase preamble, the style rules, the "always run tests before committing" reminder you paste in because the last agent forgot. Every session starts with the same ritual — copy, paste, re-explain, restate, and hope nothing drifts by turn ten. And every time the pile grows, it feels like progress. It is not. It is a symptom.&lt;/p&gt;

&lt;p&gt;I ran that ritual for months. We stopped in December 2025, when our own agents started running with a memory system behind them — the same one we now ship as brethof-brain. Since then, not a single pasted preamble. This is what the shift actually looks like, including the part nobody tells you: the first week, when you drop the templates, is uncomfortable, and here is exactly how it goes wrong.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why prompts can never be good enough
&lt;/h2&gt;

&lt;p&gt;A prompt is a one-shot brief for a stateless session. That is the structural problem, not a skill problem. The rules that should hold forever — how commits are worded, which tests matter, what was already tried and rejected — get re-argued from zero every time you open a new session. So you write the prompt longer. Then it hits the point where the agent skims it, or the task drowns the rules, or the session drifts anyway and you start over.&lt;/p&gt;

&lt;p&gt;The fix is not better prompt-writing. It is taking two jobs out of the prompt entirely:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Standing rules that bind every session automatically.&lt;/strong&gt; Written once, loaded with almost every message, never re-pasted.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A brief composed before each prompt&lt;/strong&gt; from whatever in the memory bears on what you are asking right now.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Once those exist, the prompt only has to carry the task. Everything else is already there when the agent answers. A prompt was never meant to be a memory; it was just doing the job because there was nothing else to.&lt;/p&gt;

&lt;h2&gt;
  
  
  What conversation looks like instead
&lt;/h2&gt;

&lt;p&gt;The difference is easiest to see on a Tuesday morning. I open a session and type "continue" — and it is. The agent has the notes from where the last session stopped and the next lines of the project plan, so it picks up mid-task. No recap, no "here's the codebase structure", no five-bullet orientation message I used to spend the first ten minutes of every session writing.&lt;/p&gt;

&lt;p&gt;The second difference shows up when I want a change. Instead of a template, it is a sentence: "the deploy script should always run the migration check first." Said once, deliberately, and it is a rule from then on — I have never restated it since. When a prompt touches a rule, the rule arrives with the prompt; I am not trusting the agent to remember, the briefing happens before it starts answering.&lt;/p&gt;

&lt;p&gt;The third is the one that saves real money in tokens and real minutes in patience: the agent stops re-proposing things I already killed. The record that replaced the old idea arrives with the prompt, and when it digs, the rejection itself is there with its date and my reasoning. Nobody argues with a decision I made in March for the fourth time.&lt;/p&gt;

&lt;p&gt;That is what "conversation" means here. Not chat for its own sake — it means the prompt stopped being a brief, because the brief is composed for it, every time, automatically.&lt;/p&gt;

&lt;h2&gt;
  
  
  What breaks when you first drop the templates
&lt;/h2&gt;

&lt;p&gt;Here is the honest part, because the first week taught us more than the months since.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You reach for the preamble out of habit.&lt;/strong&gt; The first few sessions after dropping the templates feel loose. Something is missing and you cannot name it, so you paste the old preamble "just in case." It was dead weight by then; the standing rules covered it. The habit broke around session five.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rules need writing down once, deliberately.&lt;/strong&gt; The memory does not read your mind. The stuff in your old templates — the conventions, the tone, the never-do-this list — has to be stated as rules, on purpose, once. If you skip this step and expect osmosis, you will have a bad first day and blame the wrong thing. Budget an hour.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rules can rot into a junk drawer if you let them.&lt;/strong&gt; We watched ours creep: near-twins, a stale one from a finished project, one that had grown into three paragraphs. This is why ours are capped at 1,000 characters each, and the memory points out twins and says when the rules are getting big — it never edits or deletes them for you. You do not need our caps, but you need &lt;em&gt;some&lt;/em&gt; discipline: when two rules say the same thing, merge them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Memory is not instant.&lt;/strong&gt; An exchange becomes a record after the conversation settles, not the second you say it — the memory reads in windows, so it keeps what the conversation &lt;em&gt;settled&lt;/em&gt; rather than every half-thought. The failure mode is saying something in session three, assuming it is now canon, and being surprised in session four. The fix: when it matters now, say it on purpose. When it matters eventually, let the curation catch it. Knowing which is which is most of the skill of talking to an agent that remembers.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to make the switch
&lt;/h2&gt;

&lt;p&gt;In order, runnable today:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Get the memory in place.&lt;/strong&gt; Tell your agent: "install brethof-brain." That is the whole install — it fetches the client, wires the hooks, and checks its own work. You do the one human step: sign up, choose local or hosted, and approve the connection on brethof.ai when the installer asks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Write your standing rules once.&lt;/strong&gt; Empty your preamble folder into explicit rules before you delete it. General ones for everything; project-specific ones per project.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stop pasting.&lt;/strong&gt; Deliberately. Open the next session with just the task and see what the briefing already covers. You will find it covers more than you expected and misses exactly the things you never wrote down — which brings you to the test.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The test:&lt;/strong&gt; whenever you catch yourself re-explaining something, that is not a prompt to write. It is a rule to save. Say "remember this" and move on.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The prompt pile was never a craft problem. It was a memory problem wearing a craft costume. Teach your agent once and stop gatekeeping it.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclosure: I build brethof-brain. How it works, in one page: &lt;a href="https://brethof.ai/brain/how-it-works/" rel="noopener noreferrer"&gt;https://brethof.ai/brain/how-it-works/&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>llm</category>
      <category>agents</category>
    </item>
    <item>
      <title>I tried most of the memory systems for AI agents. None did what I needed, so I built one.</title>
      <dc:creator>BrethofAI</dc:creator>
      <pubDate>Sun, 11 Oct 2026 16:04:07 +0000</pubDate>
      <link>https://dev.to/brethofai/i-tried-most-of-the-memory-systems-for-ai-agents-none-did-what-i-needed-so-i-built-one-18p7</link>
      <guid>https://dev.to/brethofai/i-tried-most-of-the-memory-systems-for-ai-agents-none-did-what-i-needed-so-i-built-one-18p7</guid>
      <description>&lt;p&gt;You open a session with your agent the way you open a hundred others. Before any real work: the stack, the conventions, the decision from last Tuesday about why the auth flow is the way it is, the thing you tried in March that didn't work. You paste it in, or you point the agent at a markdown file you maintain by hand, or you type "as I discussed before" and hope. Then you work. Then the session ends and everything you spent establishing is gone.&lt;/p&gt;

&lt;p&gt;If you run an agent daily, this is your routine, and you've stopped noticing it's a routine. "Save context" before closing. A CLAUDE.md you edit like a wiki nobody owns. Five md files of notes that are really just a memory you're operating by hand, for software that costs more than your editor.&lt;/p&gt;

&lt;p&gt;Here's the strange part. The smartest tool on your machine is the only one that remembers nothing. Your editor remembers your settings. Your terminal remembers your history. Your agent — the thing that costs the most to brief — starts from zero every morning, and you've made peace with it.&lt;/p&gt;

&lt;p&gt;We hadn't. We tried the fixes on offer, they all failed the same test, so we built one that doesn't. This is what it is, what it does on an ordinary Tuesday, and the one sentence that installs it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three things that were supposed to fix this
&lt;/h2&gt;

&lt;p&gt;Judge every memory tool by one question: &lt;strong&gt;when the next prompt arrives, what does the agent actually know?&lt;/strong&gt; Not what's stored. Not what's findable. What's in front of the model, right now.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Markdown files — CLAUDE.md and its cousins.&lt;/strong&gt; Loaded once at session start, then frozen. Whatever you write there on Tuesday is what the agent believes all week, and nobody maintains the file because maintaining it is the same manual chore you were trying to escape. Within a month it's a junk drawer: three conflicting instructions, a stack list from two projects ago, a note-to-self that stopped being true. A snapshot, not a memory.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Memory tools the agent has to call.&lt;/strong&gt; These store things well. But they wait to be asked: nothing arrives before the agent answers unless it decides, mid-turn, to search, and remembers to. And at session end the handover is whatever the next session thinks to ask about. A library you have to remember to use is not a memory.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Search hooks.&lt;/strong&gt; The better ones do push something with every prompt: a few snippets of raw text that matched. That's real injection, and it's still not enough — snippets are retrieval, not briefing. They find fragments. They don't carry your standing rules, don't reconcile a fragment against what you decided later, and don't come with a reason attached. The agent gets a search result; it doesn't get told what's true.&lt;/p&gt;

&lt;p&gt;All three fail the same way: the knowledge exists somewhere, and the moment of the prompt — the only moment that matters — gets nothing, or almost nothing.&lt;/p&gt;

&lt;h2&gt;
  
  
  The test, then
&lt;/h2&gt;

&lt;p&gt;A working memory has to answer at three moments:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Session start.&lt;/strong&gt; A brief, before you say anything: where we left off, the rules in force, what's next on the plan.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Every prompt.&lt;/strong&gt; The records that bear on that specific prompt, arriving with it — without dumping the whole memory into your context window every turn.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;"Why is it like this?"&lt;/strong&gt; The decision, the date, the reason, and the option it beat — in the words of the conversation where it happened.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's the spec. Everything else is implementation detail.&lt;/p&gt;

&lt;h2&gt;
  
  
  One working day with a brain instead of a memory
&lt;/h2&gt;

&lt;p&gt;We run our own company's work on our own memory — it has run our estate since December 2025, archiving every conversation since April. This isn't a demo script; it's Tuesday.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Morning.&lt;/strong&gt; Start the machine, open the session, say "continue." The brief is already there — the last session's handover note, the project rules, the next lines of the plan, an index of the playbooks for this project. No re-explaining. No "quick recap of the repo." The session picks up the top line of the plan and starts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Midday.&lt;/strong&gt; Each prompt arrives pre-briefed. Not with everything — with the records that bear on &lt;em&gt;that prompt&lt;/em&gt;, and nothing else. When I ask about the rate limiter, the memory of the rate limiter conversation comes with the question. I stopped keeping md files in March and haven't missed them; there's no "save context" ritual because there's nothing to save — curation happened while we were talking.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Afternoon.&lt;/strong&gt; Two agents on one project: one on the front end, one on the back end, each with its own key, working from one memory. Neither has to be told what the other decided — the back-end agent's next prompt carries what the front-end conversation settled. Later, the front-end agent suggests an approach for the settings page, and the memory answers for me: that option was rejected in March, here's the day, here's the reason, in the words of that conversation. Nobody re-litigates a dead option because nobody forgot it was dead.&lt;/p&gt;

&lt;p&gt;Everything above happens by saying it. I never file anything, never call a save tool, never run a sync. The agent manages the memory because the memory shows up in its context before it needs to be managed.&lt;/p&gt;

&lt;p&gt;One honest trade: injection costs context. A brief and per-prompt records occupy tokens — that's what injection is. What you get back is tool calls, turns and hunting. On balance, that trade has been lopsided in our favor for months.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this one is different under the hood
&lt;/h2&gt;

&lt;p&gt;Three layers, with different jobs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Curated records&lt;/strong&gt; are the truth of now. The memory reads your conversations in windows of five exchanges and keeps what the conversation &lt;em&gt;settled&lt;/em&gt; — reconciling new facts against old ones, quietly retiring records that describe something you replaced. You never file anything; there's nothing to file.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The decision graph&lt;/strong&gt; is how it got there. Every decision a line: dated, with its reason as it was said, and the option it beat. Reversals are new lines — history is never rewritten, so "why is it like this" always has an answer.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The full history&lt;/strong&gt; is everything, kept in full and searchable by keyword or meaning. Records are what's true; the graph is what happened; the archive is the floor under both.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Two details that matter in practice:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Projects are walled off.&lt;/strong&gt; Each has its own records, rules, graph and plan; nothing bleeds between them unless you call a cross-project search yourself. On hosted memory, scoped keys let you hand a teammate, a client or a subcontractor access to exactly the projects you choose — read-write, read-only or invisible — and nothing else.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rules can't rot into a junk drawer.&lt;/strong&gt; Each one is capped, the pool is capped, you're warned at 80%, and a save that would overfill is refused with the fix. Nothing you wrote is ever quietly trimmed or dropped.&lt;/p&gt;

&lt;p&gt;And the privacy line, because it's the reason we built it this way: your memory lives on your machine (a local container, stored there and nowhere else) or in our cloud, encrypted. Our hub processes pieces of it to make memory and compose briefs, and keeps none of those pieces.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why believe us
&lt;/h2&gt;

&lt;p&gt;Because we run on it. Our own company's work has gone through it every day since December 2025. Before that it was md files, and almost everything from those months is lost — which is the whole argument in one sentence. Every conversation since April is still there, searchable.&lt;/p&gt;

&lt;p&gt;And because of how it started. I tried most of the memory systems for AI agents. Each did a part of this, and none did what I needed. So I built the one that does.&lt;/p&gt;

&lt;h2&gt;
  
  
  Say one sentence
&lt;/h2&gt;

&lt;p&gt;You don't need IT knowledge for this. The install is one sentence to your agent: &lt;strong&gt;"install brethof-brain."&lt;/strong&gt; It fetches the client, wires the hooks, and checks its own work. The only human steps are the ones every application on earth asks for: sign up, choose local or hosted, copy the key, and paste it once into a small window on your own screen, so your agent never sees it. Free to start, and it works with Claude Code, Codex, OpenClaw, Hermes and the other harnesses you're probably already running.&lt;/p&gt;

&lt;p&gt;If you've read this far, you've accepted re-explaining as part of the job. It isn't.&lt;/p&gt;

&lt;p&gt;Start at &lt;a href="https://brethof.ai/brain/" rel="noopener noreferrer"&gt;brethof.ai/brain/&lt;/a&gt; — and tell your agent: install brethof-brain.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;If you end up writing about it yourself, we run an affiliate programme — details at &lt;a href="https://brethof.ai/brain/affiliate/" rel="noopener noreferrer"&gt;brethof.ai/brain/affiliate/&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>llm</category>
      <category>agents</category>
    </item>
    <item>
      <title>Your AI agent can install its own memory. You don't need a terminal.</title>
      <dc:creator>BrethofAI</dc:creator>
      <pubDate>Tue, 06 Oct 2026 23:55:22 +0000</pubDate>
      <link>https://dev.to/brethofai/your-ai-agent-can-install-its-own-memory-you-dont-need-a-terminal-22hf</link>
      <guid>https://dev.to/brethofai/your-ai-agent-can-install-its-own-memory-you-dont-need-a-terminal-22hf</guid>
      <description>&lt;p&gt;You've been here before. You find a tool that would genuinely fix the thing that annoys you — your AI agent forgets everything between sessions, so you explain the same project, the same preferences, the same decisions every morning. You open the install guide and hit a wall: &lt;code&gt;pip install&lt;/code&gt;, config files, something about "hooks", a warning that assumes you know what a hook is. You close the tab. Not because you're incapable, but because the tool was written for somebody else.&lt;/p&gt;

&lt;p&gt;This is the pattern for nearly every developer tool on the internet: a wall of commands, and an unspoken assumption that a human types them. If you can't run terminal commands, the tool is effectively not for you — no matter how much you need it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The assumption is wrong, and it's worth seeing why before we show you the exception.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Someone has to do the installing — it doesn't have to be you
&lt;/h2&gt;

&lt;p&gt;Look at what that wall of commands actually asks of a person: fetch some code, put it where the agent can find it, connect it to the agent, run it once to check it worked. Every one of those is a thing your AI agent already does all day. It fetches things. It edits files. It follows instructions and reports back. Installing a tool is, frankly, an easier job than the ones you already give it.&lt;/p&gt;

&lt;p&gt;The reason you'd ever type those commands yourself is history: most tools were built before agents, by developers, for developers, and nobody revisited the assumption. The natural order is that you describe the outcome — "install this memory tool" — and the agent does the work, the way it does everything else you ask.&lt;/p&gt;

&lt;p&gt;That's not a hypothetical. It's how our memory tool is installed.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it actually works: two human steps, one sentence
&lt;/h2&gt;

&lt;p&gt;The tool is called brethof-brain. It's a memory system for AI agents — your agent remembers you across sessions, projects and machines. Here is the entire install, end to end.&lt;/p&gt;

&lt;p&gt;Your part, first. Sign up on the site, choose your edition and copy your key from the panel (the hosted edition also asks you to set a passphrase). That's the whole account part — registering and clicking a button, which is what every application on earth asks of you. It is not IT knowledge.&lt;/p&gt;

&lt;p&gt;Then your part, spoken. You open your agent and say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Install brethof-brain.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It does the rest: it fetches the client, wires the hooks into your harness, and checks its own work. Once, a small window opens on your own screen where you paste the key (and, on hosted, your passphrase), so your agent never sees either. You never open a terminal. You never read a README. If something needs deciding, it asks you in plain language, the way it would for any other task.&lt;/p&gt;

&lt;p&gt;We're specific about where the human steps end because it matters: they end at that window. There is no "and then it helps to have someone technical nearby." That caveat would be a lie dressed as modesty.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you get the morning after
&lt;/h2&gt;

&lt;p&gt;You start your PC, open a session, and say "continue." The agent already knows what you were doing — what you decided yesterday, what you prefer, where things stand. You don't re-explain. You just carry on.&lt;/p&gt;

&lt;p&gt;This is also where the memory earns its keep over time. Your agent stops re-proposing the thing you rejected in March, because the line saying so — with the day and the reason — comes back with its search. When you ask "why is it like this?", the answer is in the words of the conversation that decided it. And if you change your mind, the reversal is a new line; the old way stays on record as the old way.&lt;/p&gt;

&lt;p&gt;You also stop maintaining the pile of notes some people keep to remind their agent who they are — the folder of markdown files that grows until it's a jungle nobody can navigate. There are no files to tend. The memory keeps itself; every session opens with your agent already briefed. You don't manage anything. You talk, it remembers.&lt;/p&gt;

&lt;h2&gt;
  
  
  But I don't run servers — which edition, and what's on my machine?
&lt;/h2&gt;

&lt;p&gt;Two editions, and you pick by comfort, not by skill:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hosted.&lt;/strong&gt; We run everything. No container, no disk space, no setup beyond the passphrase you set at signup. Nothing to run on your machine at all.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Local.&lt;/strong&gt; Your memory lives on your own machine and nowhere else — we process it, we never store it. This does mean something runs on your computer: a single container, a self-contained box that holds your memory and its search. Your agent installs it, not you. You never configure it.&lt;/p&gt;

&lt;p&gt;If "a container on my machine" sounds alarming and "we run it" sounds restful, pick hosted. If keeping the memory on your own disk matters to you, pick local. Both are installed by the same sentence.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it: the whole thing is one sentence
&lt;/h2&gt;

&lt;p&gt;Sign up, choose your edition, copy your key. Then tell your agent:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Install brethof-brain.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Start free. If it works, you'll know by the second morning, when you say "continue" and it simply knows.&lt;/p&gt;

&lt;p&gt;We built it this way because of a conviction we keep coming back to: AI should do the work for the human. Installing the tool that gives your AI its memory is work for the AI.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Disclosure: I build brethof-brain. How the install works, and the free plan (500 messages a month, no card): &lt;a href="https://brethof.ai/brain/install/" rel="noopener noreferrer"&gt;https://brethof.ai/brain/install/&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;If you ever want to recommend it, we run an affiliate programme through Lemon Squeezy: commission on every sale you bring, paid to you by Lemon Squeezy directly. Sign-up: &lt;a href="https://brethofai.lemonsqueezy.com/affiliates" rel="noopener noreferrer"&gt;https://brethofai.lemonsqueezy.com/affiliates&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>beginners</category>
      <category>productivity</category>
      <category>tooling</category>
    </item>
    <item>
      <title>brethof-brain launches today: memory for AI agents that is already there when the session starts</title>
      <dc:creator>BrethofAI</dc:creator>
      <pubDate>Tue, 06 Oct 2026 07:15:01 +0000</pubDate>
      <link>https://dev.to/brethofai/brethof-brain-launches-today-memory-for-ai-agents-that-is-already-there-when-the-session-starts-2flg</link>
      <guid>https://dev.to/brethofai/brethof-brain-launches-today-memory-for-ai-agents-that-is-already-there-when-the-session-starts-2flg</guid>
      <description>&lt;h2&gt;
  
  
  Every session starts from zero
&lt;/h2&gt;

&lt;p&gt;If you run an AI agent, you already know the ritual. You open a session and re-explain the project: what it is, what was decided, what was rejected, why the build works the way it does. Some people keep this in md files — a CLAUDE.md here, a notes file there — and soon the agent is lost in an md jungle, reading stale half-truths from March alongside the things that are true today. Either way, you are the memory. You retype the same context a thousand times a day, and the agent repays you by re-proposing the approach you killed months ago, because nothing told it not to.&lt;/p&gt;

&lt;p&gt;The models are getting smarter every month. But a model without memory meets your project fresh every morning. Without memory, they're all dumb — the intelligence is wasted on re-deriving what you already told it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What memory should actually do
&lt;/h2&gt;

&lt;p&gt;Before describing ours, here is what a fix has to pass. Three tests.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Already there when the session starts.&lt;/strong&gt; A brief opens every session — where things stand, what was settled, what comes next — and on every prompt, the records that bear on that prompt arrive with it. No tool calls. No turns spent hunting through files. If the agent has to go looking, the memory isn't memory, it's a library with bad opening hours.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It keeps what the conversation settled.&lt;/strong&gt; Not every half-thought on the way — what the exchange actually concluded. A memory that archives noise is a junk drawer with a search box.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It remembers decisions, not just facts.&lt;/strong&gt; Records keep what is true now. But "why is it like this?" needs the history: every decision dated, with its reason and the option it beat. History never rewritten — a reversal is a new line, and the old way stays on record as the old way.&lt;/p&gt;

&lt;p&gt;I tried most of the memory systems for AI agents. Each did a part of this, and none did what I needed. So I spent almost a year building the one that does.&lt;/p&gt;

&lt;h2&gt;
  
  
  Meet brethof-brain
&lt;/h2&gt;

&lt;p&gt;brethof-brain is memory for AI agents that is already there when the session starts.&lt;/p&gt;

&lt;p&gt;It works in layers, because a memory is more than a transcript. The full chat history — every session kept in full and searchable by keyword or by meaning. Curated records — the current truth of each project, which the memory builds itself by reading your conversations in stretches of five exchanges: it keeps what the conversation settled, reconciles new facts against old ones, and you never file anything by hand. Rules — standing instructions, yours, loaded with most messages, so every agent on every project works the same way. Playbooks — a procedure written once as markdown, run by any agent on any project the same way every time.&lt;/p&gt;

&lt;p&gt;Under the records sits the graph of decisions: every decision dated, with its reason, what it replaced, what was tried and rejected along the way. When your agent suggests the thing you rejected back in March, the line saying so — with the day and the reason — comes back with the search. And the Ledger quietly catches the things you said you'd do, so they're reviewable instead of lost. Check it. You'll find the ideas you thought about and never implemented.&lt;/p&gt;

&lt;p&gt;No "save my context" ritual. Nothing to remember. You start a session and say "continue," and you carry on. You can run ten projects at once, each walled off — its own records, rules, graph and Ledger — and nothing bleeds between them. One memory serves many agents: one on the front end, one on the back end, or one building and a second checking its work with the whole record in front of it. Your agent never re-proposes what you already killed, because the memory carries the kill.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why we built it
&lt;/h2&gt;

&lt;p&gt;We built it because we were the problem. We were fed up explaining the same thing to our agents a thousand times a day. We were lost in the md jungle ourselves. We started in December 2025 with md files, and almost everything from those first three months is gone — that is what md files do. In March we moved it onto a database, and every conversation since April is still there, searchable. Our own days run five to seven projects with several agents in parallel on one shared memory — this product was not tested on a demo tenant, it is proven every working day on its own makers, and it has been running since December 2025.&lt;/p&gt;

&lt;p&gt;Two convictions drove the design. Teach your agent, don't gate it — memory should make the agent smarter, not add steps between you and it. And AI should do the work for the human. We try to do the work for you.&lt;/p&gt;

&lt;h2&gt;
  
  
  What stays private
&lt;/h2&gt;

&lt;p&gt;One choice at signup, and it decides where your memory lives.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Local:&lt;/strong&gt; the memory — records, archive, graph, search — lives in one container on your own machine. We process it; we never store it. When a piece of memory needs judging or a session needs its brief, your box sends that piece to our hub, and the hub keeps none of it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hosted:&lt;/strong&gt; the whole memory is encrypted under a key derived from a passphrase only you set and hold. It unlocks when you start a session and locks itself after a short idle period. While locked, it is ciphertext to everyone, including us — forget the passphrase and no one can open it.&lt;/p&gt;

&lt;p&gt;The hub processes pieces and stores none of them. What it holds durably is small and dull: your standing rules and one line per project saying what the project is. Processing runs in a secure instance in Zurich, Switzerland, in a Tier III+ datacenter. The model that does the thinking is bound by contract — the provider's commitment, not our guarantee — not to log, retain or train on what passes through.&lt;/p&gt;

&lt;p&gt;You own the data. On hosted memory, export the whole history, delete a project, redact an exact phrase, or delete the account, from the panel; a local memory sits on your own disk, in your own hands. And because the client is source-available, not just trusting black boxes: you can read every line of it and see exactly what leaves your machine.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to start — free
&lt;/h2&gt;

&lt;p&gt;The install is the least work of any developer tool we know, because you barely do it: tell your agent &lt;strong&gt;"install brethof-brain."&lt;/strong&gt; It fetches the client, wires the hooks, and checks its own work. You need no IT knowledge.&lt;/p&gt;

&lt;p&gt;The one step a human does: sign up — email, GitHub or Google — choose local or hosted, copy the key. The install opens a window on your own screen where you paste it, and for hosted your passphrase, where your agent never sees either. That's it.&lt;/p&gt;

&lt;p&gt;The free plan gives you 500 messages a month, no card. At the limit, the memory stops learning but keeps serving: the session brief, the per-prompt records, every search and the full history keep working — recall is never metered.&lt;/p&gt;

&lt;p&gt;It runs on twenty proven platforms, each installed clean-machine and green in our rig: Claude Code, Codex, Qwen Code, OpenCode, Kilo Code, dsh, OpenClaw, Hermes Agent, GitHub Copilot CLI, Pi, CodeBuddy, Devin CLI, Kiro CLI, Qoder CLI, goose, Gemini CLI, Antigravity CLI, Cline, Amp and MiniMax Code.&lt;/p&gt;

&lt;p&gt;If you were going to tell people about it anyway, we run an affiliate programme: &lt;a href="https://brethof.ai/brain/affiliate/" rel="noopener noreferrer"&gt;brethof.ai/brain/affiliate/&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;That's the whole pitch. Open a session, tell your agent "install brethof-brain," and the next session starts with your agent already briefed.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;brethof-brain launched today, 6 October 2026. Start free at &lt;a href="https://brethof.ai/brain/launch/" rel="noopener noreferrer"&gt;brethof.ai/brain&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>devtools</category>
      <category>llm</category>
    </item>
    <item>
      <title>The local voice stack that beats the cloud at its own benchmarks</title>
      <dc:creator>BrethofAI</dc:creator>
      <pubDate>Mon, 25 May 2026 20:57:05 +0000</pubDate>
      <link>https://dev.to/brethofai/the-local-voice-stack-that-beats-the-cloud-at-its-own-benchmarks-449d</link>
      <guid>https://dev.to/brethofai/the-local-voice-stack-that-beats-the-cloud-at-its-own-benchmarks-449d</guid>
      <description>&lt;p&gt;&lt;strong&gt;Brethof Voice Pro 2.0 — offline voice-to-text and 38-language translation, 100% on your machine.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every major dictation tool — Dragon, Otter, Google, Apple, the cloud transcription service of the week — captures your voice on your machine, streams it to a data centre, transcribes it there, and sends text back. Sometimes the audio is stored. Sometimes it trains a model. Sometimes it's 'anonymised', a word that stopped meaning much years ago.&lt;/p&gt;

&lt;p&gt;Watch what people actually dictate and you see why that matters: medical notes, legal drafts, interviews with named sources, therapy summaries, deal memos, personal journals. The most sensitive text a person produces — uploaded by default, often against HIPAA, GDPR, or plain decency, because there was no alternative.&lt;/p&gt;

&lt;p&gt;Brethof Voice Pro is the alternative, and 2.0 is the release where 'local' stops being a compromise: it transcribes, &lt;strong&gt;translates&lt;/strong&gt;, dictates into any app, and trains on your own voice — all on your hardware, with no cloud mode to forget to switch off.&lt;/p&gt;

&lt;h2&gt;
  
  
  The engine: GGUF + llama.cpp, 5–7× faster than Whisper
&lt;/h2&gt;

&lt;p&gt;Voice Pro runs Qwen3-ASR on &lt;a href="https://github.com/ggml-org/llama.cpp" rel="noopener noreferrer"&gt;llama.cpp&lt;/a&gt; with GGUF-quantised models. What that buys you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;5–7× faster transcription than Whisper&lt;/strong&gt;, with a &lt;strong&gt;~400 ms cold start&lt;/strong&gt; — weights are memory-mapped, so the first hotkey press after a reboot is already listening.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;An 83 MB install&lt;/strong&gt; on Windows (161 MB on Linux) — one binary that runs on &lt;strong&gt;CPU, NVIDIA, AMD, and Intel GPUs via Vulkan&lt;/strong&gt;. No CUDA-only lock-in, no runtime wheels to match to your hardware.&lt;/li&gt;
&lt;li&gt;A genuinely &lt;strong&gt;state-of-the-art&lt;/strong&gt; base model. Qwen3-ASR posts &lt;strong&gt;1.84% average word error rate&lt;/strong&gt; across a 10-language test and &lt;strong&gt;4.5% on English&lt;/strong&gt; — where OpenAI's Whisper Large-v3 sits at &lt;strong&gt;7.4%&lt;/strong&gt;. Its language identification is &lt;strong&gt;97.9%&lt;/strong&gt; accurate across 30 languages, vs Whisper Large-v3's 94.1%.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Smaller, faster, and more accurate than the model everyone benchmarks against — running entirely on your box.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's new in 2.0: offline translation
&lt;/h2&gt;

&lt;p&gt;The headline feature is &lt;strong&gt;translation that never leaves your machine&lt;/strong&gt;, across &lt;strong&gt;38 languages&lt;/strong&gt;, powered by Tencent's &lt;strong&gt;Hunyuan-MT2&lt;/strong&gt; (open-sourced May 2026). It earns the billing: the Hunyuan-MT line took &lt;strong&gt;first place in 30 of 31 categories at WMT25&lt;/strong&gt;, and MT2 is a step beyond it — its translation quality is comparable to Google Gemini 3.1 Pro on the FLORES-200 benchmark (XCOMET-XXL), in a model small enough to run on your own GPU.&lt;/p&gt;

&lt;p&gt;We benchmarked both tiers ourselves — COMET-22, higher is better, across EN↔Polish, EN→Chinese, German, and Arabic:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tier&lt;/th&gt;
&lt;th&gt;Size on disk&lt;/th&gt;
&lt;th&gt;COMET-22&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Fast (1.8B)&lt;/td&gt;
&lt;td&gt;~1 GB&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;87.6&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Quality (7B)&lt;/td&gt;
&lt;td&gt;~4.3 GB&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;89.0&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Both run locally — sub-second on a GPU, and the Fast tier is sub-second even on CPU. Because the engine gives us per-engine device control, you can run &lt;strong&gt;ASR on one GPU and translation on another&lt;/strong&gt;, or pin the 7B model to CPU on a VRAM-tight laptop.&lt;/p&gt;

&lt;p&gt;Translation shows up everywhere transcription does:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Transcribe popup&lt;/strong&gt; — a 'Translate to' dropdown on file, mic, and system-audio capture.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Voice keyboard&lt;/strong&gt; — pick one or several targets; it types the &lt;em&gt;translation&lt;/em&gt; (one per line, inline, or primary-only).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Subtitle translator&lt;/strong&gt; — translate every cue of an SRT/VTT, keep the timings, optional &lt;strong&gt;bilingual&lt;/strong&gt; mode (source line with the translation beneath).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The core, end to end
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Transcription&lt;/strong&gt; takes three inputs in one popup: an &lt;strong&gt;audio or video file&lt;/strong&gt; (drag-and-drop; it pulls the track out of mp4/mkv/mov/webm and a dozen more formats), the &lt;strong&gt;microphone&lt;/strong&gt;, or &lt;strong&gt;system audio&lt;/strong&gt; — whatever is playing on your speakers, so you can capture a meeting, a browser tab, or a video. Output is plain text or &lt;strong&gt;SRT&lt;/strong&gt; with timestamps; add the optional Forced Aligner for &lt;strong&gt;word-level&lt;/strong&gt; timestamps.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Good for: transcribing interviews, turning a recorded talk into subtitles, capturing a call you're in without a bot joining the room.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;The voice keyboard&lt;/strong&gt; is push-to-talk dictation into &lt;em&gt;any&lt;/em&gt; focused app. Default &lt;strong&gt;F9&lt;/strong&gt;, hold-to-talk or toggle, optional right-mouse trigger; it injects text at the OS level — editor, browser, terminal, chat box. Turn on live translation and you speak English while it types Polish.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Good for: dictating commit messages into your IDE, replying in a language you read better than you write, drafting hands-free.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Hotwords&lt;/strong&gt; do two jobs from one field: they bias ASR toward your brand names and jargon (so 'VFIO' stops becoming 'VEAF1'), and they pin terminology for the translator. &lt;strong&gt;Noise reduction&lt;/strong&gt; (DeepFilter) is included but &lt;strong&gt;off by default&lt;/strong&gt; — it hurts quality on short clean clips, so it's there for noisy rooms when you need it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Train it on your own voice — and beat the big model
&lt;/h2&gt;

&lt;p&gt;This is the part the cloud can't do. Every time you correct a misheard word, the audio-and-correction pair is saved to a local dataset, and the main window shows your running sample count. One click runs a &lt;strong&gt;LoRA fine-tune&lt;/strong&gt; (it auto-selects an NVIDIA CUDA backend if you have one, CPU otherwise), then merges and exports the result to GGUF — and you switch to your personal model &lt;strong&gt;right from the main screen&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Does it actually work? We fine-tuned the small &lt;strong&gt;0.6B&lt;/strong&gt; model on about 11 hours of Polish. It scored &lt;strong&gt;6.10% WER — beating Whisper Large-v3's 8.40%&lt;/strong&gt; on the same audio. A model a fraction of the size, adapted on-device to one language and voice, out-performing the big general model. Nothing left the machine to get there.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Good for: strong accents, field vocabulary (medical, legal, engineering), or simply grinding your error rate down over a few weeks of normal use.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  For developers: the MCP server
&lt;/h2&gt;

&lt;p&gt;Voice Pro ships as a &lt;strong&gt;Model Context Protocol server&lt;/strong&gt; — &lt;strong&gt;19 tools&lt;/strong&gt; exposing ASR and translation to any MCP agent: Claude Desktop, Claude Code, Cursor, Cline, OpenClaw, Hermes. Same binary, just &lt;code&gt;--mcp&lt;/code&gt;; transport is stdio, so there's no port, no localhost binding, no firewall prompt:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"brethof-voice"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"brethof-voice"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"args"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"--mcp"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now your agent can transcribe files, record and transcribe the mic, translate text and SRTs, switch compute devices, and manage voice profiles — locally, with no API keys and no per-minute billing. 'Transcribe this interview and give me a German SRT' becomes a fully offline operation.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Good for: agent pipelines that process audio without shipping it to a third party, batch subtitle jobs, and voice-driven tooling you actually control.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Languages, stated honestly
&lt;/h2&gt;

&lt;p&gt;No rounded-up number:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Transcription: 30 selectable languages + 22 Chinese dialects&lt;/strong&gt; the model recognises automatically (52 languages and dialects in total), plus auto-detect.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Translation: 38 languages&lt;/strong&gt; via Hunyuan-MT2.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;23 languages work in both directions&lt;/strong&gt; — speak it, see it written, then see it in any of the others.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;They don't perfectly overlap (ASR handles Danish, Greek, Finnish, and Swedish that translation doesn't; translation handles Hindi, Bengali, Tamil, and Ukrainian that ASR doesn't surface), so the &lt;a href="https://brethof.ai/voice/tour/" rel="noopener noreferrer"&gt;feature tour&lt;/a&gt; publishes the full per-language table with a tick in each column. No asterisks.&lt;/p&gt;

&lt;h2&gt;
  
  
  The privacy guarantee
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;No cloud mode.&lt;/strong&gt; There is no toggle to send audio to a server for better accuracy. Your CPU or GPU is the only option.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No telemetry.&lt;/strong&gt; No usage stats, no crash phone-home. The only network calls are a license check, an update check, and the model downloads &lt;em&gt;you&lt;/em&gt; trigger — all documented, all disableable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Audio never hits disk.&lt;/strong&gt; The buffer lives in RAM during transcription and is freed the moment the text is produced. Nothing to leak, nothing to recover.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Your voice is the most personal data you generate. It shouldn't leave your machine unless you explicitly send it somewhere. That isn't a tagline — it's why the product exists.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Platforms
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Linux&lt;/strong&gt; x86_64 — Ubuntu 22.04+, Fedora 38+, Arch, Debian 12+, CachyOS, openSUSE; X11 and Wayland; a single portable binary, no install.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Windows&lt;/strong&gt; x64 — 10 (21H2+) and 11; per-user graphical installer, no admin rights.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;macOS&lt;/strong&gt; — not yet; on the roadmap, no ETA.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It runs CPU-only on 8 GB of RAM with an AVX2 chip. For GPU acceleration you need &lt;strong&gt;Vulkan 1.2+&lt;/strong&gt; drivers — which means &lt;strong&gt;NVIDIA, AMD, and Intel Arc all work&lt;/strong&gt; from the same build, not just CUDA cards.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;p&gt;Pay once, own it forever — &lt;strong&gt;no subscription&lt;/strong&gt;. There's a &lt;strong&gt;14-day free trial&lt;/strong&gt; with every feature unlocked and no credit card. Download for Linux or Windows at &lt;strong&gt;&lt;a href="https://brethof.ai/voice" rel="noopener noreferrer"&gt;brethof.ai/voice&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Local. Private. Slightly opinionated.&lt;/p&gt;

</description>
      <category>localai</category>
      <category>privacy</category>
      <category>opensource</category>
      <category>ai</category>
    </item>
    <item>
      <title>Don't summarize your memory — search it</title>
      <dc:creator>BrethofAI</dc:creator>
      <pubDate>Fri, 22 May 2026 15:54:00 +0000</pubDate>
      <link>https://dev.to/brethofai/dont-summarize-your-memory-search-it-2gef</link>
      <guid>https://dev.to/brethofai/dont-summarize-your-memory-search-it-2gef</guid>
      <description>&lt;p&gt;Every long session with an AI coding agent eventually hits the same wall: the context window fills up, the conversation gets &lt;strong&gt;compacted&lt;/strong&gt;, and a summary takes the place of what actually happened. Summaries are lossy by design. The decision you made three sessions ago, the reason you ruled out approach B, the exact path you fixed last Tuesday — quietly gone, because something decided they weren't important enough to keep.&lt;/p&gt;

&lt;p&gt;I got tired of re-explaining my own project to my own assistant. So I built &lt;strong&gt;brethof-mind&lt;/strong&gt;: long-term memory for Claude Code (and Claude Desktop), built on SurrealDB. The core idea is in the title — instead of &lt;em&gt;summarizing&lt;/em&gt; your history down to fit, keep all of it and &lt;strong&gt;search&lt;/strong&gt; it.&lt;/p&gt;

&lt;p&gt;It's open source (MIT), runs 100% on your machine, and talks to no external API.&lt;/p&gt;

&lt;p&gt;🔗 &lt;strong&gt;&lt;a href="https://github.com/BrethofAI/brethof-mind" rel="noopener noreferrer"&gt;https://github.com/BrethofAI/brethof-mind&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Two memories, not one
&lt;/h2&gt;

&lt;p&gt;Most "memory" tools give you a single bucket of notes. brethof-mind keeps &lt;strong&gt;two layers&lt;/strong&gt;, because they answer different questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Curated memory&lt;/strong&gt; — the things you &lt;em&gt;decide&lt;/em&gt; are worth pinning: architecture decisions, locked rules, project status, bugs and their fixes. Small, high-signal, hand-or-agent-curated.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Full chat archive&lt;/strong&gt; — every session you've ever had, stored verbatim and searchable. This is the safety net: when a summary would have dropped a detail, the raw exchange is still there to retrieve.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The curated layer answers &lt;em&gt;"what did we decide?"&lt;/em&gt; The archive answers &lt;em&gt;"what did we actually say back in March?"&lt;/em&gt; Together they mean a compaction is no longer a memory wipe — it's just the working context shrinking while the real record stays intact.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three ways to search
&lt;/h2&gt;

&lt;p&gt;Different questions want different retrieval. brethof-mind exposes all three over MCP:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Full-text (BM25)&lt;/strong&gt; — when you know the words. SurrealDB's full-text index, lowercased + stemmed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vector similarity (HNSW)&lt;/strong&gt; — when you know the &lt;em&gt;meaning&lt;/em&gt; but not the words. Embeddings come from &lt;code&gt;fastembed&lt;/code&gt; (all-MiniLM-L6-v2, 384-dim) — local, fast, no API key.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Graph traversal&lt;/strong&gt; — records link to each other (decision → supersedes → decision; episode → covers → topic), so you can walk relationships, not just match text.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are 7 MCP tools in total — &lt;code&gt;semantic_search&lt;/code&gt;, &lt;code&gt;search_memory&lt;/code&gt;, &lt;code&gt;search_chat&lt;/code&gt;, &lt;code&gt;query_raw&lt;/code&gt;, &lt;code&gt;save_memory&lt;/code&gt;, &lt;code&gt;save_commit&lt;/code&gt;, &lt;code&gt;load_project&lt;/code&gt; — so the agent can pick the right retrieval for the question instead of being stuck with one.&lt;/p&gt;

&lt;h2&gt;
  
  
  100% local stack
&lt;/h2&gt;

&lt;p&gt;No cloud, no telemetry, no keys leaving your box:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;SurrealDB&lt;/strong&gt; for storage (vector + full-text + graph in one engine).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;fastembed&lt;/strong&gt; for embeddings, on CPU.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;FastMCP&lt;/strong&gt; over stdio for the server.&lt;/li&gt;
&lt;li&gt;Credentials via env vars; projects configured in a simple &lt;code&gt;projects.json&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Install
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/BrethofAI/brethof-mind
&lt;span class="nb"&gt;cd &lt;/span&gt;brethof-mind

&lt;span class="c"&gt;# 1. Bring up SurrealDB&lt;/span&gt;
docker compose up &lt;span class="nt"&gt;-d&lt;/span&gt;

&lt;span class="c"&gt;# 2. Configure&lt;/span&gt;
&lt;span class="nb"&gt;cp&lt;/span&gt; .env.example .env                    &lt;span class="c"&gt;# set DB creds&lt;/span&gt;
&lt;span class="nb"&gt;cp &lt;/span&gt;projects.example.json projects.json
python mcp-server/scripts/init_db.py    &lt;span class="c"&gt;# create namespace + schema + indexes&lt;/span&gt;

&lt;span class="c"&gt;# 3. Register the MCP server with Claude Code (claude mcp add ...)&lt;/span&gt;
&lt;span class="c"&gt;# 4. Drop the hooks into your Claude settings (see settings.example.json)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Full steps are in the README.&lt;/p&gt;

&lt;h2&gt;
  
  
  The hooks are where it gets nice
&lt;/h2&gt;

&lt;p&gt;The MCP tools are useful on demand, but the &lt;strong&gt;hooks&lt;/strong&gt; make memory ambient — you don't have to remember to remember:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;SessionStart&lt;/strong&gt; loads the relevant project memory into context the moment you open a session.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;UserPromptSubmit&lt;/strong&gt; nudges the agent to &lt;em&gt;search memory first&lt;/em&gt; before answering questions about past decisions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stop&lt;/strong&gt; archives the session into the searchable chat history when you're done.&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;commit hook&lt;/strong&gt; records each commit as a memory record, so your project history and your conversation history live in the same searchable place.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The result: start a fresh session and your agent already knows where the project stands — no re-briefing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Works with
&lt;/h2&gt;

&lt;p&gt;Claude Code and Claude Desktop today (Desktop runs the Claude Code engine under the hood, so it gets the full hooks experience). OpenClaw and Hermes integrations are next.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why it's free
&lt;/h2&gt;

&lt;p&gt;brethof-mind is MIT and will stay free. It comes from the team behind &lt;strong&gt;Brethof Voice Pro&lt;/strong&gt; (local, offline voice-to-text) — same principle: your data stays on your machine. This is the tooling we use ourselves; sharing it because the "summarize-your-memory" default deserves a better answer.&lt;/p&gt;

&lt;p&gt;If you try it, I'd genuinely like feedback on the hook design — that's the part with the most room to get smarter.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/BrethofAI/brethof-mind" rel="noopener noreferrer"&gt;https://github.com/BrethofAI/brethof-mind&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>claude</category>
      <category>tooling</category>
    </item>
    <item>
      <title>Transcribe, Translate, Timestamps, Fine tune, MCP server ALL in 1 app</title>
      <dc:creator>BrethofAI</dc:creator>
      <pubDate>Fri, 22 May 2026 11:00:59 +0000</pubDate>
      <link>https://dev.to/brethofai/transcribe-translate-timestamps-fine-tune-mcp-server-all-in-1-app-470a</link>
      <guid>https://dev.to/brethofai/transcribe-translate-timestamps-fine-tune-mcp-server-all-in-1-app-470a</guid>
      <description>&lt;h1&gt;
  
  
  Brethof Voice Pro v2.0.0 — offline speech-to-text, translation, and a voice keyboard in one app
&lt;/h1&gt;

&lt;p&gt;Your voice, transcribed and translated on your own machine. No cloud, no subscription, nothing leaving your laptop.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg09rxcxlz76l9a7jwzgg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg09rxcxlz76l9a7jwzgg.png" alt="Brethof Voice Pro v2.0.0" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Brethof Voice Pro just hit &lt;strong&gt;v2.0.0&lt;/strong&gt; — and it's no longer "just" dictation. It's a full local voice + translation layer for your desktop &lt;em&gt;and&lt;/em&gt; your AI stack.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it does
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;🎙️ &lt;strong&gt;Transcribe 30 languages + 22 Chinese dialects&lt;/strong&gt; (52 in total) — from a file, your mic, or your system audio (meetings, videos, anything playing through your speakers).&lt;/li&gt;
&lt;li&gt;🌍 &lt;strong&gt;Translate across 38 languages&lt;/strong&gt;, fully offline. Choose the fast model or the quality one (Tencent's Hunyuan-MT — #1 in 30 of 31 categories at WMT25).&lt;/li&gt;
&lt;li&gt;⌨️ &lt;strong&gt;Voice keyboard&lt;/strong&gt; — dictate into &lt;em&gt;any&lt;/em&gt; app with a hotkey. New in v2.0: pick several target languages and it types the &lt;strong&gt;translation&lt;/strong&gt; as you speak.&lt;/li&gt;
&lt;li&gt;📝 &lt;strong&gt;Timestamped subtitles&lt;/strong&gt; — export SRT/VTT, sentence- or word-level.&lt;/li&gt;
&lt;li&gt;🧠 &lt;strong&gt;Fine-tune it on you&lt;/strong&gt; — every correction trains a personal model (one-click LoRA), so it learns your voice and your vocabulary.&lt;/li&gt;
&lt;li&gt;🔌 &lt;strong&gt;MCP server&lt;/strong&gt; — 19 tools so Claude or any MCP client can drive transcription and translation inside your own pipelines.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why it's different
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;100% local.&lt;/strong&gt; Audio and translations never leave your machine. Linux &amp;amp; Windows; GPU optional — runs on a plain laptop CPU.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;All in one app.&lt;/strong&gt; Transcribe, translate, subtitle, dictate, fine-tune — no stitching five tools together.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No subscription.&lt;/strong&gt; Pay once, own it forever. &lt;strong&gt;14-day free trial, no credit card.&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://brethof.ai/voice" rel="noopener noreferrer"&gt;brethof.ai/voice&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>mcp</category>
      <category>productivity</category>
      <category>showdev</category>
    </item>
    <item>
      <title>I Built a $49 Voice-to-Text App That Never Touches the Cloud</title>
      <dc:creator>BrethofAI</dc:creator>
      <pubDate>Thu, 16 Apr 2026 07:32:31 +0000</pubDate>
      <link>https://dev.to/brethofai/i-built-a-49-voice-to-text-app-that-never-touches-the-cloud-4b4g</link>
      <guid>https://dev.to/brethofai/i-built-a-49-voice-to-text-app-that-never-touches-the-cloud-4b4g</guid>
      <description>&lt;h1&gt;
  
  
  Why I Built Brethof Voice Pro
&lt;/h1&gt;

&lt;p&gt;I got tired of two things:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Voice-to-text tools that only work well in English&lt;/li&gt;
&lt;li&gt;Every good STT solution either costs $700 (Dragon) or sends your voice to the cloud monthly&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;So I built something different.&lt;/p&gt;

&lt;h2&gt;
  
  
  What It Does
&lt;/h2&gt;

&lt;p&gt;Brethof Voice Pro is a desktop app (Windows + Linux) that converts speech to text using AI — entirely on your device. Press Ctrl+D, speak, text appears where your cursor is.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Zero cloud calls during transcription.&lt;/strong&gt; Models download once on first launch, then it works fully offline.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Tech Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Qwen3-ASR engine&lt;/strong&gt; — 1.84% word error rate across 10 languages (arXiv 2601.21337)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GGUF models via llama.cpp&lt;/strong&gt; — 6 quantization tiers from 1 GB to 3.2 GB&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vulkan GPU acceleration&lt;/strong&gt; — works on NVIDIA, AMD, Intel, and CPU-only&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DeepFilter&lt;/strong&gt; noise reduction&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;36 languages&lt;/strong&gt; with auto-detection&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why It Matters
&lt;/h2&gt;

&lt;p&gt;If you speak Thai, Polish, Arabic, Vietnamese, Korean, or dozens of other languages — there has been &lt;strong&gt;no good voice-to-text option&lt;/strong&gt; for you. Dragon doesn't support most languages. Google's API charges per-minute and requires internet. Whisper's accuracy on non-English languages is mediocre.&lt;/p&gt;

&lt;p&gt;Qwen3-ASR changes this. State-of-the-art accuracy across 36 languages, running locally on consumer hardware.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pricing
&lt;/h2&gt;

&lt;p&gt;$49 one-time. Perpetual license. No subscription.&lt;/p&gt;

&lt;p&gt;Compare: Dragon $699. Otter.ai $100-240/year. Google STT per-minute cloud pricing.&lt;/p&gt;

&lt;p&gt;14-day free trial, no credit card: &lt;a href="https://brethof.com" rel="noopener noreferrer"&gt;brethof.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Happy to answer questions about the architecture, GGUF quantization, or Vulkan vs CUDA tradeoffs.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdla86uwsr756ld39t3ph.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdla86uwsr756ld39t3ph.png" alt=" " width="800" height="264"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>privacy</category>
      <category>linux</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
