MCPInstall

oh-my-hermes-workflow

Install and configure Oh My Hermes workflow layer for building, shipping, and operating apps with Hermes Agent

Installs
193
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/reason-machines/hermes-skills --skill oh-my-hermes-workflow
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads oh-my-hermes-workflow automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

oh-my-hermes-workflow

Skill by ara.so — Hermes Skills collection.

Oh My Hermes is an opinionated workflow layer for building, shipping, and operating apps with Hermes Agent. It provides 23+ curated skills that enable Hermes to autonomously handle the complete software lifecycle — from requirements clarification to production deployment and monitoring.

What Oh My Hermes Does

  • Full Project Lifecycle: Takes projects from idea to production with autonomous workflows
  • Autonomous CTO Loop: Hourly issue triage, implementation, security review, and deployment approval flow
  • Multi-Agent Orchestration: PM, Dev, QA, Security, and Ops agents working together via Kanban
  • Persistent Memory: Hermes remembers project context, requirements, and decisions across sessions
  • Integration Layer: Connects Hermes with Claude Code, Codex, Vercel, Supabase, GitHub, Sentry

Installation

Prerequisites

  1. Install Hermes Agent first: Follow Hermes quickstart
  2. Configure messaging: Set up Telegram, Slack, Discord, or WhatsApp gateway
  3. Verify Hermes is running: Test by messaging your Hermes bot

Install Oh My Hermes

# One-line install
curl -fsSL https://raw.githubusercontent.com/salomondiei08/oh-my-hermes/main/install.sh | bash

# Or clone and install manually
git clone https://github.com/salomondiei08/oh-my-hermes /tmp/oh-my-hermes
bash /tmp/oh-my-hermes/install.sh

Bootstrap a Project

# Navigate to your project directory
cd /path/to/your/project

# Run bootstrap script
bash /tmp/oh-my-hermes/scripts/bootstrap.sh

# Verify installation
bash /tmp/oh-my-hermes/scripts/verify.sh

Message-Based Setup (Recommended)

Once installed, message your Hermes bot:

set up the CTO loop

Hermes will guide you through:

  • GitHub repository configuration
  • Fine-grained token creation
  • Production URL setup
  • Webhook configuration
  • Monitoring setup

Key Skills

Oh My Hermes provides 23+ skills loaded into ~/.hermes/skills/:

Onboarding & Planning

onboarding

# Trigger in Hermes chat
"walk me through setting up oh my hermes"

Guides full setup in chat — no terminal required.

clarify-requirements

# Trigger in Hermes chat
"start a new app"
"clarify requirements for this project"

Asks 7 structured questions, saves answers to Hermes memory.

product-brief

# Trigger after clarify-requirements
"generate the product brief"

Creates PRODUCT_BRIEF.md from requirements.

design-handoff

# Trigger in Hermes chat
"convert my design to implementation spec"

Transforms design notes into technical specifications.

Implementation

choose-engine

# Trigger in Hermes chat
"implement this feature"

Routes tasks to Hermes, Claude Code, or Codex based on complexity.

implement-with-claude-code

# Invoked by choose-engine for complex multi-file tasks
# Scaffolds Claude Code with:
# - Full project context
# - Scope constraints
# - Security guardrails

implement-with-codex

# Invoked by choose-engine for single-file fixes
# Quick targeted edits

Deployment

deploy-to-vercel

# Trigger in Hermes chat
"deploy to vercel"
"ship this to production"

Example workflow:

  1. Pre-deploy checks (secrets scan, build validation)
  2. Deploys to Vercel
  3. Captures preview/production URL
  4. Runs health checks
  5. Notifies via configured channel

connect-supabase

# Trigger in Hermes chat
"connect supabase"
"set up database"

Handles:

  • Database linking
  • Migration pushing
  • Environment variable configuration in Vercel
  • Connection validation

Monitoring

setup-monitoring

# Trigger in Hermes chat
"set up monitoring"

