---
url: https://docs.ogmabox.com/uk/plugins/quickstart.md
description: >-
  Створіть і встановіть перший плагін Ogma за кілька хвилин із мінімальним
  серверним прикладом і необов’язковою панеллю інтерфейсу.
---

# Швидкий старт плагінів {#plugin-quickstart}

Цей посібник допоможе швидко перейти від порожньої папки до працюючого плагіна.

## 1) Створіть мінімальний серверний плагін {#\_1-create-a-minimal-backend-only-plugin}

Створіть папку з такими файлами:

```text
my-plugin/
  manifest.json
  backend/
    script.js
```

`manifest.json`:

```json
{
  "id": "my-plugin",
  "name": "My Plugin",
  "version": "0.1.0",
  "plugins": [
    {
      "kind": "backend",
      "id": "my-plugin-backend",
      "entrypoint": "backend/script.js"
    }
  ]
}
```

`backend/script.js`:

```js
async function init(sdk) {
  sdk.console.log("Plugin started");

  sdk.events.onInterceptResponse(function(req, res) {
    if (!res) return;
    if (res.getCode() === 403) {
      sdk.console.warn("403 on " + req.getUrl());
    }
  });
}
```

Установіть через **Плагіни > Установити**, виберіть папку, увімкніть плагін і переконайтеся, що журнали показують `Plugin started`.

## 2) Якщо використовуєте TypeScript {#\_2-if-you-are-using-typescript}

Використовуйте таку структуру:

```text
my-plugin/
  manifest.json
  backend/
    src/index.ts
```

Зберіть командою:

```bash
pnpm add -D @ogmabox/ogma-sdk esbuild typescript
pnpm exec esbuild backend/src/index.ts \
  --bundle \
  --platform=neutral \
  --format=iife \
  --external:@ogma/sdk --external:@ogmabox/ogma-sdk \
  --outfile=backend/script.js
```

Потім установіть папку, як описано вище.

## 3) Додайте інтерфейс пізніше {#\_3-add-a-frontend-later}

Додавайте точку входу фронтенда й файли інтерфейсу лише коли потрібна панель:

```text
my-plugin/
  frontend/
    script.js
    style.css   # optional
```

Потім розширте `manifest.json`:

```json
{
  "kind": "frontend",
  "id": "my-plugin-frontend",
  "entrypoint": "frontend/script.js",
  "backend": { "id": "my-plugin-backend" }
}
```

Для взаємодії інтерфейсу використовуйте `window.ogmaSDK.ready(...)`, а серверні виклики залишайте в обробниках `sdk.api`.

## 4) Дозволи, які майже завжди потрібні {#\_4-permissions-you-almost-always-need}

Для серверного прикладу вище:

* жодні (безпечні типові дозволи надаються автоматично)

Якщо плагін надсилає вихідні запити, додайте:

```json
"permissions": ["send_requests"]
```

Якщо плагін записує знахідки, додайте:

```json
"permissions": ["write_findings"]
```

Запитуйте лише те, що фактично використовуєте.

## Усунення несправностей першого плагіна {#troubleshooting-first-plugin}

* `Plugin failed to initialize` → відкрийте **Журнали** й переконайтеся, що `init(sdk)` визначено.
* `Invalid manifest` → перевірте коми й лапки JSON.
* Обробники не викликаються → переконайтеся, що плагін увімкнено й відповідну подію (`onInterceptResponse`) зареєстровано.

Повні довідники API:

* [Система плагінів](./README)
* [SDK серверної частини](/uk/plugins/backend-sdk)
* [SDK інтерфейсу](/uk/plugins/frontend-sdk)
