I.
Recently, I've written several AI tutorials, and I received messages asking me to talk about my own AI programming.
Today, I'll share my AI programming, which is what people call "vibe coding."

Let me clarify that I'm just a beginner in AI, not an expert. Besides not wanting to keep things to myself, it's more about sparking interest and engaging with everyone.
II.
Usually, I don't use AI to generate new projects . Because every time I see code generated by AI, I feel like it's someone else's code, not mine.
If the entire project is generated by AI, subconsciously, I don't feel like it's my project. My habit is to prefer writing the main code of new projects myself.
I mainly use AI for others' projects and legacy code., this can avoid the significant time cost of understanding others' code.
, taking legacy code as an example, (1) often there is insufficient documentation or no author explanations, (2) the technology stack and tool libraries are outdated, requiring one to search for old standards to understand the code, (3) in the most extreme cases, only the build artifacts are available without the source code, making it impossible to get started.
, AI is practically a savior for such code, capable of understanding and modifying even the oldest code, and even performing reverse engineering on build artifacts.
, Below is how I use AI to handle legacy code, which is essentially how I approach AI programming.
Three,
My AI programming tool is Claude Code. Because the command line is more convenient for me and easier to integrate with other tools.
The AI model I use is mostly domestic.MiniMax M2。Ihave testedits functionality, and it's quite good, meeting the needs, with a high ranking.

Additionally, it has a monthly price (29 RMB), making it one of the most affordable programming models, allowing for extensive use and trial-and-error. If you switch to the Claude series models that everyone is clamoring for, the 20-dollar Pro plan won't be enough, and the 200-dollar Max plan is too expensive.
The method to integrate MiniMax with Claude Code can be found in mytutorial.
Four,
As I was writing this article, MiniMax underwent a major upgrade this week, with the M2 model upgraded to M2.1.。

because it's related to me, I pay special attention to this upgrade.
According to the officialrelease statement, this upgrade particularly strengthens the "multilingual programming capabilities", with specific enhancements for commonly used programming languages (Rust, Java, Golang, C++, Kotlin, Objective-C, TypeScript, JavaScript, etc.).
As a result, its WebDev and AppDev capabilities have been significantly improved, making it suitable for developing complex web applications and native Android/iOS apps.
"On the core list in software engineering-related scenarios, MiniMax M2.1 has shown a significant improvement compared to M2, especially in multilingual scenarios, surpassing Claude Sonnet 4.5 and Gemini 3 Pro, and approaching Claude Opus 4.5."
According to this introduction, its programming capabilities exceed or approach those of flagship models abroad.
This model is already launched and available for use. So, this article will just test whether the official introduction is accurate and whether its web development capabilities have indeed improved.
As for the price, it remains the same. However, the official statement that "response speed has significantly improved and token consumption has noticeably decreased" can be considered a form of price reduction.
M2.1 is integrated with Claude Code, with the following parameters.

Five.
The historical legacy project I chose this time iswechat-format, a web application, converts Markdown text into WeChat Official Account style.

On the left side of the image, enter Markdown text in the text box, and the automatically rendered result appears on the right, which can be directly copied into the WeChat Official Account editor.
It is very useful, everyone can go to try it . My Official Account now uses it for formatting, and the results are good (bottom image).

The issue is, the original author abandoned it six years ago, and the project is no longer being updated. I've reviewed the source code; it uses an old version of Vue.js and the CodeMirror editor, with no documentation or instructions, and it has been processed by a compilation tool, with all comments removed.
If you're not familiar with its tech stack, modifying this code is very difficult and may require a significant investment of time.
So let's cut to the chase and let the AI take the stage, handing over these codes to the MiniMax M2.1 model.
VI.
The first step in taking over an old project is to get a comprehensive understanding of the project.
I will first let the AI generate an overview of the project. Everyone can follow along and compare their results with mine.
# 克隆代码库 $ git clone [email protected]:ruanyf/wechat-format.git # 进入项目目录 $ cd wechat-format # 启动 Claude Code $ claude-minimax
The above claude-minimax is my custom command to invoke the MiniMax model within Claude Code (see tutorial ).
Input "Generate an overview of this repository."

The AI quickly provided a detailed explanation, including the overall introduction of the project, core features, technology stack, and file structure (below).

After getting a general understanding, I will let the AI explain the code in the main script file.
Explain the code in the index.html file

It will provide the code structure and page layout (as shown in the upper figure), followed by the JS script loading order and Vue application logic, even including flowcharts (as shown in the lower figure), which I didn't expect.


Once this step is completed, you should have a good understanding of the codebase, and AI spent less than a minute.
7.
Since this model claims to have "multi-language programming capabilities," I'll let it change the project language from JavaScript to TypeScript.
For many old projects, this is also a common requirement, and the difficulty is not low.

It first created a migration plan, then generated tsconfig.json and types.d.ts, and converted each JS file to the corresponding TS file (see the image below).

After the modifications were completed, it tried running the application and found some errors (see the image below), so it addressed each error individually.

Finally, the migration was completed, and it provided a task summary (see the image below).

When I ran the application in the browser, I encountered two errors: CodeMirror and FuriganaMD were undefined.
I submitted the error messages to the model, and it quickly modified the code. This time, it ran smoothly in the browser.
At this point, the JavaScript application from years ago was successfully converted to a TypeScript application, and all internal objects now have complete type definitions.
You can also continue to add unit tests, but this is omitted here.
Eight.
The simple test is over for now. My current AI programming is about at this level, using AI to explain and modify code. I also suggest that in the future, when encountering legacy code, we should first hand it over to AI.
Although this test is quite simple and not enough to test the upper limits of MiniMax M2.1's capabilities, if humans were to do these things, it might take an entire workday to complete, but it only takes about ten to twenty minutes for it.
Overall, I am quite satisfied with its performance. As everyone can see, my prompt was very simple—it was just one sentence—but it correctly understood the intent. If it didn't succeed on the first try, it might need at most one or two modifications to get it right.
Moreover, just as the release notes said, it runs very fast, with its thinking and generation processes taking no more than two or three minutes, unlike some models that take a long time to respond.
Additionally, no matter what operation is performed, it provides detailed explanations and code comments.
In summary, based on my testing, this model's web development capabilities are indeed very strong and can be used for practical work.
Finally, let's talk about something off-topic. Famous developer Simon Willison recently said that evaluating large models is becoming increasingly difficult, "I can't identify any substantial differences between two models," because mainstream new models are already powerful enough to handle common tasks, and only by continuously raising the difficulty of evaluations can we determine their strengths.
This means that for common programming tasks of ordinary programmers, different models will not make significant differences, and there is no need to迷信 foreign flagship models; domestic models are very useful.
(End)


























