





Like Claude Tag, but local.
Run an always-on Claude Code agent on your own machine, for you or your team.
Start and orchestrate sessions from chat in any project it can reach. Take over the same session in the Claude app or the CLI. Tasks, saved watches, and pending decisions survive a restart.
Connect Discord, Telegram, iMessage, or a custom Claude Code channel. Use the Claude app via Remote Control, or your terminal.
The agent has its own browser (agent-browser). Take over and Hand back when you want, for example a login. Or use Chrome on your laptop, including when the agent runs on another machine.
Give it ongoing responsibilities: maintain research, monitor systems, run routines, and follow up on unfinished work. Between requests, it checks those responsibilities, carries progress across sessions, and reaches you when something needs attention.
Run it on your Claude subscription and extend it with your own MCP servers, skills, and plugins.
It's Claude Code. hermitd is a plugin for Claude Code, no new harness, no wrapper around Claude Code. You get all of Claude Code.
Set up
Choose one installation method below. Run it from the folder where you want your agent, empty or existing. Uses your Claude subscription on Linux, macOS, or Windows via WSL2. See prerequisites.
Already run Claude Code? Install the plugin
With Claude Code 2.1.322+ and Bun 1.4+ installed:
claude plugin install hermitd --marketplace gtapps/hermitd --scope local
claude "/hermitd:hatch"
Fresh machine? Use the bootstrap installer
Prepares Claude Code, Bun, and tmux, installs the plugin, and launches setup:
curl -fsSL https://gtapps.github.io/hermitd/install.sh | bash
Both options set up the agent in this folder. Hatch guides you through the agent’s purpose and preferences, then shows how to start it. Choose Quick for defaults you can adjust later.
Keep it running
After setup, follow the printed next steps to start your agent.
On your machine
Run in a persistent tmux session:
hermitd start
Requires tmux. The watchdog recovers failed sessions while your machine stays on. Claude Code's /sandbox is recommended for unattended use. To connect a chat, run /hermitd:channel-setup as directed by the setup handoff.
Host setup and operations
In Docker
Run the guided setup in Claude Code:
/hermitd:docker-setup
Builds and starts the container, then walks you through authentication and channel pairing. Requires Docker Compose v2.
Docker setup
Customize the container. Ask the agent to add tools, packages, or services to its Docker setup. For example: “Add ffmpeg to the container.”
Optional Docker security controls cover local-network access, DNS policy, resource limits, and plugin installation auditing.
What the plugin adds
-
Continuity. Persistent working state and archived session handoffs carry progress across compaction and restarts. An external watchdog recovers failed sessions, while context management keeps long-running sessions manageable.
-
Proactive work. Heartbeats regularly check the responsibilities you give the agent. Routines run scheduled work, and watches surface changes. Together, they let the agent follow up without waiting for another request.
-
Work through chat. Assign work and receive results in your connected chat. Longer assignments get threaded progress updates, with a separate reply when the agent needs a decision. Assignments can also carry a persistent task record with requester, due date, result confirmation, and a dashboard view by person.
-
Your network. Local databases, SSH, LAN devices, filesystem are reachable because the agent runs where they are.
-
Token efficiency. With Claude Code’s Monitor, heartbeat checks and optional routine prechecks run outside the model. Quiet checks and skipped routines use no model tokens; eligible routines due together can share a wake.
-
Lasting knowledge. Turn source material in raw/ into maintained knowledge in compiled/, alongside Claude Code's auto memory. /recall searches past sessions, knowledge, proposals, and captured channel conversations.
-
Learning from experience. The agent reviews evidence from its work and operation, saves useful lessons, and verifies proposed behavior changes before bringing them to you for approval.
-
Control and visibility. Track progress, pending decisions, and usage through the dashboard. Pause is enforced at the tool boundary, and optional usage caps can alert you or pause further work.
Part of your project channel. With passive mode, the agent saves incoming group messages to look back on later, and wakes when someone you allow @mentions it. It also remembers instructions for that channel. Fixed policies you set for a chat change only through an approval prompt, and an optional scheduled review proposes rule updates when the same correction keeps coming up.
Work that belongs to a chat. Routines, watches, and reminders created from a chat report back to that chat. A team chat lists and edits its own routines, and changing one it does not own asks for approval. Third-party channel plugins can join in: a small send script gives them proactive notices and routine chats, and Docker approves them for you.
Configure
Tune from a terminal with /hermit-settings, or change permitted settings from a trusted connected chat. Every write is validated and recorded in a redacted audit ledger; /hermit-settings history [setting] shows what changed. Some of the settings available:
| Key | Default / options (default bold) |
|---|
agent_name | your assistant's name |
operator_profile | primary-chat audience: technical / non-technical |
timezone | detected during setup; fallback UTC |
language | detected during setup; fallback en |
escalation | how much it does before asking: conservative / balanced / autonomous |
model | session model: sonnet |
effort | session reasoning effort: unset (Claude Code default) |
permission_mode | how freely the unattended agent acts: auto |
AGENT_HOOK_PROFILE | guardrail profile: minimal / standard (interactive) / strict (always-on) |
channels | Discord / Telegram / iMessage / third-party channel plugins (+ allowed_users) |
channels.primary | which channel gets outbound pings |
channels.<name>.maintainer_channel_id | optional separate chat for technical alerts, diagnostics, and usage details |
push_notifications | native/mobile push on alerts: true |
remote | remote control; false also requires approval for cross-machine peer messages; true |
ask_gate | route unattended questions to a paired channel: true |
budget | optional daily / weekly / monthly caps; alert or binding pause action |
artifacts | dashboard / weekly review: dashboard enabled |
heartbeat.enabled | timed idle sweeps: true |
heartbeat.every | idle sweep cadence: 30m |
heartbeat.active_hours | active window: 08:00–23:00 |
heartbeat.model / heartbeat.effort | heartbeat evaluator: haiku at high |
routines | persistent routines managed via /hermit-routines |
monitors | persistent background watches managed via /watch |
scheduled_checks | session-triggered skills at task completion |
reflection.graduation_min_sessions | proposal recurrence bar: 1 |
quality_gate.tier | post-change cleanup spend: budget / balanced / quality |
knowledge.compiled_budget_chars | fresh/resumed startup catalog budget: 2500 |
knowledge.raw_retention_days | raw/ retention: 14 |
knowledge.working_set_warn | warn above N compiled docs: 20 |
auto_session | auto-start session on boot: true |
boot_skill / shutdown_skill | custom boot / teardown skill |
context_hygiene.clear | safe-boundary context clear: enabled, quiet 1h, max age 24h, minimum 20,000 tokens |
context_hygiene.compact | compact long-running active context: enabled, 100000 compactible tokens / 4h cooldown |
CLAUDE_AUTOCOMPACT_PCT_OVERRIDE | auto-compact at % of context: 65 |
MAX_THINKING_TOKENS | thinking-token cap per turn: 10000 |
watchdog.scheduler_enabled | OS scheduler for the watchdog tick: true on tmux always-on (auto-installed at boot); false or hermitd-watchdog uninstall opts out |
watchdog.enabled | recovery/restart tier: false until first scheduler registration (or /docker-setup); hygiene still runs |
Full schema in the Config Reference
Your own prompt. Replace the agent's built-in prompt and rules with .hermit/resident-prompt.md, and spawned helpers' with .hermit/helper-prompt.md. Delete the file to return to the shipped prompt. See Replacing the resident prompt.
Observe
Artifacts. The agent uses Claude Code Artifacts to provide an interactive dashboard and custom pages generated on demand that you can view, interact with, and share. Ask it to build your own personalized agent dashboard.
Ask for an update from your terminal or connected chat:
| Command | What it gives you |
|---|
/brief | Current status and a summary of recent work. |
/recall | Search past sessions, knowledge, proposals, and captured conversations. |
/hermit-health | Alerts, routines, channels, blockers, and recent learnings. |
/hermit-doctor | Diagnostics for the installation, runtime, scheduling, credentials, and permissions. |
/hermit-evolution | Cost trends, proposal activity, routines, and what the agent has produced over time. |
/cost-reflect | A breakdown of usage by token type, session, and what triggered the work. |
/hermit-dashboard-design | A dashboard designed around what your agent actually tracks. |
Learning loop
The agent reviews evidence from its work and operation. Durable lessons go to memory. When skill learning is enabled, completed work can save or revise reusable skills automatically. Other proposed behavior changes are verified, deduplicated, and brought to you for approval.