Agent skill

Hermes Starter Onboarding

by AtlasOmnia in AtlasOmnia/donna-starter

A skill your agent uses when a new Hermes profile needs guided first-run setup, identity choices, memory preferences, optional integrations, a step-by-step toolset walkthrough, web-search backend…

MITAuto-check: notesProductivity & Automation

Install Hermes Starter Onboarding

skills CLI
$ npx skills add AtlasOmnia/donna-starter --skill hermes-starter-onboarding -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install AtlasOmnia/donna-starter hermes-starter-onboarding --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/AtlasOmnia/donna-starter.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/hermes/hermes-starter-onboarding .claude/skills/hermes-starter-onboarding && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
hermes-starter-onboarding
GitHub stars
126
Token cost
~7k tokens
SKILL.md length
3,596 words
Files
1
Skills in repo
11
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when a new Hermes profile needs guided first-run setup, identity choices, memory preferences, optional integrations, a step-by-step toolset walkthrough, web-search backend…

  • Works in 4 steps: Inspect Before Changing Anything → Ask the Human Questions → Present the Setup Plan → …
  • A new Hermes profile needs guided first-run setup
  • SKILL.md covers Overview, When to Use, Operating Rules and Phase 0 — Inspect Before…, plus 7 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Hermes Starter Onboarding is an agent skill from AtlasOmnia/donna-starter. Use when a new Hermes profile needs guided first-run setup, identity choices, memory preferences, optional integrations, a step-by-step toolset walkthrough, web-search backend setup, or recurring daily briefing, wellness check-in, and stock-quote jobs. Plan the setup conversationally, obtain approval, apply only the selected changes, and verify every result.

Its SKILL.md is about 7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Productivity & Automation, covering Web search. The repository describes itself as: Donna — a starter Hermes Agent profile: opinionated persona, 73 curated skills, guided first-run orientation, optional Token Router. MIT. The licence is MIT.

When your agent uses it

  • A new Hermes profile needs guided first-run setup
  • Identity choices
  • Memory preferences
  • Optional integrations

Example prompts

  • “/hermes-starter-onboarding”

Requirements

  • Python 3

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Inspect Before Changing Anything
  2. Ask the Human Questions
  3. Present the Setup Plan
  4. Apply and Verify

What it can do on your machine

