Claude SkillsmacOS~/.claude/skills/

Claude Skills for Fazm means your skills folder is now shared with the Fazm Mac app

Fazm ships 17 Claude Skills inside the app bundle and, on first launch, writes them into the exact same ~/.claude/skills/ directory Claude Code already reads from. Every skill you author in one host immediately works in the other, and a SHA-256 checksum in the installer guarantees your edits survive upgrades. This is the literal list, the code that puts them there, and how to add your own.

F
Fazm
10 min read
4.9from Free Mac app, public source
17 bundled Claude Skills auto-installed to ~/.claude/skills/ on first launch
SHA-256 checksum in SkillInstaller.swift preserves your edits across upgrades
Skills directory is shared with Claude Code, so skills are portable both ways

Four numbers you can verify in one terminal command

These are not marketing. They are a directory count, a constant in one Swift file, and the format of the contract on disk. Clone Fazm, open the files, the numbers match.

0Claude Skills bundled with the Fazm app
0Registry lookups or npm installs for the bundled 17
0Bit SHA hash that protects your skill edits
0Shared directory: ~/.claude/skills/ (Fazm + Claude Code)

Sources: ls Desktop/Sources/BundledSkills/ and Desktop/Sources/SkillInstaller.swift.

The shared directory

0 bundled skills → 0 folder → 0 hosts

The 17 skills Fazm ships and any custom skills you author live under the same path on disk. That path is also where Claude Code looks for skills. You are not managing two separate skill libraries, even though you have two different agent surfaces (a terminal and a floating-bar Mac app).

Anchor fact: the SHA-256 checksum that protects your edits

Most apps that drop files into a user home directory either silently overwrite on upgrade or maintain an opaque state file. Fazm does neither. The installer computes a SHA-256 of the bundled SKILL.md and the installed SKILL.md on every launch. Equal hashes mean the file is left alone. Unequal hashes mean the bundled version has changed and the installed copy is refreshed, with a toast naming which skills were updated.

SHA-256

Compare checksums. Only overwrite if the bundled skill has changed.

Desktop/Sources/SkillInstaller.swift, inline comment in the per-skill install loop

Desktop/Sources/SkillInstaller.swift

The four lines that matter are the guard bundledHash != installedHash else short-circuit. Every app relaunch that does not pull a new Fazm build short-circuits on that line. Your fork of deep-research stays your fork.

The 17 skills, by category

Directly pulled from Desktop/Sources/BundledSkills/. Categories are the UI groupings Fazm uses during onboarding; they are not stored in the skill files themselves. Descriptions are shortened from each skill's frontmatter.

Personal

  • ai-browser-profile

    Queries your browser-extracted identity, accounts, tools, contacts, addresses, and payments so the agent can act as you without re-asking.

Productivity

  • google-workspace-setup

    One-time OAuth setup for Gmail, Calendar, Drive, Docs, Sheets, driven through the browser.

  • telegram

    One-time auth, then the agent can send and read Telegram messages for you.

Documents

  • docx

    Read, edit, and author .docx files with intact formatting, tables, and styles.

  • pdf

    Read, extract, split, merge, fill, and author PDFs. The default skill for anything PDF-shaped.

  • pptx

    Slide deck creation and editing end-to-end, not just text-to-slides.

  • xlsx

    Read, edit, and author .xlsx workbooks with formulas, sheets, and number formatting intact.

Creation

  • canvas-design

    Produces print-quality .png and .pdf visuals (posters, cards, one-pagers) from a design brief.

  • doc-coauthoring

    Co-writes documentation, proposals, and specs in a structured interview flow.

  • frontend-design

    Builds distinctive production-grade web components with opinionated typography and layout.

  • video-edit

    Transcript-driven cuts with ffmpeg to produce short-form edits from long-form source.

