# Overview

> Add your own pages to Lucra, drawn with Lucra's components. Beta: needs approval.

Source: https://www.onlucra.com/docs/mods

> **Beta: needs approval.** Mods are in beta. Ask Lucra to turn them on for your account; until then Settings → Developers → Mods stays hidden and the mods API answers 403 `feature_not_enabled`.

A mod adds pages and panels to Lucra: an outreach board, a custom report, a review checklist. You (or an agent like Claude Code or Codex) write it in TypeScript with [`@lucra/mod`](https://www.npmjs.com/package/@lucra/mod), and it looks native because it's drawn with Lucra's own components, never your markup or styles.

## How a mod works

1. Lucra asks your mod what to show in a slot, such as a page in the sidebar.
2. Your mod answers with a tree of Lucra components: a `Section` with `Row`s, `Metric`s, a `TextField` and a `Button`.
3. Lucra checks the tree against its [components and slots](https://www.onlucra.com/docs/mods-components) and draws it. When someone presses a button, Lucra sends your mod the action and every field's value.

Your mod runs on your own server (any JavaScript runtime with `fetch`), and Lucra signs every call to it. Your mod reads and writes data through the [Lucra API](https://www.onlucra.com/docs/api-introduction), with the access it was installed with.

## What people see

- A mod's page sits under **Mods** in the sidebar, and its title says it's a mod.
- Above everything it shows, Lucra labels it with the mod's name, so nobody mistakes it for Lucra.
- Its messages show under its name, and it can only send people to its own pages.

See [what mods can't do](https://www.onlucra.com/docs/mods-rules) for the full list.

## Start

- [Build a mod](https://www.onlucra.com/docs/mods-build): scaffold, run it locally, and ship it.
- [Components & slots](https://www.onlucra.com/docs/mods-components): everything a mod can draw, and where.
