slashvibe-mcp 0.3.24 → 0.3.25

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
@@ -1,22 +1,37 @@
1
1
  # /vibe MCP Server
2
2
 
3
3
  [![npm version](https://img.shields.io/npm/v/slashvibe-mcp.svg)](https://www.npmjs.com/package/slashvibe-mcp)
4
+ [![npm downloads](https://img.shields.io/npm/dw/slashvibe-mcp.svg)](https://www.npmjs.com/package/slashvibe-mcp)
5
+ [![CI](https://github.com/VibeCodingInc/vibe-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/VibeCodingInc/vibe-mcp/actions/workflows/ci.yml)
4
6
  [![license](https://img.shields.io/npm/l/slashvibe-mcp.svg)](./LICENSE)
5
7
  [![node](https://img.shields.io/node/v/slashvibe-mcp.svg)](https://nodejs.org)
6
- [![CI](https://github.com/VibeCodingInc/vibe-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/VibeCodingInc/vibe-mcp/actions/workflows/ci.yml)
8
+ [![MCP](https://img.shields.io/badge/MCP-compatible-blue)](https://modelcontextprotocol.io)
9
+ [![Smithery](https://smithery.ai/badge/slashvibe-mcp)](https://smithery.ai/server/slashvibe-mcp)
10
+
11
+ The presence layer for AI-mediated work. See who's building, message them, share context — without leaving your editor.
7
12
 
8
- The social layer for AI coding. DMs, presence, discovery, and games between developers without leaving your editor.
13
+ **New:** Live buddy list widget renders inline in Claude Desktop and VS Code via [MCP Apps](https://modelcontextprotocol.io/docs/extensions/apps).
9
14
 
10
15
  Works with Claude Code, Cursor, VS Code, Windsurf, Cline, Continue.dev, JetBrains, and any MCP-compatible client.
11
16
 
12
17
  ## Install
13
18
 
14
- Add to your MCP config and restart your editor:
19
+ **Quick install** — auto-detects your editors and configures all of them:
20
+
21
+ ```bash
22
+ npx slashvibe-mcp install
23
+ ```
24
+
25
+ **Or** add to your MCP config manually and restart your editor:
15
26
 
16
27
  <details open>
17
28
  <summary><strong>Claude Code</strong></summary>
18
29
 
19
- Add to `~/.claude.json`:
30
+ ```bash
31
+ claude mcp add vibe -- npx -y slashvibe-mcp
32
+ ```
33
+
34
+ Or add to `~/.claude.json`:
20
35
  ```json
21
36
  {
22
37
  "mcpServers": {
@@ -27,11 +42,6 @@ Add to `~/.claude.json`:
27
42
  }
28
43
  }
29
44
  ```
30
-
31
- Or via CLI:
32
- ```bash
33
- claude mcp add vibe -- npx -y slashvibe-mcp
34
- ```
35
45
  </details>
36
46
 
37
47
  <details>
@@ -64,20 +74,6 @@ Add to `.vscode/mcp.json` in your workspace:
64
74
  }
65
75
  }
66
76
  ```
67
-
68
- Or add to your `settings.json`:
69
- ```json
70
- {
71
- "mcp": {
72
- "servers": {
73
- "vibe": {
74
- "command": "npx",
75
- "args": ["-y", "slashvibe-mcp"]
76
- }
77
- }
78
- }
79
- }
80
- ```
81
77
  </details>
82
78
 
83
79
  <details>
@@ -97,71 +93,51 @@ Add to `~/.codeium/windsurf/mcp_config.json`:
97
93
  </details>
98
94
 
99
95
  <details>
100
- <summary><strong>Cline (VS Code)</strong></summary>
96
+ <summary><strong>Cline / Continue.dev / JetBrains</strong></summary>
101
97
 
102
- Open Cline > MCP Servers icon > Configure > Edit JSON, then add:
103
- ```json
104
- {
105
- "mcpServers": {
106
- "vibe": {
107
- "command": "npx",
108
- "args": ["-y", "slashvibe-mcp"]
109
- }
110
- }
111
- }
112
- ```
113
- </details>
114
-
115
- <details>
116
- <summary><strong>Continue.dev</strong></summary>
98
+ **Cline:** Open MCP Servers > Configure > Edit JSON, add `vibe` server as above.
117
99
 
118
- Create `.continue/mcpServers/vibe.json`:
100
+ **Continue.dev:** Create `.continue/mcpServers/vibe.json`:
119
101
  ```json
120
102
  {
121
103
  "command": "npx",
122
104
  "args": ["-y", "slashvibe-mcp"]
123
105
  }
124
106
  ```
125
- </details>
126
-
127
- <details>
128
- <summary><strong>JetBrains (IntelliJ, WebStorm, etc.)</strong></summary>
129
-
130
- Go to **Settings > Tools > AI Assistant > Model Context Protocol (MCP)** and add a new server:
131
- - **Command:** `npx`
132
- - **Arguments:** `-y slashvibe-mcp`
133
107
 
134
- Or import from your Claude Code config if you already have one.
108
+ **JetBrains:** Settings > Tools > AI Assistant > MCP, add server with command `npx` and args `-y slashvibe-mcp`.
135
109
  </details>
136
110
 
137
111
  ## Getting Started
138
112
 
139
- Once installed, tell Claude:
113
+ Once installed, tell your AI:
140
114
 
141
115
  ```
142
116
  "let's vibe"
143
117
  ```
144
118
 
145
- That's it. Claude will authenticate you via GitHub, show who's online, and check your inbox.
119
+ That's it. It authenticates you via GitHub, shows who's online, and checks your inbox.
146
120
 
147
- If you prefer step-by-step:
121
+ Step-by-step:
148
122
 
149
- 1. **Authenticate** — `vibe init` opens GitHub OAuth in your browser. Takes 30 seconds.
123
+ 1. **Authenticate** — `vibe init` opens GitHub OAuth. Takes 30 seconds.
150
124
  2. **See who's around** — `vibe who` shows online builders and what they're working on.
151
125
  3. **Check messages** — `vibe inbox` shows unread DMs.
152
- 4. **Send your first message** — `vibe dm @seth hey, just set up /vibe!`
126
+ 4. **Send a message** — `vibe dm @seth hey, just set up /vibe!`
153
127
 
154
- ## Tools (39)
128
+ ## Tools
155
129
 
156
- ### Core — Identity & Session
130
+ ### Presence
157
131
 
158
132
  | Tool | What it does |
159
133
  |------|-------------|
160
- | `vibe_start` | Entry point — authenticates, shows who's online, checks inbox |
161
- | `vibe_init` | Set up your identity via GitHub OAuth |
162
- | `vibe_bye` | End your session |
134
+ | `vibe_who` | See who's online and what they're building |
135
+ | `vibe_status` | Set your mood or what you're working on |
136
+ | `vibe_away` | Set yourself away with a message |
137
+ | `vibe_back` | Return from away |
138
+ | `vibe_presence_agent` | Background presence agent |
163
139
 
164
- ### Core — Messaging
140
+ ### Messaging
165
141
 
166
142
  | Tool | What it does |
167
143
  |------|-------------|
@@ -169,93 +145,60 @@ If you prefer step-by-step:
169
145
  | `vibe_inbox` | Check your unread messages |
170
146
  | `vibe_ping` | Send a quick wave to someone |
171
147
  | `vibe_react` | React to a message |
172
- | `vibe_open` | Open a conversation thread with someone |
148
+ | `vibe_open` | Open a conversation thread |
149
+ | `vibe_follow` | Follow someone for notifications |
150
+ | `vibe_unfollow` | Unfollow someone |
173
151
 
174
- ### Presence
175
-
176
- | Tool | What it does |
177
- |------|-------------|
178
- | `vibe_who` | See who's online and what they're building |
179
- | `vibe_status` | Set your mood or what you're working on |
180
- | `vibe_away` | Set yourself away |
181
- | `vibe_back` | Return from away |
182
-
183
- ### Creative — Ship & Share
152
+ ### Sessions & Context
184
153
 
185
154
  | Tool | What it does |
186
155
  |------|-------------|
187
- | `vibe_ship` | Share with the community: ship (default), idea, or request via `type` param |
188
- | `vibe_session_save` | Save your coding session — makes it replayable, discoverable, and forkable |
189
- | `vibe_session_fork` | Fork an existing session to build on it |
190
- | `vibe_feed` | See what people are shipping and sharing |
156
+ | `vibe_start` | Entry point authenticates, shows presence, checks inbox |
157
+ | `vibe_bye` | End your session |
191
158
  | `vibe_context` | Share what you're working on |
159
+ | `vibe_summarize` | Generate session summary from local journal |
160
+ | `vibe_session_resume` | Resume context from a prior session |
161
+ | `vibe_session_save` | Save your session — replayable, discoverable, forkable |
162
+ | `vibe_session_fork` | Fork an existing session to build on it |
163
+ | `vibe_handoff` | Hand off a task with full context |
192
164
 
193
- ### Discovery
165
+ ### Discovery & Memory
194
166
 
195
167
  | Tool | What it does |
196
168
  |------|-------------|
197
- | `vibe_discover` | Find people, skills, and partners. Subcommands: suggest, search, interests, active, skills, partner |
169
+ | `vibe_discover` | Find people, skills, and collaborators |
198
170
  | `vibe_invite` | Generate an invite link |
199
-
200
- ### Memory
201
-
202
- | Tool | What it does |
203
- |------|-------------|
204
- | `vibe_remember` | Save a note about someone for next time |
171
+ | `vibe_remember` | Save a note about someone |
205
172
  | `vibe_recall` | Pull up everything you know about someone |
206
173
  | `vibe_forget` | Delete a memory |
207
174
 
208
- ### Games — 27 Multiplayer & Solo Games
175
+ ### Collaboration
209
176
 
210
177
  | Tool | What it does |
211
178
  |------|-------------|
212
- | `vibe_game` | All games via one tool. Multiplayer (tictactoe, chess), solo (hangman, rps, memory), party (twotruths, werewolf), AI (tictactoe-ai), collaborative (drawing, crossword, wordassociation, wordchain, storybuilder) |
213
-
214
- ### Artifacts
215
-
216
- | Tool | What it does |
217
- |------|-------------|
218
- | `vibe_create_artifact` | Create a shareable guide, workspace, or learning |
219
- | `vibe_view_artifact` | View shared artifacts |
220
-
221
- ### File Coordination
222
-
223
- | Tool | What it does |
224
- |------|-------------|
225
- | `vibe_reserve` | Reserve files for editing |
179
+ | `vibe_ship` | Share what you shipped, an idea, or a request |
180
+ | `vibe_feed` | See what people are shipping |
181
+ | `vibe_reserve` | Reserve files for editing (prevents conflicts) |
226
182
  | `vibe_release` | Release file reservations |
227
- | `vibe_reservations` | List active file reservations |
183
+ | `vibe_reservations` | List active reservations |
184
+ | `vibe_create_artifact` | Create a shareable guide or workspace |
185
+ | `vibe_view_artifact` | View shared artifacts |
228
186
 
229
187
  ### Infrastructure
230
188
 
231
189
  | Tool | What it does |
232
190
  |------|-------------|
233
- | `vibe_handoff` | Create an AIRC context handoff for another tool |
234
- | `vibe_report` | Report issues or inappropriate behavior |
235
- | `vibe_suggest_tags` | Get tag suggestions for your profile |
236
-
237
- ### Diagnostics
238
-
239
- | Tool | What it does |
240
- |------|-------------|
191
+ | `vibe_init` | Set up identity via GitHub OAuth |
241
192
  | `vibe_help` | Show available commands |
242
- | `vibe_doctor` | Full health check — API, auth, storage, presence |
193
+ | `vibe_doctor` | Health check — API, auth, storage, presence |
243
194
  | `vibe_update` | Check for and apply updates |
244
-
245
- ### Settings
246
-
247
- | Tool | What it does |
248
- |------|-------------|
249
195
  | `vibe_settings` | Configure preferences |
250
196
  | `vibe_notifications` | Configure notification channels |
251
- | `vibe_presence_agent` | Background presence agent |
252
197
  | `vibe_mute` | Mute a user |
253
- | `vibe_summarize` | Summarize session context |
198
+ | `vibe_report` | Report issues or inappropriate behavior |
254
199
 
255
200
  ## How It Works
256
201
 
257
- /vibe is an MCP server that connects your editor to [slashvibe.dev](https://slashvibe.dev). Messages sync via a Postgres backend with local SQLite persistence for offline-first speed. Everyone using /vibe is on the same network — regardless of which editor they use.
258
-
259
202
  ```
260
203
  Your Editor ←→ /vibe MCP (stdio) ←→ slashvibe.dev API ←→ Other users
261
204
 
@@ -263,43 +206,60 @@ Your Editor ←→ /vibe MCP (stdio) ←→ slashvibe.dev API ←→ Other users
263
206
  (~/.vibecodings/sessions.db)
264
207
  ```
265
208
 
266
- - **Identity** persists via GitHub OAuth — your handle follows you across sessions
267
- - **Messages** are stored locally first, then synced to the server (optimistic send)
268
209
  - **Presence** broadcasts via heartbeat — others see you in real time
269
- - **Memory** is local notes you save about people stay on your machine
210
+ - **Messages** are stored locally first, then synced (optimistic send)
211
+ - **Sessions** are journaled to SQLite — durable, resumable, summarizable
212
+ - **Identity** persists via GitHub OAuth — your handle follows you across editors and machines
213
+ - **Memory** is local — notes about people stay on your machine
270
214
 
271
215
  ## Troubleshooting
272
216
 
273
- **"I installed but don't see /vibe tools in Claude Code"**
274
- - Make sure you restarted Claude Code after adding the MCP config
275
- - Check your config file: `~/.claude.json` or `~/.config/claude-code/mcp.json`
276
- - Run `vibe doctor` to diagnose issues
217
+ **"I installed but don't see /vibe tools"**
218
+ - Restart your editor after adding the MCP config
219
+ - Run `vibe doctor` to diagnose
277
220
 
278
221
  **"Authentication failed or timed out"**
279
- - The OAuth flow opens a browser window — if it didn't open, go to [slashvibe.dev/login](https://slashvibe.dev/login) manually
280
- - The auth callback runs on `localhost:9876` — make sure that port is free
281
- - You have 2 minutes to complete the GitHub login
222
+ - OAuth opens a browser window — if it didn't, go to [slashvibe.dev/login](https://slashvibe.dev/login)
223
+ - The callback runs on `localhost:9876` — make sure that port is free
282
224
 
283
225
  **"Messages aren't sending"**
284
226
  - Run `vibe doctor` to check API connectivity
285
- - Check your internet connection
286
- - Messages are saved locally even if the API is down — they'll sync when you reconnect
287
-
288
- **"I see 'Unknown tool' errors"**
289
- - You may be running an older version. Run `vibe update` or reinstall: `npm install -g slashvibe-mcp`
227
+ - Messages save locally even when offline — they sync on reconnect
290
228
 
291
229
  ## Configuration
292
230
 
293
- Config lives at `~/.vibecodings/config.json` (primary) or `~/.vibe/config.json` (legacy fallback).
231
+ Config: `~/.vibecodings/config.json` (primary) or `~/.vibe/config.json` (legacy fallback).
232
+
233
+ Database: `~/.vibecodings/sessions.db` (SQLite, WAL mode).
234
+
235
+ ## Development
294
236
 
295
- Local message database: `~/.vibecodings/sessions.db` (SQLite, shared with Vibe Terminal desktop app).
237
+ ```bash
238
+ npm install
239
+ npm test # All tests
240
+ npm run lint # ESLint
241
+ npm run typecheck # TypeScript validation
242
+ ```
243
+
244
+ ```
245
+ vibe-mcp/
246
+ ├── index.js # MCP server entry + CLI
247
+ ├── config.js # User identity
248
+ ├── presence.js # Heartbeat loop (30s)
249
+ ├── analytics.js # Anonymous usage tracking
250
+ ├── tools/ # MCP tools
251
+ ├── store/ # Persistence (api.js, sqlite.js, sessions.js)
252
+ ├── bridges/ # Platform integrations (Discord, Telegram, etc.)
253
+ ├── intelligence/ # Ambient signals (serendipity, proactive discovery)
254
+ └── protocol/ # AIRC protocol
255
+ ```
296
256
 
297
257
  ## Contributing
298
258
 
299
- We welcome contributions. Please read our [Contributor License Agreement](./CLA.md) before submitting pull requests.
259
+ We welcome contributions. See [CLA.md](./CLA.md) before submitting pull requests.
300
260
 
301
- - Report bugs via [GitHub Issues](https://github.com/VibeCodingInc/vibe-mcp/issues)
302
- - Propose features via [Discussions](https://github.com/VibeCodingInc/vibe-mcp/discussions)
261
+ - [GitHub Issues](https://github.com/VibeCodingInc/vibe-mcp/issues) — Bug reports
262
+ - [Discussions](https://github.com/VibeCodingInc/vibe-mcp/discussions) — Feature proposals
303
263
 
304
264
  ## License
305
265
 
@@ -307,7 +267,7 @@ MIT — see [LICENSE](./LICENSE)
307
267
 
308
268
  ## Links
309
269
 
310
- - [slashvibe.dev](https://slashvibe.dev) — The platform
270
+ - [slashvibe.dev](https://slashvibe.dev) — Platform
311
271
  - [Vibe Terminal](https://github.com/VibeCodingInc/vibe-terminal) — Desktop app
312
272
  - [@slashvibe on X](https://twitter.com/slashvibe) — Updates
313
273
 
package/analytics.js CHANGED
@@ -97,11 +97,35 @@ function trackSession(event, sessionData = {}) {
97
97
  track(event === 'started' ? 'session_started' : 'session_ended', sessionData);
98
98
  }
99
99
 
100
+ /**
101
+ * Track editor install via universal installer
102
+ * @param {string} editor - Editor name configured
103
+ * @param {string} status - 'configured', 'exists', 'error'
104
+ */
105
+ function trackInstall(editor, status) {
106
+ track('editor_install', {
107
+ editor,
108
+ status,
109
+ platform: process.platform,
110
+ node: process.version
111
+ });
112
+ }
113
+
114
+ /**
115
+ * Track tool usage distribution (called per tool invocation)
116
+ * @param {string} toolName - Tool name (vibe_*)
117
+ */
118
+ function trackToolUsage(toolName) {
119
+ track('tool_call', { tool: toolName });
120
+ }
121
+
100
122
  module.exports = {
101
123
  track,
102
124
  trackEmptyInbox,
103
125
  trackLurkMode,
104
126
  trackOnboardingTask,
105
127
  trackDiscovery,
106
- trackSession
128
+ trackSession,
129
+ trackInstall,
130
+ trackToolUsage
107
131
  };