All plugins

personal-assistant

A remote personal assistant for your agent: it does the errands up to the final page and stops at your yes. It interviews you once ("grill me": eight short sittings on your business, people, decision rights, preferences and calendar rules), remembers corrections, people, SOPs and trust levels in a local ledger, and never asks the same thing twice. Travel and errands on real sites in English, Japanese and Korean: restaurant tables (TableCheck, Tabelog, OpenTable, Catch Table), hotels and flights on Trip.com, taxis, food and konbini delivery, with sourced prices, an approval packet for each action and an honest handoff at a sign-in, OTP or app-only wall. Optional Chief of Staff mode adds a daily plan, a weekly closeout and a radar. Adds the pa and pa_call tools, the /pa command and 41 skills (the Chief of Staff ones load only in that mode). Disclosure — Keeps its records in a SQLite ledger in your profile (state/travel-ledger/travel.sqlite): trips, prepared actions, setup answers and the chat setup runs in, preferences, people, SOPs, trust levels, call cards and transcripts, task evidence and receipts; its shell ledger helper, which skills run for payment-readiness and connectivity records, also stores browser checkpoints (page URLs, session ids), budgets and which providers hold a card. Optional features add a delivery packet queue (full packets, including priority-mail excerpts, never pruned), Daily Ops config and state, and a client index (names, emails, domains). Owner-memory and evidence records refuse recognised card numbers and credentials, records written through pa pass a lighter pattern filter, helper and approval records are kept as given, and nothing is deleted automatically. After you approve a setup review or a Chief of Staff closeout it writes USER.md, a marked PA section of SOUL.md, an operating-manual skill (or an edit of your existing one) and any context file you name, holding your approved business, people, spending-limit and approver answers as plain text, and pins the manual with hermes curator pin; a trip export writes Trip.ics and Trip-Reference.md to a folder you choose; /pa mode writes the plugin's mode setting. A pre_tool_call hook sees every tool call and blocks only tools covered by a PA exact-action approval or its deny list, plus most tools while the ledger is unreadable; a pre_llm_call hook adds short notes to your own turns (setup offer and routing, and on a session's first turn, including another person's first turn in a shared chat, your preferences and people not yet in your files) and records which chat setup runs in. With your consent during /pa setup the agent reads USER.md, SOUL.md, its memory, the calendar, past itineraries, a context file you name and up to 20 recent sent emails (PA stores no raw mail); mail work you ask for reads messages and attachments and can write drafts (sending needs your yes); during a provider sign-in it may read your connected email or SMS for a link or code; accepted Chief of Staff jobs run scheduled turns that read PA's ledger and your USER.md or manual, may read your calendar and inbox, and search the web for your radar topics. The agent may add minimal private trip events to your calendar without asking each time, creates Kanban tasks for open commitments, and with your approval may adapt an existing brief cron job. Errands drive Hermes's browser tools on provider sites (Trip.com by default for flights and hotels, then airline or hotel sites or local sellers; reservation platforms, maps and guides for restaurants; another regional domain if blocked), in the local browser, agent-browser on Browserbase or another attended browser you configured, and provider sign-ins you give in chat are saved in the agent's credential lane and browser profile. What the agent reads and writes goes to your configured model provider as part of the conversation. Other network calls happen only when you ask or opt in: Browserbase (api.browserbase.com) with your BROWSERBASE_API_KEY and BROWSERBASE_PROJECT_ID, recording off for sessions PA creates, sessions kept alive up to 20 minutes, connect and live-view links visible to the model; PA holds no Google token and makes no Google API calls: the agent reads and writes calendars with the profile's own calendar tools, and Daily Ops reads them through the gog CLI (gog auth add stores gog's own credentials); parallel research subagents for SIM comparisons; Open-Meteo for an accepted trip watch; ElevenLabs read-only from the manual phone_poll command, with the declared ELEVENLABS_API_KEY read through Hermes's secret accessor; and opt-in Daily Ops (gog mail and calendar reads, with selected mail and calendar items sent to your model provider and email addresses aliased by pattern; Nominatim and OSRM through curl after geo consent; Stripe and Supabase CLIs after consent). Background work only after a yes: an accepted trip watch arms a HeartBeat 2.0 watcher that, once you allowlist it, runs a local PA script every 15 minutes for at most 14 days, and its notices wake an agent turn (a flight change may look up rebooking options, never book), plus optional check-in and arrival wakes; opt-in conversation delivery injects packets into one verified Telegram session as agent turns, with priority-mail excerpts not aliased; opt-in Daily Ops routines and an optional watchdog on the schedule you accept (every 20 minutes or less when leave-by alerts are on); accepted routine suggestions run a local precheck every 5 minutes (scripts stay in the profile's scripts/ folder); approved Chief of Staff follow-up wakes. Updates go through hermes plugins update; the version probe is read-only; developer eval scripts call model providers only when run by hand, with a token you pass in an environment variable (the optional lab judge runs the Codex CLI on its own sign-in), and PA code reads no saved login; the manual scripts/check_release.py reads this repo's GitHub releases through the gh CLI's own sign-in. PA's skills stop bookings, payments, reservations, orders and cancellations at the final page for your explicit yes, and its pre_tool_call gate enforces exact-action approval for actions a PA workflow has scoped; nothing dials a phone. No telemetry. Full list: the README's "What it touches".

100yenadminAutomationv0.10.0Updated 3 hours ago

About

