Windows desktop app for making Chinese cat meme short videos.
PowerShell on Windows may block npm.ps1; use npm.cmd when that happens.
npm.cmd install
npm.cmd run dev
npm.cmd run lint
npm.cmd run test
npm.cmd run verify
npm.cmd run typecheck
npm.cmd run build:appThis repository is prepared for an AI-agent coding flow:
AGENTS.mdis the operating manual for Codex/Claude/Gemini-style agents.docs/architecture.mdexplains the Electron, workspace, asset, and render boundaries.docs/coding-style.mddefines code and media-editing rules.docs/api-spec.mddescribes the preload IPC API surface.docs/workflow.mddescribes branch, worktree, self-test, review, and CI flow.tasks/task-template.mdis the starting point for every non-trivial task.tasks/lessons.mdstores reusable project knowledge found during implementation.
Recommended loop:
git switch -c codex/task-000-short-name
npm.cmd run verifyUse one task file and one branch/worktree per task. Before final handoff, run npm.cmd run verify; CI runs the same gate on pull requests.
Workspace root priority:
CAT_MEME_HOME- development: current repository root
- packaged app:
%USERPROFILE%\Documents\cat_meme
The workspace keeps:
assets/for downloaded/imported media and processed cachesprojects/for.catmeme.jsonproject filesoutput/for exported videos and cover JPGsdata/for settings, asset index, render temp, and waveform cachetemplates/for local templates
Conservative cleanup keeps assets/, projects/, output/, and 资源/. Historical packages, logs, render temp, and backup indexes can be deleted.
- Local/seed asset library with background, character, green-screen, audio, prop, favorite, and recently used categories.
- Drag assets to the preview canvas or timeline; usage count and last-used time are saved globally.
- Favorite assets from the asset card star button.
- Green-screen transparent cache generation and unreferenced cache cleanup.
- Quick preview with visual layers, subtitles, role streams, audio tracks, and native video audio.
- Audio polish: volume, mute-by-track, fade in/out, waveform preview, peak/mean hints, and automatic BGM ducking to 35% while voice/SFX/native audio is active.
- Export MP4 and export cover JPG from the current preset
coverFrame.
Space: play or pause previewJ/K/L: jump back, pause, play; repeatedLincreases preview speedLeft/Right: step one frameShift + Left/Right: jump 15 framesCtrl + Left/Right: jump to previous/next edit pointAlt + Left/Right: nudge selected clip by one frameShift + Alt + Left/Right: nudge selected clip by ten framesHome/End: jump to start/endS,B, orCtrl + K: split selected clip[/]: trim selected clip start/end to the playheadCtrl + C/Ctrl + V: copy and paste selected clipDelete: delete selected clipEsc: clear selectionCtrl + S: save projectCtrl + D: duplicate selected clipH/Shift + V: flip selected visual clipR/Shift + R: rotate selected visual clip by 15 degrees0: reset selected visual transformM: mute or unmute selected clip
Development directory build:
npm.cmd run buildFull offline Windows package with bundled assets:
npm.cmd run build:fullThe full package is written to release-full\Cat Meme Studio-0.1.0-full-offline-x64.zip.
Copy curated resource samples into the app asset library:
powershell -ExecutionPolicy Bypass -File scripts\import-resource-samples.ps1 -CleanManagedAssetsImport a larger hot green-screen set:
node scripts\import-full-green-screen-library.mjsPass --limit 0 only when intentionally importing every unique video from the source folder.
powershell -ExecutionPolicy Bypass -File scripts\generate-demo-assets.ps1
npm.cmd run build:app
npx electron . --export-demoAdditional notes:
- Cat meme resource links:
docs/cat-meme-resources.md - Cat meme theater product notes:
docs/cat-meme-theater-design.md