Open-Source Cold Email & Warmup Platform
Warmbly 是開源的冷郵件平台:溫暖您的收件箱、發送活動、並對每個回覆進行分流。可在我們的雲端運行或自行託管整個系統。
AI 翻譯
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Social feeds for AI-built sites: Instagram feed component with demo data in one command, one schema for every source, agent skill for Claude Code and Codex. TikTok and YouTube planned.
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
Social feeds for sites that AI writes. One schema for every source, a
component with demo data in one command, and the account connection handled
for you. The UI is yours, or your agent's. The data layer is ours.
That puts a working Instagram feed into the project: a component for Next.js
App Router, the feed JSON and types for Astro, SvelteKit, Nuxt and friends, or
a drop-in kit for plain HTML, with twelve realistic demo posts so the page
renders before anyone signs up for anything.檢視完整 README ↗Social feeds for sites that AI writes. One schema for every source, a component with demo data in one command, and the account connection handled for you. The UI is yours, or your agent's. The data layer is ours.
npx electricblaze add instagram-feed
That puts a working Instagram feed into the project: a component for Next.js App Router, the feed JSON and types for Astro, SvelteKit, Nuxt and friends, or a drop-in kit for plain HTML, with twelve realistic demo posts so the page renders before anyone signs up for anything.
Status: 0.1.2, Instagram only. add, preview, doctor and skill work
today, in demo mode. Real posts today come from the ElectricBlaze
widget: the site owner connects the Instagram
account there and pastes the embed snippet. The JSON API that feeds the
generated component, with login, connect and list, ships in 0.2. TikTok
and YouTube are planned; add tiktok-feed exits 2 rather than pretending.
| You use | Run |
|---|---|
| Any terminal | npx electricblaze add instagram-feed |
| shadcn CLI | npx shadcn@latest add ElectricBlaze/electricblaze/instagram-feed |
| Claude Code, Codex | npx electricblaze skill (installs the agent skill into the project) |
Claude Code can also install the skill as a plugin:
/plugin marketplace add ElectricBlaze/electricblaze, then
/plugin install electricblaze@electricblaze.
Pin the version when a script or an agent runs it: npx [email protected].
Every version is published from GitHub Actions with npm provenance
(npm audit signatures), and SECURITY.md says what the CLI
touches.
All commands are non-interactive, never prompt, and accept --json.
Exit codes: 0 done, 1 error, 2 needs something that is not there yet
(the output always says what to run next). An unknown flag, a flag that does
not apply to the command or a flag without its value is exit 2 too, never a
silent no-op.
npx electricblaze add instagram-feed # component + demo data into this project
npx electricblaze preview instagram # the feed as JSON (demo until connected)
npx electricblaze doctor # check the setup, get the next command
npx electricblaze skill # agent skill into .claude/skills and .agents/skills
npx electricblaze login # 0.2: device flow, like gh / vercel
npx electricblaze connect instagram # 0.2: prints a URL for the user, polls
Flags: --json, --force (replace files you edited), --dir=<path>,
--framework=next|html|data, --agent=claude,codex, --limit=<n>,
--formats=reel,post.
add writesNext.js App Router (detected from package.json and app/):
components/eb/InstagramFeed.tsx async Server Component, grid with badges
components/eb/InstagramFeed.module.css restyle freely
lib/eb/instagram.ts getInstagramFeed(): demo now, API when a key is set (0.2)
lib/eb/feed.d.ts the feed schema (types)
lib/eb/demo/instagram.json 12 sample posts
.env.example ELECTRICBLAZE_API_KEY=
Render it anywhere: <InstagramFeed limit={8} formats={["reel"]} />. The
output names the import path, using the @/* alias when tsconfig.json
has one.
Astro, SvelteKit, Nuxt, Remix, React Router, Gatsby, Vite (data, detected
from package.json): only the data, because those frameworks would not serve
a kit dropped into the project root.
lib/eb/feed.d.ts the feed schema (types)
lib/eb/demo/instagram.json 12 sample posts
Both land under src/ when the project has it. Read the JSON in the
framework's loader and render it; the skill below tells an agent exactly how.
Plain HTML (the fallback for everything else):
electricblaze/instagram-feed.js renders [data-eb-feed="instagram"] elements
electricblaze/instagram-feed.css
electricblaze/instagram.json the feed
electricblaze/instagram.demo.js the same feed, loadable from file://
electricblaze/feed.d.ts
<link rel="stylesheet" href="electricblaze/instagram-feed.css">
<div data-eb-feed="instagram" data-limit="8"></div>
<script src="electricblaze/instagram.demo.js"></script>
<script src="electricblaze/instagram-feed.js" defer></script>
add never overwrites a file you changed (line endings do not count as a
change); it reports the file as kept and --force replaces it. If the project
has AGENTS.md or CLAUDE.md, add appends a short marked block that tells
coding agents how the feed works and where real posts come from.
doctor finds whichever kit is installed, even one that does not match the
detected framework, validates the feed file against the schema and warns if
ELECTRICBLAZE_API_KEY is set before the API exists.
Two routes, both honest about today:
npx electricblaze connect instagram prints a link for the account owner; real posts then flow into
the same schema and the demo label goes away. Until then leave
ELECTRICBLAZE_API_KEY unset: the loader would call an endpoint that does
not answer yet.skills/electricblaze-feeds/ is an Agent Skill:
a SKILL.md with the workflow (add, wire in, restyle, filter, doctor, hand the
account connection to a human) and two references: the feed schema and the
current platform API facts with their check date (Basic Display is gone,
professional accounts only, 60-day tokens, media_product_type for reels,
YouTube quotas and unflagged Shorts). It triggers on requests like "add an
Instagram feed to the footer" and stops the agent from writing a fragile Graph
API fetch by hand.
.claude/skills/electricblaze-feeds/ (project) or the plugin above..agents/skills/electricblaze-feeds/ (project) or ~/.agents/skills/.npx electricblaze skill writes both; --agent=claude or --agent=codex
picks one. It never overwrites a skill you edited.
registry.json at the repository root makes this repo a shadcn registry with
no build step or hosting. npx shadcn@latest add ElectricBlaze/electricblaze/instagram-feed
installs the same Next.js files as add, into your configured components/
and lib/ aliases, and adds ELECTRICBLAZE_API_KEY= to .env.local.
Every source is returned in one shape: schema/feed.d.ts (TypeScript types)
and schema/validate.js (dependency-free runtime check). A Feed wraps an
origin (profile, hashtag, playlist, board or channel) and a list of Posts.
A post has a type that tells a renderer what to draw (image, video,
carousel, text, link) and a format that tells what the platform calls
it (post, reel, short, live, clip, ...). Platform-specific data stays
in raw.
import type { Feed, Post } from "electricblaze";
import { validateFeed } from "electricblaze/schema";
demo/instagram.json is a synthetic feed in schema v1: 12 posts covering
images, carousels, feed videos and reels, with demo: true. Nothing in it
points at a real Instagram account. Demo media (photos and short videos) live
in demo/media/ and are served through jsDelivr until the ElectricBlaze CDN
exists; sources and licenses are in demo/media/SOURCES.md. The media folder
is not part of the npm package.
Site: https://electricblaze.com · Source: https://github.com/ElectricBlaze/electricblaze · Changelog · Security
License: MIT