# How-tos

One task per page, with the exact calls. Each assumes you have the kernl source and have run `pnpm install && pnpm build` ([Run the shell](https://kernlize.github.io/docs/tutorials/run-the-shell.md#_1-clone-install-and-build)); for a guided first pass, start with the [tutorials](https://kernlize.github.io/docs/tutorials/run-the-shell.md) instead.

| How-to | What it does |
| --- | --- |
| [Change the guard profile](https://kernlize.github.io/docs/how-tos/change-guard-profile.md) | Switch the shell between `strict`, `balanced` and `relaxed`, and what a profile can and cannot change. |
| [Grant and revoke](https://kernlize.github.io/docs/how-tos/grant-and-revoke.md) | What the shell asks when an applet opens, what each answer changes, and the `Kernl` calls behind the grants panel. |
| [Embed kernl core](https://kernlize.github.io/docs/how-tos/embed-kernl-core.md) | Implement `KernlHost`, call `createKernl` and mount an applet in an iframe your own page owns. |
| [Add a messaging provider](https://kernlize.github.io/docs/how-tos/add-a-messaging-provider.md) | Define a provider and its backend, and register it in the shell's messaging registry. |
| [Add a bridge backend](https://kernlize.github.io/docs/how-tos/add-a-bridge-backend.md) | Supply a backend that turns an `unavailable` bridge, such as downloads, into a working one. |
| [Deploy](https://kernlize.github.io/docs/how-tos/deploy.md) | Build the site, shell, docs and API reference into one static artifact and publish it to GitHub Pages. |
