Skip to main content
Glama

πŸ₯’ macro-pickle

TypeScript Gemini Imagen fal.ai MCP License

PRSMTECH MrJPTech

πŸ₯’ Local, database-free AI creative tooling β€” image & video generation plus a typed, brand-aware Prompt Engine, driven through Claude. No database, no web app. Big dill. 🌢️

πŸ‘€ What it is

macro-pickle is a command-line + MCP toolkit for generating brand-aware imagery and video and for engineering the prompts behind them. There is no database and no web app β€” every rail writes files to disk, and finalized prompts are exported as copy-paste markdown you can drop into any notes vault.

It runs through Claude β€” CLI scripts via tsx, a desktop MCP server, and Claude Code skills/commands β€” with Google (Gemini vision, Imagen, Veo, Nano Banana) and fal.ai (FLUX et al., Kling video) as the generation backends.

Related MCP server: brand-gen

🚦 Quick start (0 to pickle in 60 seconds πŸƒπŸ’¨)

Prerequisites: Node 20+, pnpm, and at least one API key.

git clone https://github.com/MrJPTech/macro-pickle.git
cd macro-pickle
pnpm install

cp .env.example .env.local        # then add your keys (see below)
pnpm lint                         # tsc --noEmit β€” verifies the install
pnpm prompt --brands              # list the installed brand profiles
pnpm img "a neon pickle mascot, dark studio bg"     # Imagen β†’ PNG on disk

πŸ”‘ Keys

Everything is optional except the backend you actually use β€” nothing is required to build prompts, only to render pixels.

Variable

Needed for

Get one

GOOGLE_API_KEY

Gemini vision/OCR, Imagen, Veo, Nano Banana, Omni Flash

ai.google.dev

FAL_KEY

Kling video + FLUX / Recraft / Ideogram / SD3.5 images

fal.ai

BYTEPLUS_API_KEY Β· RUNWAY_API_KEY Β· REPLICATE_API_TOKEN

Optional extra video providers via the model registry

see .env.example

πŸ“ Where output goes

All paths are yours to set β€” the defaults are all repo-relative, so a fresh clone works with no configuration.

Variable

Default

What it controls

MACRO_PICKLE_EXPORT_DIR

./generated-images

Where rendered images/clips land. Point it at a synced folder (iCloud/Drive/Dropbox) to review on your phone.

MACRO_PICKLE_PROMPT_VAULT

./exported-prompts

Where --save writes finalized prompt notes. Point it at an Obsidian/Logseq vault to collect them there.

MACRO_PICKLE_OMNI_DIR

falls back to export dir

Default output for pnpm omni video edits.

MACRO_PICKLE_BRANDS_DIR

content/brands

Where brand profiles are loaded from β€” keep private brands outside the repo.

Command

What it does

pnpm prompt

Build image/video prompts via the Prompt Engine (--image/--video, --brand, --json, --save, --gen)

pnpm img

Imagen 4.0 reference-image generation β†’ MACRO_PICKLE_EXPORT_DIR

pnpm fal

fal.ai image models (FLUX / Recraft / Ideogram / SD3.5) β€” Prompt Engine parity

pnpm nano

Nano Banana face-lock generation from reference photos (likenesses you have rights to)

pnpm veo

Google Veo video β€” text-to-video, image-to-video, and --refs ASSET identity lock

pnpm kling

Kling video via fal.ai β€” i2v / t2v / start+end interpolation

pnpm describe

Gemini vision: product OCR + in-use scene recommendation (UGC rail); --paddle for the local OCR sidecar

pnpm ocr

Optional local PaddleOCR sidecar (high-recall small/CJK text + geometry)

pnpm analyze-video

Describe a reference/competitor clip for mirroring

pnpm scene:new/refs/select/analyze/video

Media pipeline β€” two-stage: text β†’ reference frames β†’ curate β†’ re-prompt to video (docs/media-pipeline.md)

pnpm rank-skus Β· pnpm gen-clips

Store batch clips — rank a store's SKUs by sales → generic reference→video batch (Veo free + Kling paid), spend-gated

pnpm omni Β· pnpm seedance Β· pnpm wan

Gemini Omni Flash conversational video editing Β· Seedance Β· Wan video rails

pnpm models

Browse / select across the cross-provider video-model registry

pnpm mcp:image

Run the macro-pickle-images desktop MCP server

pnpm lint

Type-check the whole toolkit (tsc --noEmit)

scripts/lib/prompts/ turns the methodology in content/knowledge/PROMPT-COOKBOOK.md (synthesized from a fleet of reference repos) into typed, deterministic builders β€” no DB required:

Piece

What it does

buildImagePrompt

Nano Banana "Perfect Prompt" formula β€” Subject + Action + Context + Composition + Lighting + Style

buildVideoPrompt

Seedance/Veo "Director Brief" β€” Scene Β· Subject Β· Camera Β· Action Β· Audio Β· Pacing + time-segmented beats + on-screen captions

Brand profiles

