<?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: gtapps</title>
    <description>The latest articles on DEV Community by gtapps (@gtapps).</description>
    <link>https://dev.to/gtapps</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3920180%2F0d3a2673-31fc-4fb1-8e1f-8d8a62ebdcb6.jpeg</url>
      <title>DEV Community: gtapps</title>
      <link>https://dev.to/gtapps</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/gtapps"/>
    <language>en</language>
    <item>
      <title>Anthropic's June 15th pricing reframes Claude Personal AI Assistants</title>
      <dc:creator>gtapps</dc:creator>
      <pubDate>Sun, 17 May 2026 22:26:04 +0000</pubDate>
      <link>https://dev.to/gtapps/anthropics-june-15th-pricing-reframes-claude-personal-ai-assistants-1mdn</link>
      <guid>https://dev.to/gtapps/anthropics-june-15th-pricing-reframes-claude-personal-ai-assistants-1mdn</guid>
      <description>&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%2F2dyofx8ugfiqhlwg5sut.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%2F2dyofx8ugfiqhlwg5sut.png" alt="Infographic showing Anthropic’s June 15th Claude Agent SDK credit shift, separating interactive Claude usage from unattended Agent SDK credits, with estimated programmatic workload cost increases of 12x to 175x." width="800" height="533"&gt;&lt;/a&gt;&lt;br&gt;
Anthropic's June 15th pricing change is not just a billing update. It changes where Claude personal assistants should live.&lt;/p&gt;

&lt;p&gt;If you want a Claude-powered assistant that runs beyond a single chat session, you now have two serious paths.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Managed Agents&lt;/strong&gt;: hosted, scalable, API-native, and priced like infrastructure.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local always-on Claude Code instance&lt;/strong&gt;: close to your files, tools, repos, permissions, memory, and personal context.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Tools like Hermes Agent, OpenClaw-style assistants, T3 Code, Zed's Claude Agents, or OpenCode wrappers when they route unattended Claude work through subscription-authenticated Agent SDK usage or &lt;code&gt;claude -p&lt;/code&gt;, now live inside the new Agent SDK credit model. That can mean &lt;strong&gt;cost increases of 12x to 25x typically, with extremes near 175x&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What changes on June 15th
&lt;/h2&gt;

&lt;p&gt;Starting June 15th, 2026, Claude Agent SDK usage and &lt;code&gt;claude -p&lt;/code&gt; no longer draw from the same subscription bucket as interactive Claude usage.&lt;/p&gt;

&lt;p&gt;They move to a separate monthly Agent SDK credit.&lt;/p&gt;

&lt;p&gt;That credit covers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Claude Agent SDK usage in your own projects&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;claude -p&lt;/code&gt; / &lt;code&gt;claude --print&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Claude Code GitHub Actions&lt;/li&gt;
&lt;li&gt;Third-party apps authenticated through the Agent SDK&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It does &lt;strong&gt;not&lt;/strong&gt; cover:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Interactive Claude Code&lt;/li&gt;
&lt;li&gt;Claude chat&lt;/li&gt;
&lt;li&gt;Claude Cowork&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Interactive Claude stays subscription-shaped. Unattended programmatic Claude becomes credit-shaped, then extra-usage/API-priced once the credit is gone.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://gist.github.com/MagnaCapax/d9177e35b355853f03c730dfcaa693ef" rel="noopener noreferrer"&gt;Reported effective cost increases&lt;/a&gt; land in the 12x–25x range for typical programmatic workloads, with extreme cases (heavy harness usage on a Pro subscription) quoted as high as 175x. The right framing is not "the bill went up." It is "the subsidy went away."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Plan&lt;/th&gt;
&lt;th&gt;Monthly Agent SDK credit&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Pro&lt;/td&gt;
&lt;td&gt;$20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Max 5x&lt;/td&gt;
&lt;td&gt;$100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Max 20x&lt;/td&gt;
&lt;td&gt;$200&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Team Standard&lt;/td&gt;
&lt;td&gt;$20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Team Premium&lt;/td&gt;
&lt;td&gt;$100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Enterprise usage-based&lt;/td&gt;
&lt;td&gt;$20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Enterprise seat-based Premium&lt;/td&gt;
&lt;td&gt;$200&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Monthly Agent SDK credit by Claude plan tier, effective June 15th, 2026.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The local alternative: always-on Claude Code instance
&lt;/h2&gt;

