Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions .github/workflows/publish-mcp-registry.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: Publish to MCP Registry

on:
workflow_dispatch:

jobs:
publish:
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write
steps:
- uses: actions/checkout@v4

- uses: actions/setup-node@v4
with:
node-version: "20"

- name: Verify npm package is published
run: |
LOCAL_VERSION="$(node -p "require('./package.json').version")"
PUBLISHED_VERSION="$(npm view @memi-design/cli@"${LOCAL_VERSION}" version)"
if [ "${PUBLISHED_VERSION}" != "${LOCAL_VERSION}" ]; then
echo "::error::@memi-design/cli@${LOCAL_VERSION} is not available on npm"
exit 1
fi
node -e "const p=require('./package.json'); const s=require('./server.json'); if (p.mcpName !== s.name) throw new Error('mcpName/server.json mismatch');"

- name: Install mcp-publisher
run: |
curl -L "https://github.com/modelcontextprotocol/registry/releases/latest/download/mcp-publisher_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/').tar.gz" | tar xz mcp-publisher
./mcp-publisher --help

- name: Validate server.json
run: ./mcp-publisher validate server.json

- name: Authenticate to MCP Registry
run: ./mcp-publisher login github-oidc

- name: Publish server.json
run: ./mcp-publisher publish server.json
6 changes: 3 additions & 3 deletions .github/workflows/release-binaries.yml
Original file line number Diff line number Diff line change
Expand Up @@ -122,8 +122,8 @@ jobs:
build-args: |
VERSION=${{ github.ref_name }}
tags: |
ghcr.io/sarveshsea/memoire:latest
ghcr.io/sarveshsea/memoire:${{ github.ref_name }}
ghcr.io/sarveshsea/memi:latest
ghcr.io/sarveshsea/memi:${{ github.ref_name }}

publish-homebrew:
needs: publish-checksums
Expand All @@ -150,7 +150,7 @@ jobs:
echo "HOMEBREW_TAP_TOKEN secret not configured — skipping tap push"
exit 0
fi
git clone "https://x-access-token:${GH_TOKEN}@github.com/sarveshsea/homebrew-memoire.git" tap
git clone "https://x-access-token:${GH_TOKEN}@github.com/sarveshsea/homebrew-memi.git" tap
mkdir -p tap/Formula
cp memoire.rb tap/Formula/memoire.rb
cd tap
Expand Down
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,14 @@ This changelog tracks Mémoire itself: every version, commit, and architectural

## Unreleased

## v1.0.1 — 2026-05-12

### Docs
- README install section now lists pnpm and yarn variants alongside npm (single bash block, three lines).

### Packaging
- Exclude `plugin/*.png` from the npm tarball — prevents stray local screenshots in the plugin folder from blowing past the size gate.

## v1.0.0 — 2026-05-10

### Rebrand and stability commitment
Expand Down
89 changes: 42 additions & 47 deletions README.md

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions docs/GITHUB_ACHIEVEMENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,8 @@ Immediate sequence:

The official MCP Registry verifies npm package ownership through `package.json#mcpName`. The already-published `0.14.3` package includes this field; `0.14.4` adds trust hardening before registry submission.

- `package.json#mcpName`: `io.github.sarveshsea/memoire`
- `server.json#name`: `io.github.sarveshsea/memoire`
- `package.json#mcpName`: `io.github.sarveshsea/memi`
- `server.json#name`: `io.github.sarveshsea/memi`
- `server.json#packages[0].identifier`: `@memi-design/cli`
- `server.json#packages[0].packageArguments`: `mcp`

Expand Down
88 changes: 88 additions & 0 deletions docs/GROWTH_TO_1M_NPM.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
# Growth To 1M Weekly NPM Downloads

Updated: 2026-05-13

## North Star

Get `@memi-design/cli` to 1,000,000 npm downloads per week by making the engine the thing people install, script, embed, and recommend. Studio should demonstrate the engine and make agent work calmer; it should not become the main product surface or the main source of complexity.

## Current Truth