A remote personal assistant for your agent: it does the errands up to the final page and stops at your yes. It interviews you once ("grill me": eight short sittings on your business, people, decision rights, preferences and calendar rules), remembers corrections, people, SOPs and trust levels in a local ledger, and never asks the same thing twice. Travel and errands on real sites in English, Japanese and Korean: restaurant tables (TableCheck, Tabelog, OpenTable, Catch Table), hotels and flights on Trip.com, taxis, food and konbini delivery, with sourced prices, an approval packet for each action and an honest handoff at a sign-in, OTP or app-only wall. Optional Chief of Staff mode adds a daily plan, a weekly closeout and a radar. Adds the pa and pa_call tools, the /pa command and 41 skills (the Chief of Staff ones load only in that mode). Disclosure — Keeps its records in a SQLite ledger in your profile (state/travel-ledger/travel.sqlite): trips, prepared actions, setup answers and the chat setup runs in, preferences, people, SOPs, trust levels, call cards and transcripts, task evidence and receipts; its shell ledger helper, which skills run for payment-readiness and connectivity records, also stores browser checkpoints (page URLs, session ids), budgets and which providers hold a card. Optional features add a delivery packet queue (full packets, including priority-mail excerpts, never pruned), Daily Ops config and state, and a client index (names, emails, domains). Owner-memory and evidence records refuse recognised card numbers and credentials, records written through pa pass a lighter pattern filter, helper and approval records are kept as given, and nothing is deleted automatically. After you approve a setup review or a Chief of Staff closeout it writes USER.md, a marked PA section of SOUL.md, an operating-manual skill (or an edit of your existing one) and any context file you name, holding your approved business, people, spending-limit and approver answers as plain text, and pins the manual with hermes curator pin; a trip export writes Trip.ics and Trip-Reference.md to a folder you choose; /pa mode writes the plugin's mode setting. A pre_tool_call hook sees every tool call and blocks only tools covered by a PA exact-action approval or its deny list, plus most tools while the ledger is unreadable; a pre_llm_call hook adds short notes to your own turns (setup offer and routing, and on a session's first turn, including another person's first turn in a shared chat, your preferences and people not yet in your files) and records which chat setup runs in. With your consent during /pa setup the agent reads USER.md, SOUL.md, its memory, the calendar, past itineraries, a context file you name and up to 20 recent sent emails (PA stores no raw mail); mail work you ask for reads messages and attachments and can write drafts (sending needs your yes); during a provider sign-in it may read your connected email or SMS for a link or code; accepted Chief of Staff jobs run scheduled turns that read PA's ledger and your USER.md or manual, may read your calendar and inbox, and search the web for your radar topics. The agent may add minimal private trip events to your calendar without asking each time, creates Kanban tasks for open commitments, and with your approval may adapt an existing brief cron job. Errands drive Hermes's browser tools on provider sites (Trip.com by default for flights and hotels, then airline or hotel sites or local sellers; reservation platforms, maps and guides for restaurants; another regional domain if blocked), in the local browser, agent-browser on Browserbase or another attended browser you configured, and provider sign-ins you give in chat are saved in the agent's credential lane and browser profile. What the agent reads and writes goes to your configured model provider as part of the conversation. Other network calls happen only when you ask or opt in: Browserbase (api.browserbase.com) with your BROWSERBASE_API_KEY and BROWSERBASE_PROJECT_ID, recording off for sessions PA creates, sessions kept alive up to 20 minutes, connect and live-view links visible to the model; PA holds no Google token and makes no Google API calls: the agent reads and writes calendars with the profile's own calendar tools, and Daily Ops reads them through the gog CLI (gog auth add stores gog's own credentials); parallel research subagents for SIM comparisons; Open-Meteo for an accepted trip watch; ElevenLabs read-only from the manual phone_poll command, with the declared ELEVENLABS_API_KEY read through Hermes's secret accessor; and opt-in Daily Ops (gog mail and calendar reads, with selected mail and calendar items sent to your model provider and email addresses aliased by pattern; Nominatim and OSRM through curl after geo consent; Stripe and Supabase CLIs after consent). Background work only after a yes: an accepted trip watch arms a HeartBeat 2.0 watcher that, once you allowlist it, runs a local PA script every 15 minutes for at most 14 days, and its notices wake an agent turn (a flight change may look up rebooking options, never book), plus optional check-in and arrival wakes; opt-in conversation delivery injects packets into one verified Telegram session as agent turns, with priority-mail excerpts not aliased; opt-in Daily Ops routines and an optional watchdog on the schedule you accept (every 20 minutes or less when leave-by alerts are on); accepted routine suggestions run a local precheck every 5 minutes (scripts stay in the profile's scripts/ folder); approved Chief of Staff follow-up wakes. Updates go through hermes plugins update; the version probe is read-only; developer eval scripts call model providers only when run by hand, with a token you pass in an environment variable (the optional lab judge runs the Codex CLI on its own sign-in), and PA code reads no saved login; the manual scripts/check_release.py reads this repo's GitHub releases through the gh CLI's own sign-in. PA's skills stop bookings, payments, reservations, orders and cancellations at the final page for your explicit yes, and its pre_tool_call gate enforces exact-action approval for actions a PA workflow has scoped; nothing dials a phone. No telemetry. Full list: the README's "What it touches".

Personal Assistant Plugin

