agentleFS
daveebbelaardaveebbelaar/bama/skills/design/app-icon/SKILL.md

app-icon

Skill1.7k starsChanged 11 days agoMITView on GitHub

Liquid Glass macOS app icon made as an Icon Composer file (Icon/AppIcon.icon, JSON plus SVG layers), compiled with actool, and reviewed in every look with ictool. Use when the user wants an app icon, a better icon, or a Dock icon.

4 other projects use a version of this, 1 of them edited.

Adopted by

Steady: 0 new projects took it in the last 4 weeks, none the 4 weeks before.thin data

Week of Sep 13: 0 new projectsWeek of Sep 20: 0 new projectsWeek of Sep 27: 0 new projectsWeek of Oct 4: 0 new projectsWeek of Oct 11: 0 new projectsWeek of Oct 18: 0 new projectsWeek of Oct 25: 0 new projectsWeek of Nov 1: 0 new projects
Sep 2026Oct 2026Nov 2026
New projects taking a version of this file each week, over the 8 weeks our latest run read: only 0 in all, so this is a hint, not a trend.

Most recently taken up by

Who's talking about daveebbelaar/bama

The biggest 5 of 42 mentions linking to the repository that our crawl found. Each line is their own headline.

See all 42

Talked about on GitHub, YouTube and the web (42 times).

On GitHub · 20

15 more on GitHub

On YouTube · 13

8 more on YouTube

On the web · 9

4 more on the web

The file

We split this skill into the rules it gives an agent

9 rules. 0 are common, 5 are distinctive, and 4 are very specific to this project.

  • 0

    Common

    Most of the 4 edited versions we read keep these.

  • 5

    Distinctive

    This author's own choices. Worth a look.

  • 4

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    No text, no letters, no screenshots of the UI.

    line 70
  2. Very specific:

    Read docs/BRIEF.md. Write three icon concepts in one line each: the object, the background color, the layers.

    line 84
  3. Distinctive:

    Check: one concept is chosen and it uses no SF Symbol.

    line 88
  4. Very specific:

    Write the layers as SVG files in Icon/AppIcon.icon/Assets/, on a 1024 x 1024 canvas, white filled shapes (rect with rx, circle, path).

    line 90
  5. Very specific:

    Check: every image-name in icon.json has a file in Assets/.

    line 95
  6. Distinctive:

    Check: the line above prints.

    line 104
  7. Distinctive:

    Read the PNG. It shows Default, Dark, Tinted, and Clear at 256 pt, then Default at 32 and 16 pt.

    line 113
  8. Distinctive:

    Default at 32 and 16 pt. The glyph reads in every look and is still recognizable at 16 pt.

    line 114
  9. Very specific:

    If the Dock still shows the old icon, macOS cached it.

    line 126

“Common” is measured: kept by at least 6 in 10 of the 4 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

App icon

