Customer Engagement Platform for Email, Push Notifications, & SMS
모바일 푸시, 웹 푸시, SMS, 이메일, 인앱 메시징 분야 세계 최고, 200만 기업이 신뢰해 연간 120억 건 이상 전송
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
Local-first content repurposing agent for Claude and Codex
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Turn one idea into a complete, platform-ready content package.
COPE is an open-source, local-first content repurposing agent. Give it rough notes, a
Markdown draft, or a URL; it builds one canonical brief, then creates X posts, LinkedIn
posts, blog drafts, social images, and swipeable carousel PDFs from the same source.
One command produces a reviewable folder of text, images, metadata, and a run summary.
COPE never publishes automatically.README 전문 보기 ↗Turn one idea into a complete, platform-ready content package.
COPE is an open-source, local-first content repurposing agent. Give it rough notes, a Markdown draft, or a URL; it builds one canonical brief, then creates X posts, LinkedIn posts, blog drafts, social images, and swipeable carousel PDFs from the same source.
pnpm cope run examples/post.md --all
One command produces a reviewable folder of text, images, metadata, and a run summary. COPE never publishes automatically.
Describe COPE as an agent. It owns a multi-step workflow: ingesting source material, building a brief, routing work to models, adapting formats, validating results, rendering visuals, and writing artifacts. A Claude or Codex skill is usually an instruction bundle that runs inside its host. COPE is a standalone CLI agent that can use either host as a provider, so a future skill would be a thin way to invoke COPE rather than the product itself.
| Output | Format ID | Result |
|---|---|---|
| X post | x_post | Concise single post |
| X thread | x_thread | Structured multi-post thread |
| LinkedIn post | linkedin_post | Professional long-form social post |
| Blog draft | blog_md | Markdown article |
| OG image | og_image | Share-ready PNG |
| Quote card | quote_card | Branded quote PNG |
| Carousel | carousel | PNG slides, metadata, and a PDF |
Start with selected formats when you want a faster first run:
pnpm cope run examples/post.md -f x_post,linkedin_post,carousel
COPE is currently clone-and-run. It requires Git, Node.js >=20.9, and pnpm 10.11.1:
git clone https://github.com/sirius93/cope.git
cd cope
corepack enable
corepack prepare [email protected] --activate
pnpm install --frozen-lockfile
Then install and authenticate the provider needed by your workflow.
| Primary workflow | Local cards and carousels | Generated artwork |
|---|---|---|
| Claude Code (default) | Claude writes the copy; COPE renders it locally. Codex is not needed. | Claude keeps the full text workflow; Codex handles only image generation and vision-based alt text. |
| Codex | Codex writes the copy; COPE renders it locally. | Codex handles the complete workflow. |
The built-in card renderer is the default. It creates the carousel PNGs and PDF from
predefined layouts, so neither agent needs to generate an image unless you explicitly
select --image-mode generated.
The default configuration uses Claude Code for the brief, text formats, and carousel copy. Install it using an official Claude Code method:
# macOS, Linux, or WSL
curl -fsSL https://claude.ai/install.sh | bash
# macOS with Homebrew
brew install --cask claude-code
Windows users can use the PowerShell or WinGet commands in the linked setup guide.
Run claude once to sign in, then verify and run COPE:
claude --version
pnpm cope run examples/post.md -f x_post,linkedin_post
pnpm cope run examples/post.md --all --image-mode cards
This path does not require an API key or Codex. Claude Code's account limits, billing, and service terms still apply.
When Claude is the primary agent, the generated-artwork route hands only image generation and vision-based alt text to Codex. Install it using the official Codex CLI installer:
# macOS or Linux
curl -fsSL https://chatgpt.com/codex/install.sh | sh
Windows users should follow the Windows instructions in the linked Codex guide.
Run codex once and choose a sign-in method, then verify it:
codex --version
With the default configuration, keep Claude installed and add Codex for generated images:
pnpm cope run examples/post.md --all --image-mode generated
To use Codex for the entire pipeline, create cope.config.yaml:
routing:
brief: codex_cli
voice_learn: codex_cli
longform: codex_cli
midform: codex_cli
shortform: codex_cli
edit: codex_cli
image_prompt: codex_cli
image_generate: codex_cli
alt_text: codex_cli
Copy .env.example to .env, add ANTHROPIC_API_KEY and/or OPENAI_API_KEY, then
route stages to anthropic or openai in cope.config.yaml. For an OpenAI-only setup:
routing:
brief: openai
voice_learn: openai
longform: openai
midform: openai
shortform: openai
edit: openai
image_prompt: openai
image_generate: openai
alt_text: openai
Verify the configured model IDs before running API routes. For all commands, provider details, and Claude/Codex integration notes, see the usage guide.
pnpm cope run examples/post.md --all
Images default to local information cards: readable typography, key points, and a
carousel PDF rendered from the brief. This mode makes zero image-generation or vision
calls. A carousel uses one text call to create complete 5–6 word titles and supporting
descriptions; other cards render directly from the brief. Alt-text is derived from the
card's actual content. No codex installation is needed.
For AI-generated artwork instead:
pnpm cope run examples/post.md --all --image-mode generated
Generated mode keeps the brief, writing, editing, and image concept with the selected
primary agent. By default, only image generation and vision-based alt text use the local
codex CLI. Those calls can take many minutes, and tool availability depends on the
installed CLI and account. This integration is experimental; the automated tests use
substitutes, not live authenticated services. Simpler visual prompts alone do not
guarantee faster remote generation.
Choose a style independently of image mode:
pnpm cope styles
pnpm cope run examples/post.md --all --image-style editorial
pnpm cope run examples/post.md -f carousel --image-mode generated --image-style sketch
| Style | Look |
|---|---|
editorial (default) | Warm paper, serif headlines, restrained magazine composition |
minimal | White space, centered sans-serif typography, monochrome geometry |
blueprint | Deep navy, fine construction lines, technical typography |
sketch | Off-white paper, graphite-like accents, quiet notebook feel |
Local cards use the selected palette, typography and layout without extra model calls. Generated mode applies the art direction to both concept and image prompts and uses a matching caption panel. Actual artwork still depends on the image provider. Styles stay consistent within a carousel and are recorded in each image's JSON metadata. There are no automatic COPE banners or watermarks.
Each run gets a fresh out/<slug>-<unique-id>/ directory, containing brief.json,
run-summary.json, text drafts, and images/ (PNG, metadata/alt-text JSON, carousel PDF).
Previous runs are never reused. Failed text drafts go under invalid/; any failed format
sets a nonzero exit code. Other formats continue after a provider failure.
Validation checks JSON types and configured numeric limits, with a bounded repair loop.
It does not establish factual accuracy, originality, or suitability for publication.
Failed image formats may leave partial files; consult run-summary.json before using them.
Formats: x_post, x_thread, linkedin_post, blog_md, og_image, quote_card, carousel.
The og_image card contains a headline; generated mode uses artwork without a text overlay.
config/defaults.yaml contains defaults. A local cope.config.yaml merges sections and
individual provider entries, so a small override is enough:
images:
mode: cards # or generated
style: editorial # minimal | blueprint | sketch
limits:
maxImagesPerRun: 10
voice:
file: persona/voice.md # gitignored by default — it's derived from your own writing, not project code
Brand images with a logo, colors, website, and social handle by copying
persona/persona.yaml.example to persona/persona.yaml — see docs/USAGE.md
for the fields. It's optional and gitignored, same as persona/voice.md.
| Provider | Authentication | Use |
|---|---|---|
claude_cli | Existing local CLI login | Text (default) |
codex_cli | Existing local CLI login | Text, experimental generated artwork and vision |
anthropic | ANTHROPIC_API_KEY | Text API |
openai | OPENAI_API_KEY | OpenAI-compatible text, image and vision APIs |
Copy .env.example to .env for API credentials and override the relevant routing
entries. Verify model IDs with your provider before using the API routes. Custom
baseUrl values receive the configured credentials and submitted content; only use
trusted endpoints. See usage and security.
maxImagesPerRun bounds the total image count reserved across a run, including failed
formats. Image generation and CLI subprocesses are not automatically retried: a failed
request may still be billable. Text HTTP requests retry only transient HTTP statuses.
maxRepairPasses is limited to 0–10. maxTokensPerRun is unsupported and rejected;
configure spending/quota limits with your provider. This is not a dollar-budget guarantee.
pnpm typecheck
pnpm test
Source packages live in packages/{providers,formats,render,core,cli}. Distribution is
currently clone-and-run; packages are private and are not prepared for npm publication.
See contributing. The original build plan is
historical planning material, not a statement of implemented features.
COPE's original code and documentation are MIT licensed. Dependencies retain their own licenses; see third-party licensing, especially before redistributing native binaries or containers. The software license does not determine rights to source material or generated output, or replace provider service terms.