Originally created by: Thanatos9404
What it does
Adds plugins/vscode, a small VS Code extension called LLMSlim Memory, so LLMSlim can be listed in the VS Code Marketplace and on Open VSX.
- It uses VS Code's MCP extension API:
contributes.mcpServerDefinitionProviders in package.json, and vscode.lm.registerMcpServerDefinitionProvider returning a vscode.McpStdioServerDefinition. engines.vscode is ^1.101.0, the first release whose typings include this API (@types/vscode 1.100.0 has none of it; 1.101.0 has it as stable).
- The server runs as
uvx --from "llmslim[mcp]==0.11.1" llmslim mcp. The extension looks for uvx on PATH, then in uv's usual install directories (~/.local/bin, ~/.cargo/bin, and Homebrew's on macOS), and hands VS Code its full path.
- If
uvx can't be found when the server starts, a message explains how to install uv (https://docs.astral.sh/uv/) or use pip install "llmslim[mcp]" with llmslim mcp, with buttons for uv's install guide and the setting.
- Settings:
llmslim.command runs an installed llmslim as <command> mcp instead of uvx. llmslim.memoryPath reaches the server as LLMSLIM_MEMORY_DB, the variable llmslim/mcp_server.py reads. Both are machine scoped, so a workspace's settings can't change which program starts.
- In an editor built on VS Code that doesn't have this API, the extension shows the server config once, to add by hand.
- No telemetry and no network requests from the extension itself. Its README's privacy section lists what reaches the network: uvx downloading the package from PyPI (and a Python build if none fits), and the tokenizer downloading one file once.
- Also: a 128x128 icon from
web/public/icon-512.png, README, CHANGELOG, LICENSE, .vscodeignore (the .vsix holds only the manifest, docs, icon and compiled out/src), a one-line link in the root README's MCP section marked "coming soon", a CHANGELOG entry, and a RELEASE_CHECKLIST step to bump the extension's pin each release.
publisher is "llmslim" as a placeholder. Change it to whatever publisher ID you create on the Marketplace (the Open VSX namespace must match). The Open VSX namespace llmslim is unclaimed today (ovsx show, ovsx list and ovsx search found nothing).
How it was checked
- The API calls match the official guide (code.visualstudio.com/api/extension-guides/ai/mcp), the
vscode.d.ts in @types/vscode 1.101.0, and Microsoft's mcp-extension-sample (also ^1.101.0). The guide's example passes an options object to McpStdioServerDefinition, but the typings and the sample use positional arguments (label, command, args, env, version), so the extension uses those.
- Activation: VS Code generates
onMcpCollection:<id> from the contribution point (checked in VS Code's mcpConfiguration.ts). The extension also activates onStartupFinished, so it can show the manual config in editors without the API.
npm ci, npm run typecheck (strict tsc, no unused locals or parameters), and npm test: 11 node:test unit tests for command resolution (uvx on PATH, uv's install directory, missing uvx, the command override and ~ expansion, a missing override that does not fall back to uvx, memoryPath to LLMSLIM_MEMORY_DB, Windows Path/PATHEXT). npm audit: 0 vulnerabilities.
npx vsce package --no-dependencies: no warnings, 9 files, 21.4 KB. ovsx 1.3.0 has no dry-run mode; it packages with the same vsce.
- The .vsix installs into an isolated VS Code 1.133 profile (
--extensions-dir, --user-data-dir) as llmslim.llmslim-memory@0.1.0.
- Smoke test: the compiled resolver found
uvx, started the exact command with LLMSLIM_MEMORY_DB pointing to a scratch file, and an MCP initialize and tools/list over stdio returned llmslim 0.11.1 with remember, recall, list_memories, forget, fit_context.
ruff check ., ruff format --check . and tests/test_claude_plugin.py pass (11 tests). A new test there checks that the extension's pin matches llmslim.__version__, that the provider id in code matches package.json, and that its LICENSE matches the root one.
- New CI workflow
.github/workflows/vscode-extension.yml runs on pull requests that touch plugins/vscode. It only typechecks, tests and packages, with no secrets and no publishing. Actions are pinned like the existing workflows (@v7).
Not checked: starting the server from the VS Code UI (MCP: List Servers) after installing the .vsix. Cursor and Windsurf don't appear to implement vscode.lm.registerMcpServerDefinitionProvider (Cursor has its own vscode.cursor.mcp.registerServer), so for now those editors get the manual-config message instead of the server.
To publish
Nothing has been published. These steps need your own accounts and tokens:
- VS Code Marketplace: create a publisher at https://marketplace.visualstudio.com/manage (it needs an Azure DevOps organization), and create an Azure DevOps personal access token with the Marketplace > Manage scope. If the publisher ID isn't
llmslim, update publisher in plugins/vscode/package.json.
- Open VSX: sign in at https://open-vsx.org with GitHub, sign the publisher agreement, create an access token, and create the namespace:
npx ovsx create-namespace <publisher> -p <token>.
- From
plugins/vscode: npm ci, then npx vsce publish -p <marketplace PAT> and npx ovsx publish -p <open-vsx token> (or npx ovsx publish llmslim-memory-0.1.0.vsix -p <token> to upload the same .vsix).
- After both listings are live, replace "coming soon" in the root README's MCP section with the store links.
Originally posted by: vercel[bot]
The latest updates on your projects. Learn more about Vercel for GitHub.