Skip to content

embercore-labs/embercore

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

embercore logo

embercore

Most AI marketing tools write content.
embercore writes your plan — then stops and asks what you think.

An open-source MCP server that turns a one-page product brief into a complete marketing plan.
Five agents. Named after Greek gods. Human checkpoints at every stage. Nothing ships without your say.



Version 0.1.0   GitHub Stars   MIT License   MCP Compatible   Documentation


Go   Next.js   PRs Welcome   Discussions



Why    •    Quick Start    •    How It Works    •    Agents    •    Self-Host    •    Architecture    •    Contributing    •    Discuss




🤔 Why embercore

You shipped a product. You have no idea how to market it. Every AI tool either:

  • Asks you to describe your audience and spits out 50 LinkedIn posts (not what you need)
  • Demands a $99/mo subscription to an opaque SaaS with your data inside it
  • Assumes you already know what an "ICP" or "positioning statement" is

embercore does something different. It makes the plan before it makes the content, and it asks you what you think before moving on.


Feature What it means
📋 Plan-first, not draft-first Five stages: Research → Brand → UX → GTM → Assemble. Structured artifacts on disk, not a wall of copy.
🛑 Human checkpoints (H1–H4) The pipeline pauses between every stage. You approve, edit, or redirect.
🔑 Bring Your Own Key Your Anthropic key stays in your environment. Zero telemetry.
🔓 Fully open source (MIT) Read every prompt. Fork it. Run it forever. No paid tier, no upsell.
🏠 Local-first Runs in Claude Desktop, Cursor, Copilot CLI, Windsurf — any MCP client.
🚫 No jargon Every decision explained in plain language. Marketing terms get defined.

⚡ Quick Start

Two ways to use embercore. Pick one. Both take ~3 minutes.


Option A — Web App

git clone https://github.com/embercore-labs/embercore.git
cd embercore
pnpm install
pnpm dev

Open localhost:3000, paste your Anthropic key, drop in your product brief, watch the agents work.


Option B — MCP Server

# Build the engine (Go 1.23+ required)
cd packages/engine
make build

# Move it onto your PATH
mv embercore-engine /usr/local/bin/          # macOS / Linux
# Move-Item embercore-engine.exe "$env:USERPROFILE\bin\"   # Windows

Add to your MCP client config (Claude Desktop example):

// ~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "embercore": {
      "command": "embercore-engine",
      "env": { "ANTHROPIC_API_KEY": "sk-ant-..." },
    },
  },
}

Restart your client, drop a product_brief.md in your working directory, and ask the assistant to "run the embercore workflow."

📖 See docs/quickstart.md for Cursor and Copilot CLI configs.


🔄 How It Works

                    ┌─────────────────────┐
                    │   product_brief.md  │
                    │  (your 1-page input) │
                    └─────────┬───────────┘
                              │
                              ▼
    ┌─────────────────────────────────────────────────────┐
    │                                                     │
    │   🦉  Athena       → 01_research.md        ── H1   │
    │                                        ▲            │
    │                               approve / edit        │
    │                                        ▼            │
    │   🎵  Apollo       → 02_brand_messaging.md ── H2   │
    │                                        ▲            │
    │                               approve / edit        │
    │                                        ▼            │
    │   🏠  Hestia       → 03_ux.md              ── H3   │
    │                                        ▲            │
    │                               approve / edit        │
    │                                        ▼            │
    │   ⚡  Hermes       → 04_go_to_market.md    ── H4   │
    │                                        ▲            │
    │                               approve / edit        │
    │                                        ▼            │
    │   🔨  Hephaestus   → final_product_plan.md         │
    │                                                     │
    └─────────────────────────────────────────────────────┘
                              │
                              ▼
                    ┌─────────────────────┐
                    │      output/        │
                    │  (all artifacts on  │
                    │     your disk)      │
                    └─────────────────────┘

Each H# is a checkpoint — the pipeline blocks until you approve, edit, or send it back. The final plan is assembled only after all four checkpoints are green.

State lives at .embercore-state/ so a crashed run resumes from the last completed stage.


🏛 The Agents

Agent Domain Stage Output
🦉 Athena Wisdom & Strategy Research, ICP, competitive landscape 01_research.md
🎵 Apollo Light & Prophecy Brand voice, positioning, messaging pillars 02_brand_messaging.md
🏠 Hestia Hearth & Home Onboarding flow, screens, UX wireframes 03_ux.md
Hermes Messenger of the Gods Go-to-market: social, B2B outreach, channels 04_go_to_market.md
🔨 Hephaestus Divine Smith Assembly of the final plan from all prior outputs final_product_plan.md

Why named agents? Because "Stage 3" is forgettable — "Hestia just finished your onboarding flow" is not.

📖 Agent mapping in docs/agents.md  ·  Prompts in packages/engine/prompts/  ·  Implementation in packages/engine/tools/


🔑 BYOK + Privacy

  • Your Anthropic key is set in your shell environment (or MCP client config). It never touches an embercore server because there is no embercore server — just code on your machine.
  • The web app stores nothing server-side. Briefs and plans live in localStorage and on disk under output/.
  • Zero telemetry. Zero analytics. We can't see you using embercore — and that's the point.
  • Engine logs are local-only and elide secrets by default. See packages/engine/internal/logger.

🏠 Self-Host

Everything is self-host by default — there is no hosted version to switch from.

Deployment How
Web app Deploy apps/web to Vercel, Netlify, Cloudflare Pages, or any Node host. Users paste their own key.
MCP engine Ship the embercore-engine binary alongside any MCP client. No daemon, no server.
Air-gapped Set ANTHROPIC_BASE_URL to point at an internal proxy. The engine doesn't care.

📖 See docs/architecture.md for the full picture.


🤝 Contributing

We mean it when we say PRs welcome. The repo is fresh, the surface is small, and there are plenty of good first issues that don't require touching the LLM code.

Resource Description
CONTRIBUTING.md Dev setup, PR flow, commit style
CODE_OF_CONDUCT.md Contributor Covenant 2.1
SECURITY.md How to report vulnerabilities privately
Discussions Roadmap conversations & design questions

🗺 Roadmap

Full detail in ROADMAP.md. The short version:

Phase Focus Status
Phase 0 — Foundations Repo scaffold, OSS docs, BYOK architecture ✅ Complete
Phase 1 — Core Loop End-to-end plan → checkpoint → execute pipeline ✅ Complete
Phase 2 — Marketing Workflows Apollo, Hephaestus, workflow templates, review queue 🧭 In progress
Phase 3 — MCP & Integrations MCP server tools, plugin API, local providers 💭 Exploring

The default forever-future for embercore is "OSS, BYOK, runs on your machine."


📄 License

MIT — see LICENSE. Use it for anything. Sell things you build with it. Just don't sue us.


🙏 Acknowledgements



Star embercore



Built with 🔥 by Tamish Mhatre and contributors.


If embercore saved you an afternoon of marketing-tab hell, give it a star — it helps more than you think.