Token导航 LogoToken导航

Agent Skill · 效率

pinepaper(pinepaper 效率)

pinepaper 用于辅助视频、动画、脚本化剪辑和多媒体生成流程,适合在 OpenClaw 中需要整理视频素材、生成脚本或维护合成项目时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

pinepaper 是效率类 Agent Skill,可用宿主为 OpenClaw,通过ClawHub获取,权限为调用外部服务;许可证为 MIT-0,第三方扫描已通过,按安装量在效率类的 21,003 个 Skill 里排第 9,022。

总安装 6,463周安装 264GitHub Stars 公开资料未说明下载 2,070核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
MIT-0
版本
1.0.0

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:pinepaper(pinepaper 效率)
来源仓库:https://github.com/speaktoarpit/pinepaper
安装命令:
openclaw skills install pinepaper
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install pinepaper

这个 Skill 是做什么的

效率类 Skill 把重复的整理、汇总、转换工作交给助手完成,减少手工复制粘贴。

PinePaper支持无限画布上的矢量图形与动画创作工具。适用于制作演示文稿、教学课件或动态图表可视化。pinepaper 属于效率类 Skill,可作为该场景下的辅助能力补充。导出分辨率无关保证缩放不失真适配多种展示设备。高级动画效果可能需要GPU加速支持建议检查硬件配置。

商用字体版权需单独购买否则导出文件可能被水印标记。

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 OpenClaw;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 openclaw skills install pinepaper;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要调用外部服务,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

pinepaper 怎么安装?

在终端执行 openclaw skills install pinepaper。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

pinepaper 支持哪些 AI 工具?

公开资料标注支持 OpenClaw。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

pinepaper 需要什么权限?

权限级别是调用外部服务。该 Skill 可能调用第三方服务、云服务或外部模型 API,使用前需要确认账号、额度、数据发送范围和服务条款。

pinepaper 是免费的吗?

来源标注的许可证是 MIT-0。本站不代收任何费用,也不托管安装包;能否商用、要不要署名,以许可证原文为准。

pinepaper 用的人多吗?

公开数据是累计安装 6,463 次,近一周安装 264 次,下载 2,070 次。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

pinepaper 安全吗?

第三方扫描结果为通过,但这只覆盖已知的静态检查项,不能替代自己读一遍源码和安装命令。

值得选的地方和要先想清楚的地方

值得选的地方

  • 专注 OpenClaw 一种宿主,触发方式和使用习惯不用来回切换。
  • 许可证明确为 MIT-0,商用和分发边界好判断。
  • 第三方扫描已通过,常见的高风险行为没有命中。

先想清楚的地方

  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 OpenClaw,想直接扩展它能力的人。
  • 需要处理效率类任务、又不想每次都手写提示词的人。
  • 需要许可证清楚、并且有第三方扫描结果的团队项目。

不太适合

  • 需要厂商级技术支持和 SLA 的生产系统。

效率类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
github

GitHub 代码协作 · OpenClaw

7,632,918545需要联网MIT-0通过
nano-pdf

Nano PDF 文档 · OpenClaw

4,249,476231需要联网MIT-0通过
auto-updater

自动更新程序 · OpenClaw

2,964,063386操作浏览器MIT-0通过
video-frames

视频帧 · OpenClaw

2,621,304112需要联网MIT-0通过
gemini

Gemini 助手 · OpenClaw

2,547,39648需要联网MIT-0有提醒
pinepaper

pinepaper 效率 · 本页

6,463—调用外部服务MIT-0通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

PinePaper Studio — AI Agent Skills Reference

What is PinePaper? A professional web app for creating animated text, graphics, diagrams, and data visualizations on an infinite canvas. Powered by Paper.js vector math — everything is resolution-independent and exportable. How AI agents use it: Via MCP tools (@pinepaper.studio/mcp-server) or the Agent Mode JS API (window.PinePaperAgent).

Table of Contents


Item Creation

Create items with app.create(type, params). All items are vector-based and infinitely scalable.

Item Types

