# icanhasfeatherpanel developer docs

> What icanhasfeatherpanel is, where to open it on your panel or on GitHub Pages, what it contains for plugin authors and how it relates to this site.

Source: https://featherpanel.com/docs/plugins/icanhasfeatherpanel/

**icanhasfeatherpanel** is the developer documentation that ships with FeatherPanel itself. The hand-written guides
live in the FeatherPanel repository under `frontendv2/icanhas/`. A build step adds generated reference pages and
publishes the result in two places.

## Where to open it

| Where | URL |
| --- | --- |
| On your own panel | `https://<your panel>/icanhasfeatherpanel/`. The official Docker images run `pnpm export:docs` before the frontend build, so the docs match the version you run. |
| On GitHub Pages | [mythicalltd.github.io/FeatherPanel/icanhasfeatherpanel](https://mythicalltd.github.io/FeatherPanel/icanhasfeatherpanel/), rebuilt from the `develop` and `main` branches. |
| In the source | [`frontendv2/icanhas/`](https://github.com/MythicalLTD/FeatherPanel/tree/develop/frontendv2/icanhas) in the FeatherPanel repository. |

With developer mode on, typing `##icanhasfeatherpanel` in the panel's global search opens the debug console, which has
a button that opens these docs. See [Debugging plugins](https://featherpanel.com/docs/plugins/debugging/#developer-mode-and-the-debug-console).

## What it contains

| Section | Contents |
| --- | --- |
| Plugins | Guides for `conf.yml`, backend routes, the database, cron and commands, middleware and hooks, the frontend, public pages, themes, UI packs, the Power SDK, packaging, examples and recipes. Also an `ai-guide.md` written for AI coding tools. |
| Auth | OIDC single sign-on and passkeys. |
| Pages, widgets | Every frontend page and widget slot, generated from the frontend source. |
| Events, permissions | Every plugin event and permission node, generated from the backend. |
| API | The OpenAPI specification with a browser for it, and an OAuth2 playground. |
| CLI, settings, installer | Generated references for the panel CLI, panel settings and the installer script. |
| Machine-readable files | `llms.txt`, `catalog.json`, `plugins/index.json`, a RAG export, and JSON Schemas for theme packs, UI packs and `overrides.json` under `schemas/`. |

The JSON Schemas are useful in an editor. Map `Frontend/theme.json`, `Frontend/ui.json` and `Frontend/overrides.json`
to the matching file under
[`schemas/`](https://mythicalltd.github.io/FeatherPanel/icanhasfeatherpanel/schemas/plugin-theme.schema.json), for
example with the `json.schemas` setting in VS Code, to get completion and catch mistakes before you ship. The file
formats themselves are described on [Themes and UI packs](https://featherpanel.com/docs/plugins/themes/).

## How it maps to this site

The plugin section of this site covers the same ground, checked line by line against the panel source:

| icanhasfeatherpanel guide | Page on this site |
| --- | --- |
| `getting-started.md` | [Build your first plugin](https://featherpanel.com/docs/plugins/quick-start/), [Plugin structure](https://featherpanel.com/docs/plugins/getting-started/) |
| `conf-yml.md` | [Manifest (conf.yml)](https://featherpanel.com/docs/plugins/manifest/), [Settings](https://featherpanel.com/docs/plugins/settings/) |
| `backend.md` | [Routes and permissions](https://featherpanel.com/docs/plugins/routes-and-permissions/) |
| `database.md` | [Migrations and storage](https://featherpanel.com/docs/plugins/database/) |
| `cron-and-commands.md` | [Cron jobs and CLI commands](https://featherpanel.com/docs/plugins/cron-and-commands/) |
| `middleware-and-hooks.md` | [Middleware and router hooks](https://featherpanel.com/docs/plugins/middleware-and-hooks/), [Lifecycle and events](https://featherpanel.com/docs/plugins/lifecycle-and-events/) |
| `frontend.md`, `public-pages.md`, `power-sdk.md` | [Frontend and Power SDK](https://featherpanel.com/docs/plugins/frontend/), [Widget slots](https://featherpanel.com/docs/plugins/widgets/) |
| `themes.md`, `ui-packs.md` | [Themes and UI packs](https://featherpanel.com/docs/plugins/themes/) |
| `packaging.md` | [Packaging and publishing](https://featherpanel.com/docs/plugins/packaging-and-publishing/) |
| `examples.md`, `recipes.md` | [Examples](https://featherpanel.com/docs/plugins/examples/) |
| `events.md`, `../events/` | [Event reference](https://featherpanel.com/docs/plugins/events/) |

Things to keep in mind when you read both:

- The CLI is `php cli <command>` from the backend folder. There is no `php fuse` command.
- `registerServerRoute` needs the name of the server path parameter as its fifth argument, before the methods list,
  and every controller receives `($request, $parameters)`. See
  [Routes and permissions](https://featherpanel.com/docs/plugins/routes-and-permissions/).
- Cron intervals must use upper-case units such as `5M` or `1H`.
- The icanhas pages describe the develop branch. Mixin registration, saved `conf.yml` defaults, enforced `required`
  and `validation`, exact `S` seconds plus the `MO` and `Y` cron units, and plugin CLI commands in Docker are
  fixed in v1.5.3 ([PR #365](https://github.com/MythicalLTD/FeatherPanel/pull/365)). This site marks what differs on v1.5.2 and earlier.
- `events.md` lists every event id. The [Event reference](https://featherpanel.com/docs/plugins/events/) is generated from the same event
  classes and checked against that list on every sync.

## Related

- [Plugin overview](https://featherpanel.com/docs/plugins/)
- [For AI agents](https://featherpanel.com/docs/ai-agents/), for this site's MCP server and `llms.txt`

## Frequently asked questions

### Is icanhasfeatherpanel the same as these docs?

No. It is a separate set of developer docs kept in the FeatherPanel repository and shipped with the panel. The plugin pages on this site were written from the same source code and from those guides, and point out where the two differ.

### Why is it called icanhasfeatherpanel?

It is the name of the folder and URL the panel uses for its developer docs, and the global search command that opens the debug console.