Personal Assistant is a persistent personal-operations layer for Hermes. It helps
an agent carry context, commitments, evidence, and follow-through across
conversations and workflows without replacing Hermes's provider tools,
credentials, scheduler, policy, or conversation runtime.

The plugin combines durable context, replay-safe actions, workflow
reconciliation, exact-action authorization, and optional evidence delivery.
Calendar, inbox, meetings, household administration, shopping, and travel are
domain workflows built on that shared foundation. Travel remains a supported
domain pack, not the product identity.

Where it is going: VISION.md sets the goal, a remote assistant at
the level of a top-rated human VA and then a remote Chief of Staff, and the bar
that measures it. ROADMAP.md sets the order of work.

What it does

  • Focused context: recover only the relevant trip, action, source, guide, or
    next action instead of replaying the entire ledger.
  • Durable follow-through: preserve action identity, source revisions,
    provider attempts, receipts, and reconciliation state across restarts.
  • Workflow state: register material events, claim required projections,
    record verified outcomes, and surface stale or unresolved work.
  • Provider safety: prepare, confirm, atomically claim, and reconcile a final
    action without treating a timeout as permission to submit again.
  • Exact-action authorization: an explicitly scoped PA workflow can bind one
    tool call to its complete arguments and trusted runtime identity. Ordinary
    unscoped calls remain under normal Hermes policy.
  • Daily operations: optional read-only brief, priority, evening, and account
    views over explicitly accepted sources.
  • Conversation evidence delivery: optional bounded delivery into one exact,
    existing conversation using a private durable queue and explicit host setup.
  • Domain workflows: calendar and meeting preparation, selected inbox and
    follow-up work, household administration, shopping and services, and travel.

Ownership model

User or PA workflow
        │
        ▼
Domain guidance
calendar · inbox · meetings · household · shopping · travel
        │
        ▼
Personal Assistant control plane
context · actions · receipts · state loops · freshness
        │
        ├── opt-in exact-action authorization
        └── optional conversation evidence delivery
        │
        ▼
Hermes-owned services
providers · credentials · scheduler · policy · conversations

Personal Assistant owns its durable records, source-revision history, claims,
receipts, and reconciliation state. Domain workflows own their business rules
and canonical destinations. Hermes owns provider integrations, authentication,
scheduling, normal tool policy, and conversation transport.

Recording state or possessing a credential never grants authority to send,
purchase, book, update a provider, or mutate another system.

Safe defaults

Installing the plugin does not:

  • enable the plugin;
  • create reminders or recurring jobs;
  • grant provider or conversation-injection permissions;
  • send email, change calendars, make purchases, or perform other provider actions;
  • enable Daily Ops or conversation delivery; or
  • establish provider authentication, runtime qualification, fleet approval, or
    customer readiness.

Daily Ops and conversation delivery are separately configured. Protected
provider actions retain their workflow-specific confirmation and readback
requirements. Unknown submission outcomes remain blocked until reconciled.

What it touches

What you would want to know before installing. Nothing on this list runs on install. Anything marked opt-in stays off until you configure it or ask for it.

Stored data. PA's main store is one SQLite ledger in your Hermes profile, state/travel-ledger/travel.sqlite. Its records cover:

  • trips, flight facts and prepared actions;
  • setup answers and setup state, including which chat setup runs in (platform, sender ID, chat and thread ID) and when the /pa setup offer was shown;
  • preferences, people, SOPs and trust levels;
  • call cards and call transcripts;
  • task evidence;
  • action receipts;
  • records that only the shell ledger helper writes: browser checkpoints (page URLs, Browserbase session IDs), payment readiness (budget, funds status, which providers have a card on file) and connectivity profiles (device model, region, trip countries, budget).

Optional features keep their own stores:

  • conversation delivery keeps a packet queue (queue.sqlite3) in the state folder you configure inside the profile. It stores each packet in full: for priority mail, the sender, subject, snippet and a body excerpt; for phone packets, the call content. Rows are never deleted automatically. The folder also holds a startup marker (gateway process ID and platform names) and a lock file;
  • Daily Ops keeps state/daily-ops/state.json, and reads daily_ops.config.json (account identities, calendar IDs, delivery destination, timezone, consent flags), which you create from the example;
  • client sync keeps clients.json, with client names, emails and domains.

Owner-memory and evidence records refuse recognised card numbers, credentials and labelled account numbers. Most other records written through pa pass a lighter filter that drops private fields and redacts some patterns. Approval records keep their metadata as given, for example an expected read-back reference. The shell ledger helper stores trip, action, checkpoint and payment-readiness fields exactly as given; only connectivity facts get a small keyword guard. These filters are pattern-based, not a guarantee.

Files the agent writes after your approval. After you approve a setup review, a /pa setup review or a Chief of Staff weekly-closeout proposal, the agent writes the approved changes to your USER.md, a marked PA section of SOUL.md, the operating manual and any context file you named. That context file can be outside the profile. The manual is a new operating-manual skill or, if you already have a skill for your briefs, inbox, calendar or travel, an edit of that skill, shown in the review first. These files hold what you approved as plain text: a summary of your business, confidential topics, key people and family, spending limits, a backup approver, past worries and which systems are in scope. No pattern filter runs on them; the skills tell the agent not to save credentials, card or account numbers, or raw mail. Setup then pins the manual by running hermes curator pin <name> through the shell when a terminal tool is available, and otherwise gives you that command. A trip export writes Trip.ics and Trip-Reference.md to the folder you choose. Nothing is deleted automatically: "forget" retires a record, and disabling the plugin erases nothing.

