HN user

vinhnx

7,462 karma

[ my public key: https://keybase.io/vinhnx; my proof: https://keybase.io/vinhnx/sigs/BL88w_oUlDAOOxOvQLzYVvQBWsBp-5bouAYj3xCBC4I ]

Hi, I’m Vinh (@vinhnx on internet). iOS & Applied AI Engineer. I love to learn, build, and share.

Twitter: https://x.com/vinhnx GitHub: https://github.com/vinhnx HuggingFace: https://huggingface.co/vinhnx90 Personal site: https://vinhnx.github.io CV: https://vinhnx.github.io/cv YouTube: https://www.youtube.com/vinhnx90 Buy me a coffee: https://buymeacoffee.com/vinhnx

Learn by doing. Learn by open source.

Posts838
Comments183
View on HN
bellkiosk.website 1d ago

Reasons for having your own website in 2026

vinhnx
4pts0
news.ycombinator.com 2d ago

Ask HN: Which blog have you recently found to be your favorite?

vinhnx
3pts0
claude.com 3d ago

Anthropic runs large-scale code migrations with Claude Code

vinhnx
36pts31
smallcultfollowing.com 5d ago

Battery packs: Let's talk about crates, baby

vinhnx
2pts0
pythonspeed.com 7d ago

6× faster binary search: from compiled code to mechanical sympathy

vinhnx
2pts0
fabiensanglard.net 7d ago

Jurassic Park computers in excruciating detail

vinhnx
958pts259
www.kadoa.com 7d ago

AI Agents: Hype vs. Reality (2024)

vinhnx
1pts0
www.evolvinglab.ai 10d ago

AI Should Build Its Own Research World Model

vinhnx
1pts0
www.mbi-deepdives.com 12d ago

The Salience of Data

vinhnx
1pts0
magnus919.com 12d ago

The Spec Ceiling: Why AI Coding Speed Moves the Bottleneck to Product Discovery

vinhnx
2pts0
www.joshwcomeau.com 13d ago

Getting Started with Anchor Positioning

vinhnx
1pts0
jack-vanlightly.com 13d ago

Apache Kafka Performance

vinhnx
2pts0
blog.fsck.com 14d ago

Some New Agentic Patterns

vinhnx
3pts0
ntietz.com 14d ago

Licensing can be joyful (and legally dubious)

vinhnx
1pts0
blog.rust-lang.org 14d ago

Together for a Healthier Clippy

vinhnx
2pts0
www.laphamsquarterly.org 16d ago

An Ordinary Mind on an Ordinary Day

vinhnx
2pts0
thoughts.hmmz.org 16d ago

Embedding Information in Disorder

vinhnx
3pts0
jinyansu1.github.io 16d ago

The Evolution of Agents: From Context Engineering to Long-Running Harnesses

vinhnx
1pts0
ratfactor.com 16d ago

What should a personal website be?

vinhnx
3pts1
jtjlehi.github.io 16d ago

A Novel Look at Error Handling in Rust

vinhnx
3pts0
lists.debian.org 16d ago

ABI vs. API (2004)

vinhnx
1pts0
facilethings.com 17d ago

You Feel Exhausted Without Having "Done" Anything Physically

vinhnx
6pts1
news.ycombinator.com 18d ago

Ask HN: What are you working on? (July 2026)

vinhnx
5pts4
ryhl.io 18d ago

Async: What Is Blocking? (2022)

vinhnx
1pts0
cra.mr 19d ago

Building an Intern

vinhnx
2pts0
johnsalvatier.org 24d ago

Reality has a surprising amount of detail (2017)

vinhnx
367pts150
claude.com 25d ago

Properties of AI

vinhnx
2pts0
bitfieldconsulting.com 25d ago

Rewriting the World in Rust

vinhnx
2pts2
animationobsessive.substack.com 25d ago

Pixar's Believable People

vinhnx
11pts0
theidlegazette.beehiiv.com 25d ago

A man who did nothing, brilliantly

vinhnx
1pts0

Thank you! As creator of VT Code, I think it stands out with other coding harnesses; it is the vast realm of LLM providers and models that it can support. Also, I think the main reason I started VT Code in Rust is also a main `feature`, I believe. Let me know if you have any issues using it.

I have been building coding agent: VT Code and I'm very proud of it.

https://github.com/vinhnx/VTCode > It's an open-source coding agent with LLM-native code understanding and robust shell safety. Supports multiple LLM providers with automatic failover and efficient context management.

Recently it just got the 500th tagged release. The project has been started since August 2025, and the coding agent VT Code itself I believe to be stable and ready to use. Thankfully, I got help from the community; recently, we pushed quite a lot of releases, enhancements, and bug fixes.

Applied in March when it first launched for VT Code, a Rust-based terminal coding agent, but haven't heard back from OpenAI. The bar seems high, which makes sense given the fund's limited scope and requirements.

I have been building tools; VT Code is my latest, and I'm very proud of it.

VT Code: https://github.com/vinhnx/VTCode > An open-source coding agent with LLM-native code understanding and robust shell safety. Supports multiple LLM providers with automatic failover and efficient context management. => Recently it just got the 500th tagged release. The project has been started since August 2025, and the coding agent VT Code itself I believe to be stable and ready to use. Thankfully, I got help from the community; recently, we pushed quite a lot of releases, enhancements, and bug fixes.

VT Chat: https://github.com/vinhnx/vtchat > A modern, privacy-first AI chat application with security.

VT.ai: https://github.com/vinhnx/vt.ai > Multimodal AI chat app with dynamic conversation routing.

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.

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:

- Plain text search -> `grep` action (ripgrep)

- Syntax-aware search -> `structural` action (ast-grep)

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.

Thank you!

DeepSeek v4 3 months ago

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.

Oh absolutely and you're welcome! Btw, fish sauce in scrambled eggs over rice is one of the simplest, most satisfying meals you'll find across Southeast Asia, in my country Vietnam especially. It's my favorite meal also.

A simple mental model for Claude's new adaptive thinking is that it is the recommended way to use extended thinking. Adaptive Thinking (wraps Extended Thinking). It applies to Opus 4.7, 4.6, and Sonnet 4.6 and is the default mode on Claude Mythos Preview.

Claude Opus 4.7 3 months ago

They do now. /effort command is on the latest Claude Code version; run `claude update` and `claude /effort`.

You're welcome! I shared from AnimationObsessive's blog, and they did a great deal of research and showed the drawing image boards on paper from Mr. Hayao Miyazaki himself and the studio. This article I find unique, and some images have not been seen or public before. I recommend subscribing to their blog for more animation articles.