TypeKey Parameters
textcontent, fontSize, fontFamily, fontWeight, color, x, y
circleradius, fillColor, strokeColor, x, y
rectanglewidth, height, fillColor, cornerRadius, x, y
ellipseradiusX, radiusY, fillColor, x, y
triangleradius, fillColor, x, y
starradius, points, innerRadius, fillColor, x, y
polygonradius, sides, fillColor, x, y
linefrom, to, strokeColor, strokeWidth
pathsegments, strokeColor, closed
arcfrom, through, to, strokeColor

Common Parameters (All Items)

x, y              — Position
fillColor         — Fill (hex, rgba, or gradient object)
strokeColor       — Stroke color
strokeWidth       — Stroke width
opacity           — 0-1
rotation          — Degrees
scale / scaleX/Y  — Uniform or axis scale
shadowColor       — Shadow color
shadowBlur        — Shadow blur radius
shadowOffset      — [dx, dy]
blendMode         — CSS blend mode string
label             — String or { content, position, fontSize, color }

Gradient Colors

fillColor: {
  type: 'linear',   // or 'radial'
  stops: [
    { color: '#ff0000', offset: 0 },
    { color: '#0000ff', offset: 1 }
  ],
  origin: [100, 100],
  destination: [500, 500]
}

Batch Operations

app.batchCreate([
  { type: 'text', params: { content: 'Hello', x: 200, y: 200 } },
  { type: 'circle', params: { radius: 50, x: 400, y: 300 } }
]);

Animation

Simple Animations

Apply via app.animate(item, { animationType, animationSpeed }) or inline during creation.

TypeEffectKey Params
pulseScale breathingspeed, intensity
rotateContinuous spinspeed
bounceVertical bouncespeed, intensity
fadeOpacity pulsespeed, intensity
wobbleSide-to-side rockspeed, intensity
shakeRapid jitterspeed, intensity
swingPendulum swingspeed, intensity
jellyElastic squash/stretchspeed, intensity
typewriterCharacter-by-character revealspeed

Inline Animation

app.create('text', {
  content: 'Hello World',
  x: 400, y: 300,
  animationType: 'bounce',
  animationSpeed: 1.2,
  animationIntensity: 0.15
});

Relations

Relations define persistent inter-item behaviors. Add with app.addRelation(sourceId, targetId, type, params).

Motion Relations

RelationDescriptionKey Params
orbitsCircular motion around targetradius, speed, direction, phase
followsMove toward targetoffset, smoothing, delay
attached_toMove with targetoffset, inherit_rotation
maintains_distanceStay fixed distancedistance, strength
points_atRotate to face targetoffset_angle, smoothing
mirrorsMirror positionaxis, center
parallaxDepth-based movementdepth, origin
bounds_toStay within boundspadding, bounce
spring_followPhysics spring motionstiffness, damping, mass, maxDisplacement

Animation Relations

RelationDescriptionKey Params
grows_fromScale in from zeroorigin, duration, delay, easing
staggered_withStaggered effectindex, stagger, effect
indicatesHighlight pulsescale, color, duration, repeat
circumscribesDraw shape around targetshape, color, strokeWidth, fadeOut
wave_throughWave distortionamplitude, frequency, direction
morphs_toShape morphduration, easing, morphColor, morphSize

Camera Relations

RelationDescriptionKey Params
camera_followsView tracks itemsmoothing, offset, zoom, deadzone
camera_animatesKeyframe camerakeyframes, duration, loop

Procedural Relations

RelationDescriptionKey Params
wiggleNoise-driven motionproperty, frequency, amplitude, seed
driven_byProperty linkingsourceProperty, targetProperty, multiplier
time_expressionMath-based motionproperty, expression, baseValue

Character Relations

RelationDescriptionKey Params
part_ofSemantic childrole (e.g., eye_left, mouth)
expressesFacial expressionexpression, interval, duration

Convenience Methods

app.addRelation(sourceId, targetId, type, params);
app.removeRelation(sourceId, targetId, type);
app.replaceRelation(sourceId, targetId, type, params);
app.getRelations(itemId);
app.hasRelation(sourceId, targetId, type);
app.addParts(parentId, { eye_left: id1, eye_right: id2 });

Time-Scoped Relations

