Next AI Draw.io
draw.io diagrams your AI agent draws on a live browser canvas that you can also edit by hand
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
LLMs can't draw. This MCP can. Pixel art animation toolkit — draw, animate, compose, export.
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ผลตรวจผ่าน 2/2 · ทำงานบนเครื่องคุณ
ขั้นแรก: คุณใช้ AI ตัวไหน
เลือกแอปที่คุณใช้ ขั้นตอนจะขึ้นด้านล่าง
ต่อกับ Claude ได้ แต่ต้องเตรียมก่อน
ต้องลง Node.js ในเครื่องก่อน (ทำครั้งเดียว) · ใช้ได้เฉพาะแอป Claude บนคอม (Windows หรือ Mac) ไม่ใช่บนเว็บหรือมือถือ
SettingsDeveloperEdit Config
{
"mcpServers": {
"pixscii": {
"command": "npx",
"args": [
"-y",
"pixscii"
]
}
}
}ใช้ Pixscii บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง✓ ถ้า Claude บอกว่ากำลังใช้ Pixscii หรือมีชื่อเครื่องมือของ Pixscii ขึ้นในคำตอบ แปลว่าต่อสำเร็จ
ชื่อเมนูตรวจกับหน้าช่วยเหลือของ Anthropic เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป
ChatGPT ยังต่อ Pixscii ไม่ได้
Pixscii ต้องติดตั้งในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะตัวที่ทำงานบนเว็บ
ก · ใช้แอปที่ต่อ Pixscii ได้
ข · ตัวอื่นในหมวด ออกแบบ ภาพ และเสียง ที่ต่อกับ ChatGPT ได้
เลือกจากตัวที่ใช้มากในหมวดเดียวกัน เฉพาะตัวที่ต่อด้วยที่อยู่ได้โดยไม่ต้องใส่คีย์
ต่อกับ Claude Code ได้ แต่ต้องเตรียมก่อน
ต้องลง Node.js ในเครื่องก่อน (ทำครั้งเดียว)
Mac: กด Command+Space พิมพ์ Terminal · Windows: เปิด PowerShell
claude mcp add pixscii -- npx -y pixsciiต้องเห็น Pixscii ในรายการและขึ้นว่าเชื่อมต่อแล้ว
ใช้ Pixscii บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง✓ ถ้า Claude Code บอกว่ากำลังใช้ Pixscii หรือมีชื่อเครื่องมือของ Pixscii ขึ้นในคำตอบ แปลว่าต่อสำเร็จ
ชื่อเมนูตรวจกับหน้าช่วยเหลือของ Anthropic เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป
ต่อกับ Cursor ได้ แต่ต้องเตรียมก่อน
ต้องลง Node.js ในเครื่องก่อน (ทำครั้งเดียว)
ใช้ Pixscii บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง✓ ถ้า Cursor บอกว่ากำลังใช้ Pixscii หรือมีชื่อเครื่องมือของ Pixscii ขึ้นในคำตอบ แปลว่าต่อสำเร็จ
ชื่อเมนูตรวจกับหน้าช่วยเหลือของ Cursor เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป
ต่อกับ VS Code ได้ แต่ต้องเตรียมก่อน
ต้องลง Node.js ในเครื่องก่อน (ทำครั้งเดียว)
ใช้ Pixscii บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง✓ ถ้า VS Code บอกว่ากำลังใช้ Pixscii หรือมีชื่อเครื่องมือของ Pixscii ขึ้นในคำตอบ แปลว่าต่อสำเร็จ
ชื่อเมนูตรวจกับหน้าช่วยเหลือของ VS Code เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป
Claude Code
claude mcp add pixscii -- npx -y pixsciiClaude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"pixscii": {
"command": "npx",
"args": [
"-y",
"pixscii"
]
}
}
}Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"pixscii": {
"command": "npx",
"args": [
"-y",
"pixscii"
]
}
}
}VS Code (mcp.json)
{
"servers": {
"pixscii": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"pixscii"
]
}
}
}ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
npm: pixsciiดูจากแบบการต่อของ server ตัวนี้ และเอกสารของผู้ทำโปรแกรมแต่ละตัว ตรวจเมื่อ 10 พ.ย. 2569
ติดตั้งบนเครื่องได้ใน
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 11 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub rxolve ซึ่งเป็นเจ้าของ repo
มีการแก้โค้ดล่าสุด 15 วันที่ผ่านมา
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
ถาม แชร์เคล็ดลับ หรือแจ้งว่าใช้ไม่ได้ เรียงตามที่คนกดว่ามีประโยชน์
ยังไม่มีใครโพสต์ ถามหรือแชร์เป็นคนแรกได้เลย
ข้อความในส่วนนี้เขียนโดยผู้ใช้ ไม่ใช่ทีม PopNx
ยังไม่มีรีวิว
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 2 จาก 2 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด 15 วันที่ผ่านมา และส่งรุ่นล่าสุด (0.5.0) เข้า registry 14 วันที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย
ในหมวดเดียวกันมี Next AI Draw.io, Pascal 3D Editor, screenpipe
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:↓ ดาวน์โหลดต่อสัปดาห์i★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
draw.io diagrams your AI agent draws on a live browser canvas that you can also edit by hand
สร้าง ตรวจ และบันทึกฉากอาคาร 3 มิติที่แก้ไขได้ ด้วย Pascal
Search your local screen recordings, audio transcripts, and computer activity from screenpipe.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
LLMs can't draw. This MCP can. A pixel art animation toolkit for AI agents.
Sister project of artscii. While artscii provides terminal ASCII art, pixscii gives AI agents a full pixel art workbench — generate characters, animate scenes, draw sprites, and export PNGs. Offline, deterministic, zero latency.
animate_scene {
"width": 128, "height": 48, "background": { "tiles": [["tree","grass","grass","sand","stone","wall","wall","door"]] }, "actors": [ { "seed": "hero", "species": "human", "armor": "plate", "weapon": "sword", "motion": "walk", "from": {"x":0,"y":28}, "to": {"x":96,"y":28} }, { "seed": "mage", "species": "elf", "armor": "cloth", "weapon": "staff", "motion": "walk", "from": {"x":-16,"y":30}, "to": {"x":72,"y":30} }, { "seed": "guard", "species": "skeleton", "motion": "idle", "from": {"x":108,"y":28}, "to": {"x":108,"y":28} } ], "frames": 24, "delay": 150 }
One tool call. 3 characters, tiled background, 24 frames. 9ms.
The LLM translates a scene description into structured input. pixscii executes it instantly.
npx pixscii
Or add to your MCP client config:
{
"mcpServers": { "pixscii": { "command": "npx", "args": ["-y", "pixscii"] } } }
| Tool | Description |
|---|---|
animate_scene | Text description → animated scene with characters, background, and motion |
| Tool | Description |
|---|---|
create | New blank canvas with optional fill color |
get | Load a bundled sprite into an editable canvas |
character | Generate a procedural pixel character |
convert | Quantize any image (URL or base64) to pixel art |
search | Browse the sprite library |
creature | Endless symmetric robots, aliens and critters from a mask and a seed, or an asymmetric nebula |
being | A 24×24 person, cat or elf as a baby, an adult or old |
landscape | Generate a landscape from a seed: sky by time of day, sun or moon, stars, clouds, mountains, hills, sea, forest, ground, rain |
| Tool | Description |
|---|---|
pixel | Set individual pixels (batch up to 512) |
line | Bresenham line between two points |
rect | Rectangle — outline or filled |
fill | Flood fill from a point (with leak detection) |
mirror | Mirror left half to right half |
shapes | Draw geometry as crisp pixel art: rect, circle, ellipse, polygon, line, curve, with dithered fills and gradients |
undo | Revert the last drawing operation |
| Tool | Description |
|---|---|
inspect | View the canvas as a hex character grid |
| Tool | Description |
|---|---|
sequence | Animate actors across a scene with per-frame positions |
compose | Layer multiple canvases/sprites into a scene |
tilemap | Build a map from a tile grid |
spritesheet | Stitch frames into a single PNG (horizontal/vertical/grid) |
animate | Animate a sprite with pixel motion (idle, walk, attack...) |
export | Render a canvas to scaled PNG |
| Tool | Description |
|---|---|
palettes | List palettes and their named slots (filter by schema) |
repalette | Switch a canvas to another palette: same schema keeps pixels, others map by slot name or nearest color |
LLMs can't place pixels well, but they write coordinates fine. shapes rasterizes geometry at pixel centers with no anti-aliasing, so every pixel is one palette index. Soft fills come from ordered dithering:
shapes {
"width": 128, "height": 72, "palette": "scene-dusk", "shapes": [ { "type": "rect", "x": 0, "y": 0, "w": 128, "h": 46, "fill": { "gradient": ["sky-top", "sky-mid", "sky-low"] } }, { "type": "circle", "cx": 92, "cy": 40, "r": 9, "fill": "sun" }, { "type": "polygon", "points": [[0,46],[22,26],[40,38],[62,20],[90,42],[128,40],[128,48],[0,48]], "fill": "far" }, { "type": "rect", "x": 0, "y": 46, "w": 128, "h": 26, "fill": { "gradient": ["water", "near"] } }, { "type": "curve", "points": [[34,56],[44,44],[56,56]], "color": "accent" } ] }
Then repalette to scene-sea or scene-night for the same picture in another mood. In code: drawShapes(sprite, shapes, palette).
landscape builds a whole scene from a seed in the scene schema, so one seed is one place you can show in any mood:
landscape { "seed": "harbor-town", "preset": "dusk" }
landscape { "seed": "harbor-town", "preset": "dusk", "palette": "scene-night" } landscape { "seed": "pine-ridge", "time": "dawn", "layers": ["sky", "sun", "mountains", "forest", "ground"] }
Presets match the scene palettes: dawn, home, school, night, sea, storm, window, forest, dusk, stars. Layers: sky (dithered gradient), stars, sun or moon (with a halo, and glitter on water), clouds, mountains (midpoint-displacement ridge), hills (value noise), sea (waves), forest (pines and round trees), ground, rain. Default size 128×72. In code: landscape({ seed, preset }).
creature mirrors a mask filled by the seed (body, maybe-body, empty), drops stray pixels, outlines it, lights it from the top and gives it eyes. Kinds: robot, alien, critter, plus nebula (asymmetric noise cloud with caught stars). being draws a person, cat or elf at a life stage from shapes: babies have big heads and no legs, old people white hair and a cane, old elves a staff, old cats a rounder body and a lowered tail.
creature { "seed": "voyager-7", "kind": "robot" }
being { "species": "elf", "stage": "old", "palette": "scene-forest" }
Both use the scene schema, so they sit on a landscape in the same palette.
Layer 1: animate_scene → full scene in one call (fast path)
Layer 2: sequence/compose → manual frame composition (precise control) Layer 3: pixel/line/rect → individual pixel editing (full control)
Start with animate_scene for a fast draft. Drop to lower layers to refine.
→ animate_scene {
width: 80, height: 40, background: { tiles: [["grass","grass","stone","wall","door","wall"]] }, actors: [{ seed: "hero-girl", species: "human", armor: "cloth", motion: "walk", from: {x:0, y:24}, to: {x:60, y:24} }], frames: 16, delay: 120 } ← 16 frame PNGs + frame_ids
→ spritesheet { frames: [frame_ids], direction: "horizontal" } ← single strip PNG with all 16 frames
Two calls: one to generate, one to assemble. Done.
→ create { width: 16, height: 16, fill: "." }
← canvas_id + hex grid
→ rect { canvas_id, x: 3, y: 5, w: 10, h: 9, color: "1" } → fill { canvas_id, x: 7, y: 7, color: "8" } ← filled: 56 pixels, leaked: false (grid returned — agent verifies)
→ inspect { canvas_id } ← agent reads grid, spots issue, fixes with pixel tool
→ export { canvas_id, scale: 4 } ← 64x64 PNG
Every pixel is one character. The agent reads and writes in the same alphabet:
0-F = PICO-8 palette colors (0=black, 7=white, 8=red, ...)
. = transparent
0123456789ABCDEF 0: ................ 1: .....111111..... 2: .....177771..... 3: .....177771..... 4: ...1111111111... 5: ...1888888881... 6: ...1788888881...
~80 tokens for a full 16x16 sprite. The LLM reads this like source code and reasons about it spatially.
22 sprites across 4 categories:
648 procedural characters: 4 species (human, elf, dwarf, skeleton) x 3 armors x 3 weapons x 3 helms x 6 skin tones.
13 palettes: pico8 (default), grayscale, gameboy, and 10 scene moods (scene-dawn, home, school, night, sea, storm, window, forest, dusk, stars)
The scene palettes share one schema: the same 16 named slots (ink, sky-top, sky-mid, sky-low, sun, cloud, far, mid, near, ground, water, foam, accent, skin, cloth, light). Draw once with those slots, then render with any scene palette to get the same picture in another mood. In code: SCENE.ground, slotIndex(palette, 'water'), remapPalette(sprite, from, to).
6 motion types: idle, walk, attack, hurt, bounce, blink
npx pixscii import sprite.png --id my-sword --category items
npx pixscii export sword --scale 4 --out sword.png
pixscii/coreEverything that draws, composes and renders also runs without Node. pixscii/core has no Node built-ins, no sharp and no MCP:
import { createEmpty, drawRect, registerPalette, getPalette, renderToRGBA } from 'pixscii/core';
registerPalette({ id: 'dusk', name: 'Dusk', colors: [ { index: 0, hex: '#1A1016', name: 'sky' }, { index: 1, hex: '#E88FB0', name: 'sun' }, { index: 2, hex: '#3A2433', name: 'ground' }, ], });
let scene = createEmpty(32, 18, 0); scene = drawRect(scene, 13, 4, 6, 6, 1, true); scene = drawRect(scene, 0, 12, 32, 6, 2, true);
const { width, height, data } = renderToRGBA(scene, getPalette('dusk'), 8); canvas.getContext('2d')!.putImageData(new ImageData(new Uint8ClampedArray(data), width, height), 0, 0);
Bundled sprites, palettes and characters load through an asset source. In Node the MCP server and CLI use the files in sprites/. Elsewhere, pass anything that can read those files:
import { setAssetSource, loadPalettes } from 'pixscii/core';
setAssetSource({ readJSON: (file) => fetch(/pixscii/sprites/${file}).then((r) => r.json()), list: async (dir) => (dir === 'palettes' ? ['pico8.json', 'gameboy.json', 'grayscale.json'] : []), }); await loadPalettes();
npm install
npm run dev # Start MCP server (stdio) npm run build # Compile TypeScript npm test # Run tests
src/core/ pure TypeScript, runs anywhere (exported as pixscii/core) src/node/ sprites/ on disk, PNG encode and image import (sharp), CLI src/mcp/ MCP server and tools
src/core/boundary.test.ts fails if anything in core imports a Node built-in, sharp, MCP or a file outside core.
See ROADMAP.md for where pixscii is going: shapes, procedural landscapes and creatures.
MIT