Configures:

  • Sentry error tracking
  • Uptime Kuma health checks
  • Alert webhooks

health-check

# Runs automatically every 15 minutes
# Manual trigger:
"run health check"

Validates:

  • /api/health endpoint response
  • Supabase connectivity
  • Vercel deployment status
  • Response times

GitHub Integration

manage-github-issues

# Trigger in Hermes chat
"triage github issues"
"create issue for bug in login"
"close issue #42"

create-github-pr

# Automatic during implementation workflow
# Includes:
# - Secret scan before PR creation
# - Conventional commit messages
# - Linked issue references

auto-issue-triage

# Runs hourly via cron
# Scores issues by:
# - User impact
# - Business priority
# - Technical debt
# Picks top priority and starts implementation

review-github-pr

# Automatic when PR is ready
# Provides:
# - Diff analysis
# - Security checks
# - Plain-English summary
# - Preview URL validation

security-review

# Runs on every PR
# Weekly supply chain audit
"run security review on PR #12"

Checks:

  • Secret scanning (no API keys, tokens)
  • OWASP top 10 vulnerabilities
  • CVE audit of dependencies
  • Supply chain security (weekly)

Configuration

Environment Variables

Create .hermes/config.env:

# GitHub Integration
GITHUB_OWNER=your-username
GITHUB_REPO=your-repo
GITHUB_TOKEN=${GITHUB_TOKEN}  # Fine-grained token with repo access

# Deployment
VERCEL_TOKEN=${VERCEL_TOKEN}  # Vercel API token
VERCEL_PROJECT_ID=${VERCEL_PROJECT_ID}
VERCEL_ORG_ID=${VERCEL_ORG_ID}

# Database
SUPABASE_URL=${SUPABASE_URL}
SUPABASE_ANON_KEY=${SUPABASE_ANON_KEY}
SUPABASE_SERVICE_KEY=${SUPABASE_SERVICE_KEY}

# Monitoring
SENTRY_DSN=${SENTRY_DSN}
UPTIME_KUMA_URL=${UPTIME_KUMA_URL}
UPTIME_KUMA_TOKEN=${UPTIME_KUMA_TOKEN}

# Notifications
SLACK_WEBHOOK_URL=${SLACK_WEBHOOK_URL}
TELEGRAM_BOT_TOKEN=${TELEGRAM_BOT_TOKEN}
TELEGRAM_CHAT_ID=${TELEGRAM_CHAT_ID}

# Production
PRODUCTION_URL=https://yourapp.com

Hermes Memory Configuration

Oh My Hermes stores project context in Hermes memory at:

~/.hermes/memory/
  ├── requirements.json      # From clarify-requirements
  ├── product-brief.md       # Generated brief
  ├── kanban-state.json      # Current task status
  └── deployment-log.json    # Deployment history

Kanban Configuration

The autonomous loop uses a simple Kanban:

Backlog → In Progress → Review → Done

Stored in ~/.hermes/memory/kanban-state.json:

{
  "backlog": [
    {"id": "issue-42", "priority": 8, "title": "Fix login redirect"}
  ],
  "in_progress": [
    {"id": "issue-39", "assigned": "dev-agent", "started": "2026-05-16T10:00:00Z"}
  ],
  "review": [
    {"id": "pr-12", "reviewer": "security-agent", "checks": ["secret-scan", "owasp"]}
  ],
  "done": [
    {"id": "issue-38", "completed": "2026-05-15T14:30:00Z", "deployed": true}
  ]
}

Real-World Workflows

Start a New App from Scratch

Message your Hermes bot:

Start a new app called TaskFlow — a Kanban board for small teams

Hermes will:

  1. Load clarify-requirements skill
  2. Ask 7 questions about your app
  3. Generate PRODUCT_BRIEF.md
  4. Run choose-engine to decide implementation approach
  5. Implement the app
  6. Deploy to Vercel
  7. Set up monitoring

