marimo-pair — скилл

Агент работает в одной сессии с вами в запущенном ноутбуке marimo: запускает код в том же ядре и правит ячейки на ходу

  • 432 ★ репозитория
  • Последний коммит
  • Apache-2.0
СкиллОфициальный

Широкий доступ

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

  • Агент выполняет произвольный Python в вашем живом ядре, где лежат загруженные данные, ключи из окружения и открытые соединения
  • Скрипты скилла ходят по HTTP к серверу marimo на машине и запускают `bash`, поэтому подтверждения Claude Code приходят на каждый вызов
Все причины и проверки

marimo-team/marimo-pair

Установка

Работает в

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

npx skillfoxx add skills/marimo-pair

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

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

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

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

Широкий доступИнструмент может менять данные, выполнять команды или работать с секретами.

  • Агент выполняет произвольный Python в вашем живом ядре, где лежат загруженные данные, ключи из окружения и открытые соединения
  • Скрипты скилла ходят по HTTP к серверу marimo на машине и запускают `bash`, поэтому подтверждения Claude Code приходят на каждый вызов

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

Что делает

marimo-pair — скилл, который подключает агента к уже запущенному реактивному ноутбуку marimo. Агент выполняет Python в том же ядре, что и вы, читает переменные и состояние ячеек и вносит изменения в ноутбук через приватный интерфейс `marimo._code_mode`. Вы видите новые ячейки и результаты в обычном окне ноутбука сразу, без перезапуска. Два шелл-скрипта из папки скилла делают подключение. `discover-servers.sh` находит работающие серверы marimo, `execute-code.sh` отправляет код в выбранный. Любая сессия начинается с одной обязательной команды, `help(cm)`: так агент узнает актуальные методы, потому что интерфейс помечен как нестабильный. Файл `.py` с ноутбуком агенту править напрямую нельзя: источник правды — работающее ядро, и ядро может перезаписать файл при сохранении. Код из `execute-code.sh` идет в черновое пространство имен. Новые переменные там живут до конца вызова, а в ноутбук попадают только ячейки, созданные через `cm`. Вторая команда скилла, `/retro-marimo-pair`, собирает отзыв о проведенной сессии для авторов.

Для кого. Аналитикам и исследователям, которые ведут расчеты в ноутбуках marimo и хотят работать рядом с агентом в одном состоянии без пересылки кода и результатов.

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

  • Агент разбирает незнакомый датафрейм прямо в вашем ядре и показывает, какие столбцы и типы в нем лежат
  • Расчет проходит несколько итераций, и новые ячейки с графиками появляются в ноутбуке по ходу разговора
  • Вы пробуете преобразование данных на живых переменных, пока правки не вошли в ноутбук
  • Ноутбук с виджетами нужно довести до состояния, где агент читает значения слайдеров и проверяет результат
  • Ноутбук с заголовком PEP 723 запущен с флагом `--sandbox`, и агент работает с его встроенными зависимостями

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

  • Ноутбуки живут в Jupyter: скилл работает только с marimo
  • Ядро держит дорогое состояние, которое нельзя потерять, а изменения хочется проверять на копии
  • Нужен пакетный запуск без открытого окна ноутбука: `execute-code.sh` целится в сессию с открытым интерфейсом
  • На машине нет `bash`, `curl` и `jq`, и поставить их нельзя

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

Подключись к моему открытому ноутбуку marimo, посмотри датафрейм sales и добавь ячейку с графиком выручки по месяцам

Ограничения

Скилл ждет запущенный ноутбук marimo. Для автоматического поиска сервер стартуют с флагом `--no-token` и без `--headless`, а для сервера с токеном задают переменную `MARIMO_TOKEN`. В Windows нужен Git Bash или WSL с теми же `bash`, `curl` и `jq`. Интерфейс `marimo._code_mode` авторы называют приватным и нестабильным: методы могут измениться между версиями marimo, поэтому скилл заставляет начинать с `help(cm)`. Агент выполняет произвольный Python в вашем ядре, а Claude Code при этом может просить подтверждение на каждый вызов `bash`. Если ноутбук содержит заголовок PEP 723, открывать его нужно с флагом `--sandbox`, иначе marimo пропустит встроенные зависимости.

Как отключить. Удалите скилл `marimo-pair` из папки скиллов вашего агента или отключите плагин в Claude Code через меню `/plugin`. Правила `Bash(bash ...)` из `settings.json` уберите отдельно, если добавляли их, чтобы не повторять запросы подтверждения. Сам ноутбук marimo остановите обычным способом.

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

Как поставить marimo-pair в Claude Code?

