meme-it
v0.3.0
Published
Meme video editor — local single-user server + web UI. Run with `npx memeit`.
Downloads
50
Readme
meme-it (npx distribution)
Local meme video editor — one command runs the API + web UI:
npx meme-it
npx meme-it --port 4200 --no-open
npx meme-it --data-dir ~/.memeit-dataHow it works
src/cli.tsparses args, checksffmpeg/yt-dlp, then starts the Express app fromservices/render-api/src/app.tsviacreateApp({ dataDir, publicDir }). With averify/rendersubcommand it instead validates or renders a project file headlessly (no server) — see AGENTS.md.- The web UI is the production
apps/webbuild, copied topublic/at build time (scripts/build-ui.mjs) and served with the COOP/COEP headers the WASM background removal needs. Non-/apiGETs fall back toindex.html(SPA). tsupbundlessrc/cli.ts+services/render-api/src+@memeit/*workspace packages into a singledist/cli.js. Runtime npm deps stay external (express,sharp,zod, …);@google-cloud/text-to-speechis optional (dynamically imported — TTS endpoints 503 with a hint when unconfigured).
Build / publish
pnpm install
pnpm --filter meme-it build # web UI -> public/, server -> dist/cli.js
pnpm --filter meme-it typecheck
cd packages/memeit && npm publish --access public # note: npm can't see pnpm workspaces, publish from the package dirTest the tarball locally before publishing:
pnpm --filter meme-it build
(cd packages/memeit && npm pack --pack-destination /tmp)
npx --yes /tmp/meme-it-0.3.0.tgz --helpSystem deps (not bundled)
ffmpeg+ffprobeonPATH— required for renders (brew install ffmpeg). Missing binary warns at startup and/api/healthreports it.yt-dlponPATHor$YTDLP_PATH— optional, only for YouTube import. The macOS-onlybin/yt-dlpin this repo is dev-only (git-ignored) and is NOT shipped.