The icon is an Icon Composer file in git: Icon/AppIcon.icon, a folder with icon.json and SVG layers in Assets/. You write both by hand. macOS adds the glass, the highlights, the shadow, the mask, and the dark, tinted, and clear looks. You never draw those yourself.

  • tools/make_icon.sh compiles it with actool into Resources/Assets.car and Resources/AppIcon.icns. build.sh runs it when the icon changed.
  • tools/icon_review.sh renders it with ictool (Icon Composer's command line tool, inside Xcode) into one contact sheet you read.

Older app without these files: copy Icon/, tools/make_icon.sh, tools/icon_review.sh, and tools/icon_sheet.swift from the new-mac-app template, the icon block of its build.sh, and CFBundleIconName = AppIcon from its Info.plist.in.

Other cases: more-cases.md.

  • An Xcode or XcodeGen project (Xcode compiles the .icon itself).
  • Converting an existing flat icon into layers.
  • A Dock icon that changes with a theme or style. NSApp.applicationIconImage shows a flat picture, so render glass versions ahead of time.

The file

Icon/AppIcon.icon/
  icon.json
  Assets/front.svg     1024 x 1024 canvas, same as the icon
  Assets/back.svg
{
  "fill" : { "automatic-gradient" : "srgb:0.20000,0.42000,0.96000,1.00000" },
  "groups" : [
    {
      "layers" : [
        { "glass" : true, "image-name" : "front.svg", "name" : "front" },
        { "glass" : true, "image-name" : "back.svg", "name" : "back", "opacity" : 0.6 }
      ],
      "shadow" : { "kind" : "neutral", "opacity" : 0.5 },
      "translucency" : { "enabled" : true, "value" : 0.5 }
    }
  ],
  "supported-platforms" : { "squares" : [ "macOS" ] }
}
  • fill is the background: solid, automatic-gradient (one color, the system adds a soft gradient), or linear-gradient with two colors. Colors are srgb:r,g,b,a or display-p3:r,g,b,a.
  • The first layer in the list sits on top.
  • Shadow kind: neutral, layer-color, or none.
  • A different look per appearance goes in <key>-specializations, for example fill-specializations with an entry for dark.
  • The art fills the whole square. Never draw the rounded square, a margin, a shadow, or a sheen: the system adds them.

What makes it look like Apple made it

  1. One idea. One object that says what the app does: a check for tasks, a stack of cards for a reader, a waveform for audio.
  2. No text, no letters, no screenshots of the UI.
  3. The glyph is your own drawing. Never use an SF Symbol, or a shape that looks like one: the SF Symbols license forbids symbols in app icons.
  4. Two or three layers, each one flat shape in white or one tint. Glass gives the depth. Put the main shape on top, a softer one behind it.
  5. The glyph is large: about 45 to 55 percent of the canvas width. Thin parts vanish at 16 px.
  6. Filled shapes only. A stroke on an open path leaves a faint glass line.
  7. One background hue. automatic-gradient looks right almost every time.
  8. Distinct from the apps next to it in the Dock. List Dock apps without a screenshot: defaults read com.apple.dock persistent-apps | grep file-label.

Steps

  1. Read docs/BRIEF.md. Write three icon concepts in one line each: the object, the background color, the layers. Pick one with the user, or pick the one that is easiest to recognize at 16 px.

    Check: one concept is chosen and it uses no SF Symbol.

  2. Write the layers as SVG files in Icon/AppIcon.icon/Assets/, on a 1024 x 1024 canvas, white filled shapes (rect with rx, circle, path). Write icon.json to list them. Delete layer files you no longer use.

    Check: every image-name in icon.json has a file in Assets/.

  3. Compile:

    tools/make_icon.sh
    # wrote Resources/Assets.car and Resources/AppIcon.icns

    Check: the line above prints. On an error, fix the file it names.

  4. Review every look:

    tools/icon_review.sh
    # wrote /tmp/<AppName>-icon.png

    Read the PNG. It shows Default, Dark, Tinted, and Clear at 256 pt, then Default at 32 and 16 pt. The glyph reads in every look and is still recognizable at 16 pt. If not, make it bigger, bolder, or simpler.

  5. Iterate two or three times. Change one thing per round: glyph size, layer opacity, background color.
  6. Install and look at the Dock:

    ./build.sh --open

    If the Dock still shows the old icon, macOS cached it. Run touch ~/Applications/<AppName>.app and restart the app. As a last resort, killall Dock.

The user can fine-tune the file by hand in Icon Composer: open -a "Icon Composer" Icon/AppIcon.icon. Run tools/make_icon.sh after they save.

Gotchas

  • The folder must be named AppIcon.icon. With another name, actool writes nothing and still exits 0. make_icon.sh checks for that.
  • A missing layer file: actool fails with the name, but ictool exits 0 and renders an empty background. Compile before you review.
  • PDF layers do not render. Use SVG or PNG.
  • xcrun ictool is a different tool. Icon Composer's ictool lives at $(xcode-select -p)/../Applications/Icon Composer.app/Contents/Executables/ictool.
  • The icon needs CFBundleIconName = AppIcon in Info.plist and Assets.car in Contents/Resources. AppIcon.icns covers older Finder views and macOS 15.

Done when tools/make_icon.sh succeeds, the contact sheet shows a clear glyph in all four looks and at 16 pt, the icon uses no SF Symbol, and the Dock shows the new icon.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.