Configuring Horizon
coollabsio/coolify
A skill your agent uses whenever the user mentions Horizon by name in a Laravel context.
Builds PocketBase superuser admin UI extensions (admin plugins) on PB ≥0.37: ServeEvent.uiExtensions, client main.js, window.app SPA hooks, Shablon UI, reactive stores, CSP, SSE/realtime topics.
$ npx skills add pockethost/pockethost --skill pocketbase-admin-plugins -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install pockethost/pockethost pocketbase-admin-plugins --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/pockethost/pockethost.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.cursor/skills/pocketbase-admin-plugins .claude/skills/pocketbase-admin-plugins && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "pocketbase-admin-plugins" agent skill from https://github.com/pockethost/pockethost/tree/main/.cursor/skills/pocketbase-admin-plugins into .claude/skills/pocketbase-admin-plugins/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pocketbase-admin-plugins", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/pockethost/pockethost/tree/main/.cursor/skills/pocketbase-admin-pluginsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add pockethost/pockethost --skill pocketbase-admin-plugins -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install pockethost/pockethost pocketbase-admin-plugins --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pockethost/pockethost.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.cursor/skills/pocketbase-admin-plugins .agents/skills/pocketbase-admin-plugins && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "pocketbase-admin-plugins" agent skill from https://github.com/pockethost/pockethost/tree/main/.cursor/skills/pocketbase-admin-plugins into .agents/skills/pocketbase-admin-plugins/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pocketbase-admin-plugins", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add pockethost/pockethost --skill pocketbase-admin-plugins -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install pockethost/pockethost pocketbase-admin-plugins --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pockethost/pockethost.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.cursor/skills/pocketbase-admin-plugins .cursor/skills/pocketbase-admin-plugins && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "pocketbase-admin-plugins" agent skill from https://github.com/pockethost/pockethost/tree/main/.cursor/skills/pocketbase-admin-plugins into .cursor/skills/pocketbase-admin-plugins/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pocketbase-admin-plugins", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/pockethost/pockethost.git --path .cursor/skills/pocketbase-admin-plugins--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add pockethost/pockethost --skill pocketbase-admin-plugins -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install pockethost/pockethost pocketbase-admin-plugins --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pockethost/pockethost.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.cursor/skills/pocketbase-admin-plugins .gemini/skills/pocketbase-admin-plugins && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "pocketbase-admin-plugins" agent skill from https://github.com/pockethost/pockethost/tree/main/.cursor/skills/pocketbase-admin-plugins into .gemini/skills/pocketbase-admin-plugins/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pocketbase-admin-plugins", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install pockethost/pockethost pocketbase-admin-pluginsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add pockethost/pockethost --skill pocketbase-admin-plugins -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/pockethost/pockethost.git skills-src && mkdir -p .github/skills && cp -r skills-src/.cursor/skills/pocketbase-admin-plugins .github/skills/pocketbase-admin-plugins && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "pocketbase-admin-plugins" agent skill from https://github.com/pockethost/pockethost/tree/main/.cursor/skills/pocketbase-admin-plugins into .github/skills/pocketbase-admin-plugins/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pocketbase-admin-plugins", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add pockethost/pockethost --skill pocketbase-admin-plugins -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install pockethost/pockethost pocketbase-admin-plugins --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pockethost/pockethost.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.cursor/skills/pocketbase-admin-plugins .opencode/skills/pocketbase-admin-plugins && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "pocketbase-admin-plugins" agent skill from https://github.com/pockethost/pockethost/tree/main/.cursor/skills/pocketbase-admin-plugins into .opencode/skills/pocketbase-admin-plugins/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pocketbase-admin-plugins", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
pocketbase-admin-pluginsBuilds PocketBase superuser admin UI extensions (admin plugins) on PB ≥0.37: ServeEvent.uiExtensions, client main.js, window.app SPA hooks, Shablon UI, reactive stores, CSP, SSE/realtime topics.
Pocketbase Admin Plugins is an agent skill from pockethost/pockethost. Builds PocketBase superuser admin UI extensions (admin plugins) on PB ≥0.37: ServeEvent.uiExtensions, client main.js, window.app SPA hooks, Shablon UI, reactive stores, CSP, SSE/realtime topics. Use when extending the PocketBase admin dashboard, operator pages, custom collection tabs/fields, live dashboards, or mothership post-v0.39 operator tooling — not for pbhooks server logic alone (see pocketbase-jsvm) or external SPAs.
Its SKILL.md is about 1.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files (for example `client-api.md`, `examples.md` and `pockethost.md`).
It sits in Backend & APIs. The repository describes itself as: Open source multitenant PocketBase server. The licence is MIT.
3 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 82c9ba3. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are javascript).
From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
github.compocketbase.ioFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Pocketbase Admin Plugins loads about 1.8k tokens when it runs. Until then it costs about 114 tokens; SKILL.md has 568 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from pockethost/pockethost at commit 82c9ba3, republished under its MIT licence (© pockethost). 568 words, ~1,841 tokens.
.claude/skills/pocketbase-admin-plugins/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.PocketBase ≥0.37 (including mothership 0.39.*) ships a rewritten superuser dashboard with an experimental UI extension system. Extensions add pages, header links, collection tabs, field types, modals, and DOM hooks inside the built-in admin SPA.
Status: APIs are experimental and undocumented on pocketbase.io until Stage 2 / v1.0-rc. Expect breaking changes. Source of truth: GitHub discussion #7612.
| Layer | Runs in | Purpose |
|---|---|---|
| Server registration | JSVM (pb_hooks) or Go OnServe | Mount static assets at /_/extensions/{name}/*, bundle main.js into /_/extensions.js |
| Client registration | Browser (admin SPA) | main.js uses global window.app to register routes, store fields, modals, mount hooks |
pb_hooks/register.pb.js extensions/my-plugin/
│ ├── main.js ← client entry (required for UI hooks)
│ onServe → uiExtensions ├── style.css
└──────────────────────────────└── …
│
▼
GET /_/extensions/my-plugin/*
GET /_/extensions.js ← concatenates all main.js files
│
▼
Admin SPA loads extensions.js → window.app hooks fire| PocketBase | Admin plugins |
|---|---|
| ≤ v0.36 | Not available (old Svelte admin, no extension API) |
| ≥ v0.37 | Experimental UI extensions |
| Mothership 0.39.* | Supported (PocketHost control plane) |
Confirm target version before writing extension code. Customer instances must run ≥0.37 to load admin plugins.
| Task | Skill |
|---|---|
Register extension dir, onServe, static FS | pocketbase-admin-plugins (this) + server-registration.md |
Client pages, window.app, Shablon | pocketbase-admin-plugins + client-api.md |
| Reactive UI, maps, CSP, imperative DOM | shablon-reactivity-and-dom.md |
| SSE, custom topics, collection subscribe | realtime-and-sse.md |
| Custom API routes, record hooks, cron | pocketbase-jsvm |
| External customer-facing dashboard | pocketbase-js-sdk + separate SPA |
Place static assets next to hooks (paths are your choice; keep them stable across deploys):
pb_hooks/
admin_plugins.pb.js
pb_admin_ext/
hello/
main.js
style.css// pb_hooks/admin_plugins.pb.js
$app.onServe().bindFunc((e) => {
e.uiExtensions.push({
name: 'hello',
fs: $os.dirFS(`${__hooks}/../pb_admin_ext/hello`),
})
e.next()
})Each name becomes the URL segment /_/extensions/{name}/…. Invalid entries (empty name or missing FS) are skipped.
main.js)Runs in the browser (modern JS, async/await OK). Not Goja JSVM rules.
// pb_admin_ext/hello/main.js
app.store.headerLinks.push({
href: '#/hello',
icon: 'ri-hand-heart-line',
label: 'Hello',
})
app.routes.superuserOnly('#/hello', () => {
return t.div({ className: 'page' }, t.h1(null, 'Hello from an admin plugin'))
})Open the mothership/instance admin UI, sign in as superuser, click the new header link.
name is unique, URL-safe (used in /_/extensions/{name}/)main.js exists at FS root if you need client hooks (optional for static-only assets)main.js use /_/extensions/{name}/… pathse.next() in onServeapp.pb (superuser SDK) for data, not raw tokens in sourceonclick (lowercase), not onClickstore() + arrow children () => …, not plain objectsapp.modals.openRecordUpsert(collection, …) with collection object from app.store.collectionsThe admin UI uses Shablon (t.div, t.button, …). Shablon is optional in extensions. Plain DOM works:
const link = document.createElement('link')
link.rel = 'stylesheet'
link.href = '/_/extensions/hello/style.css'
document.head.appendChild(link)Important: Shablon is not Mithril. oncreate / data-* attrs / ref callbacks are unreliable for plugin routes. Use id + imperative DOM for maps and other third-party widgets. See shablon-reactivity-and-dom.md.
Explore live APIs: open admin UI → DevTools → console.log(app).
Extensions run with full superuser privileges in the browser and serve from public /_/ routes (CSP applies). Do not ship untrusted third-party extension code. PocketBase will warn about this in future docs (#7612).
Mothership (0.39) and customer instances (≥0.37) differ in deploy path. See pockethost.md.
Typical mothership use case: Live operator dashboard (pb_admin_ext/live/) — platform SSE topics, edge collection subscribe, Leaflet heatmaps. See realtime-and-sse.md and shablon-reactivity-and-dom.md.
Other use cases (backlog): operator stats pages replacing legacy SQL views — view collections + admin plugin charts/tables.
| File | Contents |
|---|---|
| server-registration.md | JSVM + Go registration, FS layout, routes |
| client-api.md | window.app — routes, store, modals, field types, mount events |
| shablon-reactivity-and-dom.md | Reactive stores, ticks, CSP, imperative DOM / Leaflet |
| realtime-and-sse.md | Collection subscribe, custom SSE topics, server broadcast |
| examples.md | Copy-paste patterns |
| pockethost.md | Mothership tsdown, phio/FTP deploy, dev workflow |
ServeEvent.uiExtensions: https://pocketbase.io/jsvm/interfaces/core.ServeEvent.htmlUIExtension: https://pocketbase.io/jsvm/interfaces/core.UIExtension.html© pockethost, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 6 other files in .cursor/skills/pocketbase-admin-plugins of pockethost/pockethost.
Open the folder on GitHubat commit 82c9ba3
Pocketbase Admin Plugins next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Pocketbase Admin Plugins this skillpockethost/pockethost | 1.4k | — | ~1.8k | Automated safety check: Pass | MIT | |
| Configuring Horizoncoollabsio/coolify | 63k | 4 repos | ~898 | Automated safety check: Pass | MIT | |
| Nestjs Best Practicesrolling-scopes/rsschool-app | 10k | 6 repos | ~1.2k | Automated safety check: Pass | MIT | |
| Sub2API AdminWei-Shaw/sub2api | 43k | 1 repos | ~717 | Automated safety check: Pass | LGPL-3.0 | |
| Firecrawl Build Onboardingfirecrawl/firecrawl | 190k | 1 repos | ~1.4k | Automated safety check: Notes | ISC | |
| Obsidian BasesAtmosphere/atmosphere | 3.8k | 22 repos | ~3.2k | Automated safety check: Pass | Apache-2.0 |
coollabsio/coolify
A skill your agent uses whenever the user mentions Horizon by name in a Laravel context.
rolling-scopes/rsschool-app
NestJS best practices and architecture patterns for building production-ready applications.
Wei-Shaw/sub2api
Manages a Sub2API deployment from the command line: accounts, redeem and invitation codes, groups, proxies, imports, exports and raw admin API calls.
firecrawl/firecrawl
Gets Firecrawl working in a project: signs you in through the browser, saves FIRECRAWL_API_KEY to .env and picks the first SDK or REST path.
Atmosphere/atmosphere
Create and edit Obsidian Bases (.base files) with views, filters, formulas, and summaries.
coollabsio/coolify
ACTIVATE when the user works on authentication in Laravel. An agent skill from coollabsio/coolify.
pockethost/pockethost
Write PocketHost blog posts in Ben Allfree's voice (@cap'n).
pockethost/pockethost
Run pnpm check:push (lint, types, tests) before git push or PR-ready work.
pockethost/pockethost
Create scoped git commits from the current conversation (e.g.
pockethost/pockethost
Ship user-facing PocketHost features with a blog post instead of semver release notes.
pockethost/pockethost
Full Lemon Squeezy integration — REST API, @lemonsqueezy/lemonsqueezy.js server SDK, Lemon.js checkout overlays, webhooks, customdata, and subscriptions.
pockethost/pockethost
Models PocketBase backends: collections, relations, auth, API rules, migrations, and architecture.
Categories
Builds PocketBase superuser admin UI extensions (admin plugins) on PB ≥0.37: ServeEvent.uiExtensions, client main.js, window.app SPA hooks, Shablon UI, reactive stores, CSP, SSE/realtime topics. Pocketbase Admin Plugins is an agent skill from pockethost/pockethost.app SPA hooks, Shablon UI, reactive stores, CSP, SSE/realtime topics.
Pocketbase Admin Plugins fits situations like: extending the PocketBase admin dashboard; custom collection tabs/fields; live dashboards; mothership post-v0.39 operator tooling — not for pbhooks server logic alone (see pocketbase-jsvm).
Run `npx skills add pockethost/pockethost --skill pocketbase-admin-plugins -a claude-code`. Or copy the skill folder (.cursor/skills/pocketbase-admin-plugins in pockethost/pockethost) into .claude/skills/pocketbase-admin-plugins in your project. Claude Code loads it when a task matches its description.
Run `npx skills add pockethost/pockethost --skill pocketbase-admin-plugins -a codex`. Or copy the skill folder (.cursor/skills/pocketbase-admin-plugins in pockethost/pockethost) into .agents/skills/pocketbase-admin-plugins in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add pockethost/pockethost --skill pocketbase-admin-plugins -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/pocketbase-admin-plugins, .gemini/skills/pocketbase-admin-plugins, .github/skills/pocketbase-admin-plugins and .opencode/skills/pocketbase-admin-plugins in your project.
SKILL.md names no scripts, command-line tools or credentials: Pocketbase Admin Plugins is instructions for the agent only.
SKILL.md names 2 domains. As links in the text: github.com and pocketbase.io. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Pocketbase Admin Plugins is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.8k tokens (SKILL.md is roughly 7.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Pocketbase Admin Plugins: Configuring Horizon (coollabsio/coolify, 63k stars), Nestjs Best Practices (rolling-scopes/rsschool-app, 10k stars), Sub2API Admin (Wei-Shaw/sub2api, 43k stars) and Firecrawl Build Onboarding (firecrawl/firecrawl, 190k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
pockethost (a GitHub organization) maintains it in pockethost/pockethost, which has 1,444 GitHub stars. The repository holds 11 skills in this directory. The repository was last updated on September 28, 2026.
Source: pockethost/pockethost on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.