content/brands/*.json β€” style, palette, prefer/avoid, suffix, IP-safe cast proxies; auto-applied via --brand

UGC layer

scripts/lib/prompts/ugc.ts β€” faceless short-form selling formats (hero still β†’ lifestyle still β†’ 9:16 spot)

lintScene

Continuity & IP-safety linter β€” single-beat, fixed-camera, stationary-cycle, atmospherics

πŸ““ Export convention: finalized prompts are written as copy-paste markdown β€” pnpm prompt … --save, or save: true on the MCP build tools. They land in ./exported-prompts/ unless you point MACRO_PICKLE_PROMPT_VAULT at a notes vault.

The two-stage workflow at the heart of the toolkit: turn an idea into reference images, curate the winners, then re-prompt them into video β€” across Nano Banana / Imagen / Veo / Kling / Gemini. A local scene.json manifest tracks every prompt, frame, and clip (full walkthrough).

pnpm scene:new    my-scene        # scaffold scene.json (reference + video prompts)
pnpm scene:refs   my-scene        # Stage 1 β€” generate reference-frame candidates
pnpm scene:select my-scene <ids>  # curate the keepers
pnpm scene:analyze my-scene       # (optional) Gemini grounding of the picks
pnpm scene:video  my-scene        # Stage 2 β€” selected frames β†’ Veo clip

Piece

What it does

scene-store

Local JSON manifest β€” prompts, frames, selections, clips per scene

PromptEnhancer

Gemini chain-of-thought prompt rewriter (+ exemplar banks) that directs your idea

groundFrames

Image β†’ understanding feedback loop β€” keeps Stage 2 on-subject / on-brand

Veo modes

ingredients (ASSET refs) · firstLast (first→last frame) · firstFrame (i2v)

Built on the same scripts/lib/ clients as the rest of the toolkit β€” one set of model clients, no duplication.

  • MCP (macro-pickle-images, pnpm mcp:image) β€” exposes build_image_prompt, build_video_prompt, describe_product, build_ugc_spot, analyze_reference_video, lint_scene, generate_image, generate_video to Claude Desktop.

  • Skills (.claude/skills/) β€” openmontage-video-prompting (cinematography), ugc-shortform-prompting (selling layer), character-lock (identity / face lock).

  • Commands (.claude/commands/) β€” /pickle-prompt Β· /pickle-ugc Β· /pickle-pipeline (scene:*) Β· /pickle-winners β†’ /pickle-clips (rank winners β†’ batch clips) Β· /pickle-ref (clean references) Β· /pickle-describe (OCR + scene rec) Β· /pickle-character (face-lock) Β· /pickle-brand (new brand profile).

Layer

Technology

Language / runtime

TypeScript (strict, ESM) on Node via tsx

Image / video

@google/genai (Gemini Β· Imagen Β· Veo Β· Nano Banana) Β· @fal-ai/client (FLUX Β· Kling)

MCP

@modelcontextprotocol/sdk

Validation

zod

Optional OCR sidecar

Python + PaddleOCR (scripts/py/, opt-in)

macro-pickle/
β”œβ”€β”€ scripts/
β”‚   β”œβ”€β”€ lib/                # generation cores: imagen, fal, veo, kling, nano-banana, vision, paddleocr
β”‚   β”‚   β”œβ”€β”€ prompts/        # the Prompt Engine (builders, brand, scene, export, ugc, lint)
β”‚   β”‚   └── pipeline/       # scene-store + prompt-enhancer + exemplars + presets
β”‚   β”œβ”€β”€ pipeline/           # scene:new/refs/select/analyze/video CLI
β”‚   β”œβ”€β”€ generate-*.ts       # pnpm img / fal / nano / veo / kling
β”‚   β”œβ”€β”€ build-prompt.ts     # pnpm prompt
β”‚   β”œβ”€β”€ describe-product.ts Β· ocr.ts Β· analyze-video.ts   # vision / OCR rails
β”‚   β”œβ”€β”€ gen-clips.ts Β· rank-skus.ts   # store batch-clip rails
β”‚   └── py/                 # optional PaddleOCR sidecar
β”œβ”€β”€ mcp/image-server/       # macro-pickle-images desktop MCP
β”œβ”€β”€ content/
β”‚   β”œβ”€β”€ brands/             # brand profiles (*.json) β€” `quiet-desk` is the worked example
β”‚   β”œβ”€β”€ briefs/             # scene briefs β€” `example-logo/` shows the format
β”‚   β”œβ”€β”€ clip-scenes/        # per-store batch-clip scene configs (`example-store.json`)
β”‚   └── knowledge/          # PROMPT-COOKBOOK.md methodology
└── .claude/                # skills + slash commands

πŸ“œ License

MIT β€” see LICENSE. Free as a pickle at a deli counter. πŸ₯ͺ

πŸ§‘β€πŸ³ Lovingly brined by MrJPTech Β· a PRSMTECH project

πŸ“… Last Updated: July 2026 Β· Status: 🎨 Local database-free creative toolkit β€” image + video gen, Prompt Engine, MCP Β· Vibe: kind of a big dill πŸ₯’

Back to top

Related MCP Connectors

Related MCP Servers