OpenCursor is designed to work **without internet** once set up:
- **🦙 llama.cpp built in** — search Hugging Face for GGUF models, pick a quantization, download, and OpenCursor spawns and manages `llama-server` for you. Full launch control: context size, GPU layers, flash attention, KV cache types, speculative decoding, vision (`--mmproj`), and more.
- **🐋 Ollama** — pull, manage, and chat with models from the Ollama library, zero config.
- **🧠 Local embeddings** — semantic codebase search powered by an on-device ONNX MiniLM model. No embedding API, no key, no code leaving your machine.
- **✈️ Airplane-mode coding** — local model + local index = a fully working AI agent, offline.
## 🔍 Semantic search, no cloud
Ask questions in plain language — *"where do we refresh the auth token?"* — and the agent automatically finds code by *meaning*, not keywords. The index builds automatically, updates incrementally, and is stored locally. Prefer a hosted embedding model? Point it at any OpenAI-compatible `/embeddings` endpoint instead.
## 🌐 Providers
- **OAuth sign-in** — connect your existing **Claude Code**, **OpenAI Codex**, or **Google Antigravity** account and use your subscription's models directly in VS Code.
- **API keys** — OpenAI, Anthropic, Gemini, OpenRouter presets out of the box.
- **Custom providers** — add any OpenAI-compatible or Anthropic-style endpoint (base URL + key). Run multiple providers at once; models are fetched live and mixable in the picker.
- **Auto mode** — a judge model routes each task to the best enabled model. Per-model reasoning effort, thinking mode, and context-size options.
## ⚡ What it does
| | |
|---|---|
| 💬 **Agent chat** | Multi-tab sidebar chat with @-mentions: files, folders, code, `@Docs`, git commits, branch diffs, terminals, rules, past chats |
| 🛠️ **25 tools** | Read/write/edit, shell, grep/glob, semantic search, web search & fetch, notebooks, todos, subagents, MCP |
| ✅ **Inline review** | Per-hunk **Keep / Undo** CodeLenses on every agent edit — no git required |
| 🧭 **Modes** | Agent · Ask · Plan · Debug · Multitask (Ask/Plan are read-only) |
| 🛡️ **Approval policy** | Per-action allow/ask/review/deny with risk heuristics (`rm -rf`, `sudo`, `.env`, secrets…) and wildcard allow/deny lists |
| 🔗 **MCP & hooks** | Full MCP client, plus 11 lifecycle hooks (Cursor/Claude-Code compatible) and custom subagents |
| 🖼️ **Images & PDFs** | Paste screenshots, read images and PDFs directly into context |
| ⚙️ **Extras** | `Ctrl+L` adds selection to chat, personas, custom system prompt, token usage tracking, completion notifications |
## Installation
1. Install **OpenCursor** from the VS Code Marketplace (or grab the `.vsix` from [Releases](https://github.com/PawanOsman/OpenCursor/releases)).
2. Open the OpenCursor sidebar and pick a provider:
- **Local:** one-click llama.cpp install, or point at a running Ollama.
- **Account:** sign in with Claude Code / OpenAI Codex / Google Antigravity.
- **API:** paste a key for OpenAI, Anthropic, Gemini, OpenRouter, or any custom endpoint.
3. Start chatting. `Ctrl+L` sends your selection to the chat.
> Native runtime dependencies (ONNX runtime, image processing) are downloaded once on first activation with integrity checks — they're too heavy to ship in the VSIX.
## Building from source
```bash
git clone https://github.com/PawanOsman/OpenCursor.git
cd OpenCursor
pnpm install
pnpm run compile # or: pnpm run watch
```
Press `F5` in VS Code to launch the Extension Development Host. Build a package with `pnpm run vsix`.
## Contributing
Issues and PRs welcome — see [issues](https://github.com/PawanOsman/OpenCursor/issues).
## License
[MIT](LICENSE)