Any relation supports startTime, endTime, and autoRemove to limit when it's active during timeline playback.


Keyframe Animation

Full timeline-based animation with per-property easing, spatial paths, and morphing.

app.create('circle', {
  radius: 40, x: 100, y: 300,
  animationType: 'keyframe',
  keyframes: [
    { time: 0, properties: { x: 100, opacity: 0 }, easing: 'easeOut' },
    { time: 1, properties: { x: 500, opacity: 1 } },
    { time: 2, properties: { x: 500, y: 100, scale: 2 }, easing: 'bounce' }
  ]
});

Animatable Properties

x, y, position, scale, scaleX, scaleY, rotation, opacity, fillColor, strokeColor, fontSize, strokeWidth, shadowBlur, shadowOffsetX, shadowOffsetY, segments (path morphing), trimStart, trimEnd, trimOffset

Easing Functions

linear, easeIn, easeOut, easeInOut, easeInCubic, easeOutCubic, easeInOutCubic, bounce, elastic, or custom cubic bezier [x1, y1, x2, y2]

Per-Property Easing

{ time: 1, properties: { x: 500, y: 100 }, propertyEasings: { x: 'bounce', y: 'easeOut' } }

Spatial Motion Paths

{ time: 0, properties: { x: 100, y: 300 }, spatialHandles: { out: [50, -100] } },
{ time: 1, properties: { x: 500, y: 300 }, spatialHandles: { in: [-50, -100] } }

Trim Paths (Line Draw Effect)

app.create('path', {
  segments: [[100, 300], [700, 300]],
  strokeColor: '#3b82f6',
  animationType: 'keyframe',
  keyframes: [
    { time: 0, properties: { trimEnd: 0 } },
    { time: 2, properties: { trimEnd: 1 }, easing: 'easeOut' }
  ]
});

Timeline Playback

app.playKeyframeTimeline(duration, loop);
app.pauseKeyframeTimeline();
app.stopKeyframeTimeline();
app.seekKeyframeTimeline(time);

Animation Presets Library

Import from js/templates/_shared/animations.js:

Reveal: fadeInUp, fadeInDown, fadeInLeft, fadeInRight, fadeIn Scale: popIn, explosivePop, scalePulse, breathe Physics: gravityDrop, rubberBand, swing, elasticSnap Paths: spiralIn, sineFloat, figureEight, circularOrbit Glitch: glitchFlicker, motionBlurSnap, cyberScan Exit: zoomOut, fadeOutDown, hingeDrop, shrinkAway


Text & Typography

Letter Collage

Break text into individually styled/animated letters:

const collage = app.letterCollage.create('HELLO', {
  style: 'tile',        // tile, magazine, paperCut, fold, gradient
  palette: 'neon',       // wordle, scrabble, candy, neon, rainbow, pastel, etc.
  fontSize: 48,
  x: 200, y: 150
});

Tile Palettes: wordle, scrabble, candy, neon, rainbow, pastel, cotton, earth, ocean, forest, sunset, corporate, minimal, monochrome, christmas, halloween, valentines, magazine, ransom, newspaper

Gradient Palettes: rainbow, sunset, fire, gold, rose, ocean, ice, forest, midnight, cyberpunk, neonGlow, chrome

Staggered Letter Animation

app.letterCollage.applyStaggeredAnimation(collageId, {
  effect: 'fadeSlideUp',   // fadeSlideDown, popIn, typewriter, wave
  staggerDelay: 0.1,
  duration: 0.5,
  sequence: 'linear'       // reverse, random, center, fibonacci, wave
});

Cursive Handwriting

app.createCursiveText('Hello World', {
  x: 200, y: 300, scale: 2,
  strokeColor: '#f59e0b', strokeWidth: 3,
  animate: true, duration: 3
});

Font Studio

Create custom fonts from drawn glyphs:

app.fontStudio.createGlyph(char, paperPath);
app.fontStudio.downloadFont('otf');
app.fontStudio.loadIntoDocument();

Diagrams & Flowcharts

Create Diagram Shapes

app.diagramSystem.createShape('process', { position: new Point(x, y), label: 'Step 1' });
app.diagramSystem.createShape('decision', { position: new Point(x, y), label: 'Yes/No?' });

