Extensions

Make Recast yours

Community packs install into the editor's own pickers. Each one is a manifest and a few static files, hash-checked.

  • Free and offline
  • Open registry
  • Assets, never code
What a pack adds

It shows up where you already work

A pack feeds the pickers you already use. Nothing new to learn.

Cursors

New pointer styles with rest and click states, plus precise hotspots, right in the cursor picker.

Backgrounds

Wallpapers that drop straight into the canvas background picker.

Gradients

Curated gradient sets, rendered live in both the preview and the export.

Colors

Solid color swatches for the canvas, ready to click.

Caption themes

Ready-made caption looks (font, color, outline, backing), applied in one click to overlay and burned-in captions.

Easing presets

Named motion curves for zoom and cursor animation.

Smoothing presets

Cursor smoothing recipes, strength plus click snap, that you can share as packs.

How it works Download free

Three clicks, not a config file

01

Browse or paste

Open Extensions, browse the registry, or paste a pack URL to install directly.

02

Install in a click

Downloads, every asset gets hash-checked, installs locally. No account, nothing phones home.

03

Use it everywhere

Cursors, backgrounds, gradients, presets show up in the pickers you already use.

Safe by design

Installable, without the install-anything risk

No code runs. A pack is assets, so plugin supply-chain attacks do not apply.

  • No code runs

    A pack is a manifest plus static files. Nothing executes.

  • Hash-pinned over HTTPS

    Every asset is checked against its SHA-256 on download. Tampered files fail the install.

  • Zero permissions

    Asset packs can't request capabilities. A pack never reaches further than the app already can.

  • Open and checked

    The registry is public on GitHub, CI checks every submission for schema, hashes, and safe filenames.

Build and share

Make a pack in an afternoon

Drop your files in a folder, write a manifest, open a PR. CI checks the rest.

  • Add your assets

    Cursors as SVG, backgrounds as PNG, JPG or WebP. Bare files in the pack folder.

  • Write the manifest

    A few lines of JSON saying what each file contributes. No hashes to write by hand.

  • Verify and open a PR

    Run pnpm verify:extensions, push, and the Verify Extensions workflow takes over.

extension.json
{
  "id": "my-cursors",
  "name": "My Cursors",
  "version": "1.0.0",
  "kind": "asset-pack",
  "permissions": [],
  "contributes": {
    "cursors": [
      { "id": "ring", "label": "Ring",
        "rest": "ring",
        "hotspot": { "x": 32, "y": 32 } }
    ]
  },
  "assets": [
    { "id": "ring", "file": "assets/ring.svg" }
  ]
}