Chetna Editor
An AI coding assistant for VS Code and Cursor — local-first agent workflows inside your editor.
Chetna indexes your workspace, retrieves only what matters for each turn, and executes changes through a governed tool loop with diff review, permission prompts, rule constraints, and full auditability. It runs as a native extension: no fork, no separate app.
Current release: 0.5.1 · VS Code ^1.85 · Publisher DistractionsForge
Features
Agent chat & editing
- Multi-tab sessions (general, refactor, debug, docs, Unity, DevOps)
- Native tool protocol (OpenAI / Claude / Gemini / LM Studio) plus XML fallback
- Collapsible Thought / Plan / tool panels and streaming markdown replies
- Clickable file paths in chat — open files at line/column
- Applied edits with collapsible Diff review panel (Review / Keep / Revert per file)
- Coding pipeline: verify → gap analysis → todos → generate (approval gate + Done state when finished)
- Compile-fix loop with circuit breaker, diagnostic arbitration, and post-generation lint
- In-chat permission elevation — Allow once / session / Deny when a tool needs a higher mode
Context & memory
- 4-layer symbol index — files → classes → functions → details (
.chetna/layers/)
- Codebase chunk RAG — semantic retrieval over function/class slices
- Merkle incremental sync — re-index only what changed
- Context window presets — 16k / 32k (default) / 48k / 64k / 128k / 256k from the composer toolbar
- Episodic memory — prior turns, grep hits, and session ledger summaries
db_context_search — unified search across index, chat history, memory, and process maps
- Process maps — auto-captured workflows for faster repeat tasks
Shell, grep, glob, git, web fetch/search, LSP, Python, Unity (when detected), MCP passthrough, and a permission model (read-only → workspace-write → danger-full-access).
Composer toolbar: Active file, Git diff, LLM provider, model, and Context pickers — settings persist per workspace.
Install
Marketplace
Search Chetna Editor by DistractionsForge, or install the extension ID DistractionsForge.chetna-editor.
From VSIX
VS Code
code --install-extension chetna-editor-0.5.1.vsix
Cursor
Cmd/Ctrl+Shift+P → Extensions: Install from VSIX…, or:
cursor --install-extension chetna-editor-0.5.1.vsix
Reload the window after install.
Run
- Open your project folder in VS Code or Cursor.
- Run Chetna: Index Workspace (
Cmd/Ctrl+Shift+P).
- Open Chetna: Open Chat (
Cmd/Ctrl+Shift+C).
- Pick a provider/model (and Context size if needed), then run Chetna: Test LLM Connection once.
Use Active file / Git diff toggles as needed. When tools need more permission than your ceiling, approve or deny from the in-chat card.
LLM providers
| Provider |
Configuration |
| Auto (default) |
LM Studio → OpenAI → Claude → Gemini → local context-only |
| LM Studio |
Any OpenAI-compatible endpoint via chetna.lmStudio.baseUrl (local, LAN, tunnel, or remote) |
| OpenAI |
chetna.openaiApiKey, chetna.openaiModel |
| Gemini |
chetna.gemini.apiKey, chetna.gemini.model (default gemini-2.5-flash) |
| Claude |
chetna.claude.apiKey, chetna.claude.model |
{
"chetna.llmProvider": "auto",
"chetna.lmStudio.baseUrl": "http://192.168.1.50:1234/v1",
"chetna.openaiModel": "gpt-4o-mini",
"chetna.gemini.model": "gemini-2.5-flash",
"chetna.context.preset": "32k"
}
chetna.lmStudio.baseUrl accepts any OpenAI-compatible endpoint. You can omit /v1 when the host has no path (e.g. http://192.168.1.50:1234).
Configuration
{
"chetna.llmProvider": "auto",
"chetna.tools.permissionMode": "workspace-write",
"chetna.tools.promptOnElevation": true,
"chetna.context.preset": "32k",
"chetna.context.codebaseRag": true,
"chetna.context.codebaseTopK": 8,
"chetna.editing.requireDiffReview": false,
"chetna.composer.autoStage": true,
"chetna.agent.exploreBeforeEdit": true,
"chetna.webSearch.provider": "duckduckgo"
}
| Setting |
Purpose |
chetna.context.preset |
Context window preset (default 32k) — sets model window + injection ceilings |
chetna.context.maxTokens |
Ceiling for injected context (RAG/rules/attachments); updated by preset |
chetna.context.historyMaxTokens |
Ceiling for chat history packing; updated by preset |
chetna.tools.promptOnElevation |
In-chat Allow once / session / Deny when a tool needs a higher mode |
chetna.composer.autoStage |
Apply edits immediately and show Diff review for Keep/Revert |
chetna.editing.requireDiffReview |
Force diff review even when auto-stage is off |
chetna.agent.orchestrator |
Planner → executor → summarizer for complex tasks |
chetna.compile.maxFixCycles |
Compile-fix loop safety limit |
Cursor MCP integration
Run Chetna: Setup Cursor Integration (MCP) to register a stdio server in .cursor/mcp.json. Cursor Agent can then call the same toolchain as the sidebar:
chetna_search_codebase · chetna_grep · chetna_glob_search · chetna_git_* · chetna_rag_query · chetna_execute_tool · Unity/Python tools · chetna_capabilities
Commands
| Command |
Description |
| Chetna: Open Chat |
Sidebar agent panel |
| Chetna: Index Workspace |
Full index + merkle sync + codebase chunks |
| Chetna: Validate Index |
Health check for stale or missing paths |
| Chetna: Test LLM Connection |
Verify active provider |
| Chetna: Grep Workspace |
Ripgrep-style search |
| Chetna: Show Layer Stats |
Index, RAG, memory, and merkle stats |
| Chetna: Review Pending Edits |
Diff review for applied changes (Keep/Revert) |
| Chetna: Setup Cursor Integration |
Write MCP config |
Data & privacy
- Index, chat history, memory, and process maps live under
.chetna/ in your workspace (local JSON).
- API keys are stored in VS Code settings / Secret Storage — not sent anywhere except your chosen LLM provider.
- No telemetry is bundled in the extension core; network use is limited to LLM APIs and tools you invoke (web search, fetch, etc.).