Shape Types: process, decision, terminal, data, document, database, cloud, server, uml-class, uml-usecase

Comment Shapes: speech-bubble, speech-bubble-square, thought-bubble, comment-box, speech-bubble-pointed, double-bubble, quote-bubble, callout-box

Connect & Layout

app.diagramSystem.connect(shape1, shape2);
await app.diagramSystem.applyLayout(null, 'hierarchical', { direction: 'TB' });

Layout Algorithms: hierarchical, force-directed, tree, radial, grid

Mermaid Import/Export

// Import Mermaid syntax
const result = app.importMermaid(`
  graph TD
    A[Start] --> B{Decision}
    B -->|Yes| C[Action]
    B -->|No| D[End]
`);

// Export current diagram as Mermaid
const mermaid = app.exportMermaid({ direction: 'LR' });

Arrow System

app.arrowSystem.createArrow([point1, point2], {
  lineColor: '#333', lineWidth: 2,
  headStyle: 'stealth'   // classic, stealth, sharp, open, none
});

Maps & Geospatial

Load a Map

const map = await app.mapSystem.loadMap('world', {
  projection: 'naturalEarth',
  quality: 'standard',
  interactive: true,
  showOcean: true
});

Available Maps: world, worldHighRes, usa, usaCounties, canada, india, europe

Projections: naturalEarth, mercator, robinson, orthographic, equirectangular, albers, albersUsa, conicEqualArea, winkelTripel

Choropleth & Data Visualization

app.mapSystem.applyDataColors(
  { 'USA': 90, 'CAN': 75, 'MEX': 60 },
  { colorScale: ['#f7fbff', '#08519c'], legend: true, legendTitle: 'Score' }
);

Region Control

app.mapSystem.highlightRegions(['USA', 'CAN'], { fill: '#ef4444' });
app.mapSystem.animateReveal('all', { duration: 1, stagger: 0.05, effect: 'fadeIn' });

Markers & Labels

app.mapSystem.addMarker(-122.4, 37.8, { shape: 'pin', label: 'San Francisco' });
app.mapSystem.addRegionLabel('USA', { content: 'United States', fontSize: 14 });

Region Animation

app.animateMapWave({
  duration: 10, loop: true,
  colors: ['#ef4444', '#fbbf24', '#22c55e', '#3b82f6'],
  waveDirection: 'horizontal'
});

Import/Export

app.mapSystem.exportSVG();
app.exportMapGeoJSON({ includeStyles: true });
app.exportMapRegionDataCSV();
await app.importCustomMap(geoJson);

Masking & Reveal Effects

Static Masks

app.applyMask(item, 'circle', { radius: 100 });
app.applyMask(item, 'star', { points: 5, radius: 80 });

Mask Types: rectangle, circle, ellipse, star, triangle, hexagon, heart, rounded, custom

Mask Modes: clip (show inside), subtract (show outside), intersect (overlap only)

Animated Mask Reveals

app.applyAnimatedMask(item, 'wipeLeft', { duration: 0.8 });

Preset Animations: wipeLeft, wipeRight, wipeUp, wipeDown, iris, irisOut, star, heart, curtainHorizontal, curtainVertical, cinematic, diagonalWipe, revealUp, revealDown

Mask Stacking

app.maskingSystem.addMask(item, 'circle', { mode: 'clip' });
app.maskingSystem.addMask(item, 'rectangle', { mode: 'subtract' });

Visual Effects

Apply particle/FX effects to items:

app.applyEffect(item, 'sparkle', { color: '#ffd700', speed: 2 });
app.applyEffect(item, 'confetti', { colors: ['#ff0', '#f0f', '#0ff'], count: 50 });

Effect Types:

EffectKey Params
sparklecolor, speed, size
blastcolor, radius, count, interval
firecolor, size, turbulence
smokecolor, size, drift
raincolor, count, speed, angle
snowcolor, count, speed, spread
confetticolors[], count, gravity
ripplecolor, maxRadius, ringCount
glowcolor, speed, intensity
electriccolor, boltCount, length

Image Filters

