
socialforge
An open-source social media production system that turns a content calendar into on-brand copy, images, video, and client-ready delivery - with compliance an…
Install with your AI
Paste into Claude Code, Cursor, or any agent — it reads the repo and wires the tool into your project.
Install and set up socialforge (claude-plugin project) into my current project. Found on https://claudeers.com/socialforge Repo: https://github.com/indranilbanerjee/socialforge Homepage/docs: https://indranil.in Detected install method: claude-plugin → /plugin install socialforge@indranilbanerjee/socialforge Category: plugins. Platforms: cli, api, desktop, web, mobile. Read the repo's README for exact setup and env vars, then install it and wire it into my project. Claudeers Health Verdict: unknown; community-verified: false. Confirm the source before running anything.
⚠ Unverified / not recently updated — review before pasting a run-this config.
/plugin marketplace add indranilbanerjee/socialforge /plugin install socialforge@indranilbanerjee/socialforge
git clone https://github.com/indranilbanerjee/socialforge
// compatibility
| Platforms | cli, api, desktop, web, mobile |
|---|---|
| Operating systems | — |
| AI compatibility | claude |
| License | MIT |
| Pricing | open-source |
| Language | Python |
SocialForge — Social Media Calendar Automation
Your client wants 30 days of social content across six platforms with brand-faithful imagery, AI-generated video, and provenance signed for EU markets. You have five days. The last calendar got rejected because the product photo got "AI-enhanced" beyond recognition.
Run /socialforge:new-month → /socialforge:generate-all → /socialforge:review. Asset-first compositing keeps brand photos pixel-faithful while AI generates the scene around them. Per-platform copy adaptation handles Instagram + TikTok + LinkedIn + Threads + X + Facebook + YouTube Shorts in one pass. C2PA signing happens before review. No more "AI enhanced our logo into something else" disasters.
Open-source agency-grade social media production engine — 20 skills · 25 commands · 5 agents · 25 scripts · an opt-in catalog of 10 HTTP connectors (zero auto-connected) · 0 global hooks. AI image (Vertex AI Nano Banana Pro), AI video (WaveSpeed Kling v3.0 Pro), human-in-the-loop review galleries. Built for agencies and in-house teams running monthly content calendars. Installs on Claude Code (CLI + IDE), Anthropic Cowork, OpenAI Codex, Cursor 2.5+, GitHub Copilot CLI, Google Antigravity 2.0, Hermes Agent, and OpenClaw + 35+ Agent Skills platforms. Created by Indranil Banerjee · LinkedIn · X.
🆕 Just shipped — v1.22.0 (August 15, 2026): "nothing fails silently" held where the plugin thought about it, and broke at the seams. A full-pipeline run with no image or video credentials found all of it.
render_preview.pyreturned{"status": "success"}for an image that did not exist — exit 0, and a real 600×800 PNG that was blank white, because the missing path became afile://URI and the browser rendered a broken image as nothing. A reviewer approving that gallery was approving an empty rectangle. It now refuses and writes no file;--allow-missing-imagegives a copy-layout preview markedplaceholder, neversuccess.generate_image.pyexited 0 after every provider failed — the failure record was perfect and the exit code said pass, so any&&chain read total failure as success whileprice_book.pyexits 3 in the same situation. Now 0/4/1. The failure record was never written to disk — built, returned, printed, gone; it now appends toshared/failure-log.jsonl. The cost report crashed in exactly the case it was for: summing an unpriced entry raisedTypeError, and unpriced entries are what a run without credentials produces — now counted, surfaced, and every total labelled a LOWER BOUND, because unpriced is not free. And the setup skill quoted six prices from memory against the plugin's own rule; removed and routed toprice_book.py, with a guard test on any dollar figure. 20 skills, 237 tests. Previously — Just shipped — v1.21.0 (August 14, 2026): significance markers stay out of captions. The suite's long-form plugins gained a deterministic AI-tell scan; SocialForge deliberately did not, and now says so in writing. What arrives instead is the rule itself, at the point the caption is written: the copy-adapter never writes a line whose only job is to announce that the next line matters — "here's the thing", "here's the kicker", "that's the part that got me", "let that sink in" — because they read as machine-written to anyone who has scrolled a feed this year, and on a 280-character platform they spend the budget the point needs. Lead with the specific instead ("Approvals went from 14 days to 31" beats "Here's the thing about approval timelines"), and cap stacked soft adverbs at one per caption. No scanner was added, on purpose: caption-length copy has no document structure to measure and per-1000-word metrics are noise at 280 characters — a test now pins that reasoning so the absence reads as a decision rather than a gap. 20 skills, 237 tests. Previously — v1.19.0 (August 13): nothing fails silently anymore. The provider layer's fallback chains now record every abandoned attempt — who was tried, at which stage it stopped, and what to do about it — instead of collapsing a missing key, a retired model, and a content-policy rejection into one bare failure. Video generation became a real three-rung chain (a Veo failure finally falls back; routing reads stored credentials, not just env vars; a live SDK bug that broke every Veo call was caught by the chain's own attempt records on first execution). An adversarial sweep of the untested surface fixed six defects proven live: the compliance gate failed OPEN on unknown severity words and crashed on one bad regex (now fail-closed with rule_errors), the approval ledger minted ghost posts and accepted"FINAL "as a new frozen status (now calendar-validated vocabulary + atomic writes), asset re-indexing minted duplicate ids, a corrupt credentials.json silently destroyed stored keys on the next setup, alias resolution handed retired model ids to SDKs, and the review gallery rendered client-supplied titles unescaped. Plus:/socialforge:ingest-performance— platform analytics exports become per-post records with sample floors and margin rules, so/socialforge:ideate-monthcompounds measured wins (and says "no clear wins" about a flat month) instead of remembered ones. 20 skills, 214 tests. Previously — v1.15.0–v1.18.0 (August 11–12): live pricing + Article 50 + the creator-craft wave.price_book.py(no stored prices, source-URL-required, 24h TTL) +model_book.py(capability kinds, live-discovery ladder), C2PAai-disclosuredefault-on, TikTok/Threads/Bluesky image specs,/ideate-month, mechanism-aware CTAs, vendor-neutral research intake + guard, and video scripts rebuilt hook-first with compliance-before-credits. And — v1.14.2 (July 30): registry re-points + the anonymity guard. Previously — v1.14.1 (July 29): the Line-by-Line Audit. All 134 files — every skill, agent, command, script, reference and doc — read end-to-end by a 5-reader audit fleet and re-verified against July-2026 ground truth. ~180 fixes: retired model ids purged from script defaults and docs (gemini-3-pro-image-preview, gemini-2.5-flash-image), the model registry finally caught up to July (Claude 5 + GPT-5.6 families, 51→57 entries, aliases re-pointed), fictional carousel-template names and creative modes corrected repo-wide, preview HTML now escaped, credential files chmod 600, path/storage split-brain resolved to${CLAUDE_PLUGIN_DATA}, and the self-containment guard extended across the whole repo. 56 tests passing. Full changelog →
# Install in Claude Code:
/plugin marketplace add indranilbanerjee/neels-plugins
/plugin install socialforge@neels-plugins
# Install on Hermes Agent (Nous Research):
hermes plugins install indranilbanerjee/socialforge
# Install on OpenClaw:
openclaw plugins install git:github.com/indranilbanerjee/socialforge
If SocialForge saves your team time, give it a star ⭐ — it's the single thing that helps other agencies find it.
Status: Production Ready · 20 skills · 25 commands · 5 agents · 25 scripts · an opt-in catalog of 10 HTTP connectors (zero auto-connected) · 0 global hooks
Agency-grade social media calendar automation with asset-first compositing and AI video generation. Takes monthly content calendars, matches brand assets, generates AI-composed creative, renders carousels, produces AI-generated video clips, adapts copy per platform, produces review galleries and delivery documents — with C2PA content provenance signed into every AI-generated image/video before delivery.
Core Principle
Brand assets are sacred. AI is the creative layer around them.
Product photos, headshots, screenshots — these are the brand’s real visual identity. AI generates backgrounds, mood, and context around them. The brand asset stays pixel-faithful in every composition.
The Four Creative Modes
| Mode | When | What Happens |
|---|---|---|
| ANCHOR_COMPOSE | Brand photo is the centerpiece | AI generates scene around the untouched asset |
| ENHANCE_EXTEND | Brand photo is the base | AI extends/enhances periphery, core stays faithful |
| STYLE_REFERENCED | No specific asset needed | AI generates using brand’s style reference photos as visual DNA |
| PURE_CREATIVE | Generic/abstract content | AI generates from text prompt + brand colors/mood |
Quick Start
1. /socialforge:brand-setup [brand-name] — Configure brand (5-10 min)
2. /socialforge:index-assets [brand-name] — Index brand photo library
3. /socialforge:new-month [brand] [YYYY-MM] — Start monthly production
4. /socialforge:generate-all — Produce all creative
5. /socialforge:review — Review and approve
6. /socialforge:finalize — Package for delivery
Supported surfaces (v1.22.0)
| Platform | Install command | Manifest path | Status |
|---|---|---|---|
| Claude Code CLI + IDE extensions | /plugin install socialforge@neels-plugins | .claude-plugin/plugin.json | Full support (canonical) |
| Anthropic Cowork | Plugins UI → Add marketplace → indranilbanerjee/neels-plugins → Install SocialForge | same .claude-plugin/ files | Full support — no /plugin slash commands in Cowork (UI-only) |
| OpenAI Codex CLI + IDE + App | codex plugin marketplace add indranilbanerjee/neels-plugins then codex plugin install socialforge@neels-plugins | .codex-plugin/plugin.json (published OpenAI schema) | Full skills + MCP support |
| Cursor 2.5+ | In any Cursor Agent chat: /add-plugin socialforge@https://github.com/indranilbanerjee/socialforge | .cursor-plugin/plugin.json (verified Cursor 2.5+ JSON Schema) | Full skills + agents + commands support |
| GitHub Copilot CLI | copilot plugin marketplace add indranilbanerjee/neels-plugins then copilot plugin install socialforge@neels-plugins | .github/plugin/plugin.json (Copilot also recognizes .claude-plugin/plugin.json as fallback) | Full skills + MCP support |
| Google Antigravity 2.0 CLI + IDE | agy plugin install https://github.com/indranilbanerjee/socialforge | gemini-extension.json (at repo root, per Google's reference pattern) | Full skills + hooks support |
| Hermes Agent (Nous Research) — Desktop + CLI on macOS / Windows / Linux | hermes plugins install indranilbanerjee/socialforge | plugin.yaml + __init__.py at repo root (Hermes native spec) | Native plugin — adapter walks skills/ at register time and exposes all 20 skills via ctx.register_skill(). Targets Hermes Desktop v0.15.2+ (public preview June 2 2026). |
| OpenClaw (formerly Clawdbot / Moltbot) | openclaw plugins install git:github.com/indranilbanerjee/socialforge | openclaw.plugin.json at repo root (also auto-detects .claude-plugin/plugin.json as Claude-compatible bundle) | Native plugin via openclaw.plugin.json; skills field points at ./skills. |
Why this works: Agent Skills became an open standard in December 2025 (35+ agent products by June 2026). All 16 SKILL.md files in SocialForge are platform-portable as written.
Works on 35+ additional Agent Skills platforms without per-platform manifests — Goose (Block), OpenHands, OpenCode (sst), Junie (JetBrains), Gemini CLI, Roo Code, Cline/Windsurf, Kiro, Amp, Letta, Mux, Factory, Workshop, Tabnine, Mistral Vibe, and more. Point any Agent-Skills-compatible client at https://github.com/indranilbanerjee/socialforge/tree/main/skills and all 16 SocialForge skills are immediately discoverable.
Architecture
- 20 skills — Calendar parsing, asset indexing, creative composition, copy adaptation, review management, C2PA signing
- 25 commands — Monthly production, post generation, editing, review, approval, finalization
- 5 agents — Image compositor, carousel builder, copy adapter, quality reviewer, compliance checker
- 25 scripts — Deterministic execution (compositing, rendering, resizing, video post-processing, compliance checking, C2PA signing)
- An opt-in catalog of 10 HTTP connectors (zero auto-connected; enable from
.mcp.json.connectors-reference) — Notion, Canva, Slack, Gmail, Google Calendar, Figma, fal.ai, Replicate, Asana, Cloudinary (all Cowork-compatible) - 0 global hooks — As of v1.5.0. Prior hook config preserved at
hooks/hooks-reference.example.json. Credential status now via/socialforge:statuson demand. See the release notes for the rationale. - Model curator (v1.8.2+) —
scripts/model_registry.json+resolve_model.py+refresh_models.py. Single source of truth for image / vision / video model ids; deprecated ids passed via--model/--video-modelauto-fall-forward to their replacement;refresh_models.pypolls live provider catalogs and reports drift. Seedocs/MODEL-CURATOR.md.
Installation
Option A: From Marketplace (recommended)
/plugin marketplace add indranilbanerjee/neels-plugins
/plugin install socialforge@neels-plugins
Option B: Direct from GitHub
claude plugins add github:indranilbanerjee/socialforge
Option C: From Local Directory
claude plugins add /path/to/socialforge
First-Time Setup (Required)
After installing the plugin, run the setup command in Claude Code:
/socialforge:setup
This configures two external API services that power SocialForge’s image and video generation:
- Google Cloud Vertex AI — Used for AI image generation (Gemini Nano Banana 2 / Pro models)
- WaveSpeed — Used for AI video generation (Kling v3.0 Pro model)
Your admin provides you with:
- A Google Cloud service account JSON key file (for Vertex AI image generation)
- A WaveSpeed API key (for video generation)
/socialforge:setup copies these credentials to persistent storage (${CLAUDE_PLUGIN_DATA}), so they work across all sessions automatically. You only need to run it once.
Without running /socialforge:setup, image and video generation will not work. All other SocialForge features (calendar parsing, copy adaptation, review galleries, etc.) function normally without it.
Updating to Latest Version
If you see "/plugin isn't available in this environment" — you're in the standard Claude chat app (browser OR installed desktop app). The
/pluginslash command is only supported in two environments: Claude Code (the developer CLI / IDE at claude.com/code,npm install -g @anthropic-ai/claude-code) and Anthropic Cowork. Everywhere else —claude.aiweb chat, the Claude Desktop app, mobile — plugins are managed through the UI, not slash commands.The plugin IS installed (your SocialForge skills work); only the management command is unavailable. Fix:
- In the chat UI — click the Plugins button at the bottom of the chat → Manage plugins → find SocialForge → look for Update / Refresh / Remove. If no Update button, Remove then Add plugin → re-install from
indranilbanerjee/neels-plugins. The re-pull fetches the latest version.- For slash-command management — switch to Claude Code (CLI or IDE) or Cowork. The plugin runs identically across every Anthropic surface; you're choosing where to type management commands.
Once you're in Claude Code or Cowork, the rest of this section applies.
Third-party marketplaces — including this one — have auto-update OFF by default in Claude Code. When v1.6.0 is the marketplace's latest and you're still on v1.5.3, nothing tells you. There is no banner, no badge, no notification.
Option 1 (recommended) — turn auto-update on, once:
Open /plugin, go to the Marketplaces tab, find neels-plugins, and toggle Enable auto-update. From then on, Claude Code refreshes the catalog at startup and pulls new SocialForge releases automatically. After an auto-update fires, run /reload-plugins when prompted to apply changes mid-session — no full restart, conversation context preserved.
Option 2 — manual update each time:
/plugin marketplace update neels-plugins
/plugin uninstall socialforge@neels-plugins
/plugin install socialforge@neels-plugins
/reload-plugins
/plugin marketplace update only refreshes the catalog — it does not bump installed plugin versions. The uninstall + reinstall is what actually pulls the new version.
Force-reinstall (version unchanged but content changed):
rm -rf ~/.claude/plugins/cache/neels-plugins
/plugin install socialforge@neels-plugins
/reload-plugins
Installs in Cowork
Cowork is the Anthropic Desktop computer-use product (macOS/Windows). It supports third-party plugins from custom marketplaces — same /plugin marketplace add indranilbanerjee/neels-plugins install pattern. Cowork has local filesystem access, so the full SocialForge pipeline including all 22 Python scripts (image generation, video generation, ffmpeg postprocessing, C2PA signing) runs natively. The only Cowork-specific limitation is HTTP MCPs only (no stdio/npx) — SocialForge's 10 connectors are all HTTP and fully Cowork-compatible.
Pre-Requisites for Image Generation
SocialForge uses Google Cloud Vertex AI for image generation. Without it, image generation will fail (it will NOT silently create placeholders).
Setup via /socialforge:setup (recommended):
- Your admin provides a Google Cloud service account JSON key file with Vertex AI access
- Run
/socialforge:setupand point it to the JSON key file - Credentials are stored persistently — no need to set environment variables manually
Alternative — Direct environment variable:
If you prefer manual configuration, set the GOOGLE_APPLICATION_CREDENTIALS environment variable to point to your service account JSON file:
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json
Alternative — fal.ai or Replicate: Connect via Connectors panel after installation for third-party image generation.
Run /socialforge:status to verify image and video generation credentials are configured. (As of v1.5.0, credential status is reported on demand instead of via a SessionStart banner that fired on every Claude Code launch in every project.)
Admin Setup (One-Time)
Admins configure the cloud accounts once. Team members then just run /socialforge:setup with the credentials the admin shares.
Google Cloud (Vertex AI — Image Generation)
Step 1: Create a Google Cloud Project
- Open https://console.cloud.google.com/
- If you don’t have an account, click "Get started for free" and follow registration
- Click the project dropdown at the top of the page (next to "Google Cloud")
- Click "NEW PROJECT"
- Enter a project name (e.g., "socialforge-production")
- Click "CREATE"
- Wait for the project to be created (30 seconds), then select it from the dropdown
Step 2: Enable Billing
- Go to https://console.cloud.google.com/billing
- Click "LINK A BILLING ACCOUNT"
- If you don’t have a billing account, click "CREATE BILLING ACCOUNT"
- Add a payment method (credit card)
- New accounts get $300 free credits for 90 days
Step 3: Enable Vertex AI API
- Go to https://console.cloud.google.com/apis/library
- Search for "Vertex AI API"
- Click on it, then click "ENABLE"
- Wait for it to activate (takes a few seconds)
Step 4: Create a Service Account
- Go to https://console.cloud.google.com/iam-admin/serviceaccounts
- Click "+ CREATE SERVICE ACCOUNT"
- Service account name:
socialforge-image-gen - Description:
SocialForge AI image generation - Click "CREATE AND CONTINUE"
- In "Grant this service account access to project":
- Click the "Select a role" dropdown
- Type "Vertex AI User" in the search box
- Select "Vertex AI User"
- Click "CONTINUE", then "DONE"
Step 5: Download the JSON Key File
- In the service accounts list, click on
socialforge-image-gen - Go to the "KEYS" tab
- Click "ADD KEY" then "Create new key"
- Select "JSON" and click "CREATE"
- A .json file downloads automatically — this is your credential file
- Save it somewhere safe on your computer
Step 6: Share with Your Team
Share the downloaded JSON file with your team via:
- Slack DM (not in a public channel)
- Email (encrypted if possible)
- Shared company drive (restricted access)
NEVER commit this file to Git. NEVER share it publicly.
Cost: Image generation costs approximately $0.01-0.04 per image depending on resolution and model. All costs go to the admin’s billing account.
WaveSpeed (Kling v3.0 — Video Generation)
Step 1: Create a WaveSpeed Account
- Open https://wavespeed.ai
- Click "Sign Up" and create an account
- Verify your email
Step 2: Add Credits
- After logging in, go to your dashboard
- Click "Top Up" or navigate to billing
- Add credits (minimum top-up required to activate API access)
- Pricing: approximately $0.08-0.11 per second of video
- A 5-second video costs roughly $0.40-0.56
- A 10-second video costs roughly $0.84-1.12
Step 3: Create an API Key
- Go to https://wavespeed.ai/accesskey
- Click "Create API Key"
- Copy the key (it’s a long string of letters and numbers)
- Save it somewhere safe
Step 4: Share with Your Team
Share the API key string with your team via:
- Slack DM
- Password manager (recommended)
- Email (encrypted if possible)
NEVER commit this key to Git or paste it in public forums.
Cost: All video generation costs go to the admin’s WaveSpeed account. Monitor usage at https://wavespeed.ai/dashboard
HiggsField (Optional Fallback — Video + Image)
HiggsField provides additional resilience. If both Vertex AI and WaveSpeed are down, HiggsField can generate images and videos.
Step 1: Create a HiggsField Account
- Open https://higgsfield.ai
- Click "Sign Up" and create an account
- New accounts get 150 free credits
Step 2: Get API Credentials
- Log in at https://cloud.higgsfield.ai and open the API / Developer section of your dashboard
- Create a new API key pair — you'll get an API Key AND an API Secret
- Save both values
Step 3: Share with Your Team
Share both the API key AND secret with your team. Both are needed for authentication.
What Team Members Do
Team members do NOT need any cloud accounts. The admin shares credentials, and the team member runs:
/socialforge:setup
The setup wizard asks for:
- Path to the Google Cloud JSON file (for images) — paste the file path
- WaveSpeed API key (for video) — paste the key
- HiggsField credentials (optional) — paste key and secret if provided
Credentials are stored in the plugin’s persistent data directory. They survive across sessions, restarts, and plugin updates.
Where credentials are stored per platform:
- Windows:
%APPDATA%\Claude\plugins\data\socialforge-neels-plugins\socialforge\ - macOS:
~/Library/Application Support/Claude/plugins/data/socialforge-neels-plugins/socialforge/ - Linux:
~/.config/Claude/plugins/data/socialforge-neels-plugins/socialforge/
Or if using the fallback workspace: ~/socialforge-workspace/
Video Generation
SocialForge produces short-form AI-generated video clips for video content posts (Reels, TikTok, Shorts, etc.).
Pipeline
- Post context — The calendar post’s theme, copy, and visual direction inform the video
- Script generation — AI writes a short video script with scene descriptions
- Keyframe generation — Gemini (via Vertex AI) generates the first and last frame as keyframe images
- Video animation — WaveSpeed sends the keyframes to Kling v3.0 Pro (image-to-video), which animates them into a fluid video clip (3-15 seconds)
Models
| Component | Model | Provider |
|---|---|---|
| Keyframe images | Gemini Nano Banana 2 / Pro | Google Cloud Vertex AI |
| Image-to-video | Kling v3.0 Pro | WaveSpeed |
Post-Processing
After generation, videos are automatically post-processed with:
- Brand logo watermark overlay
- Platform-specific resizing (9 platform dimensions, no stretching)
- Optional subtitle burning (user approves — SRT with brand fonts)
- Optional background music (user approves — mixed at appropriate levels)
Post-processing is powered by ffmpeg, auto-installed via the imageio-ffmpeg Python package.
Human-in-the-Loop
All video generation goes through human-in-the-loop approval. Videos are generated, previewed in the review gallery, and require explicit approval before finalization. Nothing ships without sign-off.
Requirements
- WaveSpeed API key configured via
/socialforge:setup - Google Cloud Vertex AI credentials configured via
/socialforge:setup(for keyframe generation) - Python dependencies:
pip install google-genai wavespeed Pillow imageio-ffmpeg - Video duration: 3-15 seconds per clip
Use /socialforge:generate-video to produce video for a specific post, or /socialforge:generate-all to include video posts in batch production.
Connectors
SocialForge ships an opt-in catalog of 10 HTTP connectors that work in both Cowork and Claude Code — zero are auto-connected. .mcp.json ships as {"mcpServers":{}} by design; enable the ones you want from .mcp.json.connectors-reference:
Notion, Canva, Slack, Gmail, Google Calendar, Figma, fal.ai, Replicate, Asana, Cloudinary.
The plugin works fully without connectors — all skills, agents, and creative production function with local assets and AI generation APIs.
Storage
Brand configs and asset indexes persist across sessions via ${CLAUDE_PLUGIN_DATA}. Asset images stay in Google Drive, Cloudinary, or local folders. See the User Guide for details.
Current Release (v1.22.0)
Significance markers stay out of captions — August 14, 2026. The copy-adapter and /socialforge:adapt-copy now forbid any line whose only job is to announce that the next line matters ("here's the thing", "here's the kicker", "that's the part that got me", "let that sink in"): they read as machine-written, and on a 280-character platform they spend the budget the point needs. Lead with the specific instead, and cap stacked soft adverbs at one per caption. No AI-tell scanner was added, deliberately — caption-length copy has no document structure to measure and per-1000-word metrics are noise at 280 characters; a test pins that reasoning so the absence reads as a decision, not a gap. Tests 221 → 228.
Earlier (v1.20.0 — the delivery manifest discloses honestly, 2026-08-13)
The delivery manifest discloses honestly — August 13, 2026. Brand config gains ai_disclosure; /socialforge:assemble-document adds a vendor-neutral AI-assistance note to the monthly manifest per the detect_surface.py decision (uncertain ⇒ disclose; skipping requires an affirmative non-Claude fingerprint; recorded either way). Per-post disclosure stays with platform-native AI labels; C2PA media metadata stays independent; the long-form structural scan is deliberately not mirrored (captions have no document structure). Tests 214 → 221.
Earlier (v1.19.0 — nothing fails silently anymore, 2026-08-13) The reliability release: structured failure records across the provider layer, an adversarial execution sweep of the previously untested scripts, and a measured path for ideation's "compound the wins" rung.
- Structured failure records (
scripts/provider_failures.py): every fallback rung in image and video generation records provider / stage / reason / detail when it cannot run. A fully-failed chain returnsattempts+ deduplicatednext_steps— a missing API key, an unresolved model, an HTTP 401, and a content-policy rejection are four different problems with four different fixes, and the error now says which one you have. - Video generation is a real chain. Previously the fallbacks lived inside one provider's exception handler: a Veo-routed failure never fell back, a missing WaveSpeed key aborted the whole run, HiggsField was unreachable on the common path, and a failed video printed under a top-level
"status": "success". Now:generate_video_chain()tries every configured provider, routing consults the stored credential profile (not just env vars), the top-level status reflects the worst nested result, and exit 4 means "requested video failed". The chain's first execution caught a live SDK bug —promptpassed insideGenerateVideosConfig, which the SDK rejects — that had broken every Veo call. - Adversarial sweep, six defects proven by execution then fixed: compliance gate fails CLOSED (unknown severity words block; malformed rules become blocking
rule_errorsinstead of crashing the gate; typo'd brands FAIL instead of skipping; word-boundary matching so "ad" cannot match "advice"); status ledger rejects ghost post ids and unknown statuses, writes atomically, and sanitizes calendar-supplied folder names (path-traversal proof); asset re-index never mints duplicate ids; a corruptcredentials.jsonrefuses setup overwrite ("your keys are damaged, not gone") andget_gemini_clientreports every path tried; alias resolution sends retired models through the same fall-forward ladder as direct ids; the review gallery escapes every calendar string and names posts without media. /socialforge:ingest-performance(20th skill): platform analytics exports (CSV, header aliases normalized) become per-postperformance.jsonrecords;--action winsranks with a sample floor (default ≥100 impressions) and a margin rule (≥1.5× month-median engagement rate), reportsunrankedposts with reasons, and calls a flat monthno_clear_wins./socialforge:ideate-monthreads the measured path first and labels every winmeasuredvsanecdotal; unmeasured is never zero.- Also:
refresh_models.pynames per-vendor failure reasons and refuses--bump-timestampwhen zero vendors were actually checked;index_assets.pyreports why AI analysis fell back (exit 3 on total failure) and drops its last hardcoded model id;install_depsprogress goes to stderr so JSON contracts stay parseable.
Tests 177 → 214 (all offline, execution-based). 20 skills · 25 commands · 5 agents · 24 scripts.
Earlier (v1.13.1 — June 2026 market-refresh sync, 2026-06-28)
Model registry refreshed against the June 2026 vendor catalogs — image + video aliases re-pointed (Veo 3.1, Nano Banana 2 GA), the resolver hardened to unconditionally rewrite retired ids to replacements, the --check-params scanner added, registry rebuilt to 47 verified entries. Resolver-routed: zero hardcoded ID changes needed on the SF side.
Earlier (v1.12.1 — release-consistency test suite, 2026-06-09 PM)
Adds a release-consistency test layer to SF. New tests/test_release_consistency.py (+31 tests; SF total 23 → 54 passing) catches: 7-manifest version drift, README badge / hero callout / Supported-surfaces heading / Current Release heading staleness, CHANGELOG out-of-sync, byte-identical descriptions across 5 Claude-family manifests, skill-count claims that don't match skills/ dir, 7 native-platform install commands present, 12 critical README sections present, every internal anchor link resolves. Plugin descriptions across all 5 Claude-family manifests now lead with "20 skills" — improves marketplace search relevance + the test enforces the count.
Earlier (v1.12.0 — Multi-harness expansion: native Hermes Agent + native OpenClaw + 23-test stdlib suite, 2026-06-09)
Brings SocialForge to full 8-platform native support. New plugin.yaml + __init__.py at repo root for Hermes (walks skills/ at register time, exposes all 16 SF skills via ctx.register_skill() — stdlib only, defensive coding, never raises). New openclaw.plugin.json at repo root for OpenClaw native install (id + configSchema + skills: ["./skills"]). New tests/ directory with 23 stdlib-unittest tests covering plugin.yaml schema, adapter import + register, mock ctx integration, graceful degradation on bad ctx/None, cross-manifest version consistency. Install: hermes plugins install indranilbanerjee/socialforge or openclaw plugins install git:github.com/indranilbanerjee/socialforge. Zero impact on existing platforms — each reads only its own manifest path.
Earlier (v1.11.0 — C2PA 2.3 / 2.4 spec refresh, 2026-06-04)
skills/c2pa-sign/SKILL.md updated for C2PA Content Credentials 2.3 (released 9 February 2026) expanded format support: live video for broadcast/streaming, plain text documents, OGG Vorbis audio, large AVI video files, EXIF Original Preservation Images. Relevant for Reels / TikTok / Shorts streaming workflows and product photography preservation. Also added C2PA Spec 2.4 (April 2026) AI Disclosure Assertion (c2pa.ai-disclosure) — machine-readable AI transparency info that the EU AI Act Article 50 deployer pathway will read. When c2pa_sign.py is on a C2PA SDK ≥ 0.36, embed the assertion alongside existing IPTC + schema.org tags. Trust List now via the public C2PA Conformance Program.
Earlier (v1.10.0 — distribution & context-efficiency polish, 2026-05-27)
Trimmed install-UI descriptions to ~150 chars across all 5 platform manifests. Rewrote README hero pain-first. Added platform-skill GitHub topics. Inserted context-efficiency callouts in all 10 heaviest skills (grep-before-read pattern, ${CLAUDE_PLUGIN_DATA} directory-list-before-open, offset+limit on partial reads).
Earlier (v1.8.2)
Model curator + correctness sweep. Adds the shared model-selection infrastructure (scripts/model_registry.json + resolve_model.py + refresh_models.py, see docs/MODEL-CURATOR.md) so model ids are no longer hardcoded across image / edit / vision / video scripts. Replaced deprecated gemini-2.0-flash (×1), gemini-2.0-flash-exp-image-generation (×1), and veo-2.0-generate-001 (×2) with curator-resolved defaults; added --model / --video-model / --list-models flags. Fixed the dead cloud.higgsfield.ai/api-keys URL in README + setup SKILL. Replaced dead gmail.mcp.claude.com / gcal.mcp.claude.com / drive.mcp.claude.com MCP URLs with the working Google-hosted equivalents. Swept shorthand /sf:X slash refs to canonical /socialforge:X. Fixed a pre-existing arg-order bug in the Kling call site (aspect_ratio was being passed as duration).
Earlier (v1.8.1)
Polish + discoverability + community-standards pass. Adds Star History, community-standards files (CODE_OF_CONDUCT.md, SECURITY.md, PR + Issue templates), rewrites the README hero with social-proof badges + maintainer block (indranil.in + linkedin.com/in/askneelnow + @askneelnow), fixes stale asset counts (15→20 skills, 19→22 scripts) across README, and expands plugin.json keywords from 17 → 47 for marketplace search.
Earlier (v1.9.0 — real native manifests for 5 surfaces, 2026-05-27)
Ships verified-real native manifests for OpenAI Codex (.codex-plugin/plugin.json per the published OpenAI schema), Google Antigravity 2.0 (gemini-extension.json at repo root per Google's gemini-cli-extensions/data-agent-kit-starter-pack reference pattern), Cursor 2.5+ (.cursor-plugin/plugin.json per the verified Cursor JSON Schema), and GitHub Copilot CLI (.github/plugin/plugin.json per the verified GitHub schema). Adds AGENTS.md at root (auto-loaded by Codex + Antigravity + Copilot + Cursor agent context chains). All 20 skills share via the Agent Skills open standard — no duplication.
Earlier (v1.8.0 + v1.7.0 — superseded by v1.8.5 honesty cleanup, then properly rebuilt in v1.9.0)
v1.7.0 added invented .codex-plugin/plugin.json + .cursor-plugin/plugin.json and v1.8.0 added invented .antigravity/plugin.json + an unverified GitHub Copilot CLI auto-discovery claim. All four were removed in v1.8.5 after a May 2026 research pass confirmed those manifests did not match the platforms' actual install specs. v1.9.0 then ships the REAL native manifests against the verified published schemas — see the v1.9.0 entry above.
Earlier (v1.6.0)
EU AI Act Article 50 readiness (applicable 2 Aug 2026). New scripts/c2pa_sign.py wraps c2pa-python>=0.32 to embed machine-readable provenance manifests in AI-generated assets — brand (CreativeWork.author), generator name, prompt, target platform, IPTC digital-source-type. New /socialforge:c2pa-sign skill exposes it. Optional --c2pa-sign flag on generate_image.py (post-image-generation step) and video_postprocess.py (post-per-platform-resize step) auto-signs before delivery. Empirically tested: 75-byte test PNG → ~43 KB signed PNG with manifest_embedded_and_verified=true. Production deployment requires a CAI-recognized signing certificate (Adobe Content Credentials, Truepic, Numbers Protocol, or Microsoft Azure Confidential Ledger) — see references/c2pa-production-cert.md.
May 2026 channel pack added at references/channel-changes-may-2026.md — TikTok USDS Joint Venture (post-Jan 22 2026; AI creator labeling mandatory, AI content excluded from Creator Rewards Program, daily shoppable-post limits May 11 2026), LinkedIn March 12 2026 algorithm + Depth Score (external links and engagement bait penalized ~60%), Apple MPP affects ~64% of B2C opens (open rate dropped as primary KPI), YouTube AI Shorts labeling, Sora deprecation timeline (consumer app 26 Apr 2026, API 24 Sep 2026 → default to Runway Gen-4 / Veo 3.x / Kling 3.0). Third-party cookies deprecation cancelled.
Engineering spec correction — SOCIALFORGE-COMPLETE-ENGINEERING-SPEC.md section 16.3: Sora 2 row marked DEPRECATED; Runway Gen-4 and Kling 3.0 Omni added as replacements.
README correctness — Updating section rewritten; explicit two-option flow since third-party marketplaces have auto-update OFF by default in Claude Code; new "Installs in Cowork" subsection clarifying that the full SF pipeline including all 22 Python scripts runs natively in Cowork.
Earlier (v1.5.x)
v1.5.0 removed all 4 global hooks (SessionStart credential banner, PreToolUse Write/Edit compliance check, SubagentStart brand-context injection, Stop image-approval verification) that previously fired on every Claude Code operation in every project. Credential status reported on demand via /socialforge:status. v1.5.1 hardened the plugin manifest. v1.5.2 fixed manifest install format. v1.5.3 swept all /sf: shorthand to canonical /socialforge: across ~200 references.
Earlier (v1.3–1.4)
100% spec coverage. Persistent storage via ${CLAUDE_PLUGIN_DATA}, Google Drive asset source, Cloudinary DAM, Veo 3.1 video generation, edge feathering, color temp matching, PDF carousel assembly, Instagram first-comment strategy, bilingual copy support.
Documentation
- User Guide — Complete walkthrough from setup to delivery (with real agency examples)
- Technical Operations — Pipeline logic, scoring algorithms, AI models, folder structures, cost tracking
- Connectors — All 10 MCP connectors + storage architecture
- Testing Guide — Full test plan with checklists
- X/Twitter Research Intake - Optional, vendor-neutral evidence workflow for reactive posts and X copy — uses the harness's own web tools, any research tool the user has connected, or pasted threads
- Contributing — How to contribute to SocialForge
- Troubleshooting — Common issues and fixes
- Changelog — Release history
Star history
About the maintainer
SocialForge is built and maintained by Indranil “Neel” Banerjee — a builder and systems thinker with roots in information security and a second act across growth marketing, enterprise digital operations, and AI transformation. This repository is one public implementation of a broader focus on trustworthy AI execution: preserve context, make evidence inspectable, and keep people at consequential decision points.
- 🌐 Website: indranil.in
- 💼 LinkedIn: linkedin.com/in/askneelnow
- 🐦 X / Twitter: @askneelnow
- 💻 GitHub: @indranilbanerjee
- 📦 Other plugins: Digital Marketing Pro · ContentForge
- 💬 Discussions: GitHub Discussions
- 🐛 Bug reports: GitHub Issues
- 🔒 Security: Private Security Advisory (see SECURITY.md)
If SocialForge saves your team time, ⭐ star the repo. Sharing it on LinkedIn or X helps people discover the work too.
Contributing
PRs welcome — especially on the four creative modes, platform-specific copy adaptation rules, and AI image/video model integrations. See CONTRIBUTING.md for the workflow, .github/PULL_REQUEST_TEMPLATE.md for the PR checklist, and TESTING-GUIDE.md for the test plan. All contributors are expected to follow the Code of Conduct. Security issues: use Private Security Advisories per SECURITY.md — do not file public issues for vulnerabilities.
Neelverse Marketing Suite
SocialForge is part of the Neelverse Marketing Suite by Indranil Banerjee — three plugins that work together for end-to-end marketing:
| Plugin | What It Does | Install |
|---|---|---|
| Digital Marketing Pro | End-to-end engagement methodology — 12-Part Strategy Flow, Four Core Documents, Two-Views Model | /plugin install digital-marketing-pro@neels-plugins |
| ContentForge | Publication-ready content via 10-phase pipeline — research, fact-check, draft, SEO, humanize, .docx export with C2PA signing | /plugin install contentforge@neels-plugins |
| SocialForge (this plugin) | Social media calendar automation with AI image + video generation (Vertex AI Nano Banana Pro + WaveSpeed Kling v3.0 Pro), C2PA signing | /plugin install socialforge@neels-plugins |
Use together: Plan campaigns in DM Pro, produce articles with ContentForge, create social visuals and videos with SocialForge. All share the same brand profiles and marketplace.
claude plugin marketplace add indranilbanerjee/neels-plugins
claude plugin install digital-marketing-pro@neels-plugins
claude plugin install contentforge@neels-plugins
claude plugin install socialforge@neels-plugins
Sponsor this project
This plugin is MIT-licensed, free to use commercially, and collects no telemetry. What sponsorship pays for is the unglamorous half of keeping it accurate: platform-API updates when a vendor ships a breaking version, model-registry refreshes when a model is retired, compliance passes when regulatory guidance moves, and issue triage.
If it saves your team time, you can sponsor the work. Sponsors from $25/mo are listed in SPONSORS.md.
License
MIT — see LICENSE. Free to use commercially.
Made with care by Indranil Banerjee · MIT-licensed · ⭐ Star the repo if it helps you
// faq
What is socialforge?
An open-source social media production system that turns a content calendar into on-brand copy, images, video, and client-ready delivery - with compliance and human approval built in.. It is open-source on GitHub.
Is socialforge free to use?
socialforge is open-source under the MIT license, so it is free to use.
What category does socialforge belong to?
socialforge is listed under plugins in the Claudeers registry of Claude-compatible tools.
// embed badge
[](https://claudeers.com/socialforge)
// retro hit counter
[](https://claudeers.com/socialforge)
// reviews
// guestbook
// related in Claude Plugins
A single CLAUDE.md file to improve Claude Code behavior, derived from Andrej Karpathy's observations on LLM coding pitfalls.
Claude Code is an agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster by executing routine tasks, explainin…
"CLI-Anything: Making ALL Software Agent-Native" -- CLI-Hub: https://clianything.cc/
financial-services — a Claude ecosystem project on GitHub.