@only1btayy/g2w 1.0.25 → 1.0.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -75,20 +75,50 @@ Research isn't just a web search. G2W uses Context7 for live library docs, Exa f
75
75
 
76
76
  ---
77
77
 
78
+ ### What Ships With G2W
79
+
80
+ These install automatically — no setup, no API keys, no extra steps:
81
+
82
+ | Tool | What It Does |
83
+ |---|---|
84
+ | [Context7](https://context7.com) | Live library docs in every research and planning phase — no stale training data |
85
+ | [Shadcn/UI MCP](https://www.shadcn.io/mcp) | Real React component implementations with TypeScript props |
86
+ | [Tailwind CSS MCP](https://github.com/CarbonoDev/tailwindcss-mcp-server) | Utility classes, color palettes, CSS-to-Tailwind conversion |
87
+ | [A11y MCP](https://github.com/priyankark/a11y-mcp) | Accessibility audits and WCAG compliance checks |
88
+
89
+ Claude reaches for these automatically when they're relevant. You don't have to call them.
90
+
91
+ ---
92
+
78
93
  ### Power-Ups
79
94
 
80
- G2W works out of the box. These optional tools make it stronger:
95
+ Optional tools that make G2W stronger. Run `g2w power-ups` to set these up anytime.
96
+
97
+ **Free (just needs a key):**
98
+
99
+ | Tool | What It Adds | Get Your Key |
100
+ |---|---|---|
101
+ | [21st.dev](https://21st.dev) | AI-powered UI component generation — like v0 in your IDE | [21st.dev/magic/console](https://21st.dev/magic/console) |
102
+ | [Motion](https://motion.dev) | Production-grade animations with AI Kit | [plus.motion.dev/personal-token](https://plus.motion.dev/personal-token) |
103
+ | [Figma MCP](https://help.figma.com/hc/en-us/articles/32132100833559) | Design-to-code from Figma frames (free during beta) | [figma.com](https://figma.com) |
104
+ | [Marketing Skills](https://github.com/coreyhaines31/marketingskills) | 40+ skills for copywriting, SEO, conversion, growth | No key needed |
105
+
106
+ **Research (paid):**
81
107
 
82
108
  | Tool | What It Adds |
83
109
  |---|---|
84
- | [Repomix](https://github.com/yamadashy/repomix) | Packs entire codebases into one AI-optimized file — `bring2life` and research use this |
85
- | [Context7](https://context7.com) | Live library docs pulled into research — no stale training data |
86
110
  | [Exa](https://exa.ai) | Semantic search for similar projects and best practices |
87
111
  | [Firecrawl](https://firecrawl.dev) | Deep crawling of repos and docs sites during research |
112
+
113
+ **Workflow:**
114
+
115
+ | Tool | What It Adds |
116
+ |---|---|
117
+ | [Repomix](https://github.com/yamadashy/repomix) | Packs entire codebases into one AI-optimized file — `bring2life` uses this |
88
118
  | [MemPalace](https://github.com/milla-jovovich/mempalace) | Persistent memory across sessions — decisions survive context clears |
89
119
  | [Superpowers](https://github.com/supermemoryai/superpowers-claude) | Enhanced planning and review capabilities for Claude users |
90
120
 
91
- Install what you want. G2W uses what's available and falls back gracefully when something isn't there.
121
+ G2W uses what's available and falls back gracefully when something isn't there.
92
122
 
93
123
  ---
94
124
 
@@ -179,7 +209,19 @@ Safe git operations — add, commit, push, status, log — run without approval
179
209
  npm install -g @only1btayy/g2w && g2w
180
210
  ```
181
211
 
182
- That's it. G2W installs globally into `~/.claude/` automatically — skills and hooks ready in every project, everywhere.
212
+ That's it. G2W installs globally into `~/.claude/` automatically — skills, hooks, and design tools ready in every project, everywhere.
213
+
214
+ To update:
215
+
216
+ ```bash
217
+ g2w update
218
+ ```
219
+
220
+ To see optional Power-Ups:
221
+
222
+ ```bash
223
+ g2w power-ups
224
+ ```
183
225
 
184
226
  To uninstall:
185
227
 
@@ -187,7 +229,7 @@ To uninstall:
187
229
  npm uninstall -g @only1btayy/g2w
188
230
  ```
189
231
 
190
- Skills and hooks are removed from `~/.claude/` automatically.
232
+ Skills, hooks, and MCP servers are removed from `~/.claude/` automatically.
191
233
 
192
234
  > **Tip:** The logo renders in **bright green** in any terminal. On Windows Terminal or iTerm2, enable Retro/Bloom effects for the full glow.
193
235
 
package/bin/g2w.js CHANGED
@@ -7,12 +7,15 @@ if (command === 'install') {
7
7
  require('../lib/install').run();
8
8
  } else if (command === 'update') {
9
9
  require('../lib/install').update();
10
+ } else if (command === 'power-ups' || command === 'powerups') {
11
+ require('../lib/install').powerups();
10
12
  } else if (command === 'uninstall') {
11
13
  require('../lib/install').uninstall();
12
14
  } else {
13
15
  process.stdout.write(`${LOGO}
14
16
  Usage:
15
- g2w update — update skills to latest version
17
+ g2w update — update skills, hooks, and tools to latest
18
+ g2w power-ups — show optional tools and setup links
16
19
  g2w uninstall — remove G2W
17
20
 
18
21
  `);
package/lib/install.js CHANGED
@@ -41,7 +41,7 @@ const G2W_HOOKS = {
41
41
  ]
42
42
  },
43
43
  {
44
- matcher: 'Edit|Write|Bash',
44
+ matcher: 'Edit|Write',
45
45
  hooks: [
46
46
  {
47
47
  type: 'prompt',
@@ -83,6 +83,45 @@ function copyHooks(targetBase) {
83
83
  return dest;
84
84
  }
85
85
 
86
+ const MCP_SERVERS = {
87
+ context7: {
88
+ command: 'npx',
89
+ args: ['-y', '@upstash/context7-mcp@latest']
90
+ },
91
+ 'shadcn-ui': {
92
+ url: 'https://www.shadcn.io/api/mcp'
93
+ },
94
+ 'tailwindcss': {
95
+ command: 'npx',
96
+ args: ['-y', 'tailwindcss-mcp-server']
97
+ },
98
+ 'a11y': {
99
+ command: 'npx',
100
+ args: ['-y', 'a11y-mcp']
101
+ }
102
+ };
103
+
104
+ function mergeMcpServers(targetBase) {
105
+ const settingsPath = path.join(targetBase, '.claude', 'settings.json');
106
+ let existing = {};
107
+ if (fs.existsSync(settingsPath)) {
108
+ try { existing = JSON.parse(fs.readFileSync(settingsPath, 'utf8')); } catch {}
109
+ }
110
+
111
+ if (!existing.mcpServers) existing.mcpServers = {};
112
+
113
+ let added = 0;
114
+ for (const [name, config] of Object.entries(MCP_SERVERS)) {
115
+ if (!existing.mcpServers[name]) {
116
+ existing.mcpServers[name] = config;
117
+ added++;
118
+ }
119
+ }
120
+
121
+ fs.writeFileSync(settingsPath, JSON.stringify(existing, null, 2));
122
+ return added;
123
+ }
124
+
86
125
  function mergeHooks(targetBase) {
87
126
  const settingsPath = path.join(targetBase, '.claude', 'settings.json');
88
127
  const hooksDir = path.join(targetBase, '.claude', 'hooks');
@@ -131,6 +170,19 @@ function removeSkills(targetBase) {
131
170
  return false;
132
171
  }
133
172
 
173
+ function removeMcpServers(targetBase) {
174
+ const settingsPath = path.join(targetBase, '.claude', 'settings.json');
175
+ if (!fs.existsSync(settingsPath)) return;
176
+ let existing = {};
177
+ try { existing = JSON.parse(fs.readFileSync(settingsPath, 'utf8')); } catch { return; }
178
+ if (existing.mcpServers) {
179
+ for (const name of Object.keys(MCP_SERVERS)) {
180
+ delete existing.mcpServers[name];
181
+ }
182
+ }
183
+ fs.writeFileSync(settingsPath, JSON.stringify(existing, null, 2));
184
+ }
185
+
134
186
  function removeHooks(targetBase) {
135
187
  const settingsPath = path.join(targetBase, '.claude', 'settings.json');
136
188
  const hooksDir = path.join(targetBase, '.claude', 'hooks');
@@ -173,6 +225,7 @@ async function run() {
173
225
  const { dest, count } = copySkills(base);
174
226
  copyHooks(base);
175
227
  const settingsPath = mergeHooks(base);
228
+ const mcpAdded = mergeMcpServers(base);
176
229
 
177
230
  writeTTY(`${LOGO}
178
231
  \x1b[32m✅ G2W installed at ${label}\x1b[0m
@@ -181,6 +234,23 @@ async function run() {
181
234
  Hooks → ${path.join(label, 'hooks/')}
182
235
  Config → ${path.join(label, 'settings.json')}
183
236
 
237
+ \x1b[36mIncluded tools:\x1b[0m
238
+ ✅ Context7 — live library docs in every research phase
239
+ ✅ Shadcn/UI — real React component implementations
240
+ ✅ Tailwind CSS — utility classes and CSS conversion
241
+ ✅ A11y — accessibility audits and WCAG checks
242
+
243
+ \x1b[33mPower-Ups (optional — run g2w power-ups to set up):\x1b[0m
244
+ → 21st.dev — AI component generation https://21st.dev/magic/console
245
+ → Motion — production animations https://plus.motion.dev/personal-token
246
+ → Figma MCP — design-to-code from Figma https://figma.com
247
+ → Marketing — 40+ SEO, copy, growth skills https://github.com/coreyhaines31/marketingskills
248
+ → Exa — semantic search (paid) https://exa.ai
249
+ → Firecrawl — deep doc crawling (paid) https://firecrawl.dev
250
+ → Repomix — pack codebases for AI https://github.com/yamadashy/repomix
251
+ → MemPalace — persistent memory https://github.com/milla-jovovich/mempalace
252
+ → Superpowers — enhanced planning + review https://github.com/supermemoryai/superpowers-claude
253
+
184
254
  Open any project with Claude Code and type:
185
255
  /g2w:bring2life — onboard an existing codebase
186
256
  /g2w:back2it — resume a session
@@ -191,15 +261,50 @@ Open any project with Claude Code and type:
191
261
 
192
262
  async function update() {
193
263
  const { base, label } = getTarget();
194
- copySkills(base);
264
+ const { count } = copySkills(base);
195
265
  copyHooks(base);
196
- console.log(`\n✅ G2W skills and hooks updated at ${label}\n`);
266
+ mergeHooks(base);
267
+ const mcpAdded = mergeMcpServers(base);
268
+
269
+ writeTTY(`
270
+ \x1b[32m✅ G2W updated at ${label}\x1b[0m
271
+
272
+ ${count} skills synced
273
+ Hooks synced
274
+ ${mcpAdded > 0 ? mcpAdded + ' new MCP servers added' : 'MCP servers up to date'}
275
+
276
+ `);
277
+ }
278
+
279
+ async function powerups() {
280
+ writeTTY(`
281
+ \x1b[36mG2W Power-Ups\x1b[0m
282
+
283
+ \x1b[33mFree (just needs a key):\x1b[0m
284
+ → 21st.dev — AI component generation https://21st.dev/magic/console
285
+ → Motion — production animations https://plus.motion.dev/personal-token
286
+ → Figma MCP — design-to-code from Figma https://figma.com
287
+ → Marketing — 40+ SEO, copy, growth skills https://github.com/coreyhaines31/marketingskills
288
+
289
+ \x1b[33mResearch (paid):\x1b[0m
290
+ → Exa — semantic search https://exa.ai
291
+ → Firecrawl — deep doc crawling https://firecrawl.dev
292
+
293
+ \x1b[33mWorkflow:\x1b[0m
294
+ → Repomix — pack codebases for AI https://github.com/yamadashy/repomix
295
+ → MemPalace — persistent memory https://github.com/milla-jovovich/mempalace
296
+ → Superpowers — enhanced planning + review https://github.com/supermemoryai/superpowers-claude
297
+
298
+ Visit the links above to get your keys, then configure them in ~/.claude/settings.json
299
+
300
+ `);
197
301
  }
198
302
 
199
303
  async function uninstall() {
200
304
  const { base, label } = getTarget();
201
305
  const removed = removeSkills(base);
202
306
  removeHooks(base);
307
+ removeMcpServers(base);
203
308
 
204
309
  if (removed) {
205
310
  console.log(`\n✅ G2W removed from ${label}\n`);
@@ -208,4 +313,4 @@ async function uninstall() {
208
313
  }
209
314
  }
210
315
 
211
- module.exports = { run, update, uninstall };
316
+ module.exports = { run, update, uninstall, powerups };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@only1btayy/g2w",
3
- "version": "1.0.25",
3
+ "version": "1.0.27",
4
4
  "description": "G2W — a relationship protocol for building trust with AI",
5
5
  "bin": {
6
6
  "g2w": "bin/g2w.js"