- Public npm package: `@memi-design/cli@1.0.0`; local release branch: `1.0.1`.
- npm downloads: 128 in the last reported week, 2026-05-05 through 2026-05-11.
- Legacy alias: `@sarveshsea/memoire@0.18.0` still exists and receives more traffic than the new package.
- GitHub repo: `sarveshsea/memi`, 10 stars, 2 forks, 2 open issues.
- Studio repo: `sarveshsea/memi-studio`, public app repo with v1.0.0 release assets.
- Homebrew cask: `sarveshsea/homebrew-memi`, `memi-studio` cask at v1.0.0.
- Official MCP Registry: not listed for `io.github.sarveshsea/memi`.
- Active leak: old `m-moire` and `@sarveshsea/memoire` references confuse discovery, install paths, and trust.

Run the live check:

```bash
node scripts/growth-status.mjs --json
```

## Product Posture

The engine must be the default answer:

- `memi diagnose` for existing apps.
- `memi tokens --from ./src --report` for token extraction.
- `memi shadcn export --out public/r` for installable registries.
- `memi agent install ...` for agent-native design-system memory.
- `memi mcp start --no-figma` for MCP discovery.

The macOS app should be minimalist:

- One primary job: run and supervise agent harnesses clearly.
- Two primary harnesses: Codex and Claude Code.
- Everything else is advanced until users ask for it.
- Surfaces should collapse toward transcript, artifacts, status, and project memory.
- No feature earns first-screen space unless it helps the first successful engine-backed run.

## Growth Loops

1. Release correctness

Publish `1.0.1`, verify npm metadata, verify binary install URLs, and keep Homebrew formulas pointed at `sarveshsea/memi`.

2. Naming cleanup

Remove or quarantine stale `m-moire` and `@sarveshsea/memoire` references across docs, install scripts, package metadata, and the Studio repo. The old package should clearly redirect people to `@memi-design/cli`.

3. Registry distribution

Submit `server.json` to the Official MCP Registry once npm is current. Keep merged directory PRs accurate, close stale ones, and resubmit with the `memi` name where needed.

4. Agent-native adoption

Make Codex, Claude Code, Cursor, and shadcn/v0 workflows the shortest path in README examples. The README should sell the engine wedge before Studio.

5. Repeatable proof

Ship examples that users can run in under two minutes:

```bash
memi diagnose
memi tokens --from ./src --report
memi shadcn export --out public/r
```

## Milestone Ladder

- 1,000 weekly downloads: release/package/install paths are clean; README examples work from a fresh machine.
- 10,000 weekly downloads: MCP registry, shadcn/v0 examples, Codex plugin, and Homebrew paths all agree on naming.
- 100,000 weekly downloads: templates and starter registries are discoverable from npm, GitHub, and docs without Studio.
- 1,000,000 weekly downloads: downstream agents, templates, registries, and docs install `@memi-design/cli` as infrastructure.

## Keep The App Tidy

Do not let Studio compete with the engine. Treat it as a native workbench for the same runtime:

- Primary navigation: Workbench, Artifacts, Memory, Settings.
- Primary session path: choose harness, choose workspace, send prompt, watch events, review artifacts.
- Advanced drawers: marketplace, scenario lab, video, Figma, automations, local model setup.
- Default harness visibility: Codex and Claude Code only.
- Every advanced feature needs a CLI/runtime equivalent.

8 changes: 5 additions & 3 deletions docs/OFFICIAL_MCP_REGISTRY.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ The Official MCP Registry hosts metadata, not package artifacts. For npm package

Memoire uses:

- MCP server name: `io.github.sarveshsea/memoire`
- MCP server name: `io.github.sarveshsea/memi`
- npm package: `@memi-design/cli`
- transport: `stdio`
- package argument: `mcp`
Expand All @@ -34,16 +34,18 @@ npm view @memi-design/cli version mcpName --json

