Skip to main content
Glama
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>
&nbsp;
<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>
&nbsp;
<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>
&nbsp;
<a href="https://modelcontextprotocol.io"><img src="https://img.shields.io/badge/MCP-compatible-1D3557?style=for-the-badge" alt="MCP Compatible" /></a>
&nbsp;
<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>
&nbsp;
<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>
&nbsp;
<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>
&nbsp;
<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>
&nbsp;&nbsp;&nbsp;โ€ข&nbsp;&nbsp;&nbsp;
<a href="#-quick-start">Quick Start</a>
&nbsp;&nbsp;&nbsp;โ€ข&nbsp;&nbsp;&nbsp;
<a href="#-how-it-works">How It Works</a>
&nbsp;&nbsp;&nbsp;โ€ข&nbsp;&nbsp;&nbsp;
<a href="#-the-agents">Agents</a>
&nbsp;&nbsp;&nbsp;โ€ข&nbsp;&nbsp;&nbsp;
<a href="#-self-host">Self-Host</a>
&nbsp;&nbsp;&nbsp;โ€ข&nbsp;&nbsp;&nbsp;
<a href="docs/architecture.md">Architecture</a>
&nbsp;&nbsp;&nbsp;โ€ข&nbsp;&nbsp;&nbsp;
<a href="CONTRIBUTING.md">Contributing</a>
&nbsp;&nbsp;&nbsp;โ€ข&nbsp;&nbsp;&nbsp;
<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) &nbsp;ยท&nbsp; Prompts in [`packages/engine/prompts/`](packages/engine/prompts/) &nbsp;ยท&nbsp; 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>