Implement a Feature

Message your Hermes bot:

Add Google OAuth login to the app

Hermes workflow:

  1. Creates GitHub issue
  2. Dev Agent implements
  3. Security Agent scans for secrets
  4. QA Agent validates build and preview
  5. Sends you approval message:
PR #15 — Add Google OAuth login

What changed: Users can now sign in with Google.
Added /api/auth/google endpoint and callback handler.

Build: passing | Preview: healthy (200ms) | No secrets found
Preview: https://taskflow-oauth.vercel.app

Reply YES to ship. Reply NO and tell me why.
  1. You reply YES
  2. Merges, deploys, health-checks, confirms

Manual Deployment

# From your project directory
cd /path/to/your/project

# Message Hermes:
"deploy to vercel"

# Or run skill directly (if configured)
hermes run deploy-to-vercel

Security Audit

# Message Hermes:
"run security review on main branch"

# Hermes will:
# - Scan for hardcoded secrets
# - Check dependencies for CVEs
# - Run OWASP checks
# - Generate report

Health Check

# Message Hermes:
"check if production is healthy"

# Hermes validates:
# - Production URL responds
# - Database is connected
# - API endpoints work
# - Response times are acceptable

Autonomous CTO Loop

Once configured, this runs every hour automatically:

┌─────────────────────────────────────────┐
│  GitHub Issue Opened (#42)              │
└───────────┬─────────────────────────────┘
            │
            ▼
┌─────────────────────────────────────────┐
│  PM Agent (auto-issue-triage)           │
│  - Scores issue: priority 8/10          │
│  - Moves to Backlog                     │
└───────────┬─────────────────────────────┘
            │
            ▼
┌─────────────────────────────────────────┐
│  Dev Agent (implement)                  │
│  - Moves to In Progress                 │
│  - Writes code                          │
│  - Creates PR #12                       │
└───────────┬─────────────────────────────┘
            │
            ▼
┌─────────────────────────────────────────┐
│  Security Agent (security-review)       │
│  - Secret scan: PASS                    │
│  - OWASP check: PASS                    │
│  - CVE scan: PASS                       │
└───────────┬─────────────────────────────┘
            │
            ▼
┌─────────────────────────────────────────┐
│  QA Agent (review-github-pr)            │
│  - Build: passing                       │
│  - Health check: 180ms                  │
│  - Plain-English summary written        │
│  - Moves to Review                      │
└───────────┬─────────────────────────────┘
            │
            ▼
┌─────────────────────────────────────────┐
│  Notification Sent (YOU on Telegram)    │
│  "PR #12 ready. Reply YES to ship."     │
└───────────┬─────────────────────────────┘
            │
     ┌──────┴──────┐
     │             │
     ▼             ▼
  ┌─────┐      ┌──────┐
  │ YES │      │  NO  │
  └──┬──┘      └───┬──┘
     │             │
     │             ▼
     │      ┌────────────────┐
     │      │ Dev Agent      │
     │      │ iterates on    │
     │      │ your feedback  │
     │      └────────────────┘
     │
     ▼
┌─────────────────────────────────────────┐
│  Ops Agent                              │
│  - Merges PR                            │
│  - Deploys to production                │
│  - Runs health check                    │
│  - Confirms live URL                    │
│  - Moves to Done                        │
└─────────────────────────────────────────┘

Common Patterns

Goal-Oriented Sessions

Use /goal command to keep Hermes focused:

/goal Build a working MVP of TaskFlow with Google OAuth, deploy to Vercel, and set up monitoring — all within the next 2 hours

Hermes will:

  • Break down the goal into sub-tasks
  • Execute each step autonomously
  • Check in with you at key decision points
  • Persist progress across interruptions

Custom Skill Creation

Create project-specific skills:

# Message Hermes:
"create a new skill for automated database backups"

# Hermes will:
# - Use create-skill meta-skill
# - Generate skill template
# - Save to ~/.hermes/skills/db-backup.md
# - Make it available for invocation

Skill structure:

---
name: db-backup
description: Automated Supabase database backup to S3
triggers:
  - "backup the database"
  - "create db backup"
---

# db-backup

## What it does
Creates timestamped backup of Supabase database and uploads to S3.

## Prerequisites
- Supabase CLI installed
- AWS credentials configured
- S3 bucket created

## Steps
1. Export database: `supabase db dump -f backup.sql`
2. Compress: `gzip backup.sql`
3. Upload: `aws s3 cp backup.sql.gz s3://my-backups/$(date +%Y%m%d-%H%M%S).sql.gz`
4. Verify upload
5. Clean up local files
6. Notify completion

## Configuration
- S3_BUCKET=${S3_BUCKET}
- SUPABASE_PROJECT_REF=${SUPABASE_PROJECT_REF}

Scheduled Tasks

Configure cron jobs in ~/.hermes/cron.d/:

# Hourly issue triage
0 * * * * hermes run auto-issue-triage

# Daily deployment report
0 9 * * * hermes run daily-report

# Weekly security audit
0 2 * * 0 hermes run security-review --full-audit

# Every 15 minutes health check
*/15 * * * * hermes run health-check

Integration with Claude Code

When a task requires deep multi-file editing:

# Message Hermes:
"refactor the authentication system to use sessions instead of JWT"

# Hermes workflow:
# 1. choose-engine analyzes complexity
# 2. Determines Claude Code is needed
# 3. Scaffolds Claude Code session with:
#    - Full project context
#    - Relevant files identified
#    - Scope constraints
#    - Security requirements
# 4. Claude Code performs refactor
# 5. Hermes reviews changes
# 6. Creates PR for your approval

Troubleshooting

Hermes Not Loading Skills

# Verify skills directory
ls -la ~/.hermes/skills/

# Re-run installer
bash /tmp/oh-my-hermes/install.sh

# Check Hermes logs
tail -f ~/.hermes/logs/hermes.log

GitHub Integration Failing

# Verify token has correct permissions
# Required: repo (full), workflow, admin:repo_hook

# Test token manually
curl -H "Authorization: Bearer ${GITHUB_TOKEN}" \
  https://api.github.com/repos/${GITHUB_OWNER}/${GITHUB_REPO}

# Reconfigure in Hermes chat:
"reconfigure github integration"

Deployment Issues

# Verify Vercel token
vercel whoami

# Check environment variables are set
hermes run verify-env

# View deployment logs
vercel logs ${VERCEL_PROJECT_ID}

# Manual health check
curl https://your-production-url.vercel.app/api/health

Monitoring Not Working

# Verify Sentry DSN
echo ${SENTRY_DSN}

# Test Uptime Kuma connection
curl ${UPTIME_KUMA_URL}/api/status

# Reconfigure monitoring
"set up monitoring again"

Autonomous Loop Not Running

# Check cron jobs are configured
crontab -l | grep hermes

# Verify Hermes daemon is running
ps aux | grep hermes

# Restart Hermes
systemctl restart hermes  # if using systemd
# or
hermes restart

# Check kanban state
cat ~/.hermes/memory/kanban-state.json

Advanced Configuration

Custom Agent Behavior

Modify agent behavior in ~/.hermes/config/agents.yaml:

agents:
  pm:
    issue_scoring:
      user_impact_weight: 0.4
      business_priority_weight: 0.3
      technical_debt_weight: 0.3
    auto_triage_frequency: "0 * * * *"  # Hourly
  
  dev:
    max_parallel_tasks: 2
    preferred_engine: "claude-code"  # or "codex" or "hermes"
    
  security:
    require_all_checks: true
    fail_on_secrets: true
    weekly_audit_day: "sunday"
    
  qa:
    health_check_timeout: 5000  # ms
    required_response_time: 1000  # ms
    
  ops:
    auto_merge_on_approval: true
    deployment_health_check_retries: 3

Notification Templates

Customize notification format in ~/.hermes/config/notifications.yaml:

templates:
  pr_ready:
    title: "PR #{pr_number} — {pr_title}"
    body: |
      What changed: {summary}
      
      Build: {build_status} | Preview: {health_status} ({response_time}ms)
      Security: {security_status}
      Preview: {preview_url}
      
      Reply YES to ship. Reply NO and tell me why.
    
  deployment_success:
    title: "✅ Deployed to production"
    body: |
      {project_name} v{version}
      URL: {production_url}
      Health: {health_status}
      Deploy time: {deploy_time}s

Best Practices

  1. Start with onboarding: Message "set up oh my hermes" — let the bot guide you
  2. Use /goal for focus: Keep long sessions on track with explicit goals
  3. Review security scans: Always check security-review output before merging
  4. Monitor health checks: Configure alerts for failed health checks
  5. Backup Hermes memory: ~/.hermes/memory/ contains valuable project context
  6. Version control skills: Commit custom skills to your repo in .hermes/skills/
  7. Test in preview: Always validate preview URLs before approving production deploys
  8. Keep tokens secure: Never commit tokens — use .env files and .gitignore

Integration Reference

Vercel

# Deploy
vercel deploy --prod

# Get deployment URL
vercel ls ${PROJECT_NAME} --json | jq -r '.[0].url'

# Set environment variable
vercel env add SUPABASE_URL production

Supabase

# Push migrations
supabase db push

# Get connection string
supabase db connection-string

# Run query
supabase db query "SELECT * FROM users LIMIT 1"

GitHub API

# Create issue
curl -X POST \
  -H "Authorization: Bearer ${GITHUB_TOKEN}" \
  -H "Content-Type: application/json" \
  https://api.github.com/repos/${GITHUB_OWNER}/${GITHUB_REPO}/issues \
  -d '{"title": "Bug in login", "body": "Description", "labels": ["bug"]}'

# Create PR
curl -X POST \
  -H "Authorization: Bearer ${GITHUB_TOKEN}" \
  -H "Content-Type: application/json" \
  https://api.github.com/repos/${GITHUB_OWNER}/${GITHUB_REPO}/pulls \
  -d '{"title": "Fix login", "head": "fix-login", "base": "main", "body": "Fixes #42"}'

Sentry

# Initialize
sentry-cli init

# Upload source maps
sentry-cli releases files ${VERSION} upload-sourcemaps ./dist

This skill enables AI coding agents to guide developers through installing, configuring, and using Oh My Hermes to build autonomous software development workflows with Hermes Agent.

FAQ

What does the oh-my-hermes-workflow skill do?

Install and configure Oh My Hermes workflow layer for building, shipping, and operating apps with Hermes Agent

How do I install oh-my-hermes-workflow?

Run npx skills add https://github.com/reason-machines/hermes-skills --skill oh-my-hermes-workflow in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/oh-my-hermes-workflow/ (personal) or .claude/skills/oh-my-hermes-workflow/ (project).

Which AI agents can use oh-my-hermes-workflow?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is oh-my-hermes-workflow safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains oh-my-hermes-workflow?

It is published by reason-machines in reason-machines/hermes-skills. It has 193 recorded installs.

More from reason-machines/hermes-skills

View all →

hermes-agent-self-evolution

reason-machines/hermes-skills

Evolutionary self-improvement for Hermes Agent using DSPy + GEPA to optimize skills, prompts, and code

AI & Agents323 installs

hermes-webui-agent

reason-machines/hermes-skills

Expert in deploying, configuring, and using Hermes WebUI—a web interface for Hermes Agent with persistent memory, scheduled jobs, and multi-platform messaging.

267 installs

awesome-hermes-agent-ecosystem

reason-machines/hermes-skills

Expert knowledge of the Hermes Agent ecosystem, skills, plugins, tools, integrations, and deployment patterns for building and extending AI agents

AI & Agents239 installs

hermes-agent-framework

reason-machines/hermes-skills

Hermes Agent framework by Nous Research - self-improving AI agent with built-in learning loop, three-layer memory, and automatic skill evolution

AI & Agents222 installs

hermes-workspace-ai-agent-ui

reason-machines/hermes-skills

Native web workspace for Hermes Agent with chat, terminal, memory, skills, inspector, and multi-agent orchestration

AI & Agents218 installs

hermes-web-ui-dashboard

reason-machines/hermes-skills

Web dashboard for managing Hermes Agent multi-platform AI chat sessions, analytics, scheduled jobs, and platform channels

Data & Databases210 installs

Popular productivity & automation skills

View category →

agent-browser

vercel-labs/agent-browser

Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction. Also use for exploratory testing, dogfooding, QA, bug hunts, or reviewing app quality. Also use for automating Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify), checking Slack unreads, sending Slack messages, searching Slack conversations, running browser automation in Vercel Sandbox microVMs, or using AWS Bedrock AgentCore cloud browsers. Prefer agent-browser over any built-in browser automation or web tools.

