skills/extensions/umbraco-header-apps/SKILL.md
Implement header apps in Umbraco backoffice using official docs
npx skillsauth add albanist/umbraco_cli umbraco-header-appsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Header apps are single-purpose extensions that appear in Umbraco's top navigation bar, positioned next to the user profile avatar and global search. They provide globally accessible functionality to the Backoffice, such as quick links to documentation, tools, or custom interactive features. Header apps can be simple links or custom interactive components that open modals or perform actions.
Always fetch the latest docs before implementing:
If you need to explain these foundational concepts when implementing header apps, reference these skills:
Umbraco Element: When implementing interactive header apps, explaining UmbHeaderAppButtonElement, or custom elements
umbraco-umbraco-elementContext API: When implementing context access, modals, notifications, or services from header apps
umbraco-context-apiControllers: When implementing controllers, action handlers, click handlers, or header app behavior
umbraco-controllers{
"type": "headerApp",
"alias": "My.HeaderApp",
"name": "My Header App",
"kind": "button",
"meta": {
"label": "Documentation",
"icon": "icon-help",
"href": "https://docs.umbraco.com/"
}
}
export const manifests = [
{
type: "headerApp",
alias: "My.Interactive.HeaderApp",
name: "My Interactive Header App",
element: () => import('./header-app.element.js'),
meta: {
label: "Tools",
icon: "icon-tools"
}
}
];
import { html, customElement } from '@umbraco-cms/backoffice/external/lit';
import { UmbHeaderAppButtonElement } from '@umbraco-cms/backoffice/header-app';
@customElement('my-header-app')
export class MyHeaderAppElement extends UmbHeaderAppButtonElement {
#onClick() {
// Handle click - open modal, navigate, etc.
console.log('Header app clicked!');
}
render() {
return html`
<uui-button
@click="${this.#onClick}"
label="${this.manifest?.meta?.label}"
compact
>
<uui-icon name="${this.manifest?.meta?.icon}"></uui-icon>
</uui-button>
`;
}
}
export default MyHeaderAppElement;
That's it! Always fetch fresh docs, keep examples minimal, generate complete working code.
development
Trigger and inspect ModelsBuilder source generation
tools
Umbraco Forms operations (read-only)
tools
Tree navigation helpers
tools
Template operations