Выполните `/plugin marketplace add marimo-team/marimo-pair`, затем `/plugin install marimo-pair@marimo-pair`. Для других агентов подойдет общая команда `npx skills add marimo-team/marimo-pair`, а при отсутствии `npx` ее заменяет `uvx deno -A npm:skills add marimo-team/marimo-pair`.

Что нужно запустить до начала работы?

Ноутбук marimo. Для автоматического поиска сервера его стартуют с флагом `--no-token`; для сервера с авторизацией задают токен в переменной `MARIMO_TOKEN`. Окно ноутбука держите открытым: скрипт целится в сессию с интерфейсом.

Почему Claude Code просит подтверждение на каждый bash-вызов?

Скилл заявляет свои разрешения, но Claude Code может спрашивать все равно. Скопируйте абсолютные пути к `discover-servers.sh` и `execute-code.sh` из установленного скилла и добавьте их правилами `Bash(bash /путь/execute-code.sh *)` в `.claude/settings.json` или `~/.claude/settings.json`.

Можно ли править файл ноутбука напрямую?

Нет, пока сессия идет. Источник правды — работающее ядро, и оно может перезаписать файл при сохранении. Изменения вносят через `marimo._code_mode`, а чтение файла с диска допустимо.

Как улучшить скилл по итогам сессии?

После сессии выполните команду `/retro-marimo-pair`: она собирает отзыв о том, где скилл можно улучшить. Тот же отзыв принимает раздел issues репозитория.

Обсуждение

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

Скиллы

Скиллы команды marimo: правильный формат ноутбуков, перенос из Jupyter и Streamlit, запуск по расписанию, WASM

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

Графовая база Cypher в одном бинарнике для агентов: CLI, встроенный движок, сервер с MCP и навык для Claude Code, Cursor и Codex.

CLIРасширенный доступ68Звезды репозитория

MCP-сервер подключает Claude Code и Codex к открытой сессии R или Python в RStudio и Positron, где лежат ваши данные

MCP-серверШирокий доступ372Звезды репозитория

Команда агентов для анализа данных ведет таблицу от сырых строк до обученной модели и сама проверяет свои выводы.

CLIШирокий доступ107Звезды репозитория

База знаний из ваших документов, где люди и ИИ-агенты ведут разметку вместе, а MCP-сервер и скиллы подключают к ней Claude Code

MCP-серверРасширенный доступ93Звезды репозитория

Плагин Monte Carlo для Claude Code и Cursor: проверка таблиц до запросов, разбор инцидентов данных и создание мониторов.

ПлагинРасширенный доступ93Звезды репозитория

Коротко о README

Страница репозитория перечисляет требования к окружению и два способа установки: общий для любых агентов и плагин Claude Code с автообновлением. В разделе FAQ разобран повтор подтверждений для `bash`, в конце собраны просьбы о правках и ссылка на трекер.

Бейдж для README

Исходный SKILL.md

---
name: marimo-pair
description: >-
  Drive a live marimo notebook as a workspace: run Python in the same kernel
  the user does, inspect live notebook state, and commit durable notebook
  changes. Use when the user wants to start a marimo notebook or pair on an
  active marimo session.
allowed-tools: Bash(bash **/scripts/discover-servers.sh *), Bash(bash **/scripts/execute-code.sh *), Read
---

marimo is a reactive Python runtime for building reproducible Python programs
(marimo notebooks). Cells are connected by the variables they define and
reference. Running a cell re-executes dependents in dataflow order. The active
runtime holds the kernel namespace, cell state, and dataflow graph. The
notebook (`.py` file) is the artifact the kernel writes from that state while a
session is running.

A user interacts with the same runtime via a notebook UI with cells, outputs,
and widgets.

**WARNING. The active runtime is the source of truth.** During a session, you
SHOULD NOT modify the associated `.py` file directly. File edits WILL NOT reach
the active kernel or user, and the kernel may overwrite them on save. Use
`marimo._code_mode` (`cm`) for notebook changes. Reading disk is fine, but
prefer `ctx.cells[...].code` for current cell code.

The harness reports the absolute path to this `SKILL.md`. Resolve bundled
`scripts/...` and `reference/...` paths from its parent directory, even when
the current working directory is a notebook workspace. In command examples,
replace `/absolute/path/to/marimo-pair` with that directory.

## Required first kernel command

Start every code-mode session with this dedicated command:

```bash
bash /absolute/path/to/marimo-pair/scripts/execute-code.sh \
  --url http://localhost:2718 \
  -c "import marimo._code_mode as cm; help(cm)"
```

Follow this order for each kernel, including read-only tasks:

1. Run the inspection command once.
2. Wait for successful `help(cm)` output.
3. Then use `cm.get_context()` or another `cm` API in a later call.

Do not run task-specific `cm` code before the inspection command succeeds.

## Connect to a Notebook

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