mcp-publisher login github
mcp-publisher publish server.json
curl "https://registry.modelcontextprotocol.io/v0.1/servers?search=io.github.sarveshsea/memoire"
curl "https://registry.modelcontextprotocol.io/v0.1/servers?search=io.github.sarveshsea/memi"
```

CI can publish without a local registry token through the `Publish to MCP Registry` GitHub Actions workflow. It uses GitHub OIDC, validates `server.json`, and refuses to publish until the matching `@memi-design/cli` version exists on npm.

Expected registry result after publish:

```json
{
"servers": [
{
"name": "io.github.sarveshsea/memoire"
"name": "io.github.sarveshsea/memi"
}
]
}
Expand Down
1 change: 1 addition & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ memi add Button --from @you/theme
- Launch copy: [`docs/LAUNCH.md`](./LAUNCH.md)
- Social launch posts: [`docs/SOCIAL.md`](./SOCIAL.md)
- Weekly growth scorecard: [`docs/METRICS.md`](./METRICS.md)
- 1M/week npm operating brief: [`docs/GROWTH_TO_1M_NPM.md`](./GROWTH_TO_1M_NPM.md)
- Full package overview: [`README.md`](../README.md)

## Advanced
Expand Down
4 changes: 2 additions & 2 deletions docs/STARSTRUCK.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ Then publish to the official MCP Registry:
```bash
mcp-publisher login github
mcp-publisher publish server.json
curl "https://registry.modelcontextprotocol.io/v0.1/servers?search=io.github.sarveshsea/memoire"
curl "https://registry.modelcontextprotocol.io/v0.1/servers?search=io.github.sarveshsea/memi"
```

Why this matters: the official registry only hosts metadata, but MCP directories and aggregators use it as a trust source. Once this is live, submit or refresh every MCP directory with the same npm/GitHub links.
Expand Down Expand Up @@ -90,7 +90,7 @@ Why this matters: the official registry only hosts metadata, but MCP directories
## Launch Sequence For 12 Stars

1. Publish `0.14.4` with security hardening, `mcpName`, and `server.json`.
2. Publish to the official MCP Registry and verify search returns `io.github.sarveshsea/memoire`.
2. Publish to the official MCP Registry and verify search returns `io.github.sarveshsea/memi`.
3. Submit MCP.Directory, refresh Glama, submit Smithery, confirm PulseMCP and mcp.so indexing.
4. Follow up on open PRs only with new proof: official registry link, security hardening, or maintainer-requested fixes.
5. Ship one 60-second terminal demo: install, `memi diagnose`, `memi shadcn export`, `memi mcp config --install`.
Expand Down
2 changes: 1 addition & 1 deletion examples/presets/ai-chat/registry.json
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,6 @@
],
"meta": {
"extractedAt": "2026-04-15T00:00:00.000Z",
"memoireVersion": "1.0.0"
"memoireVersion": "1.0.1"
}
}
2 changes: 1 addition & 1 deletion examples/presets/auth-flow/registry.json
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,6 @@
],
"meta": {
"extractedAt": "2026-04-15T00:00:00.000Z",
"memoireVersion": "1.0.0"
"memoireVersion": "1.0.1"
}
}
2 changes: 1 addition & 1 deletion examples/presets/dashboard/registry.json
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,6 @@
],
"meta": {
"extractedAt": "2026-04-15T00:00:00.000Z",
"memoireVersion": "1.0.0"
"memoireVersion": "1.0.1"
}
}
2 changes: 1 addition & 1 deletion examples/presets/docs-blog/registry.json
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,6 @@
],
"meta": {
"extractedAt": "2026-04-15T00:00:00.000Z",
"memoireVersion": "1.0.0"
"memoireVersion": "1.0.1"
}
}
2 changes: 1 addition & 1 deletion examples/presets/ecommerce/registry.json
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,6 @@
],
"meta": {
"extractedAt": "2026-04-15T00:00:00.000Z",
"memoireVersion": "1.0.0"
"memoireVersion": "1.0.1"
}
}
2 changes: 1 addition & 1 deletion examples/presets/landing-page/registry.json
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,6 @@
],
"meta": {
"extractedAt": "2026-04-15T00:00:00.000Z",
"memoireVersion": "1.0.0"
"memoireVersion": "1.0.1"
}
}
2 changes: 1 addition & 1 deletion examples/presets/starter-saas/registry.json
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,6 @@
],
"meta": {
"extractedAt": "2026-04-15T00:00:00.000Z",
"memoireVersion": "1.0.0"
"memoireVersion": "1.0.1"
}
}
2 changes: 1 addition & 1 deletion examples/presets/starter/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,4 +30,4 @@ memi add Button --from @yourscope/your-ds
- Four real React components using CSS variables, not hardcoded hex
- `Button.loading` prop that swaps the label for a spinner

