embercore
README.md
<div align="center">
<br/>
<img alt="embercore logo" src="./assets/logo.png" width="200" />
<br/>
<br/>
<h1>embercore</h1>
<p><strong>Most AI marketing tools write content.<br/>embercore writes your <em>plan</em> โ then stops and asks what you think.</strong></p>
<sub>An open-source MCP server that turns a one-page product brief into a complete marketing plan.<br/>Five agents. Named after Greek gods. Human checkpoints at every stage. Nothing ships without your say.</sub>
<br/>
<br/>
<a href="https://github.com/embercore-labs/embercore/releases/tag/v0.1.0"><img src="https://img.shields.io/badge/version-0.1.0-FF6B35?style=for-the-badge" alt="Version 0.1.0" /></a>
<a href="https://github.com/embercore-labs/embercore/stargazers"><img src="https://img.shields.io/github/stars/embercore-labs/embercore?style=for-the-badge&color=F7C948" alt="GitHub Stars" /></a>
<a href="https://github.com/embercore-labs/embercore/blob/main/LICENSE"><img src="https://img.shields.io/github/license/embercore-labs/embercore?style=for-the-badge&color=FF6B35" alt="MIT License" /></a>
<a href="https://modelcontextprotocol.io"><img src="https://img.shields.io/badge/MCP-compatible-1D3557?style=for-the-badge" alt="MCP Compatible" /></a>
<a href="https://embercore-labs.github.io/embercore"><img src="https://img.shields.io/badge/๐_Docs-GitHub_Pages-blue?style=for-the-badge" alt="Documentation" /></a>
<br/>
<a href="https://go.dev"><img src="https://img.shields.io/badge/Go-00ADD8?style=for-the-badge&logo=go&logoColor=white" alt="Go" /></a>
<a href="https://nextjs.org"><img src="https://img.shields.io/badge/Next.js-000000?style=for-the-badge&logo=next.js&logoColor=white" alt="Next.js" /></a>
<a href="https://github.com/embercore-labs/embercore/blob/main/CONTRIBUTING.md"><img src="https://img.shields.io/badge/PRs-welcome-E63946?style=for-the-badge" alt="PRs Welcome" /></a>
<a href="https://github.com/embercore-labs/embercore/discussions"><img src="https://img.shields.io/github/discussions/embercore-labs/embercore?style=for-the-badge&color=1D3557" alt="Discussions" /></a>
<br/>
<br/>
<a href="#-why-embercore">Why</a>
โข
<a href="#-quick-start">Quick Start</a>
โข
<a href="#-how-it-works">How It Works</a>
โข
<a href="#-the-agents">Agents</a>
โข
<a href="#-self-host">Self-Host</a>
โข
<a href="docs/architecture.md">Architecture</a>
โข
<a href="CONTRIBUTING.md">Contributing</a>
โข
<a href="https://github.com/embercore-labs/embercore/discussions">Discuss</a>
<br/>
<br/>
<!-- Demo GIF will be added once Phase 1 ships -->
</div>
<br/>
## ๐ค 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.
<br/>
| | 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. |
<br/>
## โก Quick Start
Two ways to use embercore. Pick one. Both take ~3 minutes.
<br/>
### Option A โ Web App
```bash
git clone https://github.com/embercore-labs/embercore.git
cd embercore
pnpm install
pnpm dev
```
Open [localhost:3000](http://localhost:3000), paste your Anthropic key, drop in your product brief, watch the agents work.
<br/>
### Option B โ MCP Server
```bash
# 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):
```jsonc
// ~/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](docs/quickstart.md) for Cursor and Copilot CLI configs.
<br/>
## ๐ 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.
<br/>
## ๐ The Agents
<div align="center">
<table>
<thead>
<tr>
<th align="center">Agent</th>
<th align="center">Domain</th>
<th>Stage</th>
<th>Output</th>
</tr>
</thead>
<tbody>
<tr>
<td align="center">๐ฆ <strong>Athena</strong></td>
<td align="center"><em>Wisdom & Strategy</em></td>
<td>Research, ICP, competitive landscape</td>
<td><code>01_research.md</code></td>
</tr>
<tr>
<td align="center">๐ต <strong>Apollo</strong></td>
<td align="center"><em>Light & Prophecy</em></td>
<td>Brand voice, positioning, messaging pillars</td>
<td><code>02_brand_messaging.md</code></td>
</tr>
<tr>
<td align="center">๐ <strong>Hestia</strong></td>
<td align="center"><em>Hearth & Home</em></td>
<td>Onboarding flow, screens, UX wireframes</td>
<td><code>03_ux.md</code></td>
</tr>
<tr>
<td align="center">โก <strong>Hermes</strong></td>
<td align="center"><em>Messenger of the Gods</em></td>
<td>Go-to-market: social, B2B outreach, channels</td>
<td><code>04_go_to_market.md</code></td>
</tr>
<tr>
<td align="center">๐จ <strong>Hephaestus</strong></td>
<td align="center"><em>Divine Smith</em></td>
<td>Assembly of the final plan from all prior outputs</td>
<td><code>final_product_plan.md</code></td>
</tr>
</tbody>
</table>
</div>
<br/>
Why named agents? Because _"Stage 3"_ is forgettable โ _"Hestia just finished your onboarding flow"_ is not.
> ๐ Agent mapping in [docs/agents.md](docs/agents.md) ยท Prompts in [`packages/engine/prompts/`](packages/engine/prompts/) ยท Implementation in [`packages/engine/tools/`](packages/engine/tools/)
<br/>
## ๐ 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`](packages/engine/internal/logger).
<br/>
## ๐ 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](docs/architecture.md) for the full picture.
<br/>
## ๐ค 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](https://github.com/embercore-labs/embercore/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) that don't require touching the LLM code.
| Resource | Description |
| ---------------------------------------------------------------------- | ---------------------------------------- |
| [CONTRIBUTING.md](CONTRIBUTING.md) | Dev setup, PR flow, commit style |
| [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) | Contributor Covenant 2.1 |
| [SECURITY.md](SECURITY.md) | How to report vulnerabilities privately |
| [Discussions](https://github.com/embercore-labs/embercore/discussions) | Roadmap conversations & design questions |
<br/>
## ๐บ Roadmap
Full detail in **[ROADMAP.md](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."**
<br/>
## ๐ License
MIT โ see [LICENSE](LICENSE). Use it for anything. Sell things you build with it. Just don't sue us.
<br/>
## ๐ Acknowledgements
- Built on the [Model Context Protocol](https://modelcontextprotocol.io) by Anthropic
- Engine uses [`mark3labs/mcp-go`](https://github.com/mark3labs/mcp-go) and [`anthropics/anthropic-sdk-go`](https://github.com/anthropics/anthropic-sdk-go)
- Web app is [Next.js](https://nextjs.org) + [Tailwind CSS v4](https://tailwindcss.com)
- Inspired by: Cal.com, Supabase, PostHog, Plausible, Documenso, Inbox Zero, Trigger.dev
- Names: the Hellenes, ~3000 years ago
<br/>
<div align="center">
<br/>
<a href="https://github.com/embercore-labs/embercore/stargazers"><img src="https://img.shields.io/badge/โญ_Star_embercore-F7C948?style=for-the-badge" alt="Star embercore" /></a>
<br/>
<br/>
<sub>Built with ๐ฅ by <a href="https://github.com/tamish-max">Tamish Mhatre</a> and <a href="https://github.com/embercore-labs/embercore/graphs/contributors">contributors</a>.</sub>
<br/>
<sub>If embercore saved you an afternoon of marketing-tab hell, <a href="https://github.com/embercore-labs/embercore/stargazers">give it a star</a> โ it helps more than you think.</sub>
<br/>
<br/>
</div>
This server cannot be deployed
Maintenance
ActivityNo data
ResponsivenessSyncing