Read from SKILL.md and the folder at commit a3710bd. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are python and bash).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Hermes Starter Onboarding loads about 7k tokens when it runs. Until then it costs about 97 tokens; SKILL.md has 3,596 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~97
When it runs · the whole SKILL.md, loaded when a task matches
~7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:204
    - **API keys live in `.env`, not config.yaml.** A profile reads its own `~/.hermes/profiles/<name>/.env` first, then fal
  • NoteMentions a .env fileSKILL.md:205
    or have them run `hermes setup` / edit `.env` themselves. Read-only confirmation that a key is *present* (e.g. `hermes

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from AtlasOmnia/donna-starter at commit a3710bd, republished under its MIT licence (© AtlasOmnia). 3,596 words, ~7,005 tokens.

Download SKILL.mdSave it as .claude/skills/hermes-starter-onboarding/SKILL.md (or your agent's skills folder).
name
hermes-starter-onboarding
description
Use when a new Hermes profile needs guided first-run setup, identity choices, memory preferences, optional integrations, a step-by-step toolset walkthrough, web-search backend setup, or recurring daily briefing, wellness check-in, and stock-quote jobs. Plan the setup conversationally, obtain approval, apply only the selected changes, and verify every result.
version
1.0.0
author
Hermes Agent
license
MIT
platforms
linux, macos, windows
metadata.tags
hermes, onboarding, setup, integrations, tools, memory, cron, daily-briefing, health, stocks
metadata.related_skills
hermes-agent, hermes-mnemosyne

Hermes Starter Onboarding

Overview

Use this skill to turn a blank or lightly configured Hermes profile into a setup chosen by its owner. The workflow is conversational and consent-gated: learn the user's identity and priorities, recommend a small capability bundle, show the proposed changes, apply only what the user approves, and verify the result.

This is a capability planner, not a blind installer. A Hermes toolset exposes a capability, a skill provides operating instructions, a plugin or MCP server provides an integration, and a desktop application such as Obsidian is a separate dependency. Explain that distinction in plain language when it matters.

The setup must work for a public starter profile. Never assume the user's name, location, timezone, businesses, accounts, vault paths, tickers, health history, credentials, or preferred assistant name. Ask instead.

When to Use

  • A new user starts a Donna or other Hermes starter profile.
  • The user says "set me up," "configure my assistant," "what tools should I enable," or asks what Hermes can connect to.
  • The user wants to choose memory, notes, browser, terminal, voice, calendar, reminders, email, or other integrations.
  • The user asks to add or change a daily briefing, daily wellness check-in, recurring health reminder, or stock-quote schedule.
  • The user asks to review or change an existing starter setup.

Don't use for:

  • Installing Hermes itself or repairing the Hermes runtime; use hermes-agent.
  • Diagnosing an already configured integration; load the matching integration or troubleshooting skill.
  • Making medical decisions, diagnosing symptoms, or monitoring an emergency.
  • Placing trades, giving personalized investment advice, or treating a quote as a trading signal.
  • Creating a cron job from an incomplete request when the delivery destination, schedule, or content would be ambiguous.

Operating Rules

  1. Ask one small group of related questions at a time. Do not present a forty-item questionnaire.
  2. Start with the user's goals, then recommend capabilities. Do not ask users to choose toolset names they have never seen.
  3. Explain what will happen before it happens. No installation, account connection, credential request, or persistent cron creation without explicit approval.
  4. Never ask the user to paste a password, API key, OAuth code, payment information, or private token into chat. Use the provider's official setup flow and pause at the credential gate.
  5. Read-only discovery is allowed before approval when it does not access private account content. Do not silently read connected accounts, note vaults, calendars, mailboxes, or health records.
  6. Keep setup choices local to the active profile. Do not edit another Hermes profile or global configuration unless the user explicitly requests that scope.
  7. After a persistent toolset or provider change, tell the user whether a new session or gateway restart is required. Do not claim a new tool is available until a fresh-process check confirms it.
  8. A cron job runs in a fresh session with no current-chat context. Every LLM-driven cron prompt must be self-contained.
  9. Run the orientation in the live session — do not delegate it to a sub-agent. Onboarding is a conversation: each answer shapes the next question, and the setup actions (a config set, a toolset toggle) are instant. Spawning a sub-agent to "set things up in the background" would sever that loop and add indirection, not reduce derailment. Keep it single-threaded and interactive.
  10. Do not put memory writes in cron prompts. Mnemosyne is provider-injected, not a toolset, and cron contexts intentionally skip Mnemosyne tools. Health responses must not be stored automatically.
  11. Never use enabled_toolsets: ["mnemosyne"]; that is not a valid configuration. Use the memory provider setup for memory and the cronjob tool for schedules.

Phase 0 — Inspect Before Changing Anything

Before proposing changes, inspect only the active profile:

  1. Use hermes config get onboarding if the CLI supports the key. If it is absent, do not treat that as an error; the profile can still use this skill.
  2. Use hermes memory status to identify the active memory provider and whether it is installed.
  3. Use hermes tools to view the current toolset selection. This is the supported interactive toolset configuration surface; do not hand-edit a nested toolset list merely to avoid the selector.
  4. Call cronjob(action="list") before creating any recurring job. Look for existing jobs with the same purpose, schedule, or name.
  5. If the user mentions a specific integration, inspect the installed skill inventory with skills_list() or search the active profile's skills/ directory. Do not assume that a desktop application or account is installed because a skill exists.

Report the starting state briefly. Do not dump credentials, full environment files, private account data, or the entire skill library.

Phase 1 — Ask the Human Questions

Use this order, adapting to answers already given.

Do not stop after the identity answers. Work through every group below in one continuous pass — Identity → Main jobs → Memory → Notes → Capability boundaries → Toolset walkthrough — feeding each answer into the next. Do not pause to ask "should I continue?" and do not wrap up after the first couple of answers. The setup plan comes at the end (Phase 2), not after the first question group. Completing only the identity questions is an abandoned onboarding, not a finished one.

Identity

Ask:

  • "What should I call you?"
  • "What would you like to call me?"
  • "Do you prefer concise, conversational, formal, or highly detailed replies?"

If the user skips a question, use a neutral default and say what was assumed. Store identity and style only in the active profile after approval; do not write them into the public package.

Main jobs

Ask what the assistant is mainly for. Offer plain-language choices:

  • Research and current web answers
  • Writing and documents
  • Personal organization and reminders
  • Notes and knowledge management
  • Coding and technical work
  • Local files and computer tasks
  • Voice conversations
  • Business or professional workflows

The user may choose more than one. All toolsets are already enabled by default in this profile, so the goal is to confirm what they'll use and peel back the rest — not to build up from nothing.

Memory

Ask whether the user already has a memory provider set up:

"Do you already have a memory provider configured — Mnemosyne, Honcho, Mem0, or something else — or should I set one up?"

  • If they have one (or want to pick their own): run hermes memory setup and let them authenticate through the provider's own flow. Do not switch providers silently.
  • If they don't (or are unsure): recommend Mnemosyne — it is the provider this profile's skills are written around (hermes-mnemosyne, mnemosyne-maintenance), it is profile-scoped and local-first, and it needs no external account. Offer to set it up:
    • enable profile memory with hermes config set memory.memory_enabled true and hermes config set memory.provider mnemosyne,
    • verify with hermes memory status.
    • Keep Mnemosyne data profile-scoped; do not expose it as a cron toolset.
  • If they prefer no persistent memory: disable it with hermes config set memory.memory_enabled false.

If Mnemosyne is unavailable on their install, report that exact status and offer the supported setup path (hermes plugins install mnemosyne or hermes setup plugins); do not invent a package name or installation command.

Notes and Obsidian

Ask:

"Do you already use Obsidian or another notes system?"

If yes, ask which system and, for Obsidian, which vault the user wants to connect. Do not read the vault before the user identifies and approves it. Check whether the corresponding skill is already present with skills_list().

  • If the skill is bundled, enable/use it; do not reinstall a copy.
  • If it is missing, show the exact skill name and ask before running hermes skills install <name>.
  • Installing or enabling a skill does not install the Obsidian desktop application.
  • Treat the vault path as private profile configuration, never as a package default.
Capability boundaries

Ask only about capabilities relevant to the user's goals:

  • Web research: web search and source retrieval.
  • Browser automation: website interaction; explain that browser access is broader than web search.
  • Local files: read and write files in approved locations.
  • Terminal: run local commands; explain that this is a higher-trust capability.
  • Voice: speech recognition and/or text-to-speech, subject to provider setup.
  • Calendar, reminders, email, or other accounts: connect only the specific service requested, with the user completing authentication.

For persistent toolset changes, use hermes tools rather than guessing a configuration key. For a one-off session, use the documented hermes chat --toolsets "web,terminal" form when appropriate instead of changing the profile.

Toolset walkthrough — confirm what's on, peel back what they don't need

Every CLI toolset is already enabled by default in this profile, so the profile works out of the box the way a fully configured reference setup does. The walkthrough is not an install step — it is a review: tell the user everything is already on, then walk each toolset in plain language and ask whether they want to keep it or turn it off. Peel back only what they decline; leave the rest enabled.

First, show the current state so the user sees that everything is on:

bash
hermes tools

Then walk the enabled set. For each, say what it's for and ask: "Keep <name> on, or turn it off?" Default to keeping it on if they're unsure.

ToolsetPlain-language purpose
webWeb search and fetching page content. Needs a search backend (below).
browserDrive a real browser: click, fill forms, log into sites. Broader than web.
terminalRun shell commands. Higher-trust; explain the risk before enabling.
fileRead and write local files.
code_executionRun Python for data work, calculations, multi-step scripts.
computer_useDrive the desktop GUI in the background (click apps, screenshots). macOS.
memoryRemember preferences and facts across conversations.
session_searchSearch past conversations.
delegationSpawn sub-agents for parallel or specialist work.
skillsLoad reusable procedures (the skills in this profile).
cronjobScheduled/recurring tasks (briefings, reminders).
todoTrack multi-step tasks within a session.
kanbanDurable multi-session task boards for longer projects.
image_genGenerate images from text. Needs an image backend/key.
video_genGenerate short video clips. Needs a video backend/key.
visionRead images the user shares.
ttsText-to-speech voice output. Needs a TTS provider/key.
videoAnalyze video files.
clarifyAsk the user structured multiple-choice questions mid-task.

Apply the approved adjustments through hermes tools — since everything starts enabled, this usually means turning off only the toolsets the user declined. Some toolsets only appear there when their dependency is present (an API key, a backend, a driver) — if a toolset the user wants is missing from the list, say so and move to its setup step rather than pretending it is enabled.

Web search backend (required for web to return results)

web needs a search provider. This is a global Hermes setting, not profile config — set it once and every profile uses it. Ask the user which they have:

  • Self-hosted SearXNG — private, free, no key. Ask for their instance URL, then configure the web-search backend to use it. Never hardcode or assume an instance address.
  • A hosted search API (Brave, Tavily, Exa, etc.) — ask them to complete the provider's own key flow; never take the key in chat.
  • Not sure — point them to hermes setup, which walks the search-backend choice interactively.

Verify with a real query afterward (e.g. web_search("Hermes Agent")) and confirm results come back before calling it working.

Provider / model

Confirm the model provider works end-to-end. The profile defaults to deepseek; if the user uses another provider, set it and run one real chat turn to confirm the key is valid. Do not ship or assume any specific API key.

Reusing providers the user already configured. Many newcomers ran hermes setup once before cloning this profile, so a working provider and API key may already exist in their default profile or global config. Ask first — "Do you already have a model provider working in another Hermes profile?" — and offer to bring it over instead of making them re-enter a key:

  • API keys live in .env, not config.yaml. A profile reads its own ~/.hermes/profiles/<name>/.env first, then falls back to the global ~/.hermes/.env. If the key is already in the global .env, this profile picks it up automatically — nothing to copy. Only add a profile-local .env when the user wants a different key for this profile than the global one.
  • Never ask them to paste the key into chat. Point them to where it already is, or have them run hermes setup / edit .env themselves. Read-only confirmation that a key is present (e.g. hermes auth list) is fine; do not print the value.
  • Provider/model selection is config, not a secret. Set hermes --profile donna config set model.provider <provider> and model.default <model> to match whatever already works, then verify with one real chat turn.
  • Copying provider settings between profiles is fine; copying credentials is not something the agent does for them. If they want the same custom-provider block (base_url, etc.) that exists in their default profile, walk them through re-adding it here with hermes config set rather than editing another profile's files — keeping with the rule that setup stays local to the active profile.
Show full SKILL.md (1,459 more words)Show less
Optional integrations with their own setup

Some capabilities need more than a toolset toggle. Offer each and pause at its credential/permission gate:

  • Voice (tts, and speech recognition if wanted) — needs a voice provider.
  • Image/video generation — needs the matching backend key.
  • Calendar / reminders / email — connect only the specific service requested, user completes auth.
  • Browser automation — needs a browser backend available on the machine.

Phase 2 — Present the Setup Plan

Before applying anything, show a compact plan in this shape:

text
Proposed setup

Identity:
- Call you: <name>
- Call me: <assistant name>
- Reply style: <style>

Capabilities:
- Enable: <plain-language capabilities>
- Leave off: <capabilities not selected>

Memory:
- <off / local persistent / selected provider>

Integrations:
- <Obsidian, calendar, reminders, voice, or none>

Scheduled jobs:
- <daily briefing / wellness check-in / recurring health reminder / stock quotes / none>
- Delivery: <origin chat or explicitly selected destination>
- Timezone: <timezone>

I will not install applications, connect accounts, or create recurring jobs until you approve this plan.

A clear response such as "yes," "apply it," or an equivalent approval is required before applying persistent changes. If the user changes one item, revise the plan and request approval again.

Phase 3 — Apply and Verify

Apply only the approved items, in this order:

  1. Identity and style in the active profile.
  2. Memory choice with hermes config set or hermes memory setup.
  3. Approved skill or integration setup, pausing at all credential and permission gates.
  4. Toolset selection through hermes tools if a persistent capability change is required.
  5. Existing cron inventory with cronjob(action="list").
  6. New or updated scheduled jobs using the templates below.
  7. A final readback and concise status report.

After each action, verify its actual result:

  • Config changes: read the relevant non-secret key back with hermes config get <key>.
  • Memory: run hermes memory status; if Mnemosyne is selected, verify the active profile's provider status and data location without printing secrets.
  • Skills: call skills_list() or hermes skills list and confirm the exact skill name.
  • Toolsets: reopen hermes tools or start a fresh session and verify the capability is present.
  • Cron: use cronjob(action="list") and confirm the exact name, schedule, prompt purpose, and delivery target. Do not treat a returned job ID alone as proof that a job will deliver.

If a change requires a new session, say New session required rather than pretending the current context has reloaded it.

Scheduled Setup Options

These are optional jobs. They are not created by default.

Daily briefing

Ask for:

  • Delivery time and timezone.
  • Whether it should run every day or weekdays.
  • Sections wanted: calendar/agenda if connected, reminders/tasks, weather if a location is provided, current news, local events, and/or selected stock quotes.
  • Delivery destination. Omit deliver for the normal origin destination; never guess a chat ID.

The briefing prompt must say:

  • Use only sources and integrations that are actually available.
  • Clearly label unavailable sections instead of fabricating them.
  • Cite or link current sources for news and market data.
  • Keep the result concise unless the user requests detail.
  • Do not expose account contents beyond the requested summary.

Example creation call after approval:

python
cronjob(
 action="create",
 schedule="0 8 * * *",
 name="Daily Briefing",
 prompt="""You are running the user's scheduled daily briefing. It is <weekday or every day> at <time> in <IANA timezone>. Produce a concise briefing with only these approved sections: <sections>. Use configured integrations only when they are available and authorized. Use web search for current news or weather only when needed, and include source links and the retrieval date/time. If a section is unavailable, say so plainly rather than guessing. Do not write memories or ask for credentials. Do not provide financial or medical advice. Deliver only the final briefing.""",
 enabled_toolsets=["web"]
)

Use enabled_toolsets=["web"] only when the user selected current web content. Add other toolsets only when the installed profile and the approved plan require them. If the user wants a calendar section but has not connected a calendar, create the briefing without that section or pause for explicit integration setup.

Daily wellness check-in

Offer this as a non-clinical check-in, not as medical monitoring. Ask for:

  • Delivery time and timezone.
  • Every day or weekdays.
  • Whether the message should ask about sleep, energy/mood, movement, hydration, or a user-supplied wellness goal.

Use a short, low-pressure prompt. Do not include the user's health history in the cron prompt. Do not automatically save replies to memory. If the user wants longitudinal tracking, ask separately for explicit consent and configure an appropriate health-tracking workflow in a normal session.

Example:

python
cronjob(
 action="create",
 schedule="0 9 * * *",
 name="Daily Wellness Check-In",
 prompt="""Send a short, supportive daily wellness check-in. Ask only about these approved topics: <sleep, energy, movement, hydration, or goal>. Keep it non-clinical and optional. Do not diagnose, prescribe, infer a condition, or claim to monitor the user's health. Do not write the response to memory. If the user reports an immediate danger or crisis, advise contacting local emergency services or an appropriate crisis/medical professional; do not attempt to manage the emergency. Deliver one concise check-in question or checklist."""
)

A health check-in should not use no_agent=True; it needs an LLM to phrase the message. It also should not use Mnemosyne tools from the cron context.

Recurring health reminder

If the user asks for a medication, appointment, exercise, hydration, or other health-related reminder, treat it as a reminder only. Ask for the exact wording, schedule, timezone, and destination. Do not infer medication names, doses, diagnoses, or treatment plans. The reminder must state only what the user explicitly supplied.

Example:

python
cronjob(
 action="create",
 schedule="<approved schedule>",
 name="Health Reminder - <neutral label>",
 prompt="Deliver this exact user-approved reminder: <exact wording>. Do not add medical advice, dosage instructions, or a diagnosis. If the user asks a medical question in response, answer only with general safety guidance and recommend a qualified clinician when appropriate."
)

Do not put sensitive details in a job name when a neutral label will work. The job definition is stored locally and may be visible to anyone who can read the profile's cron configuration.

Stock quotes

Ask for:

  • Exact ticker symbols and exchanges when ambiguity is possible.
  • Currency preference.
  • Delivery time and timezone.
  • Every day or weekdays.
  • Whether the quotes belong in the daily briefing or should be a separate message.

Validate the ticker list before creating the job. Do not infer a ticker from a company name when multiple listings are plausible; ask. Use web search or an explicitly configured market-data integration at run time. Every quote message must include the source, retrieval date/time, and whether the data is delayed. If a source is unavailable, report that rather than filling in a number.

Example:

python
cronjob(
 action="create",
 schedule="0 16 * * 1-5",
 name="Stock Quotes",
 prompt="""Provide the user's scheduled quote summary for these exact listings: <ticker/exchange list>. Use an available current web or market-data source. Report the quote, currency, source link, retrieval date/time, and any delayed-data notice. If any listing cannot be verified, say so and omit the number. Do not fabricate prices, predict movements, recommend trades, or present this as financial advice. Do not write memories or request credentials in the cron message. Deliver a concise table.""",
 enabled_toolsets=["web"]
)

Stock quotes may be attached to the daily briefing instead of creating a separate job. If the user selects both, ask whether they want one combined message or two scheduled messages; do not create duplicates.

Managing Existing Jobs

Before creating a job, call:

python
cronjob(action="list")

If an equivalent job exists:

  • Ask whether to keep, update, pause, or remove it.
  • Use the exact returned job ID when names are ambiguous.
  • Use cronjob(action="update", job_id="<id>", ...) for an approved change.
  • Use cronjob(action="pause", job_id="<id>") to stop delivery without deleting history.
  • Use cronjob(action="resume", job_id="<id>") to restart a paused job.
  • Use cronjob(action="remove", job_id="<id>") only after explicit approval because removal deletes the schedule.

After creating or updating a job, use cronjob(action="list") again. For a first-run smoke test, use cronjob(action="run", job_id="<id>") only when the user explicitly requests an immediate test; the real schedule is not proven until a completed execution appears in the cron history.

Cron schedules use the configured host/gateway timezone unless the deployment supports an explicit timezone field. If the user's timezone differs from the host timezone and the scheduler has no per-job timezone support, explain the limitation and convert only after the user approves the resulting local schedule. Never silently shift a reminder by hours.

Common Pitfalls

  1. Double onboarding: Hermes already has a built-in onboarding.profile_build: ask first-touch offer. Let that handle the consent-gated profile-build offer, then use this skill for capability and schedule choices. Do not create a second competing first-run identity interview. The internal onboarding.seen state is managed by Hermes; do not hand-edit it.

  2. Treating a skill as an application installer: A bundled Obsidian skill does not install Obsidian. Confirm the app and vault separately, and never read a vault before approval.

  3. Creating duplicate crons: Cron jobs run in fresh sessions and do not remember that a similar job was created earlier. Always call cronjob(action="list") first and compare purpose, schedule, and destination.

  4. Using memory in cron: Mnemosyne is not a valid toolset and is intentionally skipped in cron contexts. Do not promise that a wellness response was remembered. Offer an explicit normal-session tracking setup instead.

  5. Fabricating current information: Stock quotes, news, weather, calendar data, and market status are time-sensitive. Use an available source at run time, include source/time, and report unavailable data.

  6. Cron approval confusion: The starter profile may retain approvals.cron_mode: deny. That setting blocks dangerous commands in headless cron runs; it is not a reason to enable unsafe approval mode. Do not change it to approve merely to make a web-based briefing work.

  7. Credential leakage: Never place API keys, tokens, OAuth codes, or full account contents in a cron prompt, job name, response, skill file, or package artifact.

  8. Medical overreach: A daily health cron is a reminder or voluntary wellness check-in, not a clinician, emergency monitor, medication manager, or diagnostic system.

  9. Assuming the current session sees changes: Toolset and skill discovery can be cached. Verify with a fresh session or an explicit listing command before reporting the capability as active.

Verification Checklist

  • Identity and style choices were confirmed before being written.
  • No credentials, private account contents, health history, vault paths, or personal identifiers entered the public package.
  • Memory choice was explicitly selected and verified with hermes memory status.
  • Obsidian or other integrations were distinguished from their Hermes skills and configured only after approval.
  • Toolset changes used hermes tools or a documented one-off toolset override.
  • Each toolset in the reference walkthrough was individually accepted or declined by the user.
  • The web-search backend was explicitly chosen (SearXNG URL, hosted API, or hermes setup) and verified with a real query.
  • Toolsets that need a backend/key were not reported as enabled until their dependency was present.
  • Existing jobs were listed before any recurring job was created.
  • Daily briefing, wellness check-in, health reminder, and stock-quote jobs were created only when individually approved.
  • Every LLM-driven cron prompt is self-contained and does not depend on current-chat memory.
  • Health cron prompts are non-clinical and do not write memory.
  • Stock prompts require verified tickers, source links, timestamps, delayed-data notices, and no trading advice.
  • Post-change config, skill, toolset, and cron state were read back.
  • Any required fresh-session or gateway-restart gate was reported honestly.

© AtlasOmnia, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/hermes/hermes-starter-onboarding of AtlasOmnia/donna-starter.

Open the folder on GitHubat commit a3710bd

Compare with similar skills

Hermes Starter Onboarding next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Hermes Starter Onboarding compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Hermes Starter Onboarding this skillAtlasOmnia/donna-starter126—~7kAutomated safety check: NotesMIT
Brave Searchbadlogic/pi-skills2.6k5 repos~592Automated safety check: PassMIT
Enterprise AI Scenario MapMetaInFLow/Enterprise-ai-scenario-map-skill632—~1.8kAutomated safety check: PassMIT
Web Searchjjyaoao/HelloAgents3.2k1 repos~5.6kAutomated safety check: PassMIT
Ddg SearchTheSyart/claude-agent-examples4071 repos~493Automated safety check: PassNone
Local Web SearchuluckyXH/OpenMOSS1.3k—~392Automated safety check: NotesMIT

Similar skills

  • Brave Search

    badlogic/pi-skills

    Web search and content extraction via Brave Search API. An agent skill from badlogic/pi-skills.

    2.6k GitHub starsUsed in 5 repos~592 tokens
    Productivity & AutomationAuto-check passed
  • Enterprise AI Scenario Map

    MetaInFLow/Enterprise-ai-scenario-map-skill

    企业AI场景地图生成报告工具。通过 web-search 深度调研企业信息,按照V2.1标准模板生成结构化AI应用场景地图报告,包含企业画像、业务诊断、行业实践、AI场景全量表、实施路径等完整内容。

    632 GitHub stars~1.8k tokensUpdated 6 mo ago
    Productivity & AutomationAuto-check passed
  • Web Search

    jjyaoao/HelloAgents

    Implement web search capabilities using the z-ai-web-dev-sdk.

    3.2k GitHub starsUsed in 1 repo~5.6k tokens
    Productivity & AutomationAuto-check passed
  • Ddg Search

    TheSyart/claude-agent-examples

    Web search without an API key using DuckDuckGo Lite via webfetch.

    407 GitHub starsUsed in 1 repo~493 tokens
    Productivity & AutomationAuto-check passed
  • Local Web Search

    uluckyXH/OpenMOSS

    A skill your agent uses when the user asks for web search that should run via the local-160 Responses API with websearch tool (base URL like https://proxy.example.com, model gpt-5.2-codex(xhigh)).

    1.3k GitHub stars~392 tokensUpdated 3 mo ago
    Productivity & AutomationAuto-check: notes
  • Ask Search

    ythx-101/ask-search

    Web search via self-hosted SearxNG. An agent skill from ythx-101/ask-search.

    538 GitHub stars~332 tokensUpdated 6 mo ago
    Productivity & AutomationAuto-check passed

More from AtlasOmnia/donna-starter

All 11 skills in this repo
  • macOS Storage Management

    AtlasOmnia/donna-starter

    macos-storage-management — Use when freeing Mac storage or moving files to SSDs.

    126 GitHub stars~4.2k tokensUpdated 22 days ago
    Auto-check passed
  • Marketing Collateral Design

    AtlasOmnia/donna-starter

    marketing-collateral-design — Use when designing, recreating, critiquing, or exporting static marketing collateral such as flyers, social graphics, postcards, brochures, business cards, print ads…

    126 GitHub stars~4.2k tokensUpdated 22 days ago
    Auto-check passed
  • Hermes Self Evaluation

    AtlasOmnia/donna-starter

    hermes-self-evaluation — Use when the user asks to evaluate, audit, or optimize Hermes itself — analyzing session history, skill library, costs, and architecture to identify improvements, automation…

    126 GitHub stars~3k tokensUpdated 22 days ago
    Auto-check: notes
  • Skill Auditor

    AtlasOmnia/donna-starter

    skill-auditor — Use when auditing, reviewing, or grading Hermes skills for quality.

    126 GitHub stars~3.8k tokensUpdated 22 days ago
    Auto-check passed
  • Local Discovery

    AtlasOmnia/donna-starter

    local-discovery — Find local events, venues, and activities — ad-hoc web discovery when the user asks 'what's happening' or 'what should I do this weekend'.

    126 GitHub stars~3.1k tokensUpdated 22 days ago
    Auto-check passed
  • Cross Browser Typography QA

    AtlasOmnia/donna-starter

    cross-browser-typography-qa — Diagnose and verify web typography rendering defects across Chromium, WebKit, and native Safari, including clipped glyphs, broken descenders, wrapping, font metrics…

    126 GitHub stars~2.3k tokensUpdated 22 days ago
    Auto-check passed

Questions about Hermes Starter Onboarding

What does Hermes Starter Onboarding do?

A skill your agent uses when a new Hermes profile needs guided first-run setup, identity choices, memory preferences, optional integrations, a step-by-step toolset walkthrough, web-search backend…. Hermes Starter Onboarding is an agent skill from AtlasOmnia/donna-starter. Use when a new Hermes profile needs guided first-run setup, identity choices, memory preferences, optional integrations, a step-by-step toolset walkthrough, web-search backend setup, or recurring daily briefing, wellness check-in, and stock-quote jobs.

When should I use Hermes Starter Onboarding?

Hermes Starter Onboarding fits situations like: A new Hermes profile needs guided first-run setup; identity choices; memory preferences; optional integrations.

How do I install Hermes Starter Onboarding in Claude Code?

Run `npx skills add AtlasOmnia/donna-starter --skill hermes-starter-onboarding -a claude-code`. Or copy the skill folder (skills/hermes/hermes-starter-onboarding in AtlasOmnia/donna-starter) into .claude/skills/hermes-starter-onboarding in your project. Claude Code loads it when a task matches its description.

How do I install Hermes Starter Onboarding in Codex?

Run `npx skills add AtlasOmnia/donna-starter --skill hermes-starter-onboarding -a codex`. Or copy the skill folder (skills/hermes/hermes-starter-onboarding in AtlasOmnia/donna-starter) into .agents/skills/hermes-starter-onboarding in your project. Codex loads it when a task matches its description.

Can I use Hermes Starter Onboarding in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add AtlasOmnia/donna-starter --skill hermes-starter-onboarding -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/hermes-starter-onboarding, .gemini/skills/hermes-starter-onboarding, .github/skills/hermes-starter-onboarding and .opencode/skills/hermes-starter-onboarding in your project.

What does Hermes Starter Onboarding need to run?

SKILL.md names no scripts, command-line tools or credentials: Hermes Starter Onboarding is instructions for the agent only. Our summary lists: Python 3.

Does Hermes Starter Onboarding access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Hermes Starter Onboarding safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Hermes Starter Onboarding use?

Hermes Starter Onboarding is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Hermes Starter Onboarding use?

About 7k tokens (SKILL.md is roughly 28k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Hermes Starter Onboarding?

Skills that share tags, products or a category with Hermes Starter Onboarding: Brave Search (badlogic/pi-skills, 2.6k stars), Enterprise AI Scenario Map (MetaInFLow/Enterprise-ai-scenario-map-skill, 632 stars), Web Search (jjyaoao/HelloAgents, 3.2k stars) and Ddg Search (TheSyart/claude-agent-examples, 407 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Hermes Starter Onboarding?

AtlasOmnia (a GitHub user) maintains it in AtlasOmnia/donna-starter, which has 126 GitHub stars. The repository holds 11 skills in this directory. The repository was last updated on September 19, 2026.

Source: AtlasOmnia/donna-starter on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.