Generated for Memoire v1.0.0.
Generated for Memoire v1.0.1.
2 changes: 1 addition & 1 deletion examples/presets/starter/registry.json
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,6 @@
],
"meta": {
"extractedAt": "2026-04-15T00:00:00.000Z",
"memoireVersion": "1.0.0"
"memoireVersion": "1.0.1"
}
}
2 changes: 1 addition & 1 deletion examples/presets/tweakcn-linear/registry.json
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,6 @@
],
"meta": {
"extractedAt": "2026-04-15T00:00:00.000Z",
"memoireVersion": "1.0.0"
"memoireVersion": "1.0.1"
}
}
2 changes: 1 addition & 1 deletion examples/presets/tweakcn-supabase/registry.json
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,6 @@
],
"meta": {
"extractedAt": "2026-04-15T00:00:00.000Z",
"memoireVersion": "1.0.0"
"memoireVersion": "1.0.1"
}
}
2 changes: 1 addition & 1 deletion examples/presets/tweakcn-vercel/registry.json
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,6 @@
],
"meta": {
"extractedAt": "2026-04-15T00:00:00.000Z",
"memoireVersion": "1.0.0"
"memoireVersion": "1.0.1"
}
}
2 changes: 1 addition & 1 deletion examples/starter-registry/registry.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,6 @@
],
"meta": {
"extractedAt": "2026-04-15T00:00:00.000Z",
"memoireVersion": "1.0.0"
"memoireVersion": "1.0.1"
}
}
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@memi-design/cli",
"version": "1.0.0",
"version": "1.0.1",
"mcpName": "io.github.sarveshsea/memi",
"description": "Design-system memory for coding agents — give Claude Code, Cursor, and Codex memory of your tokens, components, and Figma so they edit your app without breaking the design.",
"type": "module",
Expand Down
10 changes: 5 additions & 5 deletions plugin/widget-meta.json
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
{
"widgetVersion": "2",
"packageVersion": "1.0.0",
"builtAt": "2026-05-10T20:29:00.481Z",
"packageVersion": "1.0.1",
"builtAt": "2026-05-12T03:53:41.174Z",
"bundleHash": "ffd143c9b7a1a1ea878b03322940525eb1f53db395572b46e3cc7bbf4f2e69aa",
"manifest": {
"path": "/Users/sarveshchidambaram/Desktop/Projects/Other/ark/plugin/manifest.json",
"path": "manifest.json",
"exists": true,
"bytes": 1746,
"sha256": "93e5420e7a2b359a345cd7af9c552e9d66171df1bf976090229e224fdb1c13ab"
},
"code": {
"path": "/Users/sarveshchidambaram/Desktop/Projects/Other/ark/plugin/code.js",
"path": "code.js",
"exists": true,
"bytes": 48064,
"sha256": "1bb461e5c6d934cc810a5d459a1ab852cca577efafc1f35c2591b9945d018977"
},
"ui": {
"path": "/Users/sarveshchidambaram/Desktop/Projects/Other/ark/plugin/ui.html",
"path": "ui.html",
"exists": true,
"bytes": 93930,
"sha256": "8e61e42da2825c1d2afbbbc285aaf02c86c66f2751b1b9538b59fb8ca2a4f192"
Expand Down
2 changes: 1 addition & 1 deletion plugins/memoire/.codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "memoire",
"version": "1.0.0",
"version": "1.0.1",
"description": "Design memory and UI quality tools for Codex: MCP tools, design-system context, Figma workflows, shadcn/ui, Tailwind, and Atomic Design.",
"author": {
"name": "Sarvesh Chidambaram",
Expand Down
Loading
Loading