Hooks.

  • pre_tool_call sees every tool call. It blocks only a tool that a PA exact-action approval or the policy deny list covers. If the ledger cannot be opened, it also blocks most tools until storage is readable again.

  • pre_llm_call adds short notes to your own turns, which go to your model provider with the turn. They cover:

    • the one-time /pa setup offer;
    • setup, mode and "grill me" routing;
    • a one-time fresh-session check;
    • on a session's first turn, owner memory not yet in your files: active preferences and people (name, relationship, channel and rules; sensitive people by name only), plus forgotten entries still in your files, marked do-not-use. This happens on the first turn of any session in a chat Hermes lets the agent answer, so in a shared chat it can be another person's turn;
    • a note asking the agent to save a stated preference or correction in PA's owner memory instead of Hermes memory.

    It also records in the ledger which chat setup runs in and when the offer was shown. On cron, subagent and unattended turns it adds nothing, except a note that cancels a Chief of Staff wake while that mode is off.

Tools. pa (ledger operations), pa_call (call cards, an offline brief compiler and a loopback simulator; nothing dials) and the /pa command. pa_delivery_ack registers only when conversation delivery is enabled. Some skills also run PA's local ledger helper (skills/travel-ledger/scripts/travel_ledger.py) through the shell, for payment-readiness and connectivity records and as a fallback when the pa tool is unavailable. It reads and writes the same profile ledger.

Reads outside the ledger.

  • During /pa setup, with your consent, the agent:
    • reads USER.md, SOUL.md, its memory, the calendar, past itineraries and a context file you name;
    • lists your cron jobs and skills;
    • for the "grill me" profile, reads up to 20 recent sent emails through a mail read path you have already authorised, to learn tone and key contacts. PA stores no raw mail text; as with any tool result, what the mail read returns stays in Hermes's session history.
  • Inbox and travel-mail work you ask for reads messages and their attachments through the mail integration your agent already has, and can write drafts in your mail provider. Sending is a separate action that needs your yes.
  • While signing in to a provider during an errand, the agent may read your connected email or SMS to pick up a sign-in link or verification code, if those integrations are connected.
  • Chief of Staff jobs (opt-in, each accepted separately) run scheduled agent turns. These read PA's ledger and USER.md or the manual, and may read your calendar and inbox through integrations you have already authorised. The weekly closeout also searches the web for tools related to your saved radar topics.
  • For a trip import, the agent reads the .ics or guide file you give it with its own file tool and passes the text to PA; PA itself opens no file or URL.
  • Observer, precheck and mode reads use the profile's config.yaml. /pa mode also writes the plugin's mode setting there.
  • PA's own code reads Hermes's Kanban database and its cron job and suggestion stores.

Other changes the agent makes in Hermes and your calendar.

  • Calendar. During trip work the agent may add minimal private events (flight and hotel times, check-in and leave-for-airport reminders) through your agent's calendar tool without asking each time. Events with booking details, shared or work calendars, invites, and removing events for a cancelled booking need your yes.
  • Kanban. For errands with an open commitment (refunds, returns, renewal decisions, promised replies), the agent creates and updates a task on Hermes's Kanban board and stores its ID in the ledger.
  • Cron jobs. During setup the agent lists your existing brief and alert cron jobs. With your approval in the review, it may adapt or replace one so that each brief has a single publisher.

Your model provider. As with any Hermes tool, what the agent reads and writes during PA work (pages, mail, calendar items, ledger records, the notes the hooks add) goes to your configured model provider as part of the conversation.

Network, only when you ask or opt in.

  • Provider sites. Errands drive Hermes's browser tools on provider sites, for example a restaurant, hotel, airline or delivery site. When you don't name a provider, flight and hotel searches start on Trip.com and may move to the airline's or hotel's own site, or to local sellers such as Agoda or Rakuten, if Trip.com lacks the option, is worse or is blocked. Restaurant searches use reservation platforms, maps and local guides. A blocked site may be retried on another regional domain. The browser is the local one, agent-browser on a Browserbase session, or, if both fail, another attended browser you have configured, such as a Live Browser or VNC session. If you give provider sign-in details in chat, the errand skills save them in the agent's credential lane and signed-in browser profile, where available.
  • Browserbase (api.browserbase.com): only if it is configured. It is used when you ask for a cloud browser session, and the agent can also pick it during an errand you asked for, when a sign-in or verification step is likely or the site blocks the local browser. It uses your BROWSERBASE_API_KEY and BROWSERBASE_PROJECT_ID from the profile's secret scope. Sessions PA creates have recording and logging off, and are kept alive for up to 20 minutes or until PA releases them, billed to your Browserbase account. The session's connection and live-view links, which give control of that browser, and the open tabs' titles and sites pass through the agent and so to your model provider. They are not stored in the ledger. If you set Hermes's own browser to use Browserbase, Hermes creates those sessions itself, with Browserbase's default recording and logging settings.
  • Google Calendar: PA holds no Google token and makes no Google API calls. The agent reads and writes calendars with the profile's own calendar tools; Daily Ops reads them through gog.
  • The gog CLI: Daily Ops reads mail and calendar by running gog as a subprocess. Setting it up may involve gog auth add, which signs in and stores gog's own credentials. The Daily Ops doctor (python3 -m personal_assistant.daily_ops.doctor) checks gog's authorisation.
  • SIM and eSIM research: a comparison can run several parallel research subagents. These search provider sites and Reddit through other installed skills, use your configured model routes, and write research files outside the ledger.
  • Open-Meteo (geocoding and forecasts): only after you accept a trip watch. It receives your departure airport or city, then coordinates. It can be set to off.
  • ElevenLabs (api.elevenlabs.io, read-only): only from the manual python -m personal_assistant.phone_poll command. That command reads the declared ELEVENLABS_API_KEY through Hermes's secret accessor, or from the shell when Hermes is not importable.
  • Daily Ops (opt-in):
    • mail reads through the gog CLI, and calendar reads through gog. Selected mail (subjects, senders, snippets) and calendar items go to your configured model provider to write the brief, with email addresses replaced by aliases. The aliasing is pattern-based: an address in a non-ASCII form, such as 山田@example.com, passes through. The brief goes to your delivery target;
    • OpenStreetMap Nominatim and OSRM through curl, only after you give geo consent;
    • client sync through the Stripe and Supabase CLIs, only after you give consent.