GPU-accelerated filters for raster images:

await app.applyImageFilter(raster, 'blur', { radius: 5 });

// Chain multiple filters
await app.applyImageFilterChain(raster, [
  { name: 'brightness', params: { value: 20 } },
  { name: 'contrast', params: { value: 15 } },
  { name: 'vignette', params: { intensity: 0.5 } }
]);

Filters: grayscale, sepia, brightness, contrast, saturation, invert, posterize, hsl, colorTint, vignette, edgeDetect, blur

Cutout Style Presets

await app.applyCutoutStyle(item, 'sticker');

Presets: papercut, postcard, sticker, poster, monochromeCut, edgeSketch, warmGlow, coolTone


Rigging & Skeletal Animation

Create a Skeleton

const skeletonId = app.riggingSystem.createSkeleton('character', { x: 400, y: 500 });
const spine = app.riggingSystem.addBone(skeletonId, { name: 'spine', length: 100, angle: -90 });
const head = app.riggingSystem.addBone(skeletonId, { name: 'head', length: 40, angle: -90, parentBoneId: spine });

Rig Presets

Apply a full preset skeleton in one call:

const preset = getRigPreset('humanoid');
const { boneMap, chainIds } = applyRigPreset(app.riggingSystem, skeletonId, preset);

Presets: humanoid (20 bones), quadruped (13), spider (19), bird (15), fish (14), hand (17), centaur (29), simple_arm (3), snake (10), chain (5)

IK Solvers

app.riggingSystem.createIKChain(skeletonId, {
  name: 'left_arm', boneIds: [upperArm, lowerArm],
  solverType: 'two_bone'   // 'fabrik', 'two_bone', 'ccd'
});

Poses & Shape Keys

// Save/load poses
const poseId = app.riggingSystem.savePose(skeletonId, 'wave');
app.riggingSystem.loadPose(skeletonId, poseId);
app.riggingSystem.interpolatePoses(poseA, poseB, 0.5);

// Shape keys (blend shapes)
const blinkKey = app.riggingSystem.saveShapeKey(skeletonId, 'blink');
app.riggingSystem.loadShapeKey(skeletonId, blinkKey, 0.8);  // weight 0-1

Expressions

Built-in facial expressions: blink, smile, frown, surprise, wink, talk

app.addRelation(faceId, null, 'expresses', { expression: 'blink', interval: 3 });

Path Skinning (2D LBS)

app.riggingSystem.skinPath(skeletonId, itemId, { maxInfluences: 2 });

Blending & Compositing

app.blendingSystem.applyPreset(itemId, 'neon');
app.blendingSystem.transitionBlendMode(itemId, 'screen', { duration: 0.5 });
app.blendingSystem.setGroupBlendMode(groupId, 'multiply', { cascadeOpacity: true });

Presets: ghost, neon, shadow, glow, xray, dreamy, vintage

Blend Modes: normal, multiply, screen, overlay, darken, lighten, color-dodge, color-burn, hard-light, soft-light, difference, exclusion, hue, saturation, color, luminosity

Interactive Blending

app.blendingSystem.addInteractiveBlend(itemId, {
  event: 'hover',
  modes: ['normal', 'screen'],
  opacities: [1.0, 0.8]
});

3D Projection

Render 3D primitives onto the 2D canvas:

app.createObject3D('cube', { size: 1.5, color: '#3b82f6', rotationY: 45 });
app.createObject3D('sphere', { radius: 1, color: '#ef4444' });
app.createGlossySphere({ x: 400, y: 300, radius: 60, color: '#F97316' });

app.setProjection3D('perspective', { fov: 60 });
app.setCamera3D({ position: { x: 3, y: 2, z: 5 }, target: { x: 0, y: 0, z: 0 } });

Primitives: cube, sphere, cylinder, torus, cone

Projections: perspective, orthographic, isometric, cabinet, cavalier


Background Generators

Procedural animated backgrounds:

app.executeGenerator('drawBokeh', { circleCount: 30, animated: true });
app.executeGenerator('drawConstellation', { animated: true });
app.executeGenerator('drawWaves', { waveCount: 8, fill: true, animated: true });

