DocsApps
Extending the shell and built-in apps
The shell and the built-in apps (Finder, Notes, Mail, Calendar, Settings) expose a fixed set of places - contribution points - where something else can add to what you see, without touching the app itself. A community script or extension registers into one of these; so does a first-party app when it needs to. Nothing changes in the built-in apps unless something is actually registered.
Every contribution names where it came from, so it can always be found and removed as a group - installing something and later uninstalling it takes every command, keybinding, menu item, section and card it added along with it.
Contribution points
| Slot | Where it appears | What a contributor provides |
|---|---|---|
| Command | The strip's Commands group, alongside the built-in commands | A title, an optional subtitle and keywords, and what to run |
| Keybinding | Anywhere in the shell, as long as it doesn't collide with a built-in shortcut | A key combo and the command it runs |
| Context menu action | Finder's and Notes' right-click menu, after the built-in items | A label, an icon, and what to run against the selected file or note |
| File handler | Finder's "open" behaviour and its "Open with" menu | Which file extensions or types it opens, and what happens when it does |
| Preview | Finder's Quick Look and its inspector pane | Which files it can preview, and a rendered preview for one |
| Settings section | The Settings sidebar and its search | A label, keywords for search, and the section's own content |
| Rail card | The side rail, in its "needs you", running, or event-stream area | When to show, and what the card displays |
| Window action | Every open window's title bar, for one app or every app | An icon, a label, and what to run |
Behaviours
Six moments in the built-in apps can be watched or vetoed before they happen: saving a note, creating a note, creating a folder, sending a message, creating a calendar event, and changing a setting. Something registered against one of these sees the details first and can let it through unchanged, change what's about to happen, or stop it - the person doing the action is told why if it's stopped.
Anything that watches for a moment like this has a couple of seconds to respond; if it takes too long or runs into a problem, that one watcher is skipped and the action goes ahead normally rather than getting stuck.
What's next
This is the plumbing every contribution point is built on. Two things build on it directly: a script is a small piece of logic bound to a command, a key, an event or a schedule; an extension is a packaged set of these same contributions - several slots installed, approved and removed together, with their own settings and panels. Ask the assistant for either in plain language, or start one from its own app.