AI assistant for VS Code and Cursor — for office document work (Word / Excel / PowerPoint) and software development (write code, add features, fix bugs). Bring your own model (OpenAI-compatible API). Ask questions in read-only mode, or let Agent edit files, run commands, and call MCP tools — with strict workspace boundaries and serial, controllable execution.
Architecture (short): Slip Loomer is a VS Code extension host + Webview stack: the host runs the agent and tools; Chat/Settings sync via state messages. An Orchestrator routes Ask (read-only AskLoop) vs Agent (Architect → Navigator → Executor), with PathGuard and a ToolRegistry for builtins/Office/PDF/MCP, using your OpenAI-compatible API. There are no sub-agents; planning is a linear Blueprint phases[] (revisable), not a DAG/graph—one serial Navigator ReAct pipeline per session (Architect can still reply while work runs). Details: docs/技术架构.md.
Language / 语言: English · 简体中文. UI follows your VS Code display language (12 locales). Change via Configure Display Language (
Ctrl+Shift+P→ Configure Display Language), then reload the window.
The extension is not on the Marketplace. Install locally from source: clone → build VSIX → install with the code or cursor CLI.
Full guide (uninstall, FAQ): docs/本地安装.md.
| Item | Requirement |
|---|---|
| Git | For cloning the repo |
| Node.js | 18+ (build) |
| Editor | VS Code 1.85+ or Cursor (with shell CLI enabled) |
| LLM | Your own OpenAI-compatible API key (e.g. DeepSeek) |
Optional: ripgrep (rg) on PATH for code search; Python 3 for run_script / advanced Office automation.
git clone <YOUR_REPO_URL> vscode-plugin-slip-loomer
cd vscode-plugin-slip-loomerReplace <YOUR_REPO_URL> with this repository’s Git URL (HTTPS or SSH), for example:
git clone https://github.com/slip-loomer/slip-loomer.git vscode-plugin-slip-loomer
cd vscode-plugin-slip-loomerIf you already have the tree locally:
cd /path/to/vscode-plugin-slip-loomer
git pullnpm install
npm run build
npm run packageThis writes:
output/slip-loomer-0.1.0.vsix
(Version follows package.json → version.)
From the repo root (where output/ lives):
VS Code
code --install-extension ./output/slip-loomer-0.1.0.vsix --forceCursor
cursor --install-extension ./output/slip-loomer-0.1.0.vsix --forceOr use the UI: Command Palette → Extensions: Install from VSIX… → select output/slip-loomer-0.1.0.vsix → Reload.
Ensure the CLI is on your
PATH(code/cursorin a terminal). In VS Code / Cursor: Command Palette → Shell Command: Install 'code'/'cursor' command in PATH.
- Open a workspace folder (required — the extension does not activate without one).
- Click Slip Loomer in the Activity Bar.
- Set API key: Command Palette → Slip Loomer: Set API Key (or Settings → LLM).
- Optional:
slipLoomer.api.baseUrl(DeepSeek example:https://api.deepseek.com/v1),slipLoomer.model.default(defaultdeepseek-v4-flash). - Choose Ask or Agent, then chat. Optional: Slip Loomer: Test Connection.
Project tips: add AGENTS.md at the workspace root; optional .slip-loomer/skills/ and .slip-loomer/memories.json.
# After pulling new commits
git pull
npm install
npm run build && npm run package
code --install-extension ./output/slip-loomer-0.1.0.vsix --force # or: cursor --install-extension ...code --uninstall-extension slip-loomer.slip-loomer
# or
cursor --uninstall-extension slip-loomer.slip-loomerAlso: Extensions view → search Slip Loomer → Uninstall → Reload.
For debugging this repo (does not install into your normal editor):
| Step | Action |
|---|---|
| 1 | npm run watch (or rely on preLaunch build) |
| 2 | Open this repo as a folder |
| 3 | F5 → Extension Development Host |
| 4 | Use Slip Loomer in the Host window |
Daily trial should use the VSIX + code / cursor install above.
| Scenario | Examples | How Slip Loomer helps |
|---|---|---|
| Documents | Students, teachers, office workers writing or updating .docx / .xlsx / .pptx |
Built-in read_office_file / write_office_file / edit_office_file; web_search for research; rich Markdown replies |
| Software | Engineers building features, fixing bugs, exploring a codebase | grep_search → read_file → edit_file with diff review; terminal / scripts; LSP diagnostics |
| Mixed | Tech docs + implementation in one workspace | Combine both tool sets; multiple chat sessions in parallel |
Full scenario → tool / MCP / skill mapping: docs/用例/用例总览.md.
- Ask mode — Chat with read-only tools: search, read files (including Office), list directories, web search/fetch, query memory
- Agent mode — Three-layer architecture: Architect (planning & dialogue) → Navigator (ReAct tool loop) → Executor (PathGuard + tools). Edits source code and plain-text files via diff review; creates, overwrites, and partially edits Word / Excel / PowerPoint via built-in Office tools (optional Python for advanced layout).
- BYOK — Your API key, base URL, and model; optional separate models for Architect, Navigator, Ask, and compaction
- PathGuard — Four zones: editable workspace (non-gitignore), gitignore hard deny, user-configured external read-only paths, default deny elsewhere
- Code discovery — LLM-generated grep patterns + local ripgrep (no RAG index)
- AGENTS.md — Project instructions auto-injected from the workspace root
- Skills — On-demand skill packs under
.slip-loomer/skills/ - Memory Bank — Local workspace and user-scoped memories across sessions
- Context compaction — Automatic summarization when context nears the model limit
- LSP diagnostics — Problems panel feedback after edits (Agent)
- Multi-session chats — Multiple conversation tabs; Agent execution stays serial
- MCP — Extend tools via Model Context Protocol
- Diff review — Accept or reject file changes before they land
- Activity Bar — Dedicated sidebar chat entry
- Localized UI — 12 languages via
package.nls.*and runtime i18n (follows VS Code display language)
| Slip Loomer | Typical AI coding tools | |
|---|---|---|
| Tasks | Serial Navigator pipeline; Architect stays reachable while work runs in the background | Multiple parallel sessions |
| Safety | gitignore paths are never read or written | Often indexed or readable |
| Model | You supply API key and token cost | Platform-hosted models |
No inline code completion — chat and agent workflows only.
-
VS Code
1.85.0or later (Cursor compatible when extension API allows) -
An OpenAI-compatible LLM API key and network access to your provider
-
Ripgrep available on the system PATH (for code search)
-
Python 3 on PATH (optional, for Agent
run_script— Office documents and automation). For Word / Excel / PowerPoint generation, install as needed:pip install python-docx openpyxl python-pptx pandas
The extension does not bundle Python or these libraries.
| Setting | Purpose |
|---|---|
slipLoomer.model.default |
Default model |
slipLoomer.model.architect / navigator / ask / compaction |
Per-role models |
slipLoomer.rules.agentsMdPath |
Project instructions file (default AGENTS.md) |
slipLoomer.skills.directories |
Skill pack folders |
slipLoomer.memory.workspacePath |
Workspace memory store |
slipLoomer.compaction.enabled |
Context compaction toggle |
See docs/prd/PRD.md for the full product specification. Technical architecture: docs/技术架构.md. Documentation index: docs/README.md.
Tests use Vitest with no real LLM or network calls. MockLlmClient implements complete / stream in memory; VS Code APIs are stubbed via tests/helpers/vscode-stub.ts.
npm test # 全量用例(无覆盖率门禁)
npm run test:all # 单元 + 组件 + 集成,各层独立 ≥95% 行覆盖
npm run test:unit # 单元层
npm run test:component
npm run test:integration
SLIP_LIVE_LLM=2 npm run test:live # 可选真实 LLM 冒烟
npm run test:watch| Directory | Purpose |
|---|---|
tests/fixtures/ |
Versioned test inputs (fixtures/rawdata/scenario-*) |
tests/artifacts/ |
Test outputs: temp workspaces, coverage reports (gitignored) |
tests/helpers/ |
Shared fixtures: mock LLM, temp workspace, orchestrator wiring, rawdata copy |
tests/application/ |
Application-layer unit tests |
tests/infra/ |
Infrastructure unit tests |
tests/llm/ |
Streaming helpers |
tests/tools/ |
Tool handlers (PathGuard + filesystem) |
tests/integration/ |
Core flows · user scenarios · rawdata · scenario-orchestrator (mocked LLM) |
tests/ui/ |
Chat handlers + Webview UI (happy-dom: tabs, panels, composer, edits, memory) |
Current coverage: 156 test files · 732 tests · layered gates via npm run test:all (unit / component / integration each ≥95% line coverage + test:gate; mock LLM, no network).
Use cases (headless Orchestrator, no UI shell):
npm run test:use-cases # UC-01~14 mock integration + doc gates
SLIP_LIVE_LLM=2 npm run test:live # rawdata scenarios + real LLM (optional)Slip Loomer ships with 12 UI locales. Manifest strings (views, commands, settings) use VS Code package.nls.*.json; runtime strings (notifications, chat webview) use src/infra/i18n/.
| Locale | Language |
|---|---|
en |
English (default) |
zh-cn |
简体中文 |
zh-tw |
繁體中文 |
ja |
日本語 |
ko |
한국어 |
de |
Deutsch |
fr |
Français |
es |
Español |
pt-br |
Português (Brasil) |
ru |
Русский |
it |
Italiano |
tr |
Türkçe |
After changing display language, reload the VS Code window for extension-host and webview strings to update.
Does Slip Loomer include a built-in model? No. You must configure your own provider.
Can it read .env or gitignored secrets? No. gitignore paths are in PathGuard zone B (deny read and write).
Can my company use it? Not at this time. Enterprise and organizational use is temporarily prohibited, including paid licenses. See LICENSE.
Who pays for API usage? You do, directly to your LLM provider.
Can it write Markdown or .txt files? Yes. Agent uses the same write_file / edit_file flow as source code (with diff review) for plain-text files in the editable workspace.
Can it search the web or open URLs? Yes. Built-in web_search, web_fetch, and open_url tools are enabled by default (DuckDuckGo for search). You can disable them via slipLoomer.web.enabled or extend with MCP servers and Skills.
Can it create Word, Excel, or PowerPoint files? Yes. Agent uses built-in read_office_file / write_office_file / edit_office_file for .docx, .xlsx, and .pptx in the workspace (no Python required for basic documents). Use write_office_file to create or overwrite; edit_office_file for partial edits (cells, paragraphs, slides). Advanced automation can still use run_script with Python libraries. Complex layout is not a focus of the MVP.
- Single serial Agent pipeline (one Navigator execution at a time)
- No semantic codebase index — search is grep-based
- No inline completions
- Product is under active development; behavior follows docs/prd/PRD.md
Proprietary software. Free for qualifying personal use only. Enterprise and organizational use is temporarily not permitted, including paid licenses.
The author is not liable for any loss or damage arising from your use of this software. See LICENSE.