Generators:

NameDescription
drawBokehDepth-of-field circles
drawGradientMeshMulti-color gradient blobs
drawOrganicFlowAurora/silk flowing layers
drawWavesFlowing wave lines
drawStarfieldAnimated starfield
drawNeonGridGlowing neon grid
drawCircuitCircuit board with pulses
drawConstellationConnected star points
drawGridCustomizable animated grid
drawSunburstRadiating rays
drawFlowFieldDirectional flow particles
drawNoiseTexturePerlin noise texture
drawKaleidoscopeKaleidoscope pattern
drawTessellationGeometric tiling
drawSunsetSceneAnimated sunset
drawCosmosSpaceSpace scene
drawFirefliesFloating fireflies
drawFallingPetalsFalling petals
drawGeometricAbstractOverlapping shapes
drawMetaballsOrganic blobs
drawGoldenSpiralGolden ratio spiral
drawPerspectiveGrid3D perspective grid

Camera Control

app.camera.zoomIn(2, 0.5);           // Zoom 2x over 0.5s
app.camera.panTo(200, 200, 0.5);     // Pan to point
app.camera.moveTo(200, 200, 2, 0.5); // Pan + zoom
app.camera.reset(0.5);               // Reset view

// Keyframe camera animation
app.addRelation('camera', null, 'camera_animates', {
  duration: 6, loop: true,
  keyframes: [
    { time: 0, zoom: 1, center: [400, 300] },
    { time: 3, zoom: 2, center: [600, 300], easing: 'easeInOut' },
    { time: 6, zoom: 1, center: [400, 300] }
  ]
});

Export Formats

FormatMethodNotes
WebMExport UIVP9, best for animations
MP4Export UIH.264 via WebCodecs (Chrome 94+)
GIFExport UIVia gif.js Web Workers
Animated SVGapp.exportAnimatedSVG()SMIL or CSS animations
PNGExport UIUp to 600 DPI
PDFapp.exportPDF({ dpi })300/600 DPI, bleed, trim marks
Lottieapp.exportLottie({ fps, duration })JSON for any Lottie player
GeoJSONapp.exportMapGeoJSON()Map data export
Mermaidapp.exportMermaid()Diagram text export

Canvas & View Management

Canvas Presets

app.setCanvasSize('instagram-post');    // 1080x1080
app.setCanvasSize('youtube-thumbnail'); // 1280x720
app.setCanvasSize('tiktok');            // 1080x1920
app.setCanvasSize({ width: 1920, height: 1080 }); // Custom

Presets: youtube-thumbnail, instagram-post, instagram-story, tiktok, a4-portrait, letter-portrait, and more.

View Control

app.getCanvasSize();  // { width, height, preset }
app.expandCanvasToIncludeContent(20);  // Fit to content + padding

Selection & Queries

app.select(item);
app.deselect();
app.selectAll();
app.deselectAll();
app.getSelection();

// Registry
app.itemRegistry.getAll();
app.itemRegistry.getByType('text');
app.itemRegistry.getItem(itemId);

// Relation queries
app.hasRelation(sourceId, targetId, type);
app.queryNotRelation(type);        // Items without relation
app.queryIsolatedItems();          // Items with no relations
app.queryCompound([...conditions]);
app.queryRelationChain([...types]);

History

app.undo();
app.redo();
app.getHistoryState();  // { canUndo, canRedo, undoCount, redoCount }
app.clearCanvas();

Agent Mode Quick Start

Activate via URL ?agent=1 or ?mode=agent:

const agent = window.PinePaperAgent;
await agent.configure({ mode: 'agent' });
await agent.waitForReady();

// Create content
const text = app.create('text', { content: 'Hello', x: 400, y: 300, fontSize: 48 });
app.animate(text, { animationType: 'pulse' });

// Export
const result = await agent.quickExport();

// Reset for new canvas
agent.reset({ canvas: 'tiktok' });

Smart Export

const rec = agent.getExportRecommendation();
// { format: 'webm', reason: 'Has animations, WebM gives best quality' }

MCP Tool Reference

The MCP server (@pinepaper.studio/mcp-server) exposes these tools:

