npm.io
1.0.2 • Published 17h agoCLI

makefx

Licence
MIT
Version
1.0.2
Deps
0
Size
353 kB
Vulns
0
Weekly
0

Make Effects

Make Effects is an AI media creation workspace at makefx.app where people and agents can generate, refine, track, compare, and continue assets across images, audio, and video.

The hosted app is the source of truth for spaces, assets, variants, prompts, recipes, immutable lineage, lightweight space organization, collaboration state, and stored media. The makefx CLI lets local agents, scripts, and developers drive that same asset loop from the command line: start generation jobs, watch progress, download outputs, inspect results, upload media, and curate variants.

What You Can Build With It

  • Generate images, audio, and video through website-backed jobs.
  • Track every result as an asset variant with prompt, provider metadata, and lineage.
  • Organize Space assets visually while keeping variants tucked into asset details.
  • Refine an existing variant or derive new assets from references.
  • Upload local media into a collaborative space so generated and hand-made assets live together.
  • Let automation agents use the CLI as a stable control surface instead of touching database or storage internals.

Features

  • Authentication: Google OAuth with JWT tokens, OIDC-compliant
  • Dual-Worker Architecture: Separate workers for HTTP/frontend and media generation
  • React 19 Frontend: Vite, TanStack Router, Zustand, CSS Modules
  • D1 Database: SQLite with migrations and Kysely query builder
  • R2 Media Storage: Durable media artifacts for generated and uploaded files
  • Dependency Injection: InversifyJS for clean architecture
  • Make Effects CLI: Command-line access through the makefx package and command
  • TypeScript: End-to-end type safety

CLI Quick Start

Install the CLI from npm:

npm install -g makefx

Authenticate with the hosted app:

makefx login

Create a space or bind an existing website space to the current directory:

makefx spaces create "My Game Assets" --init
makefx init --space YOUR_SPACE_ID

Generate media and download completed outputs:

makefx generate "A cozy pixel-art market background" \
  --name "Market Background" \
  --type scene \
  -o art/market.png

makefx audio sfx generate "A crisp magical item pickup" \
  --name "Item Pickup" \
  -o audio/item-pickup.wav

makefx video generate "A looping idle animation for a tiny robot" \
  --name "Robot Idle" \
  --type animation \
  -o video/robot-idle.mp4

makefx video derive "move from the entrance to the desk" \
  --first-frame refs/start.png \
  --last-frame refs/end.png \
  --name "Desk Move" \
  --type animation \
  -o video/desk-move.mp4

Inspect and reuse tracked results:

makefx assets
makefx assets show ASSET_ID --json
makefx assets download VARIANT_ID -o references/variant.png
makefx usage --from 2026-06-01
makefx spend --from 2026-06-01 --provider gemini
makefx listen --space YOUR_SPACE_ID

Use run manifests for debugging agent workflows:

makefx runs --debug
makefx runs show --latest --debug --json

The CLI defaults to production at https://makefx.app. Use --env stage for staging or --local for a local development server.

CLI Commands

Command Description
makefx login Authenticate with makefx.app
makefx spaces List, view, or create collaborative spaces
makefx init Bind the current directory to a website space
makefx generate Generate a new image asset
makefx refine Refine an existing image variant
makefx derive Create a new image asset from variant IDs or local refs
makefx batch Generate multiple images and write a debug run manifest
makefx audio Generate speech, dialogue, music, or sound effects
makefx video Generate, refine, or derive video assets
makefx upload Upload local media files and return Space IDs for chaining
makefx assets List, show, download, rename, delete, and set active assets
makefx variants Retry, star, rate, or delete variants
makefx usage Show platform storage and workflow consumption for a space
makefx spend Show admin provider cost summaries
makefx listen Stream real-time space events
makefx runs Inspect debug-only local generation manifests

See docs/cli.md and docs/cli-generation.md for the full command guide.

Local Development

# Install dependencies
pnpm install

# Set up environment
cp .env.example .env
# Edit .env with your Google OAuth credentials

# Initialize local database
pnpm run db:migrate

# Start development
pnpm run dev

Access at http://localhost:3001/

Developer Commands

Command Description
pnpm run dev Start local development (frontend + worker)
pnpm run build:cli Build dist/cli/makefx.mjs
pnpm run pack:cli Build and inspect the npm CLI package
pnpm run cli:dev -- --help Run the CLI from TypeScript sources
pnpm run db:migrate Apply database migrations locally
pnpm test Run tests
pnpm run typecheck TypeScript type checking
pnpm run lint ESLint
pnpm run deploy:stage Deploy to stage environment
pnpm run deploy:production Deploy the full production bundle: app, generation, and polar workers

Transactional Email

Registration and Space sharing notifications use Cloudflare Email Service from the backend Worker only. Stage and production require:

  • [[send_email]] binding named EMAIL.
  • MAKEFX_EMAIL_FROM set to the verified sender allowed by the binding.
  • MAKEFX_ADMIN_NOTIFICATION_EMAILS set to comma-separated admin recipients for new-user registration notifications.
  • PUBLIC_SITE_ORIGIN set so Space links in emails point at the right host.

Email delivery is best-effort: send failures are logged and do not roll back auth or Space sharing mutations.

Project Structure

src/
├── backend/       # API routes, services, middleware
├── frontend/      # React application
├── dao/           # Data access layer
├── db/migrations/ # SQL migrations
├── cli/           # CLI tool
└── worker/        # Cloudflare Worker entry points

Documentation

Tech Stack

  • Runtime: Cloudflare Workers
  • Database: Cloudflare D1 (SQLite)
  • Frontend: React 19, Vite, Zustand
  • Backend: Hono, InversifyJS, Kysely
  • Auth: Google OAuth, JWT (jose)
  • Testing: Node.js test runner

License

MIT