Background work, only after a yes.

  • Trip watch. If you accept one, the agent arms a HeartBeat 2.0 watcher. Once you allowlist its command, the watcher runs scripts/pa_observe.py every 15 minutes and stops shortly after the trip, at most 14 days later. When it sees a flight, weather or trip change, it wakes an agent turn that sends you one short notice; for a flight change, that turn may look up rebooking options on Trip.com or the airline's site. It never books. If you agree, the trip watch also schedules one-off wakes at the check-in window and on arrival, each of which runs an agent turn.
  • Conversation delivery (opt-in). It runs one gateway background task, through a gateway startup hook you install yourself, that injects each packet as a message into one verified Telegram session; each packet runs an agent turn. Priority-mail packets carry the sender, subject, snippet, up to 4 KB of the body and a Gmail link, with no email-address aliasing, so that text goes to your model provider and appears in that Telegram chat. Its operator-run priority-mail collector reads Gmail through the gog CLI.
  • Daily Ops (opt-in). Accepted routines run a morning brief and an evening register. If you schedule the optional watchdog, it polls mail and calendar for priority threads and leave-by alerts on the schedule you accept; with leave-by alerts on, the config requires every 20 minutes or less.
  • Routine suggestions. Preparing a suggestion writes a small precheck script into your profile's scripts/ folder and adds a Hermes cron suggestion. Nothing runs until you accept it. An accepted routine runs its local precheck every 5 minutes and starts an agent turn only when something is due (the brief time, a Chief of Staff slot, or a due source or action). The scripts stay in scripts/ until you delete them. Turning Chief of Staff mode off removes PA's own Chief of Staff jobs.
  • Chief of Staff follow-ups. After you approve a specific follow-up, the agent schedules one HeartBeat 2.0 at wake in the same chat. That wake runs one agent turn to check whether a recommendation helped.

Developer and maintenance scripts.

  • The evals/ harness and the scripts/evaluate_* tools call the model provider (and, for the voice check, Fish Audio) only when you run them by hand. The plugin never loads them. They take the model token from PA_EVAL_CODEX_TOKEN, which you set; the lab's optional judge (--judge codex, its default) runs the Codex CLI, which signs in with its own login.
  • scripts/check_release.py reads this repository's GitHub releases through the gh CLI and its own sign-in, only when you run it. It downloads and runs no release assets; to compare versions it runs the read-only probe below.
  • scripts/probe_installed_version.py is read-only. It also checks the legacy ~/.openclaw folders for an older install and runs git on the plugin checkout.

Telemetry and approvals.

  • PA sends no telemetry.
  • PA's skills tell the agent to stop every booking, payment, reservation, order and cancellation at the provider's final page and ask for your explicit yes for that exact action. The pre_tool_call gate enforces exact-action approval only for actions a PA workflow has scoped; other tool calls stay under Hermes's own approval policy, and the gate cannot prove that a person typed the yes.

Chief of Staff

Chief of Staff helps turn your priorities into useful next actions. It is off
by default. Use /pa mode chief-of-staff on, then hermes gateway restart
and a new session. Run /pa setup chief-of-staff for six short questions about
priorities, radar topics, timing and schedules; review changes before saving.
/pa mode shows the mode. /pa mode chief-of-staff off removes PA CoS jobs,
dismisses pending CoS suggestions and pauses their rules. Assistant and Travel stay on.

Schedules need an explicit yes for each one, a verified current chat and separate
Hermes suggestion acceptance. cos_daily defaults to 09:30 local. The weekly
kickoff, cos_kickoff, defaults to Monday 11:00 local and reads the last closeout.
The weekly closeout, cos_weekly, defaults to Friday 15:00 local and includes radar.
Use /suggestions to review, then /suggestions accept personal-assistant-cos-daily,
/suggestions accept personal-assistant-cos-kickoff and/or
/suggestions accept personal-assistant-cos-weekly for your chosen schedules.
The assistant also gives each routine's exact command, /suggestions accept <id>. Use it whenever a routine was offered before, for example after Chief of Staff was turned off and on or after you asked for a removed routine again: the title can match the older record.
Enabling the mode starts no jobs. Five-minute prechecks respect quiet hours,
pause and snooze, with one report per local day or ISO week. A missed kickoff
catches up only until that week's closeout.

  • cos-daily: one useful action backed by evidence, or silence.
  • cos-kickoff: start the week with one focus, read from the last closeout, or silence.
  • cos-weekly: the weekly closeout; compare priorities and outcomes, record carry-over
    and propose one batch of improvements.
  • cos-scout: research adopt versus build for a current need, on demand.
  • cos-radar: offer at most one benchmark a week; book a slot only after approval.