Research & Planning

  • deep-research

    Runs an 8-phase pipeline with source credibility scoring and triangulation; invoked only when the task is truly multi-source.

  • travel-planner

    Budget-aware itineraries, packing lists, and cultural notes; remembers your preferences across trips.

  • web-scraping

    Python-tooled scraping and extraction, preferring APIs over HTML when available.

Social Media

  • social-autoposter

    Cross-post and comment across Reddit, X, LinkedIn with thread discovery and engagement tracking.

  • social-autoposter-setup

    Interactive wizard that installs the poster, provisions the DB, wires up accounts.

Discovery

  • find-skills

    When you ask 'is there a skill for X', this one searches what is installed and suggests matches.

Directory listing as a marquee

Same 17 names, one line each, so you can scan them and see that the set is genuinely scoped to everyday Mac work (documents, browsing, social, research, travel) rather than developer plumbing.

ai-browser-profilecanvas-designdeep-researchdoc-coauthoringdocxfind-skillsfrontend-designgoogle-workspace-setuppdfpptxsocial-autopostersocial-autoposter-setuptelegramtravel-plannervideo-editweb-scrapingxlsx

How a skill gets from the app bundle onto your Mac

Five steps. There is no download step, no registry call, no shell-out to pip or npm for the bundled 17. They sit inside the app bundle and get copied to your home directory.

SkillInstaller on app launch

1

You launch Fazm

The Swift app starts up, brings up the floating bar on Cmd+\, and kicks off the skill installer on a background queue.

2

SkillInstaller walks BundledSkills/

Every *.skill.md file inside the app bundle is enumerated. 17 names come out. The target is ~/.claude/skills/<name>/SKILL.md.

3

SHA-256 hash compare, per file

For each skill, if the destination file exists, a SHA-256 of the bundled and installed copies is computed. Equal hashes mean 'skipped, up to date'.

4

Unchanged skills are left alone

If you edited the installed SKILL.md, its hash no longer matches the bundled hash; the installer skips it and your edits survive the launch.

5

Changed skills are updated with a toast

When a bundled skill has been updated in a new app version, the installer removes the old file, copies the new one, and shows 'Skill updated: <name>' in the UI so you are never surprised.

What it looks like in your shell after one launch

Open a terminal after installing Fazm. The folder is there, the skills are there, the format is there. Nothing about this structure is Fazm-specific, which is exactly the point.

Terminal

Portability between Fazm and Claude Code

The directory is shared, so skills are portable in both directions with no conversion. Here is the concrete checklist of what actually crosses the boundary, and where the guardrail sits.

What moves between the two hosts

  • Claude Code skills already in ~/.claude/skills/ are picked up by Fazm on the next launch. No migration step.
  • Fazm's 17 bundled skills are invokable from a Claude Code terminal session. No Fazm process needs to be running.
  • Custom edits to a bundled SKILL.md survive Fazm upgrades via a SHA-256 checksum compare in SkillInstaller.swift.
  • You can fork a bundled skill: write a SKILL.md with the same name, the hash differs, and your version is kept.
  • Skill authoring is one markdown file. YAML frontmatter plus body, no package.json, no registry, no lockfile.

Where the skills sit in the Fazm execution graph

Three inputs flow into the agent: the model, the MCP tools, and the skill files. Three outputs come back: an answer, a tool call that drives an app, or a refusal. The skills are the readable, editable policy layer in the middle, not a hidden system prompt.

Claude Skills in the Fazm runtime

Claude model
MCP tools
~/.claude/skills/
Fazm agent session
Action on a Mac app
File or shell output
Refusal with reason

See the 17 skills land on your Mac

Install Fazm, let it launch once, and run 'ls ~/.claude/skills/'. The directory will have all 17 names as folders, each with a SKILL.md inside. You can edit any of them right away.

Download Fazm

Writing your own Claude skill for Fazm

The skill file format is the same as Claude Code's. Create a folder under ~/.claude/skills/, add a SKILL.md file with YAML frontmatter, and restart Fazm. The agent picks it up on the next session. Below is a full example for a weekly-standup skill that stitches together Calendar, GitHub, and Slack.

