Skip to content
| Marketplace
Sign in
Visual Studio Code>AI>MlynNew to Visual Studio Code? Get it now.
Mlyn

Mlyn

melnyk

| (0) | Free
Local AI coding agent for VS Code, powered by your own Ollama models. A chat panel that reads, searches and edits your workspace and runs commands with your approval. No cloud, no API keys, no telemetry.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Mlyn

A local AI coding agent for VS Code, powered by your own Ollama models.

Mlyn adds a chat panel that can read, search and edit your workspace and run commands, with your approval at each step. The model runs on your machine: no cloud, no API keys, no telemetry, and no per-token bill.

Mlyn (млин) is Ukrainian for "mill": it grinds through your code locally.

Requirements

  • VS Code 1.85 or newer.

  • Ollama running locally (default http://127.0.0.1:11434).

  • Linux or macOS. The agent runs commands through bash, so on Windows use VS Code with WSL.

  • At least one model that supports tool calling:

    ollama pull qwen3:8b          # about 5 GB, a good starting point
    ollama pull qwen3-coder:30b   # about 18 GB, noticeably better at editing code
    

Mlyn picks the best installed model that supports tools and fits in your memory. You can change it at any time with the picker under the input box. Models without tool support are marked "chat only": they can answer questions but cannot touch your files.

What it does

  • Chat panel in the activity bar. Drag it to the secondary side bar if you prefer it on the right. Answers stream in with markdown, code blocks with a Copy button, and clickable file references such as src/app.py:42.

  • Agent tools, through Ollama's native function calling:

    Tool Purpose
    read_file Read a file with line numbers, paged for large files
    list_dir List a directory
    find_files Find files by glob, for example *.py or src/**/*.ts
    search_text Regular-expression search in file contents
    edit_file Replace an exact, unique string in a file
    write_file Create or overwrite a file
    run_command Run a bash command in the workspace root, with a timeout
  • Approvals. Choose a mode under the input box: Ask before edits (default), Auto-accept edits, or Auto. Each proposed edit shows an inline diff, and View diff opens VS Code's diff editor.

  • Editor context. The active file and selection are attached to your message. Click the chip above the input to leave them out. Ctrl+Alt+L adds the current selection as a quoted snippet.

  • Stop (or Esc) aborts generation and kills any command the agent started.

  • Project instructions. Mlyn reads AGENTS.md or CLAUDE.md from the workspace root, if present.

  • Chats are saved per workspace. /clear starts a new one. Ctrl+Alt+O opens the panel.

Security

Mlyn lets a language model act on your computer, so read this section.

  • Files: every tool is confined to the open workspace folder. Paths outside it, including through symbolic links, are refused.
  • Commands: run_command executes real shell commands with your user's permissions. In the default mode every command waits for your approval. "Always allow" applies to the current chat only, is tied to the program and subcommand (for example git status), and is never offered for compound commands, sudo, or rm.
  • Auto mode removes all approvals. Small local models make mistakes. Use Auto only in a disposable or version-controlled workspace.
  • Model output is rendered with an HTML-escaping markdown renderer under a strict content security policy.

Privacy

Mlyn talks only to the Ollama server you configure. It sends no telemetry and makes no other network requests. Session logs stay on your machine.

Logs

  • Output panel: run Mlyn: Show Log to see model turns, tool calls, approvals and errors. Use VS Code's "Developer: Set Log Level" to see debug detail.
  • Session files: one JSON-lines file per chat, with token counts and timings for every step. Run Mlyn: Open Log Folder to find them. The newest 30 are kept. Turn them off with mlyn.sessionLogs.

Attach the relevant session file when you report a problem. It contains the first 300 characters of your messages and short previews of tool output, so check it before sharing.

Settings

Setting Default Meaning
mlyn.baseUrl http://127.0.0.1:11434 Ollama server
mlyn.model empty Model to use. Empty means automatic selection
mlyn.numCtx 16384 Context window. Ollama's own default of 4096 is too small for agent work
mlyn.temperature 0.2 Low values make tool use more reliable
mlyn.think false Let thinking-capable models reason first. Better on hard problems, slower
mlyn.keepAlive 30m How long Ollama keeps the model loaded
mlyn.maxIterations 25 Model turns per request before the agent pauses
mlyn.commandTimeoutSeconds 120 Default timeout for commands
mlyn.permissionMode ask Default permission mode for new chats
mlyn.sessionLogs true Write a log file per chat

What to expect

Mlyn is as capable as the model you give it, and as fast as your hardware.

  • On a GPU, steps take seconds. On a CPU, expect 20 to 90 seconds per step, plus a minute or two the first time a model loads. The status line shows what is happening.
  • Mixture-of-experts models such as qwen3-coder:30b run surprisingly well on CPUs with enough memory, often faster than smaller dense models.
  • Local models do well on focused tasks: explain this file, find where something is used, fix this function, write a test and run it. They struggle with vague requests and large multi-file refactors. Be specific, and name the files when you can.
  • Keep chats short. Every step re-reads the conversation, so /clear between unrelated tasks keeps things fast.

Development

git clone https://github.com/melnykai/mlyn && cd mlyn
npm test            # tools, agent loop, markdown, extension host (mocked vscode), webview DOM
npm run test:live   # real run against Ollama: the model must fix a bug and verify the fix
npm run package     # builds mlyn-<version>.vsix
code --install-extension mlyn-0.1.0.vsix --force

The webview test needs jsdom (npm i --no-save jsdom) and is skipped without it. There are no runtime dependencies. Layout: extension.js (VS Code glue), src/agent.js (agent loop), src/tools.js (sandboxed tools), src/ollama.js (HTTP client), src/models.js (model selection), src/logger.js, media/ (webview), test/.

License

MIT

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft