Tween Animation
jame581/GodotPrompter
A skill your agent uses when implementing tweens — property animation, method tweening, chaining, parallel sequences, easing, and common UI/gameplay motion recipes
A skill your agent uses when animating properties over time in Phaser 4.
$ npx skills add autonomous-ai/openharness --skill tweens -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install autonomous-ai/openharness tweens --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/autonomous-ai/openharness.git skills-src && mkdir -p .claude/skills && cp -r skills-src/store/agents/phaser/skills/tweens .claude/skills/tweens && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "tweens" agent skill from https://github.com/autonomous-ai/openharness/tree/main/store/agents/phaser/skills/tweens into .claude/skills/tweens/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tweens", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/autonomous-ai/openharness/tree/main/store/agents/phaser/skills/tweensType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add autonomous-ai/openharness --skill tweens -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install autonomous-ai/openharness tweens --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/autonomous-ai/openharness.git skills-src && mkdir -p .agents/skills && cp -r skills-src/store/agents/phaser/skills/tweens .agents/skills/tweens && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "tweens" agent skill from https://github.com/autonomous-ai/openharness/tree/main/store/agents/phaser/skills/tweens into .agents/skills/tweens/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tweens", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add autonomous-ai/openharness --skill tweens -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install autonomous-ai/openharness tweens --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/autonomous-ai/openharness.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/store/agents/phaser/skills/tweens .cursor/skills/tweens && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "tweens" agent skill from https://github.com/autonomous-ai/openharness/tree/main/store/agents/phaser/skills/tweens into .cursor/skills/tweens/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tweens", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/autonomous-ai/openharness.git --path store/agents/phaser/skills/tweens--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add autonomous-ai/openharness --skill tweens -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install autonomous-ai/openharness tweens --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/autonomous-ai/openharness.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/store/agents/phaser/skills/tweens .gemini/skills/tweens && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "tweens" agent skill from https://github.com/autonomous-ai/openharness/tree/main/store/agents/phaser/skills/tweens into .gemini/skills/tweens/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tweens", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install autonomous-ai/openharness tweensInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add autonomous-ai/openharness --skill tweens -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/autonomous-ai/openharness.git skills-src && mkdir -p .github/skills && cp -r skills-src/store/agents/phaser/skills/tweens .github/skills/tweens && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "tweens" agent skill from https://github.com/autonomous-ai/openharness/tree/main/store/agents/phaser/skills/tweens into .github/skills/tweens/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tweens", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add autonomous-ai/openharness --skill tweens -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install autonomous-ai/openharness tweens --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/autonomous-ai/openharness.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/store/agents/phaser/skills/tweens .opencode/skills/tweens && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "tweens" agent skill from https://github.com/autonomous-ai/openharness/tree/main/store/agents/phaser/skills/tweens into .opencode/skills/tweens/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tweens", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
tweensA skill your agent uses when animating properties over time in Phaser 4.
Tweens is an agent skill from autonomous-ai/openharness. Use this skill when animating properties over time in Phaser 4. Covers tweens, tween chains, easing functions, stagger, yoyo, repeat, callbacks, number tweens, and the TweenManager. Triggers on: tween, ease, animate, this.tweens.add, tween chain, stagger.
Its SKILL.md is about 4.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
The repository describes itself as: The ultimate harness for coding agents and beyond. All your agents. All your machines. One command center. Start with code, then follow your curiosity and build across… The licence is MIT.
Read from SKILL.md and the folder at commit 74c2733. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are javascript).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Tweens loads about 4.6k tokens when it runs. Until then it costs about 66 tokens; SKILL.md has 1,421 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from autonomous-ai/openharness at commit 74c2733, republished under its MIT licence (© autonomous-ai). 1,421 words, ~4,603 tokens.
.claude/skills/tweens/SKILL.md (or your agent's skills folder).Animating properties over time in Phaser 4 -- TweenManager, creating tweens, tween config, easing functions, tween chains, stagger, yoyo, repeat, callbacks, and tween targets.
Key source paths: src/tweens/TweenManager.js, src/tweens/tween/Tween.js, src/tweens/tween/TweenChain.js, src/tweens/tween/BaseTween.js, src/tweens/builders/, src/tweens/typedefs/, src/tweens/events/, src/math/easing/
Related skills: ../sprites-and-images/SKILL.md, ../animations/SKILL.md
// In a Scene's create() method:
const logo = this.add.image(100, 300, 'logo');
// Basic tween -- move the logo to x:600 over 2 seconds
this.tweens.add({
targets: logo,
x: 600,
duration: 2000,
ease: 'Power2'
});this.tweens is the scene's TweenManager instance, available in every Scene. The add() method creates a tween, adds it to the manager, and starts playback immediately.
Created -> Active (onActive) -> Start Delayed (delay) -> Playing (onStart, onUpdate per frame) -> Yoyo/Repeat (onYoyo, onRepeat) -> Loop (onLoop) -> Complete (onComplete, then auto-destroyed unless persist: true).
Tweens auto-destroy after completion. You do not need to store a reference unless you want to control them later. Set persist: true in the config to keep a tween alive after completion for replay via tween.play() or tween.restart(). You must manually call tween.destroy() on persisted tweens when done.
The targets property accepts a single object, an array of objects, or a function that returns either. Targets are typically Game Objects but can be any JavaScript object with numeric properties. A tween will not manipulate any property that begins with an underscore.
// Single target
this.tweens.add({ targets: sprite, alpha: 0, duration: 500 });
// Multiple targets
this.tweens.add({ targets: [sprite1, sprite2, sprite3], y: 100, duration: 1000 });this.tweens.add({
targets: sprite,
x: 400, // absolute value
y: '-=100', // relative (subtract 100 from current)
rotation: '+=3.14', // relative (add to current)
alpha: { value: 0, duration: 300, ease: 'Cubic.easeIn' }, // per-property config
scale: [0.5, 1.5, 1], // array: interpolates through values over duration
angle: function (target, key, value, targetIndex, totalTargets, tween) {
return targetIndex * 90; // function: called once per target
},
duration: 1000
});Array values use linear interpolation by default; override with the interpolation config ('linear', 'bezier', 'catmull').
this.tweens.add({
targets: this.player,
x: 500,
y: 300,
duration: 1000,
ease: 'Sine.easeInOut'
});this.tweens.add({
targets: this.enemy,
x: { value: 600, duration: 1500, ease: 'Bounce.easeOut' },
y: { value: 200, duration: 1000, ease: 'Power2' },
alpha: { value: 0.5, duration: 500, delay: 1000 }
});this.tweens.add({
targets: this.coin,
y: '-=50',
duration: 600,
ease: 'Sine.easeInOut',
yoyo: true, // returns to start value after reaching end
hold: 200, // pause 200ms at the end value before yoyo-ing back
repeat: -1, // -1 = infinite, 0 = play once, 1 = play twice, etc.
repeatDelay: 300 // pause 300ms before each repeat
});repeat controls how many extra times each property plays. A repeat of 1 means the tween plays twice total. The loop property (on BaseTween) restarts the entire tween from scratch, including all properties. Use repeat for property-level looping and loop for tween-level looping.
Stagger offsets a value across multiple targets via this.tweens.stagger():
// 100ms delay between each target
delay: this.tweens.stagger(100)
// From center outward
delay: this.tweens.stagger(200, { from: 'center' })
// Range: distribute 0-1000ms across targets
delay: this.tweens.stagger([0, 1000])
// Grid stagger with easing
delay: this.tweens.stagger(500, { grid: [10, 6], from: 'center', ease: 'Cubic.easeOut' })StaggerConfig: start (offset), ease (string/function), from ('first'/'center'/'last'/index), grid ([w, h]).
A TweenChain plays tweens in sequence. Each tween in the chain starts after the previous one completes:
this.tweens.chain({
targets: this.player,
tweens: [
{ x: 300, duration: 1000, ease: 'Power2' },
{ y: 500, duration: 800, ease: 'Bounce.easeOut' },
{ scale: 2, duration: 500 },
{ alpha: 0, duration: 400 }
],
loop: 1, // loop the entire chain once (plays twice total)
loopDelay: 500,
onComplete: function () {
console.log('Chain finished');
}
});Each entry in tweens is a standard TweenBuilderConfig. Chain-level config supports loop, loopDelay, completeDelay, paused, persist, and chain-level callbacks. Per-tween callbacks (onUpdate, onRepeat, onYoyo) belong on individual entries. Use chain.add(tweenConfigs) to append dynamically.
this.tweens.add({
targets: sprite,
x: '+=200', // add 200 to current x
y: '-=50', // subtract 50 from current y
angle: '+=180',
duration: 1000
});this.tweens.add({
targets: sprite,
x: 600,
duration: 2000,
// All callbacks receive (tween, targets, ...params)
onStart: function (tween, targets) { },
onUpdate: function (tween, targets) { }, // per-property, per-target, per-frame
onYoyo: function (tween, targets) { },
onRepeat: function (tween, targets) { },
onLoop: function (tween, targets) { },
onComplete: function (tween, targets) { },
onCompleteParams: ['extra', 'args'],
callbackScope: this
});
// Set callback after creation
tween.setCallback('onComplete', function (tween, targets) { }, []);
// Event emitter style (tweens extend EventEmitter)
tween.on('complete', function (tween, targets) { });A Number Tween has no target object. It tweens between two numeric values:
const counter = this.tweens.addCounter({
from: 0,
to: 100,
duration: 2000,
ease: 'Linear',
onUpdate: function (tween) {
const value = tween.getValue();
console.log(value); // 0 ... 100
}
});const tween = this.tweens.add({ targets: sprite, x: 600, duration: 2000, persist: true });
// Playback control
tween.pause(); tween.resume();
tween.stop(); // flags for removal; fires onStop
tween.restart(); // reset and replay from beginning
tween.seek(1000); // seek to 1000ms (suppresses events by default)
tween.complete(); // immediately complete; fires onComplete
tween.completeAfterLoop(0); // finish after current loop
tween.forward(500); tween.rewind(500);
tween.setTimeScale(0.5); // per-tween speed
tween.updateTo('x', 800); // change end value mid-tween
// Manager-level control
this.tweens.killAll(); // destroy all tweens
this.tweens.killTweensOf(sprite); // destroy tweens on target
this.tweens.isTweening(sprite); // boolean check
this.tweens.pauseAll(); this.tweens.resumeAll();
this.tweens.setGlobalTimeScale(0.5); // global speed| Property | Type | Default | Description |
|---|---|---|---|
targets | any / any[] | (required) | Object(s) to tween. |
duration | number | 1000 | Duration in ms. |
delay | number / function | 0 | Delay before start (ms). Accepts stagger(). |
ease | string / function | 'Power0' | Easing function name or custom function. |
easeParams | array | null | Parameters for parameterized easing (e.g. Elastic). |
hold | number | 0 | Hold at end value before yoyo (ms). |
repeat | number | 0 | Per-property repeat count. -1 = infinite. |
repeatDelay | number | 0 | Delay before each repeat (ms). |
yoyo | boolean | false | Reverse back to start after reaching end. |
flipX / flipY | boolean | false | Toggle flip on yoyo/repeat. |
loop | number | 0 | Tween-level loop count. -1 = infinite. |
loopDelay | number | 0 | Delay before each loop (ms). |
completeDelay | number | 0 | Delay before onComplete fires (ms). |
paused | boolean | false | Start paused. Call play() to begin. |
persist | boolean | false | Keep alive after completion. |
props | object | -- | Explicit property config map (alt to top-level props). |
interpolation | string / function | -- | For array values: 'linear', 'bezier', 'catmull'. |
callbackScope | any | tween | this context for callbacks. |
| Callbacks | function | -- | onActive, onStart, onUpdate, onYoyo, onRepeat, onLoop, onComplete, onStop, onPause, onResume. Each has matching on<Name>Params array. |
| Property | Type | Default | Description |
|---|---|---|---|
targets | any / any[] | -- | Default targets inherited by child tweens. |
tweens | TweenBuilderConfig[] | (required) | Array of tween configs to play in sequence. |
loop | number | 0 | Times to loop the entire chain. -1 = infinite. |
loopDelay | number | 0 | Delay before each loop (ms). |
completeDelay | number | 0 | Delay before onComplete fires (ms). |
paused | boolean | false | Start paused. |
persist | boolean | false | Keep alive after completion. |
| Callbacks | function | -- | onActive, onStart, onLoop, onComplete, onStop, onPause, onResume. |
| Property | Type | Default | Description |
|---|---|---|---|
from | number | 0 | Start value. |
to | number | 1 | End value. |
duration | number | 1000 | Duration in ms. |
ease | string / function | 'Power0' | Easing function. |
| All standard timing | -- | -- | delay, hold, repeat, repeatDelay, yoyo, loop, loopDelay, completeDelay, paused, persist. |
| All standard callbacks | -- | -- | Same callback set as TweenBuilderConfig. |
Used when a property value is an object instead of a number/string. Supports: value, getActive, getEnd, getStart, ease, delay, duration, yoyo, hold, repeat, repeatDelay, flipX, flipY, interpolation. All override the tween-level defaults for that one property.
All easing names are case-insensitive. Use the string name in the ease config property.
| Name | Equivalent |
|---|---|
Power0 | Linear |
Power1 | Quad.easeOut (Quadratic Out) |
Power2 | Cubic.easeOut |
Power3 | Quart.easeOut (Quartic Out) |
Power4 | Quint.easeOut (Quintic Out) |
Each type supports .easeIn, .easeOut, .easeInOut variants. The bare name defaults to Out.
Types: Quad, Cubic, Quart, Quint, Sine, Expo, Circ, Elastic, Back, Bounce.
Usage: 'Sine.easeInOut', 'Bounce.easeIn', 'Cubic.easeOut', 'Back' (same as 'Back.easeOut').
Special: Linear (no easing), Stepped (discrete steps -- easeParams: [numSteps]).
Custom: ease: function (t) { return t * t; } where t is 0 to 1.
Tweens (and TweenChains) extend EventEmitter. You can listen via .on():
| Event String | Constant | Fires When |
|---|---|---|
'active' | Phaser.Tweens.Events.TWEEN_ACTIVE | Tween added to manager |
'start' | Phaser.Tweens.Events.TWEEN_START | Playback begins (after delay) |
'update' | Phaser.Tweens.Events.TWEEN_UPDATE | Property updates each frame |
'yoyo' | Phaser.Tweens.Events.TWEEN_YOYO | Property begins yoyo-ing back |
'repeat' | Phaser.Tweens.Events.TWEEN_REPEAT | Property repeats |
'loop' | Phaser.Tweens.Events.TWEEN_LOOP | Entire tween loops |
'complete' | Phaser.Tweens.Events.TWEEN_COMPLETE | Tween finishes |
'stop' | Phaser.Tweens.Events.TWEEN_STOP | tween.stop() called |
'pause' | Phaser.Tweens.Events.TWEEN_PAUSE | tween.pause() called |
'resume' | Phaser.Tweens.Events.TWEEN_RESUME | tween.resume() called |
Event listener signature for Tween events: function(tween, targets). During seeking (tween.isSeeking === true), events and callbacks are suppressed by default.
this.tweens)| Method | Returns | Purpose |
|---|---|---|
add(config) | Tween | Create, add, and start a tween. |
addMultiple(configs[]) | Tween[] | Create multiple tweens at once. |
create(config) | Tween | Create without adding. Use existing() to add later. |
chain(config) | TweenChain | Create and start a sequential chain. |
addCounter(config) | Tween | Number tween (no target). |
stagger(value, config?) | function | Stagger function for delay/property values. |
existing(tween) | this | Add a pre-created tween to the manager. |
remove(tween) | this | Remove without destroying. |
has(tween) | boolean | Check if tween is in manager. |
getTweens() | Tween[] | All active tweens (copy). |
getTweensOf(target) | Tween[] | Tweens affecting a target. |
isTweening(target) | boolean | Is target being tweened? |
killAll() / killTweensOf(target) | this | Destroy tweens. |
pauseAll() / resumeAll() | this | Pause/resume all tweens. |
setGlobalTimeScale(v) / getGlobalTimeScale() | this / number | Global speed. |
setFps(fps) | this | Limit tick rate (default 240). |
setLagSmooth(limit, skip) | this | Configure lag smoothing. |
each(cb, scope) | this | Iterate all tweens. |
| Method | Purpose |
|---|---|
play() / pause() / resume() | Playback control. |
stop() | Stop and flag for removal. Fires onStop. |
restart() | Reset and replay. |
complete(delay?) | Immediately complete. |
completeAfterLoop(loops?) | Complete after N more loops. |
seek(ms, delta?, emit?) | Seek to ms offset. |
forward(ms) / rewind(ms) | Step forward/back. |
setTimeScale(v) / getTimeScale() | Per-tween speed. |
setCallback(type, fn, params?) | Set callback after creation. |
getValue(index?) | Current TweenData value. |
updateTo(key, value, startToCurrent?) | Change end value mid-tween. |
hasTarget(target) / isPlaying() / isPaused() | State checks. |
remove() / destroy() | Cleanup. |
Key properties: targets, duration, elapsed, progress (0-1), totalProgress (0-1 including loops), totalDuration, timeScale, paused, persist, data (TweenData[]), isInfinite, isNumberTween.
Extends BaseTween. Has all tween playback methods (play, pause, resume, stop, restart, complete, etc.) plus add(tweenConfigs) to append tweens dynamically. Properties: currentTween, currentIndex.
_.persist: true to keep it alive, but you must destroy() it yourself when done.repeat vs loop. repeat is per-property (on TweenData). loop restarts the entire tween. A repeat of 1 means the property plays twice total.loop: -1 means onComplete never fires. An infinitely looping tween never completes. Use completeAfterLoop() to end it gracefully.tween.seek(), events and callbacks are not dispatched unless you pass true as the third argument.this.tweens.stagger() on a single-target tween has no visible stagger effect.isDestroyed set to true. Always clean up tweens before destroying the objects they reference, or rely on this auto-check.managerTimeScale * tweenTimeScale. Setting either to 0 freezes the tween.targets are inherited. If you set targets at the chain level, individual tweens in the chain inherit them unless they specify their own.| File | Purpose |
|---|---|
src/tweens/TweenManager.js | Scene plugin. add, chain, stagger, killAll, etc. |
src/tweens/tween/Tween.js | Individual tween. Targets, TweenData array, seeking, update. |
src/tweens/tween/TweenChain.js | Sequential tween playback via ordered child Tweens. |
src/tweens/tween/BaseTween.js | Shared base. EventEmitter, callbacks, state machine. |
src/tweens/tween/BaseTweenData.js | Per-property state: duration, delay, yoyo, repeat, progress. |
src/tweens/tween/TweenData.js | Numeric property tweening (extends BaseTweenData). |
src/tweens/tween/TweenFrameData.js | Texture frame tweening (extends BaseTweenData). |
src/tweens/builders/TweenBuilder.js | Parses config into Tween instance. |
src/tweens/builders/TweenChainBuilder.js | Parses config into TweenChain instance. |
src/tweens/builders/NumberTweenBuilder.js | Builds target-less number tweens. |
src/tweens/builders/StaggerBuilder.js | Creates stagger functions. |
src/tweens/events/ | Event constants (TWEEN_ACTIVE, TWEEN_START, etc.). |
src/tweens/typedefs/ | JSDoc typedefs for all config objects. |
src/math/easing/EaseMap.js | Maps ease string names to functions. |
© autonomous-ai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in store/agents/phaser/skills/tweens of autonomous-ai/openharness.
Open the folder on GitHubat commit 74c2733
Tweens next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Tweens this skillautonomous-ai/openharness | 1.2k | — | ~4.6k | Automated safety check: Pass | MIT | |
| Tween Animationjame581/GodotPrompter | 799 | — | ~3.5k | Automated safety check: Pass | MIT | |
| Animejs Animationsickn33/agentic-awesome-skills | 47k | 2 repos | ~681 | Automated safety check: Pass | MIT | |
| CSS At Propertythedaviddias/Front-End-Checklist | 74k | — | ~602 | Automated safety check: Pass | MIT | |
| HyperFrames Animationheygen-com/hyperframes | 59k | 3 repos | ~2.1k | Automated safety check: Pass | Apache-2.0 | |
| SVG Character Animationcalesthio/OpenMontage | 66k | — | ~421 | Automated safety check: Pass | MIT |
jame581/GodotPrompter
A skill your agent uses when implementing tweens — property animation, method tweening, chaining, parallel sequences, easing, and common UI/gameplay motion recipes
sickn33/agentic-awesome-skills
Advanced JavaScript animation library skill for creating complex, high-performance web animations.
thedaviddias/Front-End-Checklist
A skill your agent uses when implementing animated gradients, complex CSS transitions that involve custom property values, or building a typed design token system where custom property misuse should…
heygen-com/hyperframes
Collects motion rules, scene blueprints, transitions and runtime adapters for HyperFrames video compositions, with GSAP as the default animation runtime.
calesthio/OpenMontage
Animate SVG character rigs with GSAP, CSS transforms, Remotion frame control, and HyperFrames-compatible browser previews.
github/awesome-copilot
A skill your agent uses whenever the user wants to build scroll animations, scroll effects, parallax, scroll-triggered reveals, pinned sections, horizontal scroll, text animations, or any motion…
autonomous-ai/openharness
Slices 3D mesh files into printer-profiled plain G-code through real slicer CLIs, with backend discovery, input inspection, dry runs and static validation.
autonomous-ai/openharness
Turns a home-automation request into standard, testable automations.yaml, run against Home Assistant Core's real triggers and verified with its own trace tool.
autonomous-ai/openharness
Turns a musical brief into LilyPond concert-pitch music, checked parts for each instrument and a playable practice pack.
autonomous-ai/openharness
Turns an STL and explicit printer and material requirements into compared OrcaSlicer plans, an editable 3MF project, checked G-code and a portable handoff.
autonomous-ai/openharness
Builds an editable DOCX report, a formula-driven XLSX workbook and a fresh LibreOffice PDF preview from one structured source file, then checks them together.
autonomous-ai/openharness
Dry-run, upload, and cautiously initiate local Bambu Lab print jobs from validated plain .gcode, using Bambu LAN FTPS/MQTT handoffs.
A skill your agent uses when animating properties over time in Phaser 4. Tweens is an agent skill from autonomous-ai/openharness. Use this skill when animating properties over time in Phaser 4.
Tweens fits situations like: animating properties over time in Phaser 4; this.tweens.add.
Run `npx skills add autonomous-ai/openharness --skill tweens -a claude-code`. Or copy the skill folder (store/agents/phaser/skills/tweens in autonomous-ai/openharness) into .claude/skills/tweens in your project. Claude Code loads it when a task matches its description.
Run `npx skills add autonomous-ai/openharness --skill tweens -a codex`. Or copy the skill folder (store/agents/phaser/skills/tweens in autonomous-ai/openharness) into .agents/skills/tweens in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add autonomous-ai/openharness --skill tweens -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/tweens, .gemini/skills/tweens, .github/skills/tweens and .opencode/skills/tweens in your project.
SKILL.md names no scripts, command-line tools or credentials: Tweens is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Tweens is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.6k tokens (SKILL.md is roughly 18k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Tweens: Tween Animation (jame581/GodotPrompter, 799 stars), Animejs Animation (sickn33/agentic-awesome-skills, 47k stars), CSS At Property (thedaviddias/Front-End-Checklist, 74k stars) and HyperFrames Animation (heygen-com/hyperframes, 59k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
autonomous-ai (a GitHub organization) maintains it in autonomous-ai/openharness, which has 1,194 GitHub stars. The repository holds 99 skills in this directory. The repository was last updated on October 9, 2026.
Source: autonomous-ai/openharness on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.