ManjuAi for VS Code
Privacy-oriented coding agent in the secondary sidebar. It reads and edits files in your open workspace folder. LLM requests are sent to the Manju hosted API when you chat; file edits and the code index stay on your machine.
Features
- Guest trial: 2 chat messages without sign-in on Free (OpenRouter auto router), then sign-in is required.
- Signed in: GLM 5.3 Flash default (
z-ai/glm-5.3-flash) plus GLM 5.3, DeepSeek V3.2, and Grok 4.1 Fast in the model picker. Usage is metered on Manju servers (see the site for plan limits and optional Pro upgrade).
- Agent mode: edits files, runs terminal commands (with approval), semantic search, optional web search/fetch when approved.
- Local Python stack: agent under
python/ (not a bundled binary). On first use the extension creates a venv in extension global storage and runs pip install once. Requires Python 3.10+ on PATH (manju.pythonPath to override).
- Local servers (default): integrated terminal runs the agent on 127.0.0.1:8770 and the index worker on 127.0.0.1:8772 (
manju.serverLaunch: terminal | extension).
- Semantic index:
.manju/index/ in the workspace (tree-sitter chunks, Chroma, FastEmbed). Tools: find_relevant_code, get_file_outline. Rules from .manju/rules.md when present.
- Chat history: per workspace in
.manju/chat/session.json.
- Greenfield websites: in an empty folder, “build a website” can copy
templates/next-shadcn/ and run npm install, then the agent edits the app.
- Approvals: terminal runs and web actions are confirmed in the sidebar before execution.
- Secrets: the agent may write
.env.example; you add real API keys locally. Sign-in tokens are stored in VS Code Secret Storage, not in workspace settings.
ManjuAi is not affiliated with Microsoft, GitHub, or OpenAI.
Privacy and data
| Stays local |
Sent to Manju API (when you chat) |
| Files the agent reads/writes |
Your messages and attached context (open files, search hits, outlines) |
.manju/ index and chat JSON |
Agent tool payloads and LLM step content (/manju-chat/local-agent/llm-step) |
| Python venv under extension storage |
Web search/fetch only after you approve in chat |
HTTP servers on 127.0.0.1 (agent/index) |
Sign-in handoff exchange (POST /auth/desktop/exchange) |
Default API base: https://manjuai.tech/manju-api. Override with manju.backendUrl for local backend development.
Guest send counts may also be stored under ~/.manju/vscode-guest-trial.json.
Requirements
- VS Code 1.85+
- Python 3.10+ on PATH
- Network access to your configured Manju API and (on first run) PyPI for
pip install
Use
- Open a project folder in VS Code (or Cursor with the same VSIX).
- Open the ManjuAi view in the secondary sidebar.
- Send a message; local servers start in a terminal when needed.
- Sign in from the sidebar for metered GLM / DeepSeek / Grok models.
Package and install (.vsix)
cd manju-vscode
npm install
npm run check
npm run package
Produces manju-ai-<version>.vsix in this folder.
Install for testers:
code --install-extension manju-ai-0.1.12.vsix
Or: Extensions → ... → Install from VSIX…
Publish (after creating publisher manjuai on the Marketplace):
npx vsce login manjuai
npx vsce publish
Or upload the .vsix manually at Manage publishers.
Sign-in redirect
After web sign-in, redirect to:
VS Code:
vscode://manjuai.manju-ai/auth?code=...&user_id=...&email=...
Cursor:
cursor://manjuai.manju-ai/auth?code=...&user_id=...&email=...
The browser passes a short-lived code (not a JWT). The extension exchanges it for a Firebase id_token. If sign-in fails with certificate errors, sign out in the sidebar and try again.
Architecture
Extension (TypeScript + chat webview)
│ HTTP 127.0.0.1:8770 (agent), :8772 (index)
▼
python/automate_agent (+ index_worker)
│ HTTPS (default manjuai.tech/manju-api)
▼
Manju API — /manju-chat/local-agent/llm-step, auth, billing
Before each turn the extension checks that the configured API is reachable.
Settings
manju.backendUrl — API base (default https://manjuai.tech/manju-api)
manju.webAppUrl — sign-in site (default https://manjuai.tech)
manju.agentPort / manju.indexPort — local ports (8770 / 8772)
manju.serverLaunch — terminal (default) or extension
manju.serverTerminalFocus — focus Terminal when servers start
manju.pythonPath — Python executable (empty = python / python3 on PATH)
manju.defaultModel — signed-in default model id
manju.autoRetrieveContext — inject semantic search hits before each turn (default on)
Develop
cd manju-vscode
npm install
pip install -r python/requirements.txt
npm run check
pytest python/automate_agent/tests -q
Press F5 with the manju-vscode folder open (Extension Development Host).
Debug: set MANJU_LOG_SYSTEM_PROMPT=1 on the Python agent process to log the assembled system prompt.
License
MIT — see LICENSE.