&lt;p&gt;An always-on local Claude Code instance keeps the assistant alive locally, with durable state in files and inbound channels or terminal sessions. That is the future. Run it under Docker so it survives reboots and stays available between sessions.&lt;/p&gt;

&lt;p&gt;Claude Code already provides much of the substrate a personal assistant needs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Authentication and model access without a separate API key&lt;/li&gt;
&lt;li&gt;A permission-gated tool layer (&lt;code&gt;Read&lt;/code&gt;, &lt;code&gt;Write&lt;/code&gt;, &lt;code&gt;Bash&lt;/code&gt;, &lt;code&gt;Grep&lt;/code&gt;, &lt;code&gt;Edit&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Hooks at session start, tool pre/post, and session end&lt;/li&gt;
&lt;li&gt;Subagents with isolated context windows, so heavy reads do not poison the main session&lt;/li&gt;
&lt;li&gt;MCP server integration, skills, and a plugin system with marketplace&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;CLAUDE.md&lt;/code&gt; as canonical project policy, read on every session&lt;/li&gt;
&lt;li&gt;Auto-memory keyed to the project working directory, persistent across sessions&lt;/li&gt;
&lt;li&gt;Session persistence, resume, and fork&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A plugin loaded into that instance adds the operating layer on top: scheduled routines, background watches, a proposal pipeline that gates mutation, and channel-based notification. That is what turns the substrate into the scenarios below.&lt;/p&gt;

&lt;p&gt;What that looks like in practice:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;An assistant that wakes at 7am, summarizes overnight Slack, and posts the digest to a Discord / Telegram DM&lt;/li&gt;
&lt;li&gt;A heartbeat that checks CI every twenty minutes, stays silent when green, and pings the operator when a job fails with the failing test pre-quoted&lt;/li&gt;
&lt;li&gt;A routine that picks gh issues when idle and tackles them&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Disclosure: I maintain &lt;a href="https://github.com/gtapps/claude-code-hermit" rel="noopener noreferrer"&gt;claude-code-hermit&lt;/a&gt;, an open-source Claude Code plugin that turns CC into an always-on personal AI assistant. The patterns described here are not theoretical for me.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Anthropic Agent SDK credit: &lt;a href="https://support.claude.com/en/articles/15036540-use-the-claude-agent-sdk-with-your-claude-plan" rel="noopener noreferrer"&gt;https://support.claude.com/en/articles/15036540-use-the-claude-agent-sdk-with-your-claude-plan&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Claude Code programmatic usage: &lt;a href="https://code.claude.com/docs/en/headless" rel="noopener noreferrer"&gt;https://code.claude.com/docs/en/headless&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Claude Code CLI reference: &lt;a href="https://code.claude.com/docs/en/cli-reference" rel="noopener noreferrer"&gt;https://code.claude.com/docs/en/cli-reference&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Claude API pricing: &lt;a href="https://platform.claude.com/docs/en/about-claude/pricing" rel="noopener noreferrer"&gt;https://platform.claude.com/docs/en/about-claude/pricing&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Hermes Agent (NousResearch): &lt;a href="https://github.com/NousResearch/hermes-agent" rel="noopener noreferrer"&gt;https://github.com/NousResearch/hermes-agent&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;VentureBeat on the OpenClaw reinstatement and credit policy: &lt;a href="https://venturebeat.com/technology/anthropic-reinstates-openclaw-and-third-party-agent-usage-on-claude-subscriptions-with-a-catch" rel="noopener noreferrer"&gt;https://venturebeat.com/technology/anthropic-reinstates-openclaw-and-third-party-agent-usage-on-claude-subscriptions-with-a-catch&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Effective price-increase math (MagnaCapax gist): &lt;a href="https://gist.github.com/MagnaCapax/d9177e35b355853f03c730dfcaa693ef" rel="noopener noreferrer"&gt;https://gist.github.com/MagnaCapax/d9177e35b355853f03c730dfcaa693ef&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>claude</category>
      <category>devtools</category>
    </item>
    <item>
      <title>How I turned Claude Code into multiple 24/7 personal AI assistants</title>
      <dc:creator>gtapps</dc:creator>
      <pubDate>Sat, 09 May 2026 15:47:07 +0000</pubDate>
      <link>https://dev.to/gtapps/how-i-turned-claude-code-into-multiple-247-personal-ai-assistants-2ppc</link>
      <guid>https://dev.to/gtapps/how-i-turned-claude-code-into-multiple-247-personal-ai-assistants-2ppc</guid>
      <description>&lt;p&gt;I use Claude Code everyday, lately Anthropic started shipping some tools that are really relevant for always-on autonomous agent, and I decided to create the glue of all these tools &amp;amp; features to create personal AI assistants that are just a CC instance. My goal was simple, to be able to run multiple always-on personal AI assistants on my laptop with a single Claude Subscription.&lt;/p&gt;

&lt;p&gt;The result is &lt;strong&gt;claude-code-hermit&lt;/strong&gt;, an open-source Claude Code Plugin, a glue layer that turn Claude Code into a 24/7 personal assistant, with a heartbeat, routines, reflection, it learns from its work, and runs on your hardware. &lt;strong&gt;One Claude subscription, multiple hermits, one laptop.&lt;/strong&gt; The compute lives in the cloud at Anthropic; the state, the credentials, and the agency live with you.&lt;/p&gt;

&lt;p&gt;This is the story of what I built and what 30 days of running 8 of them actually looks like.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Claude Code was already 90% of the way there
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;/loop&lt;/code&gt; for heartbeat. &lt;code&gt;CronCreate&lt;/code&gt; does idle-gated cron routines. Channels handles Discord, Telegram. Auto-memory. Native Tasks for plan tracking. Auto mode or &lt;code&gt;bypassPermissions&lt;/code&gt; inside a Docker container without anxiety for non prompted loop.&lt;/p&gt;

&lt;p&gt;The compute lives at Anthropic. I don't host a model. I don't pay per runtime hour. My laptop is the orchestrator and the policy boundary, not the compute. That's the trick. Claude Code is already doing the expensive part; the only question is whether you've wired the rest into a 24/7 loop.&lt;/p&gt;

&lt;p&gt;So the first version of hermit was small: a hatch wizard, an &lt;code&gt;OPERATOR.md&lt;/code&gt; template, a proposal pipeline. The rest is integration.&lt;/p&gt;




&lt;h2&gt;
  
  
  What hermit added
&lt;/h2&gt;

&lt;p&gt;Hermit boils down to four things on top of the native stack.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A wizard that adapts to whatever folder you point it at.&lt;/strong&gt; &lt;code&gt;/hatch&lt;/code&gt; scans the folder. It asks four or five questions: agent identity, what should it focus on, who approves what, how should it notify you etc. It writes an &lt;code&gt;OPERATOR.md&lt;/code&gt;. Every session loads that file first. Works on an existing codebase, an empty directory, or a folder I created just to host the hermit.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A self-learning loop gated by proposals.&lt;/strong&gt; Hermit is token usage aware, it reflects on a cron, between sessions.&lt;br&gt;
New routines, skills, subagents, claude.md changes etc, anything relevant, it drafts self-improvement proposals from repeated patterns, and surfaces them in Discord / Telegram for me to accept, defer, or dismiss.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A raw/compiled knowledge model.&lt;/strong&gt; Borrowed from &lt;a href="https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f" rel="noopener noreferrer"&gt;Andrej Karpathy's llm-wiki&lt;/a&gt;: the hermit writes to &lt;code&gt;raw/&lt;/code&gt; unedited source material it collects (snapshots, audit logs, source dumps, etc). And to &lt;code&gt;compiled/&lt;/code&gt; the short, curated artifacts the agent distills from raw (briefings, reviews, assessments, etc). At the start of every new session, recent compiled notes get loaded back into context, so the agent picks up where it left off without dragging the entire history along. The result is a small, growing wiki you can read and edit, instead of a giant prompt you can't.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Docker is the always-on substrate.&lt;/strong&gt; Running a 24/7 agent on a host means solving four problems at once: defensible &lt;code&gt;bypassPermissions&lt;/code&gt; if you are not using Auto mode, automatic recovery from crashes and host reboots, isolated credentials, and a reproducible environment. &lt;code&gt;/docker-setup&lt;/code&gt; ships them in one wizard: kernel-enforced hardening (&lt;code&gt;no-new-privileges&lt;/code&gt;, &lt;code&gt;cap_drop: ALL&lt;/code&gt;, &lt;code&gt;pids_limit&lt;/code&gt;), &lt;code&gt;restart: unless-stopped&lt;/code&gt; so crashes and reboots self-heal, named volumes that persist OAuth across container rebuilds, and a SIGTERM trap that closes the session cleanly before exit. An opt-in &lt;code&gt;/docker-security&lt;/code&gt; layer adds nftables LAN containment, CPU/memory bounds, and a plugin-install audit log - each toggle with honest disclosure of what it doesn't catch.&lt;/p&gt;


&lt;h2&gt;
  
  
  Setup
&lt;/h2&gt;


&lt;div class="ltag_asciinema"&gt;
  
&lt;/div&gt;


&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;claude plugin marketplace add gtapps/claude-code-hermit&lt;/code&gt; adds the marketplace.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;claude plugin install claude-code-hermit@claude-code-hermit --scope project&lt;/code&gt; installs the CC plugin.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/claude-code-hermit:hatch&lt;/code&gt; runs the setup wizard — agent identity, language, timezone, four-or-five behavior questions, channel preference, optional plugin recommendations. Generates &lt;code&gt;OPERATOR.md&lt;/code&gt; from a fresh project scan plus your answers. Quick path is ~3 minutes.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/claude-code-hermit:docker-setup&lt;/code&gt; writes the Docker scaffolding, builds the image, runs OAuth login, walks through channel pairing, and verifies the container is healthy.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you want the always-on flow without Docker, &lt;code&gt;.claude-code-hermit/bin/hermit-start&lt;/code&gt; boots a tmux session instead.&lt;/p&gt;




&lt;h2&gt;
  
  
  How the self-learning loop works
&lt;/h2&gt;

&lt;p&gt;The naive way to run a "self-improving" agent is to ask it, every session, &lt;em&gt;"how could you do better?"&lt;/em&gt; and let it write whatever comes to mind. In the beginning of the project it might be useful, but overtime that produces noise. Half the suggestions are local minima, half are inventions of patterns that haven't actually recurred, and the operator gets fatigue-buried within a week. What hermit does instead is gate every step.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/reflect (cron, idle, manual)
        |
        v
precheck.js: 5 phases
   |
   +-- EMPTY (~94%) ---&amp;gt; no LLM, exit
   |
   +-- RUN|phases
        |
        v
reflect (LLM): three-condition rule
        |
        v
reflection-judge (Sonnet)
   |
   +-- SUPPRESS ---&amp;gt; memory only
   |   codes: no-evidence,
   |          no-sessions,
   |          covered-by-memory
   |
   +-- DOWNGRADE:N ---&amp;gt; lower tier
   |
   +-- ACCEPT
        |
        v
proposal-triage (Haiku)
   |
   +-- SUPPRESS ---&amp;gt; memory only
   |   codes: weak-recurrence,
   |          weak-consequence,
   |          not-actionable,
   |          covered-by-memory
   |
   +-- DUPLICATE:PROP-NNN ---&amp;gt; link
   |
   +-- CREATE ---&amp;gt; PROP-NNN.md
                   -&amp;gt; Discord / Telegram
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Every arrow that doesn't end in &lt;code&gt;CREATE&lt;/code&gt; is a gate that fired before tokens were spent on the next step. Verdict strings (&lt;code&gt;ACCEPT&lt;/code&gt;, &lt;code&gt;DOWNGRADE:N&lt;/code&gt;, &lt;code&gt;SUPPRESS — &amp;lt;code&amp;gt;&lt;/code&gt;, &lt;code&gt;DUPLICATE:PROP-NNN&lt;/code&gt;, &lt;code&gt;CREATE&lt;/code&gt;) are the literal codes the two subagents return; the 94% precheck-EMPTY rate is the fleet measurement reported later in §Cost &amp;amp; local-first. On the noisiest hermit it's still 87%, on the quietest a research project that ran a full month without a single LLM-backed reflection, it's 100%.&lt;/p&gt;

&lt;h3&gt;
  
  
  The precheck
&lt;/h3&gt;

&lt;p&gt;Before &lt;code&gt;reflect&lt;/code&gt; even runs, a Node script (&lt;code&gt;reflect-precheck.js&lt;/code&gt;) decides whether any of five phases are actually due:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;compute&lt;/code&gt;&lt;/strong&gt; — has there been new session activity since the last reflect?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;resolution_check&lt;/code&gt;&lt;/strong&gt; — are any accepted proposals due for a "did this fix the pattern?" verification?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;cost_spike&lt;/code&gt;&lt;/strong&gt; — is today's spend more than 2× the 7-day median?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;digest&lt;/code&gt;&lt;/strong&gt; — has it been 7+ days since the last juvenile-phase digest?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;newborn&lt;/code&gt;&lt;/strong&gt; — is this hermit less than 3 days old (different surfacing rules apply)?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If none of those fire, the precheck writes a single line to the session log and exits — &lt;strong&gt;no LLM call&lt;/strong&gt;. On a typical idle day, the precheck handles most reflect invocations for free. Only when something is actually due does the script return &lt;code&gt;RUN|&amp;lt;phases-json&amp;gt;&lt;/code&gt;, and only then does Claude read it and proceed.&lt;/p&gt;

&lt;p&gt;This is the load-bearing reason hermit can run 24/7 without tearing through tokens. The expensive thing, letting Claude reflect on session journals and spot patterns only happens when the cheap thing has already established that there's something to reflect on.&lt;/p&gt;

&lt;h3&gt;
  
  
  Two subagents stand between reflect and your inbox
&lt;/h3&gt;

&lt;p&gt;When reflect does run and produces a candidate, the candidate doesn't go straight to a proposal file. Two subagents run on it first.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;reflection-judge&lt;/code&gt;&lt;/strong&gt; verifies the evidence. The candidate cites session reports (&lt;code&gt;S-NNN-REPORT.md&lt;/code&gt;); the judge actually reads them and confirms the pattern is in there. If reflect hallucinated the citation, which LLMs sometimes do under context pressure, the judge returns &lt;code&gt;SUPPRESS&lt;/code&gt; with a canonical code (&lt;code&gt;no-evidence&lt;/code&gt;, &lt;code&gt;no-sessions&lt;/code&gt;, &lt;code&gt;covered-by-memory&lt;/code&gt;). This is the load-bearing check against the failure mode where the agent cites a session it didn't actually read.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;proposal-triage&lt;/code&gt;&lt;/strong&gt; deduplicates. It reads the existing &lt;code&gt;PROP-NNN.md&lt;/code&gt; files and memory files and checks whether a proposal already covers this pattern, whether it conflicts with a stated operator preference, or whether one of the three conditions fails. Verdict is one of &lt;code&gt;CREATE | DUPLICATE:&amp;lt;id&amp;gt; | SUPPRESS&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Survive both gates, and the candidate becomes a proposal that surfaces in Discord / Telegram. Fail either, and it's recorded as a sub-threshold observation in memory, there if a recurrence later promotes it, invisible to the operator until it does.&lt;/p&gt;

&lt;h3&gt;
  
  
  The three-condition rule
&lt;/h3&gt;

&lt;p&gt;Before reflect even drafts a candidate, it applies a rule that's quoted verbatim from the skill source:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Repeated pattern&lt;/strong&gt; - observed in 2+ sessions (1+ in newborn phase for Tier-1 micro-proposals)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Meaningful consequence&lt;/strong&gt; - something tangibly goes wrong without fixing it&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Operator-actionable change&lt;/strong&gt; - a specific concrete change you can approve&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If any of the three can't be stated without hand-waving, the candidate doesn't make it past reflect. This is what stops the "you should be more efficient" generic-pattern fatigue that always-on agents drift into.&lt;/p&gt;

&lt;h3&gt;
  
  
  Phase-aware behavior
&lt;/h3&gt;

&lt;p&gt;Hermit knows how old it is. Reflect classifies it on every run:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;newborn&lt;/code&gt;&lt;/strong&gt; (&amp;lt; 3 days) - surfaces single-occurrence sub-threshold observations inline as &lt;code&gt;Noticed: &amp;lt;pattern&amp;gt;&lt;/code&gt; so the operator gets visible early signal&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;juvenile&lt;/code&gt;&lt;/strong&gt; (3–14 days) - emits weekly digests instead of per-observation lines&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;adult&lt;/code&gt;&lt;/strong&gt; (≥ 14 days) - silent baseline; only graduating recurrences surface&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Newborn hermits aren't useful if they're silent for two weeks. Adult hermits aren't useful if they're noisy. The phasing is what makes the same skill work at day 1 and day 30.&lt;/p&gt;

&lt;h3&gt;
  
  
  What "accept" actually does
&lt;/h3&gt;

&lt;p&gt;The operator accepts a proposal in Discord / Telegram. What happens next depends on the proposal type:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Routine proposal&lt;/strong&gt; - the JSON config block is parsed and appended to &lt;code&gt;config.json&lt;/code&gt; directly. The next session picks up the new routine. No further work.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Skill proposal&lt;/strong&gt; - if &lt;code&gt;/skill-creator&lt;/code&gt; (an Anthropic-shipped plugin) is installed, hermit queues a session task with guidance to use it else Claude does it on its own.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Everything else&lt;/strong&gt; - writes a &lt;code&gt;NEXT-TASK.md&lt;/code&gt; file. The next &lt;code&gt;/session-start&lt;/code&gt; offers it as the default task, with the proposal's evidence and proposed plan attached.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There is no path where the hermit auto-modifies its own skills, agents, or hooks. Operator approval is a precondition for anything that mutates the hermit's behavior beyond a config-only routine entry. The auto-curriculum is real — Voyager-style, in that the agent proposes new capabilities based on what it observed itself doing — but the &lt;em&gt;editor-in-chief&lt;/em&gt; role is permanent and human.&lt;/p&gt;




&lt;h2&gt;
  
  
  Cost &amp;amp; local-first
&lt;/h2&gt;

&lt;p&gt;I run several of these: dev work, company ops, my Home Assistant, fitness with strava sync, my wife's social media management and a few other. Each lives in its own project directory with its own memory, budget, and routines. They share nothing but my Claude subscription and my laptop's CPU. One important thing for me was token usage efficiency, since I run this with one subscription. That's why self learning was so important, that's why Hermits are token usage aware, they brief you on it's token usage and you can ask it directly regarding it as well.&lt;/p&gt;

&lt;p&gt;Two numbers tell the architectural story:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cache hit ratio: ~92% across the fleet.&lt;/strong&gt; Hermit hits Anthropic's prompt cache aggressively - memory, compiled artifacts, &lt;code&gt;OPERATOR.md&lt;/code&gt;, the bottom of &lt;code&gt;CLAUDE.md&lt;/code&gt;. Of every token Claude reads in a hermit session, more than nine in ten are cache reads, billed at a fraction of the input rate. My quietest hermit hits 90.4%, my noisiest 95.5%. The single largest cost-control lever is keeping the cache warm — and the wizard-driven memory layout makes that the default rather than something I have to engineer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Precheck-EMPTY: ~94% across the fleet.&lt;/strong&gt; This is the architectural claim from earlier, now measured. On one hermit, a quiet research project, &lt;code&gt;reflect-precheck.js&lt;/code&gt; short-circuited &lt;strong&gt;100%&lt;/strong&gt; of reflect invocations — zero LLM calls for the entire month. On the noisiest, it still handled 87%. Across the fleet, ~94% of reflects never hit the model. The cheap script does more cost work than any model-routing decision could.&lt;/p&gt;




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

&lt;p&gt;Hermit is open-source.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;claude plugin marketplace add gtapps/claude-code-hermit
claude plugin &lt;span class="nb"&gt;install &lt;/span&gt;claude-code-hermit@claude-code-hermit &lt;span class="nt"&gt;--scope&lt;/span&gt; project
/claude-code-hermit:hatch
/claude-code-hermit:docker-setup
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Repo and full README at &lt;a href="https://github.com/gtapps/claude-code-hermit" rel="noopener noreferrer"&gt;github.com/gtapps/claude-code-hermit&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>claudecode</category>
      <category>ai</category>
      <category>showdev</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
