For tool makers
Embed Pincel in your tool.
Pincel ships as @amigo-labs/pincel, a framework-agnostic npm package. Mount it
in any DOM element. Read and write Aseprite files. Listen for changes. Built on pincel-core (Rust → WASM). Same editor, in your app, no iframe.
Quick start
npm install @amigo-labs/pincel import { Pincel, ColorMode } from '@amigo-labs/pincel';
const pincel = await Pincel.create({
width: 64,
height: 64,
colorMode: ColorMode.Rgba,
});
pincel.mount(document.getElementById('editor'));
pincel.on('change', () => {
console.log('document modified');
});
const bytes = await pincel.saveAseprite();Live demo
Live embed loads here at launch.
For now, try the full editor at /app.
View source
<div id="editor" style="height: 480px"></div>
<script type="module">
import { Pincel } from '@amigo-labs/pincel';
const pincel = await Pincel.create({ width: 32, height: 32 });
pincel.mount(document.getElementById('editor'));
</script>What you get
- Full editor UI, themeable via documented CSS variables.
- Public events:
change,save,selection,tool-change,palette-change. - Imperative API:
loadFile,saveAseprite,exportPng,setActiveLayer, and more. - TypeScript types shipped.
- Measured bundle size published per release.
- Works in any framework. React adapter, Svelte adapter, plain JS.
What it costs
Free, MIT or Apache 2.0. No telemetry, no licensing, no per-seat fees. If you ship a product using Pincel, you don't owe us anything. If you want to credit us, that's nice.
Honest limits
- Bundle is not tiny — it's an editor. For small embeds, consider a read-only viewer (Phase 2).
- No headless / Node API in Phase 1 (browser-only). Phase 2 adds Node for pipelines.
- Aseprite Lua scripts are not supported and not planned.