The April 12-13, 2026 model wave, and the 17 skill files a Mac app already shipped to use them
Every AI news roundup for April 12-13, 2026 lists the same five or six things. Llama 4 Scout. Qwen 3 audio in llama.cpp. The Codex CLI 0.121 alpha 4 build. MemPalace past 23K stars. NVIDIA Ising. OLMo 2 32B. None of them mention the boring layer that decides whether any of those models can actually do anything useful on your Mac. This guide covers that layer: a checksum-versioned skill library shipped inside an app bundle, installed to a path the rest of the agent ecosystem already reads, with one obsolete-skill cleanup line that tells you the whole upgrade story in seven characters.
Models, papers, and open source events, April 12-13, 2026
The anchor fact
0 .skill.md files inside the .app bundle
Each one is a markdown file with YAML frontmatter (name, description) and a body the agent reads as system context. The filenames live at Desktop/Sources/BundledSkills/ and never have to be re-keyed in code: SkillInstaller.swift auto-discovers them at runtime by walking Bundle.resourceBundle.
ai-browser-profile
Locally-extracted browser profile: identity, emails, accounts, addresses, payments. Read-only access surface for the chat agent.
canvas-design
HTML+CSS canvas designs the agent can compose, render, and export. No external design tool dependency.
deep-research
Multi-step research workflow with source-tracking, used when the user asks open-ended questions that require browsing.
doc-coauthoring
Long-form document collaboration with tracked sections, useful for writing alongside the user instead of generating one-shot.
docx
Microsoft Word generation and editing. Reads and writes .docx without round-tripping through Pages or Word.
find-skills
Discovers skills installed in ~/.claude/skills and ~/.claude/commands plus skills available on skillhu.bz and skills.sh.
frontend-design
Design-system-aware HTML/CSS components, used when the user asks for UI prototypes or landing pages.
google-workspace-setup
Sets up OAuth and credentials for Gmail, Drive, Calendar so the agent can act on Google Workspace data.
PDF generation and parsing. The agent uses this to render reports and to read user-supplied PDFs for downstream steps.
pptx
PowerPoint deck generation. Composes slides programmatically when the user asks for a presentation.
social-autoposter
Posts content to X, LinkedIn, and Reddit through saved browser profiles, no platform API keys required.
social-autoposter-setup
Companion skill that walks the user through profile setup and login capture for social-autoposter.
telegram
Telegram messaging via the user's own session, for sending and reading messages programmatically.
travel-planner
Multi-step travel planning, used when the user asks for itineraries that require deep-research and document output.
video-edit
Programmatic video editing through ffmpeg recipes the agent can compose without writing fresh shell scripts.
web-scraping
Targeted web scraping with playwright fallbacks, used when deep-research needs structured extraction not just summarization.
xlsx
Spreadsheet generation and parsing. The agent reads .xlsx for analysis and writes .xlsx for output.
One skill library, every model that landed this week
The skills sit at ~/.claude/skills, a path that pre-dates Fazm and is shared with the rest of the agent ecosystem. Whatever model you wire in, that model gets the same skill set as system context, with no app update.
April 12-13 model wave -> shared skill library -> Mac apps
The whole story is in 16 lines of Swift
SHA-256 in, skip-or-update out
On every launch the installer hashes the bundled file, hashes the file already on disk, and writes only when they differ. No version numbers, no migration tables, no "skill schema." Just a cryptographic comparison and a copy.
What actually happens when Fazm launches
1. Walk the bundle
Bundle.resourceBundle.resourceURL .appendingPathComponent("BundledSkills") returns 17 files matching *.skill.md.
2. Sweep the obsolete list
private static let obsoleteSkills: [String] = ["hindsight-memory"]. Walks the array, deletes those directories from ~/.claude/skills.
3. For each bundled skill, hash both sides
sha256(of: bundledURL.path) and sha256(of: destFile). SHA-256 hex digest, computed via CryptoKit.
4. If hashes match, skip
The skill is already up to date on disk, no filesystem write, no event fired.
5. If hashes differ, overwrite
removeItem then copyItem. The user's local edits are gone, replaced by the bundled version. The header comment warns about this in lines 4-7.
6. Log the summary
log("SkillInstaller: \(parts.joined(separator: \". \"))") emits one line with installed/updated/skipped/failed counts.
First launch on a clean Mac
A later launch, after Fazm updated one skill
“Each one is a markdown file with YAML frontmatter and a body. The model reads it as system context. The filenames are auto-discovered at runtime.”
Fazm SkillInstaller.swift, lines 32-40
The April 12-13 release wave, in plain text
No benchmark hyperbole. Just what shipped, who shipped it, and what license or distribution mode it landed under.
Llama 4 Scout (17B active in a 109B MoE)
Open weights from Meta. Lands in llama.cpp and Ollama within days. Designed for on-device inference on M-series Macs with 16GB+ RAM.
Qwen 3 audio in llama.cpp
April 12 PR landed support for the omni and ASR variants. First open audio path that works locally without a Python wrapper.
OpenAI Codex CLI 0.121 alpha 4
Background-agent streaming over Realtime V2. Replaces the old polling status checks. Long tasks stream partial output to the terminal.
MemPalace crosses 23K stars
Cross-session LLM memory store. The same conceptual problem Fazm solves with its built-in MEMORY.md system documented in ChatPrompts.swift.
NVIDIA Ising (open quantum-AI models)
Open AI models aimed at accelerating useful quantum computing. Server-side, but signals where the open-source direction is going.
OLMo 2 32B (Allen AI)
Fully open weights, training data, and recipes. The fully-reproducible counterweight to the weights-only releases of the same week.
One line tells the whole upgrade story
private static let obsoleteSkills: [String] = ["hindsight-memory"]
Line 66 of SkillInstaller.swift. The only entry, as of the April 12-13, 2026 build, is hindsight-memory . It was a memory skill bundled in earlier 2026 builds, then made obsolete when Fazm replaced it with a built-in MEMORY.md system documented in ChatPrompts.swift around line 565.
Every Mac that updates past that release sees ~/.claude/skills/hindsight-memory/ deleted on the next launch. No prompt, no migration UI. The installer logs one line: SkillInstaller: removed obsolete skill 'hindsight-memory'. That is the entire deprecation system.
What every other April 12-13 roundup is missing
The plumbing layer the news cycle skips
- How a new open-source model inherits skills the moment it is wired in
- Why ~/.claude/skills is the path to ship to (it is shared with the rest of the agent ecosystem)
- How SHA-256 versioning makes user-edits durable until the bundle changes
- How the obsolete-skill list cleans up after a deprecated skill
- Why the skill files are .skill.md (double extension) instead of plain .md
- How project-level skills under {workspace}/.claude/skills/ avoid being touched by the installer
Frequently asked questions
Frequently asked questions
What AI models, papers, and open source releases shipped on April 12-13, 2026?
The 48 hour window covered: continued rollout of the Llama 4 family (Scout 17B-active in a 109B mixture-of-experts and Maverick), Qwen 3 audio support landing in llama.cpp for omni and ASR variants, OpenAI Codex CLI 0.121 alpha 4 with Realtime V2 background-agent streaming, MemPalace cross-session LLM memory crossing 23,000 GitHub stars, NVIDIA's Ising open models for quantum computing acceleration, and Allen AI's OLMo 2 32B sitting alongside the previous weekend's Claude Mythos 5 (Anthropic), Gemma 4 (Google, Apache 2.0), Gemini 3.1 Ultra (Google DeepMind), and the TurboQuant paper from ICLR 2026. Per LLM-Stats, seven major open source model drops happened in the first twelve days of April 2026.
Why does this guide focus on a Mac app's bundled skill library instead of the model releases themselves?
Because every other roundup for April 12-13 already covers the model releases. The interesting question for a desktop user is what happens after a new model lands: does the agent harness on your machine know how to use it? Fazm's answer is that 17 .skill.md files ship inside the app's Resources/BundledSkills directory and get copied to ~/.claude/skills on first launch. The moment any new model is wired in (through the Custom API Endpoint setting added on April 11), that model inherits the entire skill library with no app update required. That is the layer the news cycle skips.
Where is the bundled skill library defined in the Fazm source?
Two locations. First, the .skill.md files themselves live at /Users/matthewdi/fazm/Desktop/Sources/BundledSkills/. As of the April 12-13, 2026 build there are exactly 17 of them: 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. Second, the installer is /Users/matthewdi/fazm/Desktop/Sources/SkillInstaller.swift, which on every launch reads the bundle directory, computes SHA-256 hashes (lines 60-62), compares against the installed copy under ~/.claude/skills (line 73), and overwrites only when the hash differs.
What does the SHA-256 checksum comparison actually do?
It prevents two failure modes. First, it stops the app from rewriting an unchanged skill on every launch, which would otherwise blow away timestamps and trigger pointless filesystem events. Second, when the bundled skill changes between app versions (a description tweak, a new step in the workflow), the new SHA does not match the SHA on disk, so the installer updates the file. The exact code path is at lines 116-131 of SkillInstaller.swift: alreadyExists -> compute bundledHash and installedHash -> if equal, skip; if different, removeItem then copyItem and add to the updated list.
What happens to skills the user edited locally?
They get overwritten when the bundled version changes. SkillInstaller.swift is explicit about this in its header comment at lines 4-7: 'User-edited skills that differ from the bundled version will be overwritten if the bundle was updated.' This is the price of the auto-update behavior. If you want a fork that survives, copy the skill to a different name, or move it outside ~/.claude/skills/{bundled-name}/ entirely. Project-level skills under {workspace}/.claude/skills/ are a separate path the chat provider also discovers (ChatProvider.swift line 1792), and those are never touched by the installer.
How does a newly released open source model get the skills?
The skill files sit in ~/.claude/skills, which is a path that pre-dates Fazm and is shared with Claude Code, the Claude Agent SDK, and any other tool that follows the same convention. So if you wire Gemma 4 or Llama 4 Scout through Fazm's Custom API Endpoint setting (added April 11 in v2.2.0, env var ANTHROPIC_BASE_URL), the agent loop loads the same bundled skills as the system prompt context. That is why an open source model dropped on April 12 or April 13 can plausibly run the deep-research, web-scraping, or social-autoposter skill the moment it is connected, without waiting for a Fazm release.
What about the obsolete-skill list and why does it exist?
Line 66 of SkillInstaller.swift: private static let obsoleteSkills: [String] = ["hindsight-memory"]. On every launch the installer walks this list and deletes those directories from ~/.claude/skills. It is the cleanup half of the auto-update story: when a previously bundled skill is removed in a future Fazm version, the next launch sweeps the leftover. Without this, users who installed an older Fazm version would carry around dead skill files forever. As of the April 12-13, 2026 build the only entry is hindsight-memory, a memory skill that was bundled in earlier 2026 builds and replaced by the built-in MEMORY.md system documented in ChatPrompts.swift around line 565.
Does this have anything to do with screenshot-based computer-use agents?
No. Fazm's tool layer reads the macOS accessibility tree directly through AXUIElementCreateApplication and AXUIElementCopyAttributeValue (the calls live in AppState.swift around line 439), and the bundled skills assume that text-shaped tool surface, not pixel coordinates. So when one of April's open source models is wired in, the skill files still describe deterministic AX-node operations, not 'click at x,y in the screenshot.' Same skill text, same accessibility tree, different model. The variance in behavior is in the model, not in the input format.
Can I add my own skill without modifying Fazm's source?
Yes. Drop a SKILL.md file at ~/.claude/skills/your-skill-name/SKILL.md, with YAML frontmatter containing name and description fields. The chat provider discovers it on launch (ChatProvider.swift line 1768 walks the skills directory and reads each SKILL.md), so it is available to whatever model you have selected the next time you start a conversation. As long as your skill name does not collide with one of the 17 bundled names listed above, the SkillInstaller will not touch your file. Project-level skills under {workspace}/.claude/skills/ also work and are scoped to that workspace.
Can I verify the anchor facts in this guide myself?
Yes. Open /Users/matthewdi/fazm/Desktop/Sources/SkillInstaller.swift. Header comment at lines 4-9 documents the install behavior. Line 60-62 is the sha256 helper. Line 66 is the obsoleteSkills array. Line 73 is the hardcoded skillsDir = "\(home)/.claude/skills". Lines 116-131 are the checksum comparison and update path. The 17 bundled .skill.md files live at /Users/matthewdi/fazm/Desktop/Sources/BundledSkills/, one file per skill. The CHANGELOG entry for v2.2.1 (April 12, 2026) lives at /Users/matthewdi/fazm/CHANGELOG.json with a single bug-fix line. Every claim in this guide maps to a specific file and line range a reader can open.
Try Fazm and see the 17 skills land in your home directory
Download the Mac app. On first launch, Fazm installs 17 .skill.md files to ~/.claude/skills. The next AI model that ships gets the same skill library the moment you wire it in.
Download Fazm →
Comments
Public and anonymous. No signup.
Loading…