These skills never install software, silently edit SOUL.md, USER.md or skills,
or send unapproved messages. Follow-ups use only owner-approved HeartBeat 2.0
at wakes in the same chat.

Quick start

After an approved installation and activation:

  1. Call pa(operation="status") to confirm the plugin responds and inspect
    durable state without changing it.
  2. Call pa(operation="capabilities") to discover integrations. Capability
    exposure is not authentication proof; verify a selected provider with one
    appropriate read-only call.
  3. Call pa(operation="recipes") and load only the qualified domain skill needed
    for the current request.
  4. Use pa(operation="context", data={...}) or
    pa(operation="next_action", data={...}) to recover focused state.
  5. For a provider-visible action, follow the selected workflow's confirmation,
    exact authorization where applicable, provider readback, and reconciliation
    contract.

The pa tool exposes setup for guided setup progress and generic state-loop operations:
event_upsert, projection_claim, projection_result, reconcile, and
freshness. See the state-loop contract.
browser_session creates Browserbase sessions, returns live view links for user handoff, and releases sessions.

trip_watch_plan plans trip check-ins and records agent-created pulse wake receipts.
trip_offer checks and records offer outcomes; load personal-assistant:trip-concierge.

Domain workflows

The built-in recipe router covers eight bounded areas:

  • trip intake, changes, and portable export;
  • assisted travel transactions;
  • refunds and returns;
  • calendar and meeting preparation;
  • briefs and reminders;
  • selected inbox and reply workflows;
  • household renewals and receipts; and
  • shopping and services.

Additional qualified skills provide travel execution, Browserbase continuity,
payment-readiness guidance, reservations, rides, food delivery, check-in,
weather, and itinerary support. These are optional domain modules over the same
PA control plane.

Installation

Install one reviewed full Git commit and leave it disabled while inspecting the
manifest and after-install.md:

hermes plugins install 100yenadmin/hermes-personal-assistant \
  --ref <40-character-approved-commit> --no-enable

Install the declared python_dependencies into that Hermes environment, then
enable personal-assistant through Hermes's native plugin controls after the
profile owner approves activation. Restart or reload only at an agreed idle
point. Verify pa and personal-assistant:personal-assistant discovery before
use.

Pinned revisions do not update automatically. A direct pinned install moves only
with hermes plugins install … --force --ref <approved SHA>. Some Hermes versions
replace the plugin folder, so copy PA's local configuration files out first and
put them back afterwards (see docs/release-process.md). For an isolated loader
check without profile or provider mutation, use scripts/check_pa_native.py.

Verification and rollback

Focused tests live in tests/; the full package, archive, release-contract, and
native lifecycle matrices run in GitHub Actions. Source and fixture success do
not establish live-provider or customer acceptance.

See provider proof levels for demonstrated preparation and honest handoffs.

To roll back, pause any explicitly configured jobs, disable the native plugin,
and preserve the ledger for re-enable, export, or approved restoration. Schema
changes are additive and retain legacy rows. Follow the bounded procedure in
after-install.md and
the release process.

Documentation

Start with the documentation index or the
canonical product overview.

Compatibility

The product and native plugin ID are personal-assistant. The archive/package
name travel-agent-skills, existing travel-qualified skill names, and profile
ledger path state/travel-ledger/travel.sqlite are retained compatibility
identities. Installation, upgrades, and rollback may depend on them; changing
them requires a separate migration rather than a documentation rename.

README from the reviewed commit 68016ef; it updates when the author re-pins.

More by 100yenadmin

11 plugins by 100yenadmin in the catalog.