~/.claude/skills/weekly-standup/SKILL.md

Two things to notice: the description block names the triggers so Claude knows when to apply the skill, and the rules tell the agent how to behave when data is missing. Those are the two fields that move a skill from 'clever prompt' to 'reliable procedure.'

Why Fazm made this design choice instead of a private namespace

Six consequences that fall out of writing to the same folder Claude Code reads from, rather than carving out ~/.fazm/skills/ or a proprietary registry.

Same directory as Claude Code

~/.claude/skills/ is not a Fazm-private namespace. Every personal skill already sitting in that folder works in Fazm on first launch; every bundled skill Fazm drops in becomes available to Claude Code.

SKILL.md, not a package

Each bundled skill is one markdown file with a YAML frontmatter block. No build step, no registry, no lock file. You can edit them with TextEdit.

Edits protected by hash

SkillInstaller computes SHA-256 over the bundled and installed SKILL.md. If the bundled file has not changed, the installer does not touch your copy. Your edits are durable.

Mac apps, not a headless browser

A Claude Skill that says 'open the PDF' runs for real. Fazm drives Preview through the accessibility tree, not a virtualized Chromium.

17 is a floor, not a ceiling

Drop your own SKILL.md into ~/.claude/skills/<name>/. Restart Fazm. The agent picks it up immediately. No PR to any repo, no approval flow.

Toast on update, not a silent rewrite

When a bundled skill actually changes in a new Fazm version, a toast names it by skill. You are never surprised by a silent overwrite.

Fazm uses real accessibility APIs instead of screenshots, so it interacts with any app on your Mac reliably and fast. Free to start, fully open source.
f
fazm.ai
Product description

The thing no other page on this topic says

Fazm does not have its own skill system. It has a skill installer for the one you already have.

Most consumer AI apps carve out a private skill namespace so they can control the surface, charge for the marketplace, and build lock-in. Fazm does the opposite. It writes into the folder Claude Code reads from, uses the same SKILL.md format, and guards your edits with a plain SHA-256 hash in SkillInstaller.swift.

The consequence is that everything you learn about Claude Skills while using Fazm transfers to Claude Code, and everything you already learned while using Claude Code transfers to Fazm. There is nothing Fazm-proprietary in the contract. The only thing Fazm adds is a host: a Mac app, a floating bar, and the accessibility-API backbone that lets a skill drive real Mac apps without pretending a screenshot is a tree.

Frequently asked questions

What are 'Claude Skills for Fazm' exactly?

They are the 17 Claude Skill bundles (plain markdown files with YAML frontmatter) that ship inside the Fazm macOS app. On first launch, Fazm's SkillInstaller walks Desktop/Sources/BundledSkills/ inside the app bundle and copies every *.skill.md file into ~/.claude/skills/<name>/SKILL.md on your Mac. That directory is the same directory Claude Code reads from, so the skills are available to both the Fazm floating bar and to any terminal-side Claude Code invocation.

Where do the skills actually live on disk after install?

At ~/.claude/skills/<skill-name>/SKILL.md. For example, ~/.claude/skills/deep-research/SKILL.md and ~/.claude/skills/pdf/SKILL.md. You can open them in any editor. They are plain markdown with a YAML frontmatter block that declares the skill name and a description Claude uses to decide when to invoke it.

Will Fazm overwrite my edits to a bundled skill on upgrade?

No, unless the bundled version itself has changed. The installer runs a SHA-256 hash on the bundled file and the installed file at every app launch. If the hashes match, the skill is skipped (logged as 'up to date'). If the hashes differ, the bundled version has changed and the installer overwrites, then shows a toast naming which skills were updated. So your edits to an unchanged skill file are preserved across every upgrade.

If I already use Claude Code, do my custom skills work inside Fazm?

