By gtapps
A personal assistant that lives in your project — memory-driven learning, daily rhythm, idle agency, and operational hygiene for Claude Code
Executes the hermit-evolve upgrade (steps 0–9) in an isolated context so the upgrade's transient churn (changelog slice, migration execution, file diffs) never lands in the calling session. Dispatched by the hermit-evolve skill via the Agent tool; returns a compact structured report.
Pre-creation gate for proposals — deduplicates, cross-references sessions/OPERATOR.md/compiled, and applies the three-condition rule. Accepts one or more candidates in a single call (a single candidate is a batch of one). Returns one verdict per candidate, matched by title: CREATE: <title> | SUPPRESS: <title> — <code>: <reason> ("<excerpt>") | DUPLICATE: <title> — <PROP-ID>: <reason>, plus additive metadata lines. Call before proposal-create and before queuing micro-proposals in reflect.
Post-processes reflect candidates — validates that cross-session evidence citations actually exist in S-NNN-REPORT.md before proposals or micro-approvals are queued. Returns ACCEPT | DOWNGRADE:<new-tier> | SUPPRESS per observation.
Generic isolated-context runner — executes the analysis spec named in its dispatch and returns the structured output that spec defines. Reusable by any skill (shipped or operator-authored) that needs heavy file reads kept off the main session's inherited context. The calling skill applies any side effects the spec defers to it.
Returns a 5-line executive summary of recent work. Checks active session first, falls back to latest report. Activates on messages like "brief", "what happened", "morning update", "overnight summary", "status", "progress", "what are you working on", "how's it going".
On-demand hermit-voice brainstorm — synthesizes memory, capabilities, recent artifacts, and codebase shape into at most 2 capability ideas, each gated by proposal-triage before becoming a PROP. Invoke when the operator explicitly asks to brainstorm capabilities or ideate, e.g. "brainstorm capabilities", "what could you be doing for me?", "any capability ideas?". Never runs autonomously.
Handles inbound messages from Claude Code Channels (Telegram, Discord, webhooks) with session context awareness.
Guided channel activation for local/tmux users — installs the plugin, configures the bot token in the project-local state dir, and walks through pairing. Run after hatch or hermit-settings to activate a configured channel.
The 'why is my bill high' skill: audits where spend goes across token categories (cache_read, cache_write, output, input) and per-session attribution. Invoke for questions like 'cost breakdown', 'which sessions are expensive', 'what's driving spend', or 'cold start costs'. Not for week-over-week trend lines (use hermit-evolution) or simple total-spend summaries.
Matches all tools
Hooks run on every tool call, not just specific ones
Executes bash commands
Hook triggers when Bash tool is used
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimnpx claudepluginhub p/gtapps-claude-code-hermit-plugins-claude-code-hermitBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Modifies files
Hook triggers on file write and edit operations
Modifies files
Hook triggers on file write and edit operations
Uses power tools
Uses Bash, Write, or Edit tools
Uses power tools
Uses Bash, Write, or Edit tools
Claude Code plugin that turns a Claude Code instance into a 24/7 AI assistant. Orchestrates, Self-improves, Pro-Active, Cost-aware, Observable, One Claude subscription, multiple hermits.
A hermit is a Claude Code session that doesn't end: It wires the native primitives (/loop, CronCreate, Channels, Monitor, Auto-memory, native Tasks, Sub Agents, etc) into an always-on agent that orchestrates, keeps its own state, routines, knowledge and reaches you on Discord, Telegram, or the Claude app when something needs a decision. It can run on your existing subscription, and one subscription runs several hermits.
# Install
claude plugin marketplace add gtapps/claude-code-hermit
claude plugin install claude-code-hermit@claude-code-hermit --scope local
# Boot Claude Code and run the setup wizard
/claude-code-hermit:hatch
# Go always-on
/claude-code-hermit:docker-setup
Just Claude Code and everything is yours to shape: channels (Discord/Telegram), MCP servers, routines, watches, the heartbeat checklist. Hermit adds persistence, a learning loop, and a quick setup to wire everything.
/loop behind a filesystem-only precheck so it stops paying the model every tick, sweeping your checklist for zero tokens.CronCreate jobs that expire in 7 days and fire in the machine's timezone: they self-rearm daily, run on your wall clock, and are managed by /hermit-routines./watch wraps Monitor streams that die with the session: it auto-starts from config (or plain language) and routes findings to your notifications, silent when quiet.raw/ → compiled/ knowledge base — domain outputs and living topic pages updated in place — re-injected as a catalog within a context budget at session start. Your Discord/Telegram DM text is also captured locally, so decisions made over chat outlive the thread: weekly-review distills them into memory (opt out with knowledge.channel_log_enabled: false). /recall searches across all of it.Tasks past session end, so the plan survives archives.deny patterns + sandbox per profile, locking the unattended agent down harder than the one you're watching.Sessions self-manage. Daemons auto-archive at 12h idle and at midnight when you're away, so evidence reaches the learning loop without a manual close. An external watchdog restarts dead sessions, nudges wedged ones, re-arms missed schedules, clears stale context after a midnight close, and compacts long-running context so cold wakes don't re-pay the full accumulated history — recovery never depends on the session being conscious.
It reaches you first. Notifications default to a native push (headless-friendly), or a Discord/Telegram DM you can reply to if you've paired a channel.
Cost scales with events, not time. Nothing wakes the model until something happens, so an idle hermit is effectively free.
A hermit watches what keeps going wrong across sessions, proposes a fix, and asks you yes or no. It won't propose the same thing twice.
At natural pauses — session end, idle ticks, scheduled cadence — it reflects. Most reflections never reach the model: a precheck script gates whether any phase (compute, resolution check, cost spike, digest, newborn) is actually due. When one is, two subagents vet the candidate before it reaches you:
Language-agnostic safety layer + dev conventions for any agent your hermit uses to write code
Fitness/training layer for claude-code-hermit — Strava MCP integration, activity analysis skills, and routine templates for an autonomous training assistant
Laravel Forge layer for claude-code-hermit — deploy, logs, server/site skills over the official Laravel Forge PHP SDK
Maintainer tool: file GitHub issues via a configured GitHub App bot identity. Pure Node stdlib, no dependencies.
Home Assistant layer for claude-code-hermit — skills, subagents, safety hook, and bun-powered CLI for an autonomous HA assistant
Language-agnostic safety layer + dev conventions for any agent your hermit uses to write code
Cron-like daemon that runs Claude prompts on a schedule
Stateful agent tools for Claude Code. Learns who you are, remembers what you're working on, schedules tasks, maintains itself.
Autonomous agent orchestrator for full development lifecycles with zero human input, session budget management, and crash recovery
A subconscious for Claude Code. A Letta agent watches your sessions, accumulates context, and whispers guidance back.
Cross-session Save/Load, and Ultrawork inspired by oh-my-opencode with Ralph Loops