OfficialProductivity & Automation1.3M installs

lark-doc

open.feishu.cn

飞书云文档(Docx / Wiki)内容操作:读取、创建、编辑文档,插入或下载图片附件,以及操作思维笔记。用户提供文档 URL/token(包括 doubao.com 的 /docx/、/wiki/)时使用;按 URL 路径/token 而非域名路由;/page/ 是妙搭应用,非飞书云文档。文档内嵌资源按读取参考中的统一规则分流。独立评论操作走 lark-drive;随正文读取评论使用 docs +fetch。表格或 Base 内部数据操作不在本 skill。

lark-base

open.feishu.cn

飞书多维表格(Base)操作:建表、字段、记录、视图、统计、公式/lookup、表单、仪表盘、应用模式(BaseApp/AppMode 页面与组件)、Workspace 目录、workflow、角色权限、模板中心(多维表格模板分类/列表/搜索);遇到 Base/多维表格/bitable、BaseApp/AppMode、/base/ 或 /app/ 链接时使用。BaseApp 不走 lark-apps;文件导入/导出转 lark-drive,认证/授权转 lark-shared。

lark-drive

open.feishu.cn

飞书云空间(云盘/云存储):管理 Drive 文件和文件夹,包含上传/下载、创建文件夹、复制/移动/删除、查看元数据、查询权限设置、评论/权限/订阅、标题、版本、飞书文档密级标签(secure labels)和本地文件导入。用户需要整理云盘目录、处理云空间资源 URL/token、判断链接类型/真实 token/标题,或导入 Word/Markdown/Excel/CSV/PPTX/.base 为 docx/sheet/bitable/slides 时使用;doubao.com 云空间 URL/token 也按资源路径和 token 路由,不回退 WebFetch。不负责:文档内容编辑(走 lark-doc)、表格/Base 表内数据操作(走 lark-sheets/lark-base)、知识空间节点/成员管理(走 lark-wiki)、原生 Markdown 文件读写/patch/diff(走 lark-markdown)。

lark-shared

open.feishu.cn

Use for lark-cli setup/auth tasks: auth login/status/logout, user vs bot identity, business-domain permissions (--domain, including all/docs/drive), missing scopes, revoking authorization, or handling notice JSON.

lark-im

open.feishu.cn

飞书即时通讯:收发消息和管理群聊。发送和回复消息、搜索聊天记录、管理群聊成员、上传下载图片和文件、管理表情回复、发送应用内/短信/电话加急、发送和处理交互卡片(Interactive Card)、监听卡片按钮回调(card.action.trigger)。当用户需要发消息、查看或搜索聊天记录、下载聊天中的文件、查看群成员、搜索群、创建群聊或话题群、管理标记数据、管理 Feed 置顶(添加/移除/查询置顶会话)、管理标签数据、处理卡片回调时使用。