正在加载视频...

视频加载失败

Announcing Hermes-node Hermes can now run as a standalone CLI with Node.js-compatible APIs - no C++ embedding required. Technically, hermes-node is a Node.js API compatibility layer for Hermes. It ports Node's native bindings (fs, net, http, child_process, etc.) to Node-API and reuses Node's original lib/*.js files, allowing standard Node.js...

77,248 次观看 • 8 个月前 •via X (Twitter)

42 条评论

Jarred Sumner 的头像
Jarred Sumner8 个月前

very impressive Did you do this via implementing v8’s C++ API similar to node-jsc?

Tzvetan Mikov 的头像
Tzvetan Mikov8 个月前

My goal wasn't to drop-in replace v8 in Node, so I went in the opposite direction. I am porting and partially re-implementing Node C++ bindings. So, instead of putting Hermes in Node, I am adding Node modules to Hermes, so to speak. This gives me better control over the architecture and more "ownership" over the result. I am pretty excited about adding sound typing to the Node modules and compiling them natively. End result is potentially almost everything written in typed JS, with very little C++.

Dave Choi 的头像
Dave Choi8 个月前

@jarredsumner What is the perf impact of using modules to interface. Any penalty

Tzvetan Mikov 的头像
Tzvetan Mikov8 个月前

@jarredsumner Sorry, I don't understand the question. Can you elaborate?

Dave Choi 的头像
Dave Choi8 个月前

@jarredsumner I was just asking if there is a performance penalty to doing it with modules instead of swapping out chrome for hermes

Tzvetan Mikov 的头像
Tzvetan Mikov8 个月前

@jarredsumner What do you mean by "modules"?

Dave Choi 的头像
Dave Choi8 个月前

@jarredsumner You said you’re “adding node modules to hermes”. So I’m asking any perf penalty in doing that as opposed to switching chrome to hermes

Tzvetan Mikov 的头像
Tzvetan Mikov8 个月前

@jarredsumner It is hard to say - can't compare performance against a hypothetical. Switching Node to Hermes requires shimming the v8 API, which I haven't looked into.

Guillermo Rauch 的头像
Guillermo Rauch8 个月前

Cool

Jamie Birch 的头像
Jamie Birch8 个月前

Really exciting. In Vladimir's PR to add Node-API support to Hermes, we needed a way to run unit tests from the Node.js repo on Hermes. Vladimir ended up writing a "lite" Hermes Node.js for that (and I contributed child process support for POSIX!). Asking what this means for us.

Marc 的头像
Marc8 个月前

this is amazing

Albert Gao 的头像
Albert Gao8 个月前

Wait, so, a smaller Electron?😍

Roman D 的头像
Roman D8 个月前

Ability to run tests and benchmarks in Hermes directly will be a killer feature.

Florian 的头像
Florian8 个月前

I’ve been waiting for something like this. Will this also work with static Hermes somehow? I.e. can we AOT compile Node.js bindings? (Are they even well typed enough?) Also curious what’s the Meta use case for this..? Or is it more of an open ended exploration / Hermes extension

Tzvetan Mikov 的头像
Tzvetan Mikov8 个月前

I developed it in my free time. Yes, compiling typed .js is very much part of the plan.

kv 的头像
kv8 个月前

int32, int64, float32, float64, shared memory multithreading, static memory layout objects. Small list left for the greatest lang ever.

Ritesh Shukla 的头像
Ritesh Shukla8 个月前

Amazing 🧐

Cal Lavicka 的头像
Cal Lavicka8 个月前

Nice, been wanting this for a while - excited to see where you take it

Asko 的头像
Asko5 个月前

Super excited about this! 🚀 Been following your work on Hermes & Static Hermes for a while coming from Meta and leading the engine that powers React Native, you know exactly what’s missing in the JS runtime space. hermes-node feels like the perfect bridge: fast startup, tiny footprint, native TS support, and real Node compatibility. This has huge potential for CLI tools, edge/serverless, scripts, and even pushing performance further with Static Hermes later. Extremely bullish on this project. Can’t wait to see where it goes and to play with the source. Great work Tzvetan!

Maciej Jastrzębski 的头像
Maciej Jastrzębski7 个月前

@tmikov is there any source or binary to try? 🤩

Tzvetan Mikov 的头像
Tzvetan Mikov7 个月前

Soon. I have been busy with other stuff... 🤷

Hampus 的头像
Hampus8 个月前

Wooow this is really cool 🔥

Nathanael Anderson 的头像
Nathanael Anderson8 个月前

Wow you have been cooking recently! Very impressed.

Mish Ushakov 的头像
Mish Ushakov8 个月前

was waiting for this for years!

Levi Williams 的头像
Levi Williams8 个月前

So cool

Endel 的头像
Endel8 个月前

cool stuff! 👏

Gabriel Moncha 的头像
Gabriel Moncha8 个月前

is there something that Tzvetan can't cook? 🔥

Jeff Scott 的头像
Jeff Scott8 个月前

@grok give me the technical implications of this

Jakov Glavina 的头像
Jakov Glavina8 个月前

@birch_js 👀

Seanghay 的头像
Seanghay8 个月前

Binary size?

Tzvetan Mikov 的头像
Tzvetan Mikov8 个月前

It is literally the first thing shown in the video - 8.8 MB.

Yash Mahajan 的头像
Yash Mahajan8 个月前

Woooh🤯

vedmalex 的头像
vedmalex8 个月前

@grok поясни что тут такого особенного? В чем соль?

Syrus Akbary — eu/acc 的头像
Syrus Akbary — eu/acc7 个月前

This is very nice! And actually a very similar approach in theory of what we did with Edge.js: Would love to bring Hermes into it and collaborate further 🤗

nik 的头像
nik8 个月前

finally

Elves Vieira 的头像
Elves Vieira6 个月前

any news? 🙏

Kræn Hansen 🦋 @kraenhansen.dk 的头像
Kræn Hansen 🦋 @kraenhansen.dk8 个月前

You say it ports Node's native bindings (fs, net, http, child_process, etc.) to Node-API: Is this using Vladimir's / Microsoft's Node-API implementation or did you build that yourself as part of this?

Tzvetan Mikov 的头像
Tzvetan Mikov8 个月前

It is a new implementation. Primarily because the other one wasn't ready to merge, but I also needed better control in order to iterate quickly and be able to easily customize it. I don't know yet which I will end up using. Or perhaps a union of the two.

Kræn Hansen 🦋 @kraenhansen.dk 的头像
Kræn Hansen 🦋 @kraenhansen.dk8 个月前

What's your current view on the questions I raised here? you said the runtime-specific APIs are "specific to Node.js and so they cannot be part of Hermes". Do you no longer consider them out of scope?

Kræn Hansen 🦋 @kraenhansen.dk 的头像
Kræn Hansen 🦋 @kraenhansen.dk8 个月前

I imagine it will defer much of their implementation to the hermes_napi_host in the hermes-node target (and eventually React Native or the react-native-node-api package).

Filas 的头像
Filas8 个月前

1. This doesnt mean those apis would work on react native right? 2. Would those modules work on windows? Or just unix?

Tzvetan Mikov 的头像
Tzvetan Mikov8 个月前

IMHO, RN for desktop would benefit a lot from simply being built on top of this runtime. The situation on mobile is more nuanced because of binary size and trickier integration, but I see benefits there too. However I want to be clear that as of now there are no plans for that. I would welcome such plans. Re Windows: it isn't my focus right now, but there is no reason why it couldn't run there, with some effort.

相关视频

Hermes just made its in-app browser a whole lot more useful. You can now keep multiple browser tabs open inside Hermes Desktop instead of every new page replacing the one you were already using. And that matters more than it sounds. Because this is not just about “having tabs.” It means Hermes can work across multiple pages without forcing you to keep losing your place every time you open the next thing. Research one source, keep it open, open another tab, compare them side by side, and keep moving. Check a few products before buying something. Look at multiple hotel or travel options at once. Keep a YouTube tutorial open in one tab while Hermes looks through docs or another page in the next. And because this lives inside Hermes Desktop, you are not limited to one basic browser view either. You can keep multiple tabs open. You can view two pages side by side. You can stack them top and bottom. You can even run a four-panel view when you want several pages open at once. So the browser inside Hermes is starting to feel a lot more like a real workspace instead of one page you keep replacing. There is also some nice polish that comes with it. Browser tabs now label themselves based on the page, and the address bar behaves more cleanly while pages are loading. And remember, this is the same in-app browser Hermes can already read, click through, type in, scroll, and annotate. So this is not just a prettier browser. It is a more capable workspace for the browser Hermes is actually using. If Hermes is going to do more of your work on the web, this is exactly the kind of browser upgrade it needed.

Hermes Release Watch

52,859 次观看 • 2 个月前

HERMES AGENT WITHOUT TOOLS IS A CHATBOT. WITH THEM IT BUILDS 3D TOWERS IN BLENDER, CHECKS STOCK PRICES, AND DRIVES VS CODE. tonbi JUST DROPPED THE FULL GUIDE. module 6 of his 10-part Hermes masterclass. best breakdown of the tool layer anyone has published. what you need to know: TOOLS vs SKILLS vs MCP skills = instructions (markdown, loaded into context) tools = callable functions (Python, agent emits call, Hermes executes) MCP = adapters to external systems (Blender, Stripe, Linear, Notion) every tool has three parts: → the function (does the real work) → the schema (what the model sees to decide when to call it) → the registry (makes the tool exist in the agent) the model never runs the function directly. it emits a structured request (tool name + JSON args). Hermes executes and returns the result. if the tool fails, the error goes back as JSON. the agent recovers instead of crashing. TOOL SETS CONTROL THE SURFACE hermes chat --tool-sets web # only web tools loaded. no files, no terminal. hermes chat --tool-sets safe # read-only: web search, vision, image gen. # no file writes. no terminal. no code execution. mid-session: /tools enable video /tools disable terminal or toggle in the dashboard: hermes dashboard → Skills → Tool Sets MCP SERVERS two transport types: STDIO (local subprocess) or HTTP (remote endpoint). add a server: hermes mcp # or ask: "add the MCP server for Blender" filter tools with include/exclude per server. keep only what you trust. security: → OAuth 2.1 PKCE (no long-lived tokens in config) → package scanning via api.osv. dev before launch → all MCP calls go through approval gates HERMES AS MCP SERVER hermes mcp serve exposes 10 tools via FastMCP. connect VS Code Copilot or Cursor to your running Hermes instance. BUILD YOUR OWN TOOL He built a stock price tool live: → Python function calling Finnhub API → schema with name, description, parameters → registered in tool_sets.py → agent calls it automatically when relevant any repeating API call in your workflow can become a native tool. full Hermes architecture deep-dive in the article 👇

YanXbt

32,680 次观看 • 4 个月前