Show HN: Nola – a TypeScript superset where LLM inference is a language feature

Nola is a TypeScript superset (.tsi) where LLM inference is a language feature: ask for typed values or let the model call your code. Lowers to plain TS.
2 points by emykhailenko 42 days ago nola.sh 2 comments
Summary not yet generated for this article.

Original Text

Hi HN, in a world where 100% of code is written by AI (phew, sometimes even 200%), there might still be a small percentage of us who want to write code in a more efficient way, especially when it comes to LLM interaction. I honestly tired converting my existing TS types into JsonSchemas or wrapping a function into tool object with all this bells and whistles around arguments.

And I started experimenting with an idea - how can make LLM integration feels native? How can an LLM become part of the language / compiler, instead of being just one more external API that we have to integrate through yet another SDK?

And I took the async / await / Promise idea as a starting point, ok so: 'async' - defines an asynchronous boundary, 'Promise' - represents an asynchronous intention, 'await' - resolves it.

So I started thinking, what if we could do something similar for LLMs? That led me to create Nola, a TypeScript superset built around three concepts:

'infer' - like `async`, defines the LLM inference context,

'Intent' - encapsulates the data and instructions that will be sent to the LLM,

'ask' - like `await`, resolves the `Intent` into a typed result

Right now, Intent represents two operations: extract the data and call the function (yes native TS function), but more to come soon.

Docs at: https://nola.sh/docs

Thanks for your honest feedback

Comments (2 of ) ⌛

Loading more comments... ⌛
Scroll down to load more comments
No comments available.
Type to search HN and engineering blog articles
Press Escape to close  |  ↑↓ to navigate  |  Enter to open