Yes. Fazm's installer writes into the exact same ~/.claude/skills/ directory Claude Code already uses. Any personal skills you have authored or dropped there before installing Fazm are immediately available to Fazm's agent on launch. The opposite is also true: the 17 bundled skills that Fazm drops in become available to Claude Code. The directory is a shared surface, not a Fazm-owned namespace.

What is the difference between a Fazm skill and a Claude Code skill?

There is no format difference. Both read ~/.claude/skills/<name>/SKILL.md with the same YAML frontmatter (name, description) and markdown body. The only observable difference is the host: Claude Code runs skills in a terminal with shell and file tools, Fazm runs the same skills inside a Mac app with shell, file, and accessibility-API-driven GUI control over whatever app is in front of the user. The skill file does not know which host it is running in and does not need to.

How do I add a custom Claude skill to Fazm?

Create a folder at ~/.claude/skills/my-skill/ and put a SKILL.md file inside with YAML frontmatter. Frontmatter must have 'name' and 'description' fields. The description is what Claude reads to decide when the skill applies, so make it specific (include the trigger phrases you expect). Restart Fazm (or Claude Code). No registry, no package.json, no npm install step unless the skill wraps an npm-published helper.

Why are these skills useful on a Mac specifically?

Because Fazm runs them through the macOS accessibility tree instead of through screenshots. When the pdf skill says 'open this in Preview and extract page 3,' the agent opens Preview for real, reads the AX tree, and drives it. When social-autoposter says 'log in to Reddit and post the comment,' the agent drives Chrome through the @playwright/mcp server the Fazm bridge has pre-registered. The skills describe intent; the host makes the intent happen on actual apps you have installed.

Is there a list of the 17 bundled skills I can verify?

Yes. In the Fazm app bundle, at Desktop/Sources/BundledSkills/. Current directory listing: ai-browser-profile, canvas-design, deep-research, doc-coauthoring, docx, find-skills, frontend-design, google-workspace-setup, pdf, pptx, social-autoposter, social-autoposter-setup, telegram, travel-planner, video-edit, web-scraping, xlsx. After you install Fazm and launch it once, the same names appear as folders under ~/.claude/skills/.

Can I uninstall a bundled skill without Fazm putting it back?

Removing the folder under ~/.claude/skills/<name>/ will work temporarily, but the installer treats 'folder missing' as 'install fresh' on next launch and re-copies it. If you want a bundled skill gone permanently, empty or replace the SKILL.md with your own content. Because the installer compares SHA-256 hashes and yours will not match the bundled one, your version will be kept. The same protection is how the installer handles the 'preserve user edits' guarantee.

Does Fazm require an Anthropic API key to use these skills?

You need authorization to call Claude. That can be an Anthropic API key, a Claude subscription via OAuth through the agent-client-protocol bridge, or a compatible endpoint pointed at via ANTHROPIC_BASE_URL. The skills themselves do not require any credentials of their own; they are markdown instructions that get loaded into the conversation context when the model decides a skill is relevant.

Where in the Fazm source can I verify the SHA-256 preservation behavior?

Desktop/Sources/SkillInstaller.swift. The sha256(of:) function is the hex-digest helper. Inside the per-skill install loop the installer first checks fm.fileExists(atPath: destFile); if the file exists, it computes sha256(of: bundledURL.path) and sha256(of: destFile) and 'guard bundledHash != installedHash else continue' short-circuits the copy. That single guard is what makes user edits durable across upgrades.

Get 17 Claude Skills on your Mac in one install

Free Mac app. Writes into ~/.claude/skills/, the same folder Claude Code reads. Your edits survive upgrades. Your custom skills work in both hosts.

Install Fazm free
fazm.AI Computer Agent for macOS
© 2026 fazm. All rights reserved.

How did this page land for you?

React to reveal totals

Comments ()

Leave a comment to see what others are saying.

Public and anonymous. No signup.