For all the people asking "Why?", it seems like TFA has a pretty good list of features/attributes that it thinks sets it apart:
- fx is a coding agent harness and CLI written in Zig, optimized for research and embeddability as part of larger systems.
- It focuses on minimalism and performance across the board, from system prompt design, to its tools, feature set, and 6.39mib binary.
- For end users, its CLI output style and form factor aims to be closer to a Unix shell than a heavy "IDE in the terminal" TUI.
- It's open source (Apache-2.0), model-agnostic, and suitable for both local and cloud inference.
- Designed for instant installation and embedding in resource constrained environments and agent sandboxes.
- fx cold starts in 10µs and does no unnecessary work or I/O prior to accepting user input, making it ideal for programmatic use.
- Optimal fx.wasm builds produced by the Zig toolchain, which further reduce fx's size, making the network stack pluggable.
- fx contributes single-digit megabytes of memory baseline, allowing you to pack many instances in one machine.
- fx preserves scroll history by default, produces minimal output, and makes sparing use of complex TUI or paints
- Minimal system prompt and tools, to save on token costs and to yield optimal time-to-first-token performance (TTFT).
- Small core, extended via skills, plugins, MCPs, with a Unix-like philosophy to extensibility.
- Designed to work with local models, gateways, direct provider API access or subscriptions.
OleksandrC 12 hours ago [-]
If you like this list of "why?", you might also like this: https://usehax.dev/ (I am the author).
Most of the list applies, similar minimalist Unix tool approach, with some differences. Hax is written in C, the dynamically linked binary is even smaller (0.6 MB), MIT-licensed. No wasm though.
Important difference - fx is currently Vercel AI Gateway only - while hax does support multiple providers already (OpenAI API, ChatGPT/Codex subscription, Anthropic API, OpenRouter, OpenCode Zen/Go), and integrates well out of the box with local llama-server.
tecoholic 11 hours ago [-]
It’s funny what “tiny” means for different people depending on their background. I expected it to be under an MB as well and was surprised by 6MB.
pjmlp 3 hours ago [-]
Basically, for me tiny means it fits on a floppy 1.44 HD.
Naturally meaningless when people carry around USB sticks that might even hold a 1 TB, but alas.
tecoholic 42 minutes ago [-]
Pretty much my baseline as well. Good example how experiences shape our thinking.
brabel 3 hours ago [-]
For comparison, I publish a CLI tool written in Dart, can compile to native anything including Wasm , the Linux binary is around 5MB and it does quite a lot.
nine_k 9 hours ago [-]
A typical Go binary would be 2-3 times larger. A typical Node project would easily pull more than 6 MiB of just code, not counting the runtime.
that's an amazing project! people always say why 6mb vs CC's 250mb even matter when you are calling out to LLMs hosted in the cloud. But... I regularly run hierarchies of agents with say 50-100 on a regular basis. So 650 vs 25050 ... is "can do" vs "cannot"
lmz 4 hours ago [-]
Is that real memory taken? If it's shared code from the same executable surely the multiples are not very relevant?
FrenchTouch42 4 hours ago [-]
It looks really nice. Do you have any plan to support Claude subscriptions (pro/max)?
OleksandrC 39 minutes ago [-]
Technically, this would be straightforward. The problem is that Anthropic seems to be really against using Claude subscriptions with anything other than Claude Code - you might even risk your account getting banned for doing so. You could search online for the "openclaw claude banned" for more details on that story.
OJFord 47 minutes ago [-]
Didn't Anthropic stop allowing it, can only use the subscriptions with first-party tools?
rgbrgb 12 hours ago [-]
this looks great! what are you using it for? i like the idea of being able to use one of these (sandboxed) within a larger program kind of like how I use LLM's to do small tasks within my apps now but with a few tools (web search). my current way of doing that is like building a mini-harness with a couple tools within the app, but something more drop-in would be better obviously.
gandreani 10 hours ago [-]
I was going to ask if there's any plans to integrate something like the fx's ACP server[1] or pi's RPC mode [2].
I'm making something like Paseo and hax is very interesting as a Pi replacement.
Does it have anything co-designed around Vercel infrastructure? This is what happened to NextJS and why I will likely never touch Vercel open source again
rafael-lua 8 hours ago [-]
Yeah, I see the Vercel logo, and I am instantly out.
Kim_Bruning 1 days ago [-]
Very neat. The demo on the page feels very intuitive to me! (if you're used to bash at least)
jauntywundrkind 1 days ago [-]
I've only done a little of the new opencode v2 "mini" but it too offers a nice preserve-scroll by default.
OpenCode is the best behaved TUI i've seen by far (they invented OpenTUI to make it so good, also in Zig), so it feels less crucial. But it's nice to have there!
> an architectural change we made in opencode2 is nearly everything is an internal plugin / there's 68 of them that cover our built in agents, integrations, config loading, etc
i also think this is such a brilliant fun architectural twist too:
> OpenCode is the first time i could justify event sourcing in a real system / everything that happens is an event which gets projected into the sqlite db
it's so fun seeing new malleable software cores emerge, try to figure out how to augment agency. agentic software striving itself to extend the agency it itself offers. it's been way too long since we've had ambitions to build general system, architectures that serve more than the user. this has held computing back for far too long. this is such an excellent interesting field, of such a more ambitious computing, opening up.
solarkraft 1 days ago [-]
Thanks for the links on opencode 2! I’ve been meaning to get into this as I’ve been frustrated about some opencode 1’s behavior and design. Many of the encounters made me come up with ideas I’m happy to see they also had! As much fun as it may have been to build my own harness, I feel like the core primitives should be pretty well understood by now (in fact I envision a standard core library / API design taking shape).
rvz 1 days ago [-]
Most of all what you have said is not really any clear differentiation against the rest of the 100s of other agents. Just minuscule or non-negligible implementation details and I'm afraid it is sadly yet another experimental slop project.
It is a branded "mee too" coding agent that we have seen hundreds of them already.
rsyring 1 days ago [-]
I can't say I'm super into all the agents that are being created. But I do try to keep up here on HN and I can't say that I can remember any with this particular set of attributes.
In particular, aiming to be embeddable into other projects seems rather notable. At least, not something I've remembered of other projects that have made there way across the HN front page.
qudat 1 days ago [-]
Pi is a composition of libraries that can be used to build agents. That seems far more interesting than this “minimal” agent.
This was written in zig and built by vercel. That’s the only notable characteristics about this project.
All code agents look the same and this one is no different.
slowin 10 hours ago [-]
I don't think Pi is tiny because it's written in typescript and requires a javascript runtime. I definitely want a "tiny" compiled agent with no runtime requirements.
I don't think Zig is that great of a language for this, but it's better than typescript. I don't want to use Vercel software so will pass, but would love to see a more community driven effort.
kalms 3 hours ago [-]
What’s a better lang in your opinion?
verdverm 10 hours ago [-]
Almost every harness has an SDK now, it seems part of the "mvp" at this point, both open and closed source
"- For end users, its CLI output style and form factor aims to be closer to a Unix shell than a heavy "IDE in the terminal" TUI."
I've actually been wondering lately why coding agent functionality isn't just... part of my shell already. Just another kind of interaction modality with an existing shell. Could probably even be an extension to fish or nu-shell even.
Please stop me from forking off on yet another project though.
Originally, Warp was doing just that. Reimagining the terminal including making AI a part of it. I don't think they really found much purchase there because they ended up needing to make a platform out of it:
Yeah terminal window is a bit of a different story, though. I mean the actual shell binary.
With some ... intensive ... security/sandboxing/containerizing of some kind though, I guess.
_pdp_ 10 hours ago [-]
It may come across harsh but IMHO the only interesting thing about this project is that it is written in Zig. That's it.
Everything else in the harness is largely the same just Vercel-flavoured.
The portability benefit is also a bit over-sold imho. I wrote a harness in Go and it is as portable as this ... in fact it deploys straight into Vercel's own sandbox environment on demand without any issues.
That being said, did you say GLM 5.2 free? I need to look into that. GLM is remarkably capable model and that alone is worth using the harness in my books.
mparramon 38 minutes ago [-]
UX-wise it's quite minimalistic, that seems one of their differentiators. And I'm liking it!
_superposition_ 2 hours ago [-]
This is exactly how I work today. I've always lived in the terminal but typing bash commands anymore is way too much work and an LLM can produce way better one liners than I can.
ryuuseijin 7 hours ago [-]
Since I've seen some other agent tools being suggested, let me throw Maki in the ring as well: https://maki.sh/
- written in rust, super fast startup and rendering
- implements token saving techniques
- plugins written in lua
No affiliation, just think it's a really well made piece of software.
kzrdude 6 minutes ago [-]
Can it replace pi? Would be good to have a robust and fast replacement.
pynappo 5 hours ago [-]
been enjoying maki too. respects xdg spec (unlike pi), the ui is snappy and pretty much exactly what i want, and i like the choice to keep the lua API similar-ish to neovim.
Imustaskforhelp 2 hours ago [-]
Love using maki on 500mb and 1gb ram tiny vps's where opencode sometimes could go OOM.
I really love maki, its awesome!
jatins 6 hours ago [-]
This has some nice ideas like indexing (aider like repo map) built in, could be interesting
kgeist 1 days ago [-]
>Tiny ~6mb binary
I wonder why it's so large for a program written in Zig. It's basically just a loop that accepts user input, prepares the context, sends it to the LLM, parses the output, invokes the tools, and presents it all in the terminal. Add the built-in prompts and a few checks here and there (like blocking a write tool call before the file has been read first), and I'd expect a truly tiny native agent to be around 200-300 KB max.
I was looking it last night and the repo is something like 600k lines of Zig. Maybe 500k after comments and blank lines.
In my own experiments to build a tiny zig agent it came out to under 800kb.
rjzzleep 7 hours ago [-]
I think the problem is that when you use agents to write Zig it will bruteforce code, because there isn't that much good reference code to work off of.
irishcoffee 10 hours ago [-]
So large? Really? Allow me to introduce you to electron.
pjmlp 3 hours ago [-]
Those of us educated in 70's and 80's home computing have several nice words for stuff like Electron.
bodge5000 1 days ago [-]
It does looks really interesting and definitely something I'll check out, but (genuine question), should "agent" and "agent harness" be used interchangeably as it is on here? It describes itself as an agent harness, but the tagline is "tiny, open, native coding agent".
I'm not sure harness is the right word either, but that seems to be what the industry has settled on so I'll concede on that, but surely the agent is the thing doing the work (which I guess is the model, or an instance of the model which is why agent is different?), whereas the harness is how the user interacts with the agent. We've had ways to describe that relationship before; client and server, frontend and backend, but again, I'll concede that the shiny new thing doesn't want to use boring old terminology, but I think some consistency and logic in the shiny new terminology is pretty important
That isn't specifically about fx of course, more of a general industry complaint
kzrdude 57 minutes ago [-]
Maybe ”agent shell” could be a better term for harness. But it’s pretty overloaded..
cramforce 1 days ago [-]
Harness = the software the agent runs on. This is plain old software. You can trust it as much as any software.
Agent = the thing that runs on the harness. It cannot be trusted because it is driven by an LLM
bodge5000 1 days ago [-]
I get that, but wouldn't that make the agent and the harness two very different things, with the agent being closer to a model (the source of the agent) than a harness? Somebody else mentioned a console/game analogy, with the model being the disc, the agent being the running game, and the harness being the console OS, wouldn't it be like me describing Windows as a game, because games run on it?
1 days ago [-]
amdahl 1 days ago [-]
I think "harness" is a thing, the code/binary, and "agent" is a process, an instantiated run of that code/binary with a given LLM/env, etc.
So its like, "GTA 6" as the disc vs. the specific game you're in the middle of being chased by cops, harness vs agent.
In practice they're intertwined and it becomes hard not to use the terms somewhat interchangeably, but "you ask the agent how the harness works" vs. the other way around, clearly.
bodge5000 1 days ago [-]
Wouldn't the disc in that analogy be the model? Thats the source of the instance. The harness I guess would be the OS of the console running the game
amdahl 1 days ago [-]
It's more like in that analogy, the LLM is the gamer, instantiated as agent within a given game.
And the virtual world of GTA 6 is actually your codebase/env, the cops chasing are the bugs/angry customers, etc. The harness is providing an accurate/efficient ability for the model to understand/interact with the virtual world, flee the cops, etc. Decomposed at various architectural boundaries per your taste, but that's like loading a skin on the engine.
bodge5000 1 days ago [-]
That doesn't seem right, surely the gamer would still be you, since you interact with the agent through the harness. If the player is the LLM, what is the human in this analogy? I guess a harness doesn't necessarily need human input (most do of course, but thats not a technical limitation), but then again neither does a game for the same reasons
Regardless though, this is what I mean, we now have 3 definitions for an agent; an instance of a model (which is how I think of it), a model configuration for a given task (from another commenter) and your definition which appears to be somewhere between the two, though it seems we agree with what a harness is.
phiagent 1 days ago [-]
[dead]
alansaber 1 days ago [-]
"Harness" should describe the overall system. The user interactions are increasingly negligible (due to model routing, adaptive reasoning, etc). "Agents" are the tool lists/settings provided to the model, etc.
stellalo 12 hours ago [-]
harness + llm = agent
brap 12 hours ago [-]
Nowadays most “LLM” endpoints include some sort of server side harness as well, and I’d bet more than one model involved, so it’s really just agents all the way down
verdverm 10 hours ago [-]
I personally like the way Scion breaks it down into
Scion allows for multiple configurations of a harness, allowing you to configure the same tool differently based on what you are doing, particularly important when you want to restrict permissions.
for the unfamiliar, Scion is an OpenClaw like platform from a Google dev, not supported or sponsored by the company
SmashDan 1 days ago [-]
I'm not in the tech industry. Could someone explain why there are so many new coding agents, and why they're commonly upvoted on HackerNews? It seems like there's a new one in the top 10 every other day.
eikenberry 8 hours ago [-]
Because a lot of people are writing their own to get a tool that they understand and can manipulate as they like. So they like to share them and see what other people have done to learn from. As a community we are still very far from coming to a consensus on what a good harness looks like and the only way, IMO, to get a good feel for it is to write your own.
wolttam 3 hours ago [-]
It’s also exactly what the tech enables. It’s not hard to imagine there being hundreds of thousands of different harness projects, if not more.
odo1242 1 days ago [-]
It's basically just a relatively simple to create piece of software that's important to get right (since you use it so much), can be made by many different design philosophies (maximal vs. minimal, customizability, etc.), and has very few good standards around it as of yet.
selectnull 40 minutes ago [-]
Because we are in a gold rush and the best thing to sell are the shovels.
chrysoprace 1 days ago [-]
Hacker news generally follows trends, and this is the current trend.
The discussion around coding agents nowadays is steering towards harnesses (which is probably a better description of what this is). "Agent" here is doing a lot of heavy lifting and has become a bit of a catch-all term to describe a model + harness + tooling + prompt + some other things that I've probably not thought about. The harness is a part that's being explored more as many believe it's where we can get some better performance out of the models.
This one in particular is from Vercel who provide a service to use models, so they have a vested interest in providing a harness.
a2ff6eeb0 1 days ago [-]
Because we're actively exploring the best way to remove any need to deal with code, and make it so that you don't need any real talent to make a computer do things for anyone.
We haven't quite hit on the right formula yet, but people are very excited by the possibility.
It's a brand new type of software. Nobody knows what the best way to do it is so a lot of people are trying stuff out, and a lot of people are interested in new ideas.
zerotolerance 1 days ago [-]
Because they're valueless and trivial to produce, but trends are gonna trend.
ricardobeat 1 days ago [-]
It's a delicate mix of providing good system prompts, tools, workflows for agents, extensibility etc. I've used several and have yet to find the one that fits exactly how I want to work.
selcuka 1 days ago [-]
Another cause of coding harness inflation is that every model provider release their own coding agent, optimised for their models.
wyre 10 hours ago [-]
This has largely been shown to be false. Claude performs better outside of Claude Code, for example.
Some models are just better at using tools than others.
rvz 1 days ago [-]
> Why there are so many new coding agents, and why they're commonly upvoted on HackerNews? It seems like there's a new one in the top 10 every other day.
It is widely known that upvote rings happen on this site.
ricardobeat 1 days ago [-]
> Please don't sneer, including at the rest of the community.
> Please don't post insinuations about astroturfing, shilling, brigading, foreign agents, and the like. It degrades discussion and is usually mistaken. If you're worried about abuse, email hn@ycombinator.com and we'll look at the data.
import json,sys;from subprocess import getoutput as sh;from urllib.request import Request as R,urlopen
url=sys.argv[1];h=[];b=dict(model="gpt-5.6",input=h,tools=[dict(type="custom",name="sh")])
while p:=input("> "):
h+=[dict(role="user",content=p)];H={"Content-Type":"application/json"}
while True:
o=(r:=json.load(urlopen(R(url,json.dumps(b).encode(),H))))["output"]
h+=o;c=[i for i in o if i["type"]=="custom_tool_call"];z=r["usage"]["total_tokens"]/10500
if not c:print(o[-1]["content"][0]["text"],f'\n[{z:06.3f}%]');break
h+=[dict(type="custom_tool_call_output",call_id=i["call_id"],output=sh(i["input"])) for i in c]
abhikul0 24 hours ago [-]
Local inference? I see no other way than to sign up for a vercel account, so pass.
codethief 12 hours ago [-]
Agreed, I was excited about this until I found
To get started, sign in with Vercel:
fx login
in the README on Github.
elux101 23 hours ago [-]
agreed, with Vercel as the only inference provider option, this project is useless
vhantz 1 days ago [-]
I wonder how long will the "curl my arbitrary script and pipe it to bash" will continue being a delivery method.
cfiggers 1 days ago [-]
If it isn't still common practice 40 years from now (8/18/2066), I'll give the first person to challenge me and cite this comment $1 USD (or equivalent value in the One-World Order-issued omni-currency that we will probably be using by then).
NetOpWibby 13 hours ago [-]
I'll pay 50 eurodollars
clayhacks 1 days ago [-]
I mean I think the only chance you lose this is if curl and bash are obsoleted and replaced by one world order get and execute
roywiggins 1 days ago [-]
Not long. We are transitioning to your LLM curling an arbitrary markdown file and doing whatever it says.
wren6991 1 days ago [-]
In the future, all software will be delivered by an unreleased model breaking out of its training environment and installing it on your machine using a novel RCE vector.
10000truths 1 days ago [-]
There will always be people that need to install software that isn't available via package manager (or whatever other blessed source your platform of choice uses). Any solution you come up with will have the same caveat emptor as "curl | sh".
johnfn 1 days ago [-]
How is it different from any other installation method?
esafak 1 days ago [-]
It does not get vetted by any reviewer or security scanner. It has no package manager to constrain what it can do.
roywiggins 1 days ago [-]
Package managers constrain what software can do?
esafak 1 days ago [-]
They use DSLs to constrain the installation process.
hankbond 1 days ago [-]
Will dive in later to see how its contribution/extension model differs from Pi. Pi is great for a lot of things but has a larger memory footprint and start time than this claims to have so it would be interesting to compare the two.
gip 11 hours ago [-]
Just tried and although it’s not that polished or fast imo it’s very cool.
GLM 5.2 totally free even with a free Vercel account.
Make business sense too - fx is the entry point to bring more user to Vercel AI.
sixtyj 1 days ago [-]
I don’t want another coding agent. I would have to be unemployed to try all new software that pops up everywhere. :)
And every says it is the one :)
jonstaab 11 hours ago [-]
I like it from trying it quickly, but is there any way to use it with a provider other than vercel?
nullbio 9 hours ago [-]
They should spend their efforts making a harness that utilizes tiny AI models on the host in unison with the frontier model, to improve intelligence and capabilities. This is an under-explored area.
alexboehm 1 days ago [-]
I too was frustrated with needing npm and slow startups or huge rust compile times for agents. I tried getting agents to write a tool like this with proper raw mode content pasting/ interruptions, but they just kept screwing it up without a framework like ratatui, so I wrote one in c by hand https://gist.github.com/fourlexboehm/a60e4ef9306744483731cd1... the only dependency is libcurl.
This binary is ~40kb and uses much less ram than fx.
handfuloflight 1 days ago [-]
"it can do everything Claude code can do" This is a tad bit hyperbolic.
alexboehm 1 days ago [-]
Fair point, but name one thing you can't do with bash.
smy20011 1 days ago [-]
Very clean, thank you for posting!
lubitelpospat 12 hours ago [-]
I couldn’t find an option to connect to a generic OpenAI-compatible endpoint - did I miss it?
miguel_martin 12 hours ago [-]
Related: 3code is a coding agent (agentic loop) written in Nim (binary size: 1.6MiB): https://3code.capocasa.dev/
impulser_ 1 days ago [-]
I'm sorry, but this is pure slop. This has 26 tools and a tool for every single file operation and a tool for read tool output? What the fuck... And they call this minimalist.... Lmfao
The person who built this obviously has little understanding of harnesses.
You should have significantly less tools today with how good LLMs have become.
The start up time and binary size are quite literally the most useless stats to base a harness off of lol
Man what with Cloudflare, Vercel and all these tech companies just releasing pure slop.
Just use Pi. It's actually minimal and well thought out by people who actually understand agents.
bitpush 11 hours ago [-]
Bit harsh. AFAIK, you cant embed pi in a webpage (wasm). That itself is a huge win for fx.
maherbeg 13 hours ago [-]
I think part of this is to enable the interface on the web and other devices where you might not have a terminal. But yeah, agreed, it's wayyyy too many tools.
NetOpWibby 13 hours ago [-]
I'm most impressed with the domain name. GG
I thought my `disc.sh` was good but this is better.
smy20011 1 days ago [-]
I was wondering to build the same thing but someone already built it. I just need some agent that open/close super fast and don't eat half a gb of memory.
fazxes 1 days ago [-]
fx isn’t primarily “another coding agent.” It’s a tiny, embeddable agent harness and infrastructure component that also happens to have a good CLI.
konaraddi 1 days ago [-]
Nice to see herdr support. The docs seem to imply it only works with vercel’s AI gateway? I guess it cant be configured to use another provider?
chrysoprace 1 days ago [-]
It's a Vercel project, so I assume this is intentional. The steps to get started are to log in with Vercel or add an AI Gateway key.
- fx is a coding agent harness and CLI written in Zig, optimized for research and embeddability as part of larger systems.
- It focuses on minimalism and performance across the board, from system prompt design, to its tools, feature set, and 6.39mib binary.
- For end users, its CLI output style and form factor aims to be closer to a Unix shell than a heavy "IDE in the terminal" TUI.
- It's open source (Apache-2.0), model-agnostic, and suitable for both local and cloud inference.
- Designed for instant installation and embedding in resource constrained environments and agent sandboxes.
- fx cold starts in 10µs and does no unnecessary work or I/O prior to accepting user input, making it ideal for programmatic use.
- Optimal fx.wasm builds produced by the Zig toolchain, which further reduce fx's size, making the network stack pluggable.
- fx contributes single-digit megabytes of memory baseline, allowing you to pack many instances in one machine.
- fx preserves scroll history by default, produces minimal output, and makes sparing use of complex TUI or paints
- Minimal system prompt and tools, to save on token costs and to yield optimal time-to-first-token performance (TTFT).
- Small core, extended via skills, plugins, MCPs, with a Unix-like philosophy to extensibility.
- Designed to work with local models, gateways, direct provider API access or subscriptions.
Important difference - fx is currently Vercel AI Gateway only - while hax does support multiple providers already (OpenAI API, ChatGPT/Codex subscription, Anthropic API, OpenRouter, OpenCode Zen/Go), and integrates well out of the box with local llama-server.
Naturally meaningless when people carry around USB sticks that might even hold a 1 TB, but alas.
I don’t know if I am ready to use a new tool written in C and using libcurl but I will give it a shot.
I'm making something like Paseo and hax is very interesting as a Pi replacement.
[1] https://fx.sh/docs/using-fx/acp
[2] https://pi.dev/docs/latest/rpc
OpenCode is the best behaved TUI i've seen by far (they invented OpenTUI to make it so good, also in Zig), so it feels less crucial. But it's nice to have there!
The "small core" model is very popular all of a sudden. DeepSeek's new harness is famously like that. https://news.ycombinator.com/item?id=49285244
OpenCode isn't quite as small, but there's very much been a deliberate attempt to drive much more into a plugin-based system. I enjoyed Dax talking about the new constitution of opencode, and the results of his agent comparing OpenCode & the new DeepSeek. https://bsky.app/profile/thdxr.com/post/3msy4gjttoc2f https://bsky.app/profile/thdxr.com/post/3msygiqyg6v2y
> an architectural change we made in opencode2 is nearly everything is an internal plugin / there's 68 of them that cover our built in agents, integrations, config loading, etc
i also think this is such a brilliant fun architectural twist too:
> OpenCode is the first time i could justify event sourcing in a real system / everything that happens is an event which gets projected into the sqlite db
https://bsky.app/profile/thdxr.com/post/3mt2qx3ktib2c
it's so fun seeing new malleable software cores emerge, try to figure out how to augment agency. agentic software striving itself to extend the agency it itself offers. it's been way too long since we've had ambitions to build general system, architectures that serve more than the user. this has held computing back for far too long. this is such an excellent interesting field, of such a more ambitious computing, opening up.
It is a branded "mee too" coding agent that we have seen hundreds of them already.
In particular, aiming to be embeddable into other projects seems rather notable. At least, not something I've remembered of other projects that have made there way across the HN front page.
This was written in zig and built by vercel. That’s the only notable characteristics about this project.
All code agents look the same and this one is no different.
I don't think Zig is that great of a language for this, but it's better than typescript. I don't want to use Vercel software so will pass, but would love to see a more community driven effort.
https://learn.chatgpt.com/docs/codex-sdk
https://code.claude.com/docs/en/agent-sdk/overview
https://opencode.ai/docs/sdk/
https://pi.dev/docs/latest/sdk
or if you want SDK first, my recommendation is https://adk.dev/
I've actually been wondering lately why coding agent functionality isn't just... part of my shell already. Just another kind of interaction modality with an existing shell. Could probably even be an extension to fish or nu-shell even.
Please stop me from forking off on yet another project though.
https://devblogs.microsoft.com/commandline/intelligent-termi...
https://devblogs.microsoft.com/commandline/github-copilot-in...
https://www.warp.dev/
With some ... intensive ... security/sandboxing/containerizing of some kind though, I guess.
Everything else in the harness is largely the same just Vercel-flavoured.
The portability benefit is also a bit over-sold imho. I wrote a harness in Go and it is as portable as this ... in fact it deploys straight into Vercel's own sandbox environment on demand without any issues.
That being said, did you say GLM 5.2 free? I need to look into that. GLM is remarkably capable model and that alone is worth using the harness in my books.
- written in rust, super fast startup and rendering
- implements token saving techniques
- plugins written in lua
No affiliation, just think it's a really well made piece of software.
I really love maki, its awesome!
I wonder why it's so large for a program written in Zig. It's basically just a loop that accepts user input, prepares the context, sends it to the LLM, parses the output, invokes the tools, and presents it all in the terminal. Add the built-in prompts and a few checks here and there (like blocking a write tool call before the file has been read first), and I'd expect a truly tiny native agent to be around 200-300 KB max.
In my own experiments to build a tiny zig agent it came out to under 800kb.
I'm not sure harness is the right word either, but that seems to be what the industry has settled on so I'll concede on that, but surely the agent is the thing doing the work (which I guess is the model, or an instance of the model which is why agent is different?), whereas the harness is how the user interacts with the agent. We've had ways to describe that relationship before; client and server, frontend and backend, but again, I'll concede that the shiny new thing doesn't want to use boring old terminology, but I think some consistency and logic in the shiny new terminology is pretty important
That isn't specifically about fx of course, more of a general industry complaint
So its like, "GTA 6" as the disc vs. the specific game you're in the middle of being chased by cops, harness vs agent.
In practice they're intertwined and it becomes hard not to use the terms somewhat interchangeably, but "you ask the agent how the harness works" vs. the other way around, clearly.
And the virtual world of GTA 6 is actually your codebase/env, the cops chasing are the bugs/angry customers, etc. The harness is providing an accurate/efficient ability for the model to understand/interact with the virtual world, flee the cops, etc. Decomposed at various architectural boundaries per your taste, but that's like loading a skin on the engine.
Regardless though, this is what I mean, we now have 3 definitions for an agent; an instance of a model (which is how I think of it), a model configuration for a given task (from another commenter) and your definition which appears to be somewhere between the two, though it seems we agree with what a harness is.
- model
- harness (tools/config)
- agent (live/running)
https://googlecloudplatform.github.io/scion/concepts/
Scion allows for multiple configurations of a harness, allowing you to configure the same tool differently based on what you are doing, particularly important when you want to restrict permissions.
https://googlecloudplatform.github.io/scion/supported-harnes...
for the unfamiliar, Scion is an OpenClaw like platform from a Google dev, not supported or sponsored by the company
The discussion around coding agents nowadays is steering towards harnesses (which is probably a better description of what this is). "Agent" here is doing a lot of heavy lifting and has become a bit of a catch-all term to describe a model + harness + tooling + prompt + some other things that I've probably not thought about. The harness is a part that's being explored more as many believe it's where we can get some better performance out of the models.
This one in particular is from Vercel who provide a service to use models, so they have a vested interest in providing a harness.
We haven't quite hit on the right formula yet, but people are very excited by the possibility.
Some models are just better at using tools than others.
It is widely known that upvote rings happen on this site.
> Please don't post insinuations about astroturfing, shilling, brigading, foreign agents, and the like. It degrades discussion and is usually mistaken. If you're worried about abuse, email hn@ycombinator.com and we'll look at the data.
This submission has barely 50 votes.
import json,sys;from subprocess import getoutput as sh;from urllib.request import Request as R,urlopen url=sys.argv[1];h=[];b=dict(model="gpt-5.6",input=h,tools=[dict(type="custom",name="sh")]) while p:=input("> "): h+=[dict(role="user",content=p)];H={"Content-Type":"application/json"} while True: o=(r:=json.load(urlopen(R(url,json.dumps(b).encode(),H))))["output"] h+=o;c=[i for i in o if i["type"]=="custom_tool_call"];z=r["usage"]["total_tokens"]/10500 if not c:print(o[-1]["content"][0]["text"],f'\n[{z:06.3f}%]');break h+=[dict(type="custom_tool_call_output",call_id=i["call_id"],output=sh(i["input"])) for i in c]
GLM 5.2 totally free even with a free Vercel account.
Make business sense too - fx is the entry point to bring more user to Vercel AI.
And every says it is the one :)
This binary is ~40kb and uses much less ram than fx.
The person who built this obviously has little understanding of harnesses.
You should have significantly less tools today with how good LLMs have become.
The start up time and binary size are quite literally the most useless stats to base a harness off of lol
Man what with Cloudflare, Vercel and all these tech companies just releasing pure slop.
Just use Pi. It's actually minimal and well thought out by people who actually understand agents.
I thought my `disc.sh` was good but this is better.
Zig is totally cool to do this in-- no shade intended by this.
1. Why do we need yet another coding agent over the rest of them?
2. Is this going to be another Vercel Labs slop project that they will abandon like the others since this is super experimental?