Personal agent skills and subagents I use with Claude and Cursor. Some are highly specific to my own setup (like my Obsidian vault).
This repo uses the Claude Agent Skills format. Skills are folders containing a SKILL.md with YAML frontmatter and instructions. The description field tells AI agents when to load and apply the skill.
skill-name/
├── SKILL.md # Metadata + instructions
├── reference.md # Optional: detailed docs
└── supporting-file.md # Optional: additional context
Copy whatever looks useful into your own skills directory.
There are a couple of ways to do that, depending on your setup:
- Using an app like Claude? Every general-purpose skill is also packaged as a ready-made
.zipinzips/that you can download and drag straight into Claude.ai > Customize > Skills. Updates are manual: re-download the zip and drop in the new version. - Working in a coding agent or CLI (Claude Code, Codex, Cursor, Hermes…)? Install with the
skillsCLI — it also makes updating a one-liner:
bunx skills add nweii/agent-stuff
# or
npx skills add nweii/agent-stuffInstall a specific skill:
bunx skills add nweii/agent-stuff --skill [skill-name]Updating skills:
bunx skills updateTo update a specific skill, run skills add again with the same skill.
Skills under the Internal heading in the catalog below have metadata.internal: true set — they're personal workflows tied to my own setup (vault paths, tools, naming conventions). You can still install them, but expect to tweak SKILL.md to fit your own folders, tool stack, and conventions before they're useful. They're also excluded from the zips/ mirror, so as not to encourage dropping them in unmodified.
The skills CLI treats internal skills differently:
-
bunx skills add nweii/agent-stuff(no--skillflag) skips internal skills. To install one, name it explicitly with--skill [skill-name]. -
bunx skills updatesilently skips internal skills (you'll see "Failed to update" with no detail). To refresh an installed internal skill after a repo change, re-runaddwith--skill— it overwrites in place, and naming the skill installs it despite the internal flag:bunx skills add nweii/agent-stuff --skill [skill-name]
Auto-generated by scripts/update-catalog.py
- archive-conversation — Create analytical archival summaries of AI conversations, capturing intellectual journeys, key insights, and technical logs. Use when archiving, saving, or documenting a chat session.
- audit-transcription — Flag and propose corrections for likely mistranscriptions in auto-transcribed meeting notes or audio transcripts. Use when the user says 'audit this transcript', 'fix the transcription', 'find mistranscriptions', or shares a noisy Granola/Whisper output and asks for cleanup.
- claude-codex-dispatch — Use when handing work between Claude Code and Codex: dispatching a task, choosing terminal or desktop ownership, recovering or continuing dispatched work, and retrieving its result.
- code-testing — Plan, write, review, and maintain software tests. Use when building features or fixing bugs test-first with a red-green loop, writing or rewriting unit/integration/e2e tests, reviewing or auditing test quality, choosing what level of test to write, working with mocks and fixtures, or keeping an existing suite in mind while making code changes.
- commit — Create well-formatted commits with conventional commit messages. Use when user asks to commit, wants to commit changes, or needs help with commit messages.
- drafting-writing — Writing-partner processes that draw out the user's own writing through questioning: guided drafting sessions, fragment mining, shaping raw material into a piece, and phrase tightening. Use for help discovering, developing, and structuring writing (notes, essays, messages, etc).
- enrich-from-transcript — Enrich an existing meeting/interview note from its transcript, or scaffold one when only a transcript exists. Captures granular narrative, exact phrases, mechanics, casual context, and implicit signals. Run on thin auto-summary notes or transcripts that warrant close reading.
- extract-flow-scenario — Extracts a sequence of workflow events from conversation context into a structured markdown list. Surfaces actors, state changes, and pain points to serve as raw data for any later synthesis, design planning, or spec development. Use when asked to document an actual operational flow, user journey, or scenario from a conversation to capture exactly what happened.
- file-naming — Analyze file content and propose intelligent renames using context-aware naming conventions. Date-prefixed for transactional/periodic documents, content-first for creative works. Use for organizing files, cleaning up downloads, or standardizing filenames.
- obsidian-clis — Control Obsidian notes from the terminal via the
obsidianapp CLI, withnotesmd-clias a headless fallback. Covers CRUD, search, vault structure (orphans, backlinks, unresolved links), tasks, properties, Bases, and plugin dev. Use when the user mentions Obsidian CLI, notesmd-cli, or shell automation of vault notes. - obsidian-publish-customize — Customize an Obsidian Publish site through the publish.css and publish.js root hooks — theming with Publish CSS variables, and scripting the rendered page (injecting frontmatter blocks, nav, widgets). Use when editing publish.css/publish.js files, theming a Publish site, or working around Publish's undocumented client-side behavior. NOT for Publish usage, Obsidian desktop-app theming, or plugin development.
- obsidian-templater — Help with templates/snippets for the Obsidian Templater plugin. Use to help generate Obsidian templates from natural language, understand and debug existing tp.* snippets, and adapt vault notes and workflows to Templater when users mention Templater, tp.*, templater syntax.
- obsidian-web-clipper — Author and debug Obsidian Web Clipper extension templates: template JSON, variables, filters, template logic, schema.org/CSS selectors, AI interpreter prompts, URL/schema triggers. Use when generating, importing, or fixing a clipper template, or matching one to a target site. Not for general scraping.
- project-chronicles — Set up and maintain a two-track project documentation system: a working log (implementation decisions tied to code) and usage notes (durable product/process thinking). Detects existing structure and adapts rather than overwriting. Use when starting docs, writing a session log entry, or capturing project context for future sessions.
- quantify-impact — Surface measurable metrics and outcomes from a description of work via structured conversation. Use when the user says 'help me quantify this', 'what numbers can I attach to X', or is drafting a resume bullet, case study, or impact statement that needs concrete scale.
- raycast-extensions — Build Raycast extensions — commands, List/Form/Grid views, hooks like useFetch, AI integration, manifest. Use when the user says 'raycast extension', 'add a raycast command', or is working in a project with @raycast/api and a Raycast manifest.
- react-useeffect — React useEffect best practices. Use when writing Effects, derived values, or data fetching. Teaches when NOT to use Effects and better alternatives like useMemo or key props.
- semantic-compression — Compress wordy language or loosely expressed thinking into a smaller, sharper form without flattening its meaning. Use when revising an explanation, phrase, sentence, paragraph, concept, label, or coined term whose nuance, implication, or texture must survive the edit.
- set-note-description — Generate or update the description frontmatter property for a note. Selects Summary mode or Meta mode based on content type. Use when asked to create a description frontmatter summary for a note.
- spec-shaping — Shape product ideas into actionable specs and sprint plans. Use when interviewing about a product plan, breaking specs into sprints, or turning vague ideas into well-scoped work.
- suggest-lucide-icons — Pick Lucide icons for a concept, UI placement, or vault note. Searches the full Lucide catalog for real, verified icon names. Use when the user says 'what icon for X', 'suggest a Lucide icon', 'pick an icon', or needs an icon for note frontmatter, a button, or a section header.
- teach-me — Tutoring pass for understanding something deeply: a concept being learned, or work just done in the session. Locates where the learner is, teaches one step per turn, quizzes to verify, and continues until they can explain the material back and apply it. Can produce durable artifacts (a walkthrough of the work, a record of what was learned, a glossary) saved through whatever the environment supports. Use when the user wants to learn or understand something, or after substantive work to consolidate it; also via /teach-me.
- things-app — Read, capture, schedule, and update tasks and projects in Things 3. Prefer the
thingsCLI whenever there's command-line access to Things; otherwise use a connected Things MCP for headless or remote environments (full read + write, any device), thethings:///URL scheme (any device with Things, write-only), or email-to-Things for unattended capture. Use to add todos, build a project, show Today/Inbox, find tagged tasks, or schedule from desktop, phone, or a serverless routine. - tirith-config — Operate a tirith setup — the terminal command analyzer guarding against homograph URLs, ANSI injection, and pipe-to-shell exploits. Use when editing ~/.config/tirith/policy.yaml, debugging a blocked command, choosing between allowlist / tirith run / TIRITH=0 bypass, or verifying with tirith doctor.
- transcribe-audio — Transcribe audio or video to text with a locally-run speech-to-text model. Use when the user wants a transcript or captions from a recording, wants to run speech-to-text locally instead of a cloud service, or wants to set up or switch their local transcription model.
- update-changelog — Add or revise a project's Keep-a-Changelog-format changelog, including version bumps and change-type groupings. Use when the user says 'update the changelog', 'log this change', or 'bump the changelog' for a project or plugin.
- use-tailwind-v4 — Tailwind CSS v4 syntax and v3→v4 migration reference. Use when the user mentions 'Tailwind v4', 'upgrade Tailwind', @theme, @utility, or @import 'tailwindcss', or is working in a project whose config indicates v4.
- validating-startup-ideas — Find and validate startup ideas by mining user complaints, crafting premises, and navigating the idea maze. Use when discovering product opportunities, validating ideas, shaping solutions, researching user pain points, or exploring what to build.
- visual-keywords — Generate keyword strings for images, screenshots, or visual references — optimized for fuzzy search, not alt text or prose. Use when the user says 'keywords for this image', 'tag this for search', 'visual keywords', or wants searchable labels on an Eagle asset.
Personal workflows tied to my own setup (vault paths, tools, naming conventions). Installable, but expect to adapt SKILL.md to your own folders and conventions before they're useful.
- archive-to-brain — Save an archival summary of an AI conversation to Nathan's Obsidian vault, using the Thinking note template and vault folder conventions to capture intellectual journeys, key insights, and technical logs. Use when archiving a chat session to the vault.
- clip-skills — Save
bunx skillsterminal output (a manifest fromskills add/use <repo> -l) as a Repos note in the Brain vault under 03-Records/Snippets/Repos/. Use when the user pastes a skills listing and wants it captured. Triggers: '/clip-skills', 'save these skills', 'make a note for this skill repo'. - code-to-pantry — Extract a code pattern from the current codebase into Nathan's pantry repo as a reusable recipe. Use when Nathan says 'add to pantry', 'save this code pattern', or wants to preserve a technique for reuse.
- create-topic-note — Create a topic note grouping related notes under a common theme, with automatic backlinking to source notes. Triggers: 'group these under a topic', 'create topic note for [[A]], [[B]], [[C]]'.
- nweii-skills — Reference for Nathan's agent skills setup: the nweii/agent-stuff and nweii/agent-stuff-private repos, install/symlink mechanics, frontmatter and writing conventions, skill content craft, privacy tiers, and migrating local skills into a repo. Use when creating, editing, migrating, or installing skills in Nathan's environment.
- obsidian-granola — Sync meetings from Granola to Obsidian — pulls notes and transcripts and imports them as formatted meeting/transcript notes. Use when the user says "sync my last granola meeting", "note for my last meeting", or asks to pull in a Granola transcript.
- obsidian-log-commits — Fetches today's GitHub commits across personal and org repos, filters noise, and appends a summary as bullets into the ## Log section of today's daily note. Use when asked to log what was worked on today, check today's commits, or update the daily note with dev activity.
- obsidian-sync-people — Creates or enriches entity notes for people in /04-Entities/ from available context — current conversation, Granola meetings, Gmail threads. Use when someone is mentioned and worth noting, or when explicitly asked to create or update a person note.
- periodic-rollup — Synthesize child periodic note descriptions into a parent weekly/quarterly/yearly note. For history rollup (compiling mentions of a project/topic into a Histories note), follow references/history-rollup.md.
- save-napkin-note — Turn raw capture material into a properly structured Brain vault note (template, frontmatter, folder, links), or integrate a fragment into an existing note after confirmation. Use when filing a quick capture — triggers: 'save this as a note', 'file this', 'napkin note', 'process this dump'.
- save-term — Save a term, phrase, or coined concept as a Term note in the Brain vault under 02-Evergreen/Terms/. Two modes: capturing a nice term encountered in reading (with source quote) or recording one coined during conversation (with brief gloss). Triggers: '/save-term ', 'save this term', 'add this to my terms'.
- vault-recipes — Search, read, filter, combine, adapt, and save recipes in the Brain vault collection. Use whenever cooking and the collection are relevant — 'what should I make', 'recipes with miso', 'save this one' all imply it.
Claude Code subagents — copy the *.md into your own agents directory (not installed by bunx skills). See agents/.
- vault-reader — Read-only Obsidian vault exploration. Use proactively when searching notes, understanding vault structure, finding connections, or gathering context from a vault.
- vault-writer — Create and edit notes in an Obsidian vault. Use when the user wants to write, update, or organize notes. Follows vault conventions for metadata, linking, and structure.