Item Tools

  • pinepaper_create_item — Create any item type
  • pinepaper_modify_item — Modify item properties
  • pinepaper_batch_create — Create multiple items

Animation Tools

  • pinepaper_animate — Apply simple animation
  • pinepaper_keyframe_animate — Apply keyframe animation

Relation Tools

  • pinepaper_add_relation — Add relation between items
  • pinepaper_remove_relation — Remove relation

Diagram Tools

  • pinepaper_create_diagram_shape — Create flowchart shape
  • pinepaper_connect — Connect shapes
  • pinepaper_auto_layout — Apply layout algorithm

Map Tools

  • pinepaper_load_map — Load geographic map
  • pinepaper_highlight_regions — Highlight regions
  • pinepaper_apply_data_colors — Choropleth coloring
  • pinepaper_add_marker — Add map marker

Rigging Tools

  • pinepaper_create_skeleton — Create skeleton
  • pinepaper_add_bone — Add bone
  • pinepaper_attach_item_to_bone — Attach item
  • pinepaper_apply_rig_preset — Apply preset
  • pinepaper_save_pose / pinepaper_load_pose — Pose management
  • pinepaper_interpolate_poses — Blend poses

Blending Tools

  • pinepaper_apply_blend_preset — Apply blend preset
  • pinepaper_transition_blend_mode — Animated blend transition
  • pinepaper_add_interactive_blend — Interactive blending
  • pinepaper_set_group_blend_mode — Group blending

Filter Tools

  • pinepaper_apply_image_filter — Single GPU filter
  • pinepaper_apply_filter_chain — Multi-filter chain

Masking Tools

  • pinepaper_apply_cutout_style — Apply cutout preset
  • pinepaper_get_cutout_styles — List presets

Lasso Tools

  • pinepaper_lasso_activate — Activate lasso on image
  • pinepaper_lasso_apply — Extract region

View Tools

  • pinepaper_zoom — Set zoom level
  • pinepaper_pan — Pan view
  • pinepaper_fit_view — Fit content in view
  • pinepaper_get_view_state — Get current view

Selection Tools

  • pinepaper_select — Select item
  • pinepaper_select_all — Select all
  • pinepaper_deselect_all — Deselect all
  • pinepaper_get_selection — Get selection
  • pinepaper_delete_selected — Delete selected

Transform Tools

  • pinepaper_nudge — Move items
  • pinepaper_flip — Flip items
  • pinepaper_reorder — Change z-order

Background Tools

  • pinepaper_set_background — Set background
  • pinepaper_clear_background — Clear background
  • pinepaper_get_background — Get background

History Tools

  • pinepaper_undo / pinepaper_redo — Undo/redo
  • pinepaper_get_history_state — Get history state
  • pinepaper_clear_canvas — Clear canvas

Query Tools

  • pinepaper_query_items — Query items by criteria
  • pinepaper_get_item_by_id — Get specific item
  • pinepaper_hit_test — Hit test at point
  • pinepaper_is_empty — Check if canvas empty

Precomp Tools

  • pinepaper_create_precomp — Create composition
  • pinepaper_add_to_precomp — Add to composition
  • pinepaper_remove_from_precomp — Remove from composition

Playback Tools

  • pinepaper_play_timeline — Play keyframe timeline
  • pinepaper_stop_timeline — Stop playback
  • pinepaper_pause_timeline — Pause playback
  • pinepaper_seek_timeline — Seek to time

Export Tools

  • pinepaper_export_svg — Export as SVG
  • pinepaper_export_training_data — Export training data

Generator Tools

  • pinepaper_execute_generator — Run background generator
  • pinepaper_list_generators — List available generators

Font Tools

  • pinepaper_font_create_glyph — Create font glyph
  • pinepaper_font_export — Export font file
  • pinepaper_font_status — Get font creation status

平台分布

OpenClaw

79.38%
按下载量换算1,643

安全审计

VirusTotal

未展示

ClawScan

通过

Static analysis

通过

权限和风险

调用外部服务

该 Skill 可能调用第三方服务、云服务或外部模型 API,使用前需要确认账号、额度、数据发送范围和服务条款。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills