Thank you for checking out VT Code! Yes, VT Code supports connecting to local LLMs through two main providers: LM Studio and Ollama. But local LLMs inference is experimenting, as I don't have enough hardware with large VRAM to test it, my main machine is MacBook Pro M4 with just 16 GB Ram. The community always have asked for it and I would love to have sought contributor on these regards. My initial vision is to support open weight and local inference. So LM Studio and Ollama are supported but still have bugs. https://github.com/vinhnx/VTCode/blob/a154162f/docs/provider...
Notes: VT Code also supports custom OpenAI-compatible providers through the custom providers' configuration, allowing you to connect to any local LLM server that exposes an OpenAI-compatible API: https://github.com/vinhnx/VTCode/blob/a154162f/docs/config/C...
Thank you for checking out VT Code! “LLM-native code understanding” refers to VT Code's approach of using LLM as the primary mechanism for semantic code analysis rather than relying solely on traditional static analysis tools. I have tried using ast-grep for structured code parsing understanding as a ground truth before/after the agent executes a code analysis or does a code edit/write operation and code context understanding and symbol analysis. I also tried to use tree-sitter to enhance the user's prompt parser grammar. Example: currently I use tree-sitter bash grammar to check for user input prompts for Unix commands: “run cargo fmt” -> VT Code will detect and understand right away the intent is to run a bash command -> parse and hand it to the harness -> wait for the stdout/err. Then, parse the stdio handle to the LLM as an agent loop. This is to save context and parser roundtrip.
This is just my naive implementation, so as “llm-native code understanding,” VT Code will use LLMs to perform deep code understanding across multiple programming languages as a fallback if my enhance `ast-grep` + ripgrep + tree-sitter implementation is failed, but this relies on the model's intelligent. If you follow end-of last year post-training breakthrough (GPT-5.1 and Opus 4.5 era, November 2025), I read somewhere from Anthropic and OpenAI researchers that now the models are smart enough to understanding code with more context. They even have their own internal monologue so they can reason about code grammars and code context by itself. https://github.com/vinhnx/VTCode/blob/a154162f/docs/README.m...
Note: I don't have enough understanding describing this cleanly as I learn by doing mostly. However, initially when I designed and built VT Code, I had a vision of using and for AST-enhanced grep code for replacement of std grep. I also use my grep tool, called grep. `perg`). I also wanted to parse source code into concrete syntax trees usable in compilers, interpreters, text editors, and static analyzers. Also, I thought of using LSP but still exp. All this might be overhead for a small open source coding harness, but I love to build, so I thought to myself, why not, just build and learn.
DeepSeek's KV cache is impressive and very cost-efficient for long-horizon tasks. I tested on VT Code with DeepSeek V4 Pro, and the cache-hit ratio is high. *I build a coding agent and have recently improved and hardened DeepSeek V4 integration. I registered the DeepSeek API key, topped up just 2 USD, and used just DeepSeek V4 Pro and Flash with max thinking. So far the most visible improvement in both cost and context is the cache improvement; it's quite impressive with this announcement of a permanent price drop. (https://xcancel.com/vinhnx/status/2058748305350557932). Currently, my usage is still at $1.15 after 2 full weekends.
You can use DeepSeek with my coding agent VT Code. Recently I've added DeepSeek V4 Pro and DeepSeek V4 Flash support with all providers, via: Official DeepSeek API, HuggingFace, Ollama Cloud, OpenRouter providers.
I've been building VT Code (https://github.com/vinhnx/vtcode), an open-source coding agent with code understanding and robust shell safety. Supports multiple LLM providers with automatic failover and efficient context management. Written in Rust.
The way to do it as I understand is to submit, notice title was filtered within the edit window time period, edit the submission to include filtered words.
Thank you for checking out VT Code and great questions! Somehow I am only able to get the comment now (4 hours late), sorry!
I will answer your questions
> does ast-grep run first as a structural filter, with ripgrep for content matching, or are they used independently depending on the query type?
ast-grep and ripgrep are used independently depending on the query type, not in a sequential filtering relationship. In VT Code's, the `unified_search` tool provides two distinct search actions/args: `grep` and `structural`. Where, `grep` action uses ripgrep for broad text matching and quick file-content sweeps, which calls system `rg` binary or falls back to default grep (I also use my own perg, which is my cli for grep). The `structural` action uses ast-grep (https://ast-grep.github.io/) for syntax-aware search, read-only project scans, and rule tests,
it directly executes ast-grep binary without any ripgrep preprocessing.
The routing is based on your search needs, design based on semantic:
I design VT Code's system prompt to explicitly states to prefer `grep` (rg) for broad text search and prefer `structural` (ast-grep) for syntax-sensitive search.
> How are you handling the schema translation?
VT Code handles schema translation through a unified abstraction layer with provider-specific translation methods, avoiding provider-specific code paths in the main application logic. (https://github.com/vinhnx/vtcode/blob/main/vtcode-core/src/l...) The system uses a unified `LLMProvider` trait with shared request/response types, then handles provider-specific translations at the boundary layer.
Different providers have varying role support, handled through the `MessageRole` enum with provider-specific string conversion methods:
- OpenAI: Supports `system`, `user`, `assistant`, `tool` roles directly. Based on OpenAI Completion/Response API roles definition.
- Anthropic: Converts tool responses to `user` messages, handles system messages separately.
- Gemini: Maps `assistant` to `model`, handles system messages as `systemInstruction`.
Each provider implements the `LLMProvider` trait and handles its own schema conversion internally. For example, the Anthropic provider converts requests in `convert_to_anthropic_format()`.
> ACP support is interesting. I haven't seen many agents implement it yet, mostly MCP. Is your read that ACP is going to gain adoption, or is including both more about hedging?
I support and adopt ACP since it was first announced and introduced from Zed. And the currently VT Code run with almost all ACP-compatible clients (Zed, Minamo Notebook, Jetbrain, Toad...). See: https://github.com/vinhnx/VTCode/blob/main/docs/guides/zed-a.... I'm not sure about ACP adoption metric but ACP integration helps VT Code run on more surfaces (eg: environments).
> The local inference angle (LM Studio, Ollama) matters for use cases where source code can't leave the network. Have you benchmarked which open models hold up reasonably for tool-calling-heavy workflows? In my experience most local models below 70B struggle with multi-turn tool use even when their raw code generation is decent.
Currently, local inference support via LM Studio and Ollama is still early and experiment in VT Code and I haven't run it much and yet to have benchmarks with open models since I don't have enough VRAM. But it definitely in my checklist and could get helps from the comminity if anyone interest.
The king is back! I remember vividly being very amazed and having a deep appreciation reading DeepSeek's reasoning on Chat.DeepSeek.com, even before the DeepSeek moment in January later that year. I can't quite remember the date, but it's the most profound moment I have ever had. After OpenAI O1, no other model has “reasoning” capability yet. And DeepSeek opens the full trace for us. Seeing DeepSeek's “wait, aha…” moments is something hard to describe. I learned strategy and reasoning skills for myself also. I am always rooting for them.
Notes: VT Code also supports custom OpenAI-compatible providers through the custom providers' configuration, allowing you to connect to any local LLM server that exposes an OpenAI-compatible API: https://github.com/vinhnx/VTCode/blob/a154162f/docs/config/C...
reply