instancez — скилл

Навык учит агента описывать бэкенд, совместимый с Supabase, одним YAML-файлом и запускать его командами CLI instancez.

  • 62 ★ репозитория
  • Последний коммит
  • Apache-2.0
Скилл

Расширенный доступ

Почему такой уровень

  • Агент правит схему и политики доступа, а `inz dev` сразу применяет их к локальной базе.
  • Секретный ключ обходит RLS, и его нельзя отдавать клиентскому коду.
Все причины и проверки

instancez/instancez

Установка

В терминале, через SkillFoxx CLI

npx skillfoxx add skills/instancez

Определит агенты на машине, покажет уровень доступа и зафиксирует версию.

Другие способы установки

Доступ и проверки

Как мы проверяем

Расширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.

  • Агент правит схему и политики доступа, а `inz dev` сразу применяет их к локальной базе.
  • Секретный ключ обходит RLS, и его нельзя отдавать клиентскому коду.

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

Навык `instancez` лежит в папке `skills/instancez` репозитория и объясняет агенту, как строить бэкенд на instancez. Сам продукт — один бинарный файл, который по файлу `instancez.yaml` поднимает Postgres CRUD, авторизацию, хранилище, SQL RPC и функции на Node.js. Клиенты `@supabase/supabase-js` и другие работают с ним без изменений. Навык описывает синтаксис YAML для таблиц, правил RLS, авторизации, хранилища и функций. Рабочий цикл такой: `inz init` создает файл, `inz validate` проверяет ссылки и типы без базы, `inz dev --embedded-pg` запускает сервер с встроенным Postgres 16. Миграций вручную нет: при каждом запуске схема сравнивается с живой базой, и применяется только разница. Если запрос отклонен, навык подсказывает, где искать причину в политиках RLS.

Для кого. Разработчикам, которые поднимают бэкенд под приложение на Supabase-клиенте и хотят, чтобы агент сам вел схему в одном YAML-файле.

Подходит, если

  • Новое приложение должно работать с `supabase-js`, а бэкенд нужен одним локальным бинарником.
  • Агент добавляет таблицу и политики RLS, и изменения должны попасть в базу без файлов миграций.
  • Запрос возвращает пустой результат, и нужно выяснить, какая политика его отрезает.
  • Для фронтенда на TypeScript нужны типы, которые генерирует команда `inz gen types`.

Не подходит, если

  • Проект остается на облачном Supabase и не планирует переезд.
  • Нужен полный набор возможностей Supabase: в README есть таблица совместимости с пробелами.
  • Миграции должны храниться файлами в репозитории: instancez применяет разницу автоматически, включая удаления.

Пример запроса к агенту

Опиши в `instancez.yaml` таблицу заметок с политикой RLS, где пользователь видит только свои строки, и запусти `inz validate`.

Ограничения

Навык работает только с instancez, а сам CLI `inz` нужно ставить отдельно: скриптом `curl -fsSL https://get.instancez.ai | sh` либо сборкой из исходников на Go и Node. CLI отправляет анонимную телеметрию, ее выключают командой `inz telemetry disable`. Без `--embedded-pg` команде `inz dev` нужен адрес базы `INSTANCEZ_DATABASE_URL` с правами суперпользователя. Удаление таблиц и колонок при `inz serve` идет только с флагом `--allow-destructive`, а в режиме `inz dev` схема применяется сразу. Секретный ключ обходит RLS и остается только на сервере.

Как отключить. Удалите навык из каталога агента или командой `/plugin` в Claude Code, если ставили плагин. Установленный бинарник `inz` и данные локальной базы удаляются отдельно.

Частые вопросы

Как поставить навык instancez?

Выполните `npx skills add instancez/instancez`, и CLI сам определит ваших агентов. Для одного агента добавьте флаг, например `-a codex`. В Claude Code работает и плагин: `/plugin marketplace add instancez/instancez`, затем `/plugin install instancez@instancez`.

Подойдет ли навык агенту без поддержки skills?

Да. Навык состоит из одного файла `SKILL.md`: положите его в проект и сошлитесь на него из `AGENTS.md`.

Чем instancez совместим с Supabase?

Клиент `@supabase/supabase-js` и другие клиентские библиотеки Supabase работают без правок: авторизация, REST в стиле PostgREST, RPC и хранилище. Полный список приведен в таблице совместимости README.

Как получить типы для TypeScript?

Запустите `inz gen types --out database.types.ts` и передайте результат в `createClient<Database>()`. Команда читает только YAML, поэтому после смены схемы ее надо запустить заново.