100yenadminhermes-lcm-xLossless memory for long sessions: LCM-X keeps every turn in a local store instead of compacting it away, and the agent can search and expand it. The store is local SQLite (lcm.db) with a recoverable DAG of summaries over it and 16 lcm_* tools for search, recall and expansion (lcm_memory only with LCM_ENTITIES_ENABLED=1). Select it with context.engine: lcm-x. Upgrading from hermes-lcm (breaking in v0.24.0): stop Hermes, then in plugins.enabled replace hermes-lcm with hermes-lcm-x and run exactly one LCM copy (the install script prints the steps; the old engine name lcm still resolves with a deprecation warning); lcm.db and the lcm: config block are unchanged. Summaries use the model Hermes is configured with. Disclosure — local semantic recall is on by default once its dependency companion is installed (hermes plugins install electricsheephq/lcm-x/companions/hermes-lcm-x-local-embeddings --ref <the LCM-X commit>; it carries fastembed): summaries and message chunks are embedded in-process with BAAI/bge-small-en-v1.5 after a one-time model download, in the background, and stay on the machine. Without the companion, recall answers from full text and lcm_doctor prints the install command; on hosts with 2 or fewer effective CPUs the default answers from full text unless LCM_EMBEDDINGS_ENABLED=true; LCM_EMBEDDINGS_ENABLED=false turns semantic recall off. Cloud embedding providers (Voyage via VOYAGE_API_KEY, an OpenAI-compatible endpoint, or a local Ollama) send message text to that provider and run only with LCM_EMBEDDINGS_ENABLED=true and an explicit model. For known cloud providers the provider-bound copy is privacy-transformed by default (LCM_EMBEDDING_PRIVACY_ENABLED=false opts out), while lcm.db keeps the raw text. Every turn (user, assistant and tool output) is stored in plaintext in lcm.db (secret redaction at rest is opt-in); on gateway platforms the sender's platform user ID is recorded with each user message by default (LCM_SENDER_CAPTURE=0 turns it off), and oversized tool outputs are by default written as plaintext files under HERMES_HOME/lcm-large-outputs and replaced in the model's context by recoverable references. The engine also reads Hermes' state.db read-only for session lineage, reads private AIAgent attributes via the call stack on Hermes builds without subagent hooks, and runs git on its own install directory for lcm_status/lcm_doctor; tiktoken may fetch its BPE file on first use.Communitymemory116100yenadminfish-audioYour agent speaks and listens with Fish Audio: expressive voices in 80+ languages, voices you design from a sentence, and live word-by-word dictation. The official Fish Audio plugin: Fish's Drama 3 model with word-level direction, speech-to-text, Fish Audio's community voice library, voice cloning and voice design, with a Voices page in Hermes Desktop. Fish Audio becomes a Hermes speech and transcription provider for voice replies, read-aloud, voice notes and Desktop dictation, with sentence-by-sentence streaming in CLI voice mode and Desktop, and word-by-word live dictation captions on Hermes 0.21.6+ (stt.streaming: true). Adds the fish_speak, fish_voices and fish_transcribe tools, /fish and hermes fish commands, and four skills. Disclosure — sends your Fish API key and the text, audio (with file names) and voice titles, tags, descriptions, cover images and design instructions you ask it to process to api.fish.audio, or to the base_url you configure, and reads your Fish wallet for balances and model choice; with live dictation on, microphone audio streams to Fish's native realtime speech-to-text at api.fish.audio (transcribe-stream-1, Preview) while you speak, billed $0.36 per hour of open session, per second, including silence; a session opens with the first audio and closes once Fish confirms the last words (the plugin stops waiting after 15 seconds), or 30 seconds after the last audio of a cancelled recording; if a live session fails or returns no text, Hermes transcribes the recording as a file instead, a separate billed request; the live_transcription: compat setting uses Fish's older realtime endpoint instead, billed per committed phrase rounded up to a second; synthesis, transcription, cloning and voice design are paid requests billed to your Fish account, except the free s2.1-pro-free model (free through 30 November 2026), whose requests Fish may use to improve its models; when no model is set and your Fish wallet shows no API credit, free credit or past top-up, the plugin uses that free model (allow_free_model: false turns this off). The key comes from the profile's secret scope (Hermes stores it in the profile .env; a single-profile install may also read FISH_API_KEY from the environment). Generated audio and subtitles are written to Hermes's audio cache; clone samples, cover images and recordings it uploads must be regular audio or image files, and Hermes config, secret and credential paths are refused. Cloning and deleting voices from chat or the model tools go through Hermes's approval gate and follow your approval settings. The Desktop Voices page and a Fish Audio settings page add gateway routes under /api/plugins/fish-audio/, behind the Hermes dashboard's existing authentication. On the Voices page, previews, clones and voice designs are billed; cloning a voice or saving a designed one creates a voice in your Fish account; cloning and deleting are confirmed on the page (a speaker-consent box, a typed voice name) instead of through Hermes's approval gate; and Use sets the profile's Fish voice, and its speech provider when none is set. The settings page and the /fish and hermes fish commands can set or reset the profile's Fish model and voice and save up to 50 voice names in the profile's config; /fish use and hermes fish use also make Fish the speech provider when none is set, and given a voice title they search your own Fish voices for it, and hermes fish login sets the speech and transcription providers when they are unset or you confirm. Preview and design audio files are deleted from the gateway once returned; a design's audio is held in gateway memory so you can save it, until it is saved, a later design or save finds it over an hour old, or the gateway stops; clone uploads are deleted after the clone, or by the next upload once idle for 15 minutes. With a key set, Desktop reads your Fish wallet when an agent is selected and about every five minutes, for the status-bar credit; favourites stay in Desktop's plugin storage on that computer, and fetched previews stay in the window's memory until it closes. When you ask for a voice that fits the agent, the voice-studio skill reads the agent's SOUL.md or persona and sends Fish a one- or two-sentence voice description, never the whole persona. Includes a report-a-problem skill: when you report a problem with Fish Audio, the agent runs hermes fish doctor --no-synth, /fish status, hermes --version and hermes plugins list --json, reads recent Hermes log lines that mention Fish, searches this plugin's GitHub issues for a few key words, drafts a bug report and files it to this plugin's repository as a public GitHub issue or comment with your gh login only after you approve the exact text; reports leave out keys, credit amounts and voice ids not confirmed as public library voices, and security problems go to the repository's private advisory form instead. No telemetry.Communityvoice68100yenadminhermes-teammatesGive your agent a team: named subagents with their own instructions, tools and model, which it assigns work to, checks on and steers mid-task. The operator defines the roster; the agent follows up with a digest of earlier results and can work a Kanban teammates lane with a review handoff. Launches subagents only through the public ctx.subagent_lifecycle API. Stock Hermes; no patched core. Disclosure — adds six tools (teammates_roster, teammate_assign, teammate_check, teammate_wait, teammate_message, teammate_stop) and a /teammates command; the model picks only a teammate name, and the operator's config decides what it means. Teammates run as in-process Hermes subagents using credentials selected by Hermes from the parent, delegation settings or an operator-configured teammate route where supported. Toolsets narrow the parent's tools at toolset granularity only (the file toolset includes write_file and patch); Hermes can add inherited MCP toolsets back unless delegation.inherit_mcp_toolsets is false. A teammate with invalid settings refuses to launch. A delegated child cannot start teammates. Steering uses the lifecycle steer where Hermes provides it, otherwise delegate_task's steer action with the turn-bound parent. Under plugins.isolation: host every tool except the roster refuses. Optionally the roster is read from an operator-named YAML file (roster_file, relative to the profile home or absolute, so several profiles can share one); the plugin never writes it. It keeps a per-profile SQLite run ledger in its plugin-data folder (goals, statuses, clipped summaries, role hashes and available token receipts; no full transcripts). It does not read credential stores. Where supported in-process, subagent_start and post_api_request hooks collect token receipts for mapped child sessions. For a card assigned to its non-profile lane, it claims the card through the Kanban DB, heartbeats the claim and its worker, then moves the card to review without a reviewer, or blocks it on failure, a stop or an unavailable result; it never completes a card. On Hermes builds with plugin prompt sections it adds one short paragraph (under 600 characters) about the Kanban lane to new top-level session prompts. The paragraph is rendered from its settings, carries no conversation content, and is left out without a usable teammate, for delegated children and under host isolation. It runs one in-process monitor thread per run to retain finished results and, for lane runs, keep the claim alive; no network calls, child processes or self-updates of its own. Completion-notice code exists but never injects on current Hermes because the host cannot bind notices to the receiving session; use teammate_wait instead. Includes a report-a-problem skill: the agent drafts a bug report and files it to this repository with gh only after the user approves the draft.Communityautomation59100yenadminplan-modeClaude Code-style plan mode for Hermes: the agent explores and writes a plan, and edits nothing else until you approve it. It works on every interactive Hermes surface: /plan or /planmode on blocks mutating Hermes tools dispatched through pre_tool_call (writes outside .hermes/plans, terminal, code execution, delegation, MCP) while the agent explores, asks clarifying questions and writes a plan. The agent shows the complete plan, submits it with plan_mode(submit) and one approval card asks: approve and auto-accept edits, approve and review each file edit (when Hermes approvals are on, every write_file and patch then gets Hermes' approval prompt with its path and a preview), or keep planning; Other sends feedback, and the revised plan says what changed since the last revision. Once approved, it implements in the same turn and tracks todo_list progress. To change the plan yourself, keep planning, run /planmode edit, save, then /planmode show and /planmode approve; the text you were shown is saved as an approved snapshot, so later edits to the file do not change the approval. The classic profile (plan_profile: classic), approval_card: false and surfaces without a card use Hermes' own approval prompt (gateway buttons, the TUI/Desktop card, the CLI panel or /approve). When yolo or approvals.mode: off would auto-approve, it asks through clarify instead, so a person still decides. By default plans are compact and decision-complete, the lean profile asks at most three targeted questions (say "grill me" for more, or set questions: thorough for an interview before every plan, one decision at a time), the reply names any tool call plan mode blocked (Hermes itself shows none), and the agent does not commit unless asked (plan_style, plan_profile, questions, allow_commits and plan_skill settings). Classic CLI enforced on every supported Hermes; gateway, TUI and Desktop from Hermes v2026.9.24 (0.21.5), and refused on older builds; 0.21.6 or newer recommended, tested through 0.23.0. On the interactive classic CLI, Hermes' inline diff shows a new plan file in full, so the agent does not retype it (write_once). A report-a-problem skill drafts a bug report and files it with gh only after you approve the draft. Disclosure — plan-mode does not enforce Codex app-server exec/applyPatch or TUI /background and btw side agents. A plan is approved only on its approval card (a clarify question only the plugin issues and checks), through Hermes' own approval prompt, or with /planmode approve. It reads nine groups of internal Hermes seams for session identity, workspace, profile, skills.inline_shell and the classic CLI's inline diff, each guarded with a documented fallback. It creates .hermes/plans under the session working directory, reads plan files there, saves the approved text of an edited plan as a new file under .hermes/plans/approved, and keeps per-session state in plugin state. It adds a turn note while planning or executing, a ≤200-char system-prompt hint, and a one-line footer to short replies on chat platforms. When a turn ends while a submitted plan still awaits approval and no approval card was answered, it adds one line to that reply on any surface, whatever its length, saying how to approve (unless footer is off). When you pick "Always" on a plan approval or a per-edit review, Hermes core writes a plugin_rule:plan-mode entry to command_allowlist in config.yaml; each entry is keyed to one plan revision, so it cannot approve another plan. With allow_gateway_injection: true it queues one message to start work after a typed /planmode approve. On TUI, Desktop and hermes serve sessions (lean profile, plan_once) it reads the visible reply text from post_api_request while planning and saves its <proposed_plan> block as the plan file; if another plugin holds the stream to withhold commentary, that text can include the commentary it kept off screen (plan_profile: classic turns plan_once off, unless a custom levers list names plan_once or all). On the interactive classic CLI (lean, write_once) it checks that Hermes printed a newly written plan file in full, then tells the agent not to retype it. Its report-a-problem skill has the agent file to the plugin repository with gh only after the user approves the exact saved draft. The plugin itself makes no network calls, launches no subprocesses and has no self-updater.Communitytools48