pxl — скилл
Скилл для пиксель-арта: агент описывает рисунок кодом, а pxl собирает PNG, листы спрайтов, GIF и показывает рисование в браузере
- 591 ★ репозитория
- Последний коммит
- MIT
Минимальный доступ
Почему такой уровень
- Пишет файлы только в каталог `out/` рядом с рисунком и запускает локальный сервер просмотра на 127.0.0.1:4321
- Файл рисунка `.px.js` выполняется в песочнице виртуальной машины Node
Установка
- Работает в
В терминале, через SkillFoxx CLI
npx skillfoxx add skills/pxlОпределит агенты на машине, покажет уровень доступа и зафиксирует версию.
Другие способы установки
Доступ и проверки
Как мы проверяемМинимальный доступИнструмент ничего не запускает и не ходит в сеть.
- Пишет файлы только в каталог `out/` рядом с рисунком и запускает локальный сервер просмотра на 127.0.0.1:4321
- Файл рисунка `.px.js` выполняется в песочнице виртуальной машины Node
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
pxl — скилл и консольная утилита на Node.js, в которой пиксель-арт описывается кодом. Агент пишет компактный файл `.px.js`, а `node bin/pxl.js build art.px.js` собирает из него PNG, листы спрайтов с JSON в стиле TexturePacker и анимированные GIF. Зависимостей для запуска нет, нужен Node 22.18 или новее. Язык описания убирает повторы. Спрайт рисуется текстовой сеткой из символов палитры, зеркалится, обводится контуром автоматически и перекрашивается заменой цветов в одной строке. Есть прямоугольники, линии, окружности, многоугольники, градиенты, дизеринг и шум, встроенный пиксельный шрифт, тайлмапы и слои сцены с тенями. Анимация собирается из кадров-правок поверх базового спрайта, освещение с рельефом подключается по необходимости. SKILL.md задает цикл для агента: написать файл, собрать нужные ассеты, посмотреть увеличенное превью `out/_preview/<имя>.png` с сеткой пикселей, поправить и собрать заново. Для точных правок `pxl ascii` печатает ассет ключами палитры с линейками координат. Команда `pxl serve art.px.js` открывает в браузере просмотр, который перестраивается при каждом сохранении и повторяет рисование шаг за шагом.
Для кого. Авторам 2D-игр и интерфейсов, которым нужны спрайты, тайлы и иконки от Claude Code или Codex, и тем, кто хочет наблюдать, как агент рисует.
Подходит, если
- Игре нужен набор спрайтов с общей палитрой, и агент должен отдать лист PNG вместе с JSON-описанием кадров
- Персонаж нужен в нескольких цветах: вариант собирается строкой `sprite("slime_red", { base: "slime", swap: { g: "r" } })`
- Сцену с тенями и светом лампы собирают слоями, а правки идут патчами без перерисовки всего изображения
- Нужен анимированный GIF персонажа или предмета, например кошка или часы
- Вы хотите видеть процесс: `pxl serve` показывает в браузере, как рисуется выбранный ассет
Не подходит, если
- Нужна фотореалистичная графика или растровая иллюстрация: pxl рисует только пиксельную графику
- Дизайнер работает в редакторе с кистями и слоями и вручную правит каждый пиксель
- Среда без Node 22.18 или новее, и обновить ее нельзя
- Нужны трехмерные модели: pxl делает плоские изображения, пусть и с освещением
Пример запроса к агенту
Нарисуй пиксельного слизня 16 на 16 в палитре sweetie16 и анимацию покачивания, дай лист спрайтов и GIFОграничения
- Нужен Node 22.18 или новее. Из клона запускаются исходники на TypeScript, из пакета собранный `dist/`.
- Скилл рассчитан на Claude Code. Для Codex, Cursor и других агентов в README указано одно: открыть `SKILL.md` и сообщить путь к `bin/pxl.js`.
- Результат зависит от модели, которая пишет сетки: автор рекомендует смотреть превью после каждой правки и править патчами.
- Последний коммит репозитория в октябре 2026 года, версии в тегах нет.
Как отключить. Удалите папку `~/.claude/skills/pxl-pixel-art` или `.claude/skills/pxl-pixel-art` в проекте. Утилита ничего не пишет вне этой папки и каталога `out/` рядом с файлом рисунка.
Частые вопросы
Как поставить pxl в Claude Code?
Клонируйте репозиторий в папку скиллов: `git clone https://github.com/crsolver/claude-pxl.git ~/.claude/skills/pxl-pixel-art` для всех проектов или в `.claude/skills/pxl-pixel-art` для одного. Затем попросите Claude нарисовать спрайт, и скилл подключится по описанию.
Можно ли запустить pxl без клонирования?
Да, команда `npx github:crsolver/claude-pxl build art.px.js` собирает рисунок без клона. Живой просмотр запускается так же: `npx github:crsolver/claude-pxl serve art.px.js`, адрес выводится в терминале, по умолчанию порт 4321.
Что получится после сборки?
В каталоге `out/` лягут PNG спрайтов в масштабе один к одному, лист спрайтов с JSON, GIF для анимаций и увеличенные превью с сеткой в `out/_preview`. Каждое превью агент читает как изображение и правит рисунок.
Работает ли pxl с Codex и Cursor?
Да, но вручную. README советует направить агента на `SKILL.md` и сказать, что утилита запускается как `node <путь к pxl>/bin/pxl.js`. Автоматической установки для них нет.
Как поправить один пиксель, не перерисовывая спрайт?
Посмотрите ассет командой `pxl ascii art.px.js <имя>`: она выведет ключи палитры с линейками. Затем добавьте патч `grid(x, y, ...)` и пересоберите только этот ассет флагом `--only`.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
СкиллыAseprite AI Artist — пиксель-арт через агента
Aseprite AI Artist
Плагин и MCP-сервер дают агенту рисовать и анимировать в уже открытом окне Aseprite, каждое действие откатывается одним Ctrl+Z
Плагин Claude Code для пиксель-арта в Aseprite: спрайты, анимация, ретро-палитры, дизеринг и экспорт для Unity, Godot и Phaser
Скилл превращает ваше фото или описание в рисованного персонажа и делает им схемы, карточки знаний и слайды
Десять скиллов SpriteCook учат агента делать пиксель-арт и игровую графику, анимировать спрайты и выгружать их в Godot
Скилл ведет агента от сгенерированной картинки к игровому ассету: спрайты, анимация из видео и проверка перед выпуском
Библиотека из 244 пиксельных эффектов в виде кода и скилл для Claude Code, который находит, перекрашивает и рисует новые эффекты
Сравнение с похожими
Карточки с тем же главным запросом: чем они отличаются.
| Инструмент | Официальный | Звезды репозитория | Главное отличие |
|---|---|---|---|
| pxl (эта карточка) | нет | 591 | |
| Agent Sprite Forge | нет | 5 306 | строит спрайты и карты из текстового запроса в Codex, а pxl описывает рисунок кодом и собирает его детерминированно |
| Sprite Gen | нет | 3 764 | делает спрайты из одного базового изображения и убирает фон, pxl рисует с нуля из палитры и сеток |
Коротко о README
README показывает галерею сцен и анимаций, затем быстрый старт с примером `art.px.js` и списком файлов на выходе. Дальше описаны живой просмотр, четыре команды `build`, `serve`, `ascii` и `list`, возможности языка и подключение к агентам. Последний раздел для разработчиков самого pxl.
Бейдж для README
Исходный SKILL.md
---
name: pxl-pixel-art
description: Create pixel art (game sprites, characters, items, tiles, tilesets, icons, scenes, sprite sheets) with pxl, a compact JavaScript DSL that renders PNGs and lets the user watch the painting live in a browser. Use when asked to draw, design or iterate on pixel art or game assets.
---
# pxl: pixel art as code
You write a small `.px.js` file; pxl renders PNGs and upscaled previews you can look at. The DSL
is built to avoid writing pixels twice: mirroring, auto-outline, palette-swap variants, reusable
parts, primitives, brushes and tilemaps. Needs Node ≥ 22.18. No install step.
`PXL` below means `node <this skill's directory>/bin/pxl.js`.
## Workflow
1. Write `art.px.js` (start from the template below; examples in `examples/`).
2. Build only what you're working on: `PXL build art.px.js --only slime,heart`
3. **Look at it**: read `out/_preview/<name>.png` (upscaled, checkerboard = transparent, grid every
pixel, darker every 8). For exact pixel fixes use `PXL ascii art.px.js <name>` (keys + x/y rulers);
it's cheaper than an image.
4. Fix with small edits (a `grid(x, y, ...)` patch, one op) and rebuild. Repeat.
5. If the user wants to watch: start `PXL serve art.px.js` in the background and give them the URL.
It rebuilds on every save and replays the edited asset's painting steps; it also writes the same
`out/` files, so keep reading previews as usual.
Errors name the file:line:col, the asset/layer/op path, and suggest fixes ("did you mean 'r'?").
One broken asset doesn't stop the others from building.
## Template
```js
pal({ k: "#1b1630", g: "#8ccf63", G: "#4c8a44", t: "#2a5560", w: "#fff6e0", r: "#e2585e", R: "#a63a4c" })
ramps("ktGg", "kRr") // dark -> light, drives shade()/light()
// Symmetric: write the left half, mirror it, outline it.
sprite("slime", { mx: true, outline: "k" }, `
....ggg
..ggGGg
.ggGwGg
gggkwgg
gggkkgg
tgggggg
.tttttt`)
sprite("slime_red", { base: "slime", swap: { g: "r", G: "R" } }) // variant: 1 line
sprite("_eye", "wk\nkk") // "_" = part, not exported
sprite("chest", { w: 16, h: 12, outline: "k" },
rect(0, 3, 16, 9, "R"), rect(0, 0, 16, 4, "r"), stamp("_eye", 7, 4), shade([0, 9, 16, 3]))
scene("meadow", { w: 160, h: 96, bg: "w" },
layer("ground", { y: 64 }, rect(0, 0, 160, 32, "G"), noise(0, 0, 160, 32, "g", 0.1, 3)),
layer("props", stamp("slime", 40, 54), stamp("slime_red", 70, 54, { flip: "x" })),
layer("shadow", { shade: true }, poly([38, 64, 88, 64, 92, 67, 34, 67], "k"))) // cast shadow
sheet("chars", ["slime*", "chest"], { pad: 1 })