Где лежат ключи API?

При первом запуске `inz dev` ключи записываются в `.development.env` как `INSTANCEZ_PUBLISHABLE_KEY` и `INSTANCEZ_SECRET_KEY`. Секретный ключ работает как `service_role` и обходит RLS.

Обсуждение

Вопросов и отзывов пока нет.

Скиллы
Выбор редакции

Официальные скиллы Supabase: помогают агенту работать с базой, Auth, Edge Functions и лучшими практиками Postgres

СкиллМинимальный доступ3 тыс.Звезды репозитория

Официальный CLI Supabase: локальный стек, миграции базы, деплой Edge Functions и генерация типов из терминала

CLIШирокий доступ2,5 тыс.Звезды репозитория

Три скилла для бэкенда: агент защищает доступ, данные и миграции схемы, критических ошибок стало 2 из 150 запусков вместо 25.

СкиллМинимальный доступ53Звезды репозитория

Набор из 14 скиллов для Java Spring Boot: от анализа требований и генерации кода до тестов, ревью и Docker-развертывания.

СкиллРасширенный доступ104Звезды репозитория

32 скилла Tencent CloudBase: серверные функции, авторизация, ИИ-модели, хранилище и развертывание бэкенда на облаке.

СкиллРасширенный доступ81Звезды репозитория
Официальный

Скилл Elysia v2 учит агента писать, отлаживать и переносить бэкенды на Elysia: валидация, плагины, типизированные клиенты и деплой

СкиллМинимальный доступ70Звезды репозитория

Коротко о README

Продукт подан как замена Supabase в одном бинарнике: схема лежит в одном YAML, запускается локально, в Docker, на сервере или в AWS Lambda. Для агентов выделен раздел с навыком и тремя способами его установки.

Бейдж для README

Исходный SKILL.md

---
name: instancez
description: Use when building, changing, or deploying an instancez backend - editing instancez.yaml (tables, RLS, auth, storage, rpc, functions), running the inz CLI, or debugging why a query is denied. instancez is a single-binary Supabase-compatible backend defined by one YAML file.
---

# Building with instancez

instancez turns one file, `instancez.yaml`, into a full backend: Postgres CRUD, auth, storage, SQL RPC, and Node.js functions. Clients talk to it with `@supabase/supabase-js` (or any Supabase client library) unchanged. There are no migration files: on every run the migrator diffs the YAML against the live database and applies the delta, including drops.

## Workflow

If `inz` is not installed: `curl -fsSL https://get.instancez.ai | sh` (macOS/Linux) or `irm https://get.instancez.ai/windows | iex` (PowerShell).

```sh
inz init                # scaffold instancez.yaml + .development.env.example
inz validate            # check YAML syntax and references, no DB needed
inz dev --embedded-pg   # dev server on :8080 with a built-in Postgres 16
```

`instancez.yaml` starts with `# yaml-language-server: $schema=https://docs.instancez.ai/schema/instancez.json`; keep it for editor completion.

Edit `instancez.yaml`, save, and `inz dev` re-applies the schema automatically. Always run `inz validate` after editing the YAML; it catches bad types, bad references, and missing function files without touching a database.

Without `--embedded-pg`, `inz dev` needs `INSTANCEZ_DATABASE_URL` set to a superuser DSN. API keys land in `.development.env` on first run (`INSTANCEZ_PUBLISHABLE_KEY`, `INSTANCEZ_SECRET_KEY`). `inz doctor` diagnoses a dev setup that won't boot. The banner prints the embedded DB URL.

For typed queries, run `inz gen types --out database.types.ts` and pass the result to `createClient<Database>()`. It reads only the YAML; regenerate after schema changes.

Client-side, the app is a normal Supabase app. Point any Supabase client library at the server and the whole surface works: PostgREST-style queries with filters and embeds, auth, storage, RPC, functions.

```js
import { createClient } from '@supabase/supabase-js'
const supabase = createClient('http://localhost:8080', process.env.INSTANCEZ_PUBLISHABLE_KEY)
const { data, error } = await supabase.from('todos').select('*').eq('status', 'pending')
```

The secret key takes the `service_role` path (bypasses RLS); keep it server-side only.

Other commands: `inz serve` (production, no hot reload, dashboard off by default), `inz bundle` (build a tar.gz of config + functions for deploys), `inz cloud deploy` (push to a managed project; `--new` creates one), `inz db reset` (wipe the local DB; `--embedded-pg` for ./pgdata).

## instancez.yaml at a glance

Top-level keys:

```yaml
version: 1

Сообщить о проблеме