HNHacker News
TopNewBestAskShowJobs

mohsen1

2,126 karma · joined June 16, 2012

https://tsz.dev azimi.me github.com/mohsen1
submissionscomments
mohsen1··on Cursor Introduces Composer 2.5
We moved off Cursor and onto Codex + Claude Code. Cost went from multiple thousand per engineer per month to about $500
mohsen1··on Codex-maxxing
Yes I'm aware of that. Perry is a different project. Folks at Oxi tools are also doing something similar (a ts checker) but that's also not 100% compatible with tsc. My goal with tsz is a superset of tsc that's stricter (for now it's called Sound Mode). But matching more than a decade of work that TypeScript has put in has been a long journey already. None of the existing TypeScript rewrites are matching the original tsc yet. tsgo is the closest but that also has bugs that needs to be addressed before TS 7 is released.

I think my architecture can be faster than tsgo albeit a much more painful codebase to work on. But I'm not claiming any sort of achievement yet.

Ultimately users have to decide and I have to show a very strong case that someone should use a nonofficial rewrite over Microsoft's own code.

Will tsz be a success? I am not sure. Am I learning and having fun? for sure!

mohsen1··on Codex-maxxing
in tsz (https://tsz.dev) I am Codex-Maxxing with this:

Give each Codex an AgentName and ask them to mark their PR/issue/comments with those. Have one or two "managers" that manage PRs and overall project direction. I write the project directions and make long lasting issues. Each Codex session has an almost unachievable `/goal` but they are asked to achieve the goal by landing changes in `main` via PRs

I am running about 14 Codex sessions on 4 machines right now for about two weeks since OpenAI 10x'ed my 20x account and I simply can not run out of tokens fast enough.

Side note: I have multiple Claude accounts too but the new Claude Code `/goal` command is seriously broken. It waits long pauses between iterations and sometimes prematurely stops.

mohsen1··on Zerostack – A Unix-inspired coding agent written in pure Rust
This is much needed!

Compared to Codex CLI, Claude Code is insanely slow.

    $  time claude --version
    2.1.143 (Claude Code)

    ________________________________________________________

    Executed in    4.39 secs      fish           external
    usr time   29.68 millis    0.26 millis   29.41 millis
    sys time   71.30 millis    1.30 millis   70.00 millis

5 seconds to show me the version number!

I'm guessing Claude Code also needs a rewrite in Rust. But from what I saw in the leaked TypeScript code, a line-to-line port will be pretty bad. It requires a new architecture that matches Rust idioms

mohsen1··on Bun Rust rewrite: "codebase fails basic miri checks, allows for UB in safe rust"
In the Sound Mode page I mentioned that I have some ideas around this. What if we could take .d.ts and project a sound version out of it? How feasible that can be is unclear but the biggest unsoundness criminal is `any` which is relatively safe to project it into `unknown`. And method binvariance stuff are also not impossible to project something more sound out of it.

My goal with tsz is to make it practical and useful. I know how difficult it is to convince a tsc user to try something not officially from Microsoft

mohsen1··on Bun Rust rewrite: "codebase fails basic miri checks, allows for UB in safe rust"
Thank you for the feedback. I think I should rename the "Sound Mode" to something more honest. "Strict" is already taken so I should think of a better name. Making tsz compatible with tsc and making it sound is mathematically impossible. The history of this stuff (https://hegel.js.org) is telling. If you really make a sound JS checker, nobody will really use it unless you build an entire ecosystem as big as npm with it. TypeScript's decision to embrace existing npm ecosystem and layering .d.ts on top was a very practical decision that made it so successful.
mohsen1··on Bun Rust rewrite: "codebase fails basic miri checks, allows for UB in safe rust"
tsz for me is an experiment to see how can this kind of work be done better. With a slight difference that tsz is not a direct port and it's a different architecture. I'm also not claiming to have answers but I've learned a ton. A few things that works

- Test before code, Bun had lots of test so that's good but maybe they could start by asking Mythos to write like 20k additional tests that pass on Zig Bun first.

- Deterministic anti-slop features. LLMs love to solve the problem in the wrong abstraction layer or place. There are many ways to catch this with deterministic tests. I do this in tsz a lot

- Roadmap that constantly evolving by humans.

- Taking a pause and looking how the progress is going and undoing slop

- Fuzztest(https://github.com/google/fuzztest) style "trying to break things" with the powers of LLM

mohsen1··on Bun Rust rewrite: "codebase fails basic miri checks, allows for UB in safe rust"
I was a little shocked that they could get it fully working in a week to be honest. My side project is a very similar ambition (https://tsz.dev) but I am in no way claiming success. i keep adding more and more tests to ensure things works. Even after all of TypeScript's own tests pass I am finding bugs which I was totally expecting.

The bar for matching tsc's behavior is really _really_ high. see:

https://github.com/type-challenges/type-challenges

I'm not against using LLMs to write a lot of code. But verification should be 100x more robust now that we can output code at this rate.

mohsen1··on Rewrite Bun in Rust has been merged
in tsz[0] 100% of tests pass yet I have a ton of bugs. I don't think any software out there is fully tested really. I'm experimenting this this idea as well. So far learned a ton.

I'm convinced the future of writing code is heavily LLM assisted

[0] https://tsz.dev

mohsen1··on Remove .zig Files from Bun
deleted
mohsen1··on Bun's experimental Rust rewrite hits 99.8% test compatibility on Linux x64 glibc
Because I don't know those languages. I'm still reading the code LLM writes
mohsen1··on Mythos Finds a Curl Vulnerability
https://github.com/mohsen1/tsz
mohsen1··on Mythos Finds a Curl Vulnerability
Yes it does. Usually after hours of working and not getting results
mohsen1··on Mythos Finds a Curl Vulnerability
I don't know about Mythos but in recent weeks I've noticed Opus is constantly failing to fix things in tsz[0] vs GPT 5.5 can easily churn out fixes that are solid and pass tests. I've stopped paying for Claude for now and all my money is going to OpenAI at the moment. Either Opus is massively nerfed or GPT 5.5 is really head and shoulder higher in terms of very difficult tasks. The last percent of conformance tests in tsz are really really difficult and I've seen Opus bailing again and again. So annoying to waste time and tokens to finally get "this is too involved" or "this requires a multi-week sprint to fix".

[0] https://tsz.dev

mohsen1··on Ask HN: What are you working on? (May 2026)
You can see LSP working in the playground. It is still WIP but pretty fast. I'll add LSP benchmarks later. My design is highly biased towards fast incremental checks
mohsen1··on Ask HN: What are you working on? (May 2026)
I'm taking a different path than Enzo. Fully tsc compatible and more sound on top
mohsen1··on Ask HN: What are you working on? (May 2026)
Working on tsz (https://tsz.dev)

a performance-first TypeScript checker written in Rust. Started 5 months ago and it's been mostly AI-written code. 99.8% tsc conformance test pass rate today. Single file benchmarks are 3–5x faster than tsgo.

mohsen1··on Bun's experimental Rust rewrite hits 99.8% test compatibility on Linux x64 glibc
That talk is very interesting. Thanks for sharing. I'll watch it later.

Now that most of the implementation is nearly completed, I'm building a lot of instrumentations to have better visibility into those things to have concrete answers to that sort of question. I'm experiencing huge RSS right now that could be exactly what you're pointing to.

mohsen1··on tsz: a performance-first TypeScript checker
Full soundness in JavaScript is proven to be impossible. You can write code that no compiler can really follow the execution path.

There has been attempts in the past (https://hegel.js.org) but I think TypeScript has been successful because it is prioritizing DX and ergonomics.

In the age of LLMs, the compiler can be a lot more strict. JSON.parse should not return `any` just to make developer happy and keep moving. It should be `unknown` and force the developer (LLM really) to do the hard work of writing down the type of what that JSON _could_ return. This is the philosophy of the Sound Mode in tsz. You'll get closer to Hegel ideals without making it impossible to write code and/or promising absolute soundness that JavaScript simply can't support.

mohsen1··on Bun's experimental Rust rewrite hits 99.8% test compatibility on Linux x64 glibc
Very cool! If you have extra tokens laying around ask the agent try to break things and open GitHub issues. This is what I do for tsz and beyond conformance test I can see it finding very good bugs.
mohsen1··on Bun's experimental Rust rewrite hits 99.8% test compatibility on Linux x64 glibc
From the languages that I know, Rust is the only language that I can look at a multi-threaded code and understand it. This stuff being checked by the compiler is a huge advantage
mohsen1··on Bun's experimental Rust rewrite hits 99.8% test compatibility on Linux x64 glibc
OpenAI gave me that 10x boost and used it all already for this week. I'm guessing the last 50 tests is only doable by GPT 5.5 xhigh
mohsen1··on Bun's experimental Rust rewrite hits 99.8% test compatibility on Linux x64 glibc
Thank you!

It's much faster in single file benchmarks (3 to 5x)

https://tsz.dev/benchmarks/micro

I have optimizations planned for large projects that I'm still flushing out.

mohsen1··on Bun's experimental Rust rewrite hits 99.8% test compatibility on Linux x64 glibc
Yes indeed. More than 1 million lines of code (including tests) is jumping lots of hoops but with LLMs it's not as painful so you can just ask it to do the hard things.

Example of a Claude Code session after 2 hours of "Crunching" that came out without results https://github.com/mohsen1/tsz/pull/4868 (Edit I force pushed to PR to solve the problem, you can see the initial refuse message in the initial version of PR description)

Funny thing is, the last percent of the test have been so hard to work on that Opus 4.7 routinely bails and says "it's too involved or complicated" so I had to add prompts specifically asking it not to bail.

mohsen1··on Bun's experimental Rust rewrite hits 99.8% test compatibility on Linux x64 glibc
Very impressive that they could do this so quickly because I have been on a similar project (porting TypeScript to Rust) for 5 months. But I guess I don't have access to Mythos and unlimited tokens. I'm also close to 100% pass rate. 99.6% at the time of writing.

https://tsz.dev

Rust is perfect for writing all of code using LLM. It's strict type system makes is less likely to make very dumb mistakes that other languages might allow.

Also want to note that writing the code using LLM doesn't remove the need to have a vision for the design and tradeoffs you make as you build a project. So Jarred and his team are the right kind of people to be able to leverage LLMs to write huge amounts of code.

mohsen1··on OpenAI’s WebRTC problem
I've been using LiveKit which is also WebRTC based and it is super annoying when speed slows down or speeds up at times when connection is not robust. We were using OpenAI's websocket based RealTime audio which was way too slow. So I don't know which one is better. Generally our users like the LiveKit implementation better so maybe WebRTC with enough clever hacks is the answer.

This blog was super insightful for me to understand what are the root problems in the current implementation though.

mohsen1··on Vibe coding and agentic engineering are getting closer than I'd like
More or less. The tsz solver is pure enough (it doesn't know about the AST) that it might be possible to formally validate it. But in my case I am lucky with tsc baseline. Anything that produces different output than tsc is a bug
mohsen1··on GitHub outage: CCR and CCA failing to start for PR comments
I think the same issue from a couple of days ago is resurfaced because I can't see Pull Requests that were opened just minutes ago and merged PRs are still showing in the list: https://github.com/mohsen1/tsz/pulls
mohsen1··on Vibe coding and agentic engineering are getting closer than I'd like
Code is not the goal. What code does is.
mohsen1··on Vibe coding and agentic engineering are getting closer than I'd like
For me, unless there is a concrete way of proving work is correct you can't rely on AI coding. tsz has super strict tests around correctness, performance and architectural boundaries
← PreviousPage 4 of 15Next →