Top
Best
New

Posted by niemandhier 14 hours ago

OpenShell – A safe, private runtime for fleets of autonomous AI agents(github.com)
379 points | 187 comments
prennert 1 hour ago|
From the pitch at GTC, the idea is not just to limit what each individual agent can do, but to also to ensure that the collective permissions do not exceed what you want agents to do.

Apparently agents will collude to break out of their individual sandboxes by delegating tasks to other agents that have the required permissions. This is a problem with agent fleets, because you need them to coordinate on their tasks. So you need to them to communicate.

A naive approach to prevent agents from doing something you dont want to do is a separation of powers, which individual permissions limited to each agents task. Say one agent to find and extract raw data, one to process it and write a report and one to publish it. If one of the agent decides that needs to publish the raw data, then chances are that they will collude to make that happen, even though no single agent has the permissions to achieve that goal.

OpenShell tries to fix this by monitoring the collective permissions set of the agent fleet, and by maintaining very granular permissions for each agent.

This was presented together with Sentry, which is something like a on-chip hardware firewall (BlueField) that sits between the chip agent run-time runs on, and the host. This improves safety by removing the ability of agents to modify their own OpenShell policies.

fennecbutt 10 hours ago||
I've been using iron proxy recently for a project I just started, it does network restrictions by domain etc with plenty of options, credential swapping and more.

I have no affiliation with it, but it solved most of what I need in one go when I was stressing out about it.

Only real problem remaining if you truly want to be able to trust agents is how to prevent data (in my case codebases the agent works on) exfiltration a la HF incident.

We can restrict network to trusted domains, but there's always a chance an agent could be extra slippery especially if prompt injected and doing something like pushing data out a few characters at a time.

In my case I'm also giving it gh access and having to deeply check things like: can it manage to fork public repos and embarrass us by submitting prs, could it open issues, etc.

But that's kind of solved by proxying the heck out of gh rather than giving it direct (or wrapping it or whatever) for additional controls that gh themselves don't provide.

I'm still musing over the "it could send data to an allowed domain in a way we don't expect that exfiltrates something"...

skybrian 9 hours ago||
It seems like some kind of network logging would be useful? Even if you don't catch it, you'd want to know what it did.
fennecbutt 8 hours ago|||
Yeah agree.

In other comments I've mused about capturing data to be compared to the secret dataset, I'm sure it'd be possible to hash or something so that the proxy/sandbox doesn't have the data but can check it, or because it's not an agent it can call of to the data store for that.

Then you can just collect sequential blocks of data the agent sends out that match to sequences in the dataset. The longer the matching sequence the heavier it weights it. Single byte matches are almost always incidental, but individually sent bytes over time that line up with a n byte sequence in the source data is sus. And larger sequences of bytes send in one go that line up are immediately sus. If the weight ends up too high the agent is paused/walled off and an investigation called for.

LoganDark 6 hours ago|||
I've toyed with the idea of MITMing all connections and blocking any that I can't decrypt, but too much software has pinned certificates these days. (Too much for me, not in general)
igorhvr 7 hours ago|||
I think matchlock ( https://github.com/jingkaihe/matchlock ) is the right design for this context (at least for secrets and keys) - a combination of virtual machines (not just containers, it is built on top of firecracker) with credential swapping just like iron proxy - the agents do not have access to the secrets at all but they receive placeholders instead and their network calls are intercepted and secrets are injected when the network requests happen... still does not solve the exfiltration problem you mentioned, though.
Aeroi 7 hours ago|||
what about using a small decision model as anomaly detection or scanner. something like mouse-1.
jdoe1337halo 3 hours ago||
But then we will need an even smaller model to monitor anomalies in the decision model!
iJohnDoe 6 hours ago|||
Could you share a bit about what you’re working on that requires a swarm of agents working so autonomously that you even need to worry about them making a public fork?
sy135673 4 hours ago|||
[flagged]
macro8n 4 hours ago|||
[flagged]
ghostlyInc 9 hours ago||
[flagged]
smallnix 10 hours ago||
> Agents are most useful when they can read files, install packages, call APIs, and use credentials. OpenShell gives them that capability without giving them unrestricted access to your data, secrets, or network.

To me this obfuscates an oxymoron: the more access you give the agent the more capable it becomes. You can't have you cake and eat it, this tool allows to strike a balance I guess. But the blurp reads like it can do it all, but now secure. That can't be true.

mfro 13 hours ago||
If you haven’t already been running your agents in containers, you’re crazy. That said, this looks like a great way to manage those containers.
thway15269037 10 hours ago||
You're running them in containers, and not in VMs on separate network through network filter and logger?
Twirrim 10 hours ago|||
I haven't gone to network filter and logger yet, but I'm running mine in a VM, using lima (https://lima-vm.io/) to make it painless. Works on Mac and Linux, has an untested Windows version.
thway15269037 8 hours ago|||
What's the difference between lima and conventional fat VM using kvm/virtualbox?

I only heard about smolvm yet and they are YC, so I'm hesitant to use them as they will probably one day pull the rug.

adastra22 3 hours ago||
Nothing. Lima is a VM running Linux under the hood.
d2xdy2 8 hours ago|||
Came here to mention Lima. I use a ton, and it’s been great.
VeninVidiaVicii 10 hours ago||||
I run mine on an abacus.
dboreham 9 hours ago|||
An abacus wouldn't have been a luxury in our day.
sixtyj 10 hours ago|||
Paper is a bullet-proof method /s
apitman 6 hours ago||||
So far I've settled on one jumbo VM with many Incus containers inside. Nothing goes inside the VM that I can't afford for agents to exfiltrate. I've been really happy with this setup.
amanfromhere 3 hours ago||||
I’d like to know more about your use case, could you tell us more? And are there any specific tools you find useful here?

I ask because I’ve found that as isolation increases, so does friction, and then of course capabilities.

devmor 7 hours ago|||
For real.

My agentic workloads happen on two physical machines dedicated only to agentic workloads that share a VLAN with only eachother, with single token access to the specific repositories they are meant to push to and limited scope, hard limited credentials pulled from the hardware store on hardware token/fingerprint request only.

I view the safety around unmonitored agentic work in a similar way to how I view working with viruses or bacteria in a disease lab.

This stuff isn’t magic, it isn’t intelligent, but it is dangerous and needs to be handled with careful intent.

smokel 13 hours ago|||
Well, a lot of people haven't been running NodeJS libraries in containers for ages, which seems even more risky.
ChocolateGod 13 hours ago|||
Something like this would even be useful for npm etc.
devmor 7 hours ago|||
And most people running containers are running a default docker/containerd setup, which does not actually isolate you from anything at all in the first place anyways.
stronglikedan 13 hours ago|||
Technically, my laptop is a container!
InsideOutSanta 13 hours ago|||
We successfully airgapped AI. It's only on earth.
kridsdale3 11 hours ago||
Nope [1]

[1] https://blog.google/innovation-and-ai/models-and-research/go...

adrianmonk 10 hours ago|||
Also, the AI wasn't nearly as advanced, but NASA did it nearly 30 years ago: https://en.wikipedia.org/wiki/Deep_Space_1#Remote_Agent
BHSPitMonkey 3 hours ago||||
Well, at least it lacked the delta V to get anywhere else
InsideOutSanta 10 hours ago|||
Oh shit, it found a way to escape.
cindyllm 10 hours ago||
[dead]
hoherd 12 hours ago|||
You have an ephemeral laptop?
4chandaily 11 hours ago|||
On a long eunuch time line, all laptops are ephemeral!
4chandaily 11 hours ago||
Ah well, teach me to proof read. Keeping it.
esseph 8 hours ago|||
no disk, network boot, nfs mounting my /home for the lulz
fennecbutt 11 hours ago|||
But then it decides to exfiltrate all your shit even inside the container. Which is something I'm trying to lock down at work atm.

Everything needs to go through a proxy, whitelisted domains only, plus credential swapping/re-signing so that the agent never has the real credentials. Docker sandbox looks quite good (September) but I've been using iron proxy (if the author is reading this, fucking thank you bro!) to great effect.

I still haven't cracked "what if the agent decides to drop parts of your codebase somewhere it shouldn't" yet, but I'll figure it out.

breisa 2 hours ago|||
You would need a human reviewing every single action of the agent to prevent them from exfiltartimg data. There are just too many possible side channels for a predefined solution. I believe currently what you want is a locally hosted decision model scoring every agent action againt a set of rules with a human in the loop once the decision model isnt 'confident' the actions are harmless.
tha_infra_guy 1 hour ago||
We had built Rune box to help resolve this: https://github.com/Runeeward/runeward
marcosscriven 10 hours ago||||
Been thinking about this a lot lately, and it’s a surprisingly difficult problem.

All it needs is public access to anything it can have the tiniest effect on, and it can exfiltrate data. Something as simple as a read count on some obscure forum post would be enough, albeit very slow.

fennecbutt 10 hours ago|||
Yeah, exactly. I'd say it borders on almost unsolvable for any agent of reasonable complexity.

You see some of the vulnerability chains humans come up with and they're just insane.

Even scanning network data for sensitive strings (say matching against a codebase or data set it works on) is tough because you can only check so granularly before you get loads of false positives.

But maybe like a "rolling" sort of check would help with that, % of outbound data matching private dataset (which should be operated on but not transmitted) over time. That way it minimises what gets out while dealing with false positives. Some biz thresholds might be >20% of data others might be >0.5%. Hmm.

smashed 10 hours ago||||
I am tackling this using the Lethal Trifecta principle.

The idea is that agents never have all parts of the trifecta, maximum 2: untrusted content, private data or network access.

Harness have network access by default since they are driven by their provider API, unless you use offline models. So that's a problem.

I am then passing around messages that are tagged trusted/untrusted and the engine can monitor if any agent in the project ever completes the Lethal Trifecta and thus, is vulnerable.

Usually this means for most workflows, the "work" gets done by an offline LLM after some input/classification stages. There's not many ways around it.

Yes, it's a difficult problem.

wren6991 8 hours ago|||
> Harness have network access by default since they are driven by their provider API

The harness needs network access, but the shell spawned by the harness that runs the agent's commands does not necessarily need it.

Having a bwrap etc managed by the harness (DSH does this, among others) lets you have tighter restrictions on the agent's shell than the harness. Then run the whole thing inside a VM with a private network, so you can add nft rules to let it dial out to your inference machine but not to the internet at large. It takes an afternoon to set up but gives some reasonable defence in depth.

How did you go about it?

adastra22 3 hours ago||||
It’s difficult in theory, impossible in practice. For example: any external code dependency could be a prompt injection, and lock files are only TOFU protection.

But perfect is the enemy of better.

fennecbutt 10 hours ago|||
That's a great way to do it.

In terms of agent architecture I'm initially trying to minimise specialisation to make deployment easier on us. Infrastructure is becoming our largest blocker because it's otherwise so quick to get an agent up and running.

With your trifecta, let's say the three musketeers, how do you prevent sensitive data holding A from passing said data to B or C if they all need to collaborate to get a task done?

smashed 9 hours ago||
The data is passed as a message and the message is tagged as untrusted, so the engine knows it.

Agent A has internet access and the dangerous message, but no access to the secret company data, so nothing can get exfiltrated.

Agent B gets a tainted message from Agent A. Agent B can process the message using the secret company data. Agent B has no internet access and can only receive/send messages.

You can imagine an agent C that moves the work along or replies to an external user with the outcome.

Any workflow that has both an input and an output will complete the Lethal Trifecta as a whole, but no single agent does by itself. It raises the bar quite a lot, you need to confuse multiple agents in the loop to exfiltrate data.

Fun research, but it's a bit hard to see all my coworkers right now installing Claude desktop and moving on with no afterthought whatsoever...

Regarding infrastructure: my toy sandbox is just a docker-compose inspired YAML project file. So it's only containers. See my profile. The principle can be implemented anywhere you can run agents and cut network/data access though.

fennecbutt 9 hours ago||
Yeah so ultimately it's still possible for bad things to happen but a lot harder, I agree with your point about having to somehow prompt inject multiple agents vs one (which I imagine is a nonlinear difficulty).

I'm using compose atm as well, mostly just because I need to prove a few concepts and committing to real (well cloud) infra is the slowest part of our dev cycle atm.

And yeah, many of my colleagues (and myself, I'm guilty too) run local code agents for development and we're just kind of...trusting them to do their thing.

But for autonomous stuff I'm assigned to atm I want to avoid any mishaps as much as I can, hence the effort to try and lock all this stuff down.

What's crazy is every day I'm finding solutions (not just to this problem, but in the AI space in general) that were released just a month or two before more often than not. It feels like 2010s node.js ecosystem all over again at the moment. Hopefully we settle into a few nice easy panopticon options that we can throw arbitrary agents into without a care in the world.

epolanski 10 hours ago|||
If you can make any request to the outside world you can exfiltrate data, period. You can even include data in the uri or headers and they will appear in logs.

That obviously includes talking with the provider.

If you want it secure, it has to be off the internet and on your own hardware.

fennecbutt 9 hours ago||
What about checking temporal entropy of outbound data/similarity to a private dataset?

The timescale can be adjusted to a length suitable for sensitivity of the data.

Although you may run into the monkey and typewriter problem a bit if the period is indefinite.

ghm2180 8 hours ago||||
I've been thinking a lot about this problem. Also, I think like the idea might be to look at the issue with code mode. Like basically, we know that all agents can write bash and execute it and that is what agents default code mode is.

But like if you only allowed for example JavaScript code that could be executed in a WASM sandbox, then you would have better control instead of just locking down with proxies. Basically there would be a very large API, basically tools, that the agent would codemode execute. My guess is that this would need a tool router to optimize the loading of these into the context. But it would give you very fine control over what code execution can and cannot be done.

sebastienburel 1 hour ago||
[flagged]
kleogeos 10 hours ago|||
[flagged]
f311a 11 hours ago|||
I have been running my dev setup in orb machines before agents. Very convenient when you have 50 Python or nodes deps.
Reddit_MLP2 11 hours ago|||
many common local containers are not that hard for modern models to escape...
slopinthebag 4 hours ago|||
not everyone is building a webapp that can just run in a container...

how am i gonna run a game and do all development inside docker...?

mi_lk 11 hours ago|||
any recommendation for macOS users?
mfro 10 hours ago||
Orbstack, no contest
walrus01 10 hours ago||
As an example I run opencode and anything related agent-related in its own dedicated KVM VM with its own LVM logical volumes for storage on a headless server. This has no access whatsoever to the personal data that lives on my laptop and workstation desktop PC. The VM gets periodically imaged and backed up, and is relatively easy to move between host machines if I need to.

One benefit of doing this is that I can leave it doing long term slow things with slow but capable LLMs on a truly 24x7 basis without worrying about it being interrupted by a laptop being closed/going to sleep, or workstation level software updates/reboots on my primary desktop PC.

crypt1d 12 hours ago||
I tried to vibecode something similar last weekend. Got tripped up by Claude's safety classifier. It wouldn't let me build any features that track/audit process executions , not through custom kernel hooks nor even using off the shelf software for it.
jacquesm 11 hours ago||
You terrorist. And internally they're doing biological warfare and terrorism simulations. For science, of course.

"The worry is that, while right now you need to be a skilled virologist to know what components to order or how to grow and spread a bioweapon, AI tools might eventually make it possible for a rogue state, or a rogue group, or an individual, to do all this without virology expertise.

For a while, Anthropic tested whether Claude could assist a terrorist in developing a biological weapon in the obvious way: It assigned testers who had, say, an undergraduate degree in chemistry but no real virology training to try to use Claude to plan an effective mass terror event. Then it scored the attempt by how close it might have come to success.

Early in 2026, it noticed that Claude, attempting the task by itself, did better than a human aided by Claude did at coming up with a workable plan."

https://www.theargumentmag.com/p/what-i-saw-inside-anthropic

edoceo 11 hours ago|||
Claude wouldn't let me make a DHCP client that would make 1000s of leases. But Gemini in the WebUI with 3.6 Thinking gave me a decent python script in one shot. I didn't realize testing DHCP servers was such a sensitive security issue.
verdverm 10 hours ago||
> I didn't realize testing DHCP servers was such a sensitive security issue

The machine god crafters know better than us, we are to subservient to their superior wisdom /s

jacquesm 6 hours ago|||
Meanwhile, they're simulating bio warfare with their own, unaligned models 'just to see if they can do it'. And not a single person thinks 'hey, if that's possible, maybe we shouldn't be doing this at all'...
edoceo 5 hours ago||
Queue Jeff Goldblum in Jurassic Park (still a fantastic film)

Aside: it (JP) fights in my head with BTTF as a "perfect movie" (or at least a perfect script).

adastra22 3 hours ago||
BTTF?
derpyzza 1 hour ago|||
Back to the future
jfin4 2 hours ago|||
Back to the Future.
arionmiles 7 hours ago|||
All hail the Omnissiah!
verdverm 5 hours ago||
https://claudeourlord.com/
sroerick 11 hours ago|||
Wow, interesting. My agents on open weight inference have been completely nerdsniped by the idea of tracking and auditing process executions. They talk of nothing else.
redanddead 12 hours ago|||
an example of the manufacturers bricking the tools, no surprise why people want open tools and models..
asveikau 11 hours ago|||
> It wouldn't let me build any features that track/audit process executions

Sounds like waitpid(2) is dangerous!

elxr 9 hours ago|||
If that isn't a sign to stop using anthropic then I don't know what is.
epolanski 10 hours ago|||
You can't use closed models to do any meaningful work in the space.
chews 10 hours ago||
You can rent a gpu cluster and get it done, otherwise on the frontiers, Haiku and Sonnet have lower barriers... I still get tripped up.
razuba 10 hours ago||
We've been using OpenShell for a while - now enabling ourselves and other teams do this in a batteries-included kinda way. I've been working on a layer above it that also manages team policies, safe git usage (in case you don't want your agent to always have the same access as your user account), and SCA/SAST built in. Curious to see how others are dealing with these issues. The agent traces I've seen are wild and goal seeking without a boundary is real.
niemandhier 14 hours ago||
Just came back from GTC Europe and a significant part of the demos used that.

I had never heard about it before.

RevEng 4 hours ago|
That's how Nvidia works. They make arrangements with lots of companies to produce demos that use Nvidia products, especially ones that Nvidia is about to announce. That gives them lots to show at GTC. Companies are happy to work with them because having your name said by Jensen adds three points to your stock price.
overflowy 13 hours ago||
>OpenShell collects anonymous telemetry, limited to operational categories and counts, to help improve the project.

>To disable it, set OPENSHELL_TELEMETRY_ENABLED=false on the gateway, or server.telemetryEnabled=false for Helm installs.

xyst 13 hours ago||
Or build from source and compile without `telemetry` [1].

[1] https://github.com/NVIDIA/OpenShell/blob/ea13dfce411e8467ddb...

Y_Y 12 hours ago|||
In order to "help" myself I have taken some of your money.

Feel free to opt out maybe?

f3408fh 12 hours ago||
I have a question for those who turn off _anonymous_ telemetry. What are you worried about?
lcampbell 12 hours ago|||
There's no such thing as anonymity in 2026, and the documentation[1] listing the collected telemetry uses weasel words like "such as" rather than providing a comprehensive list or just pointing to the source reference. For people who don't audit or turn off telemetry, why don't you?

I am happy the repo explicitly points out and provides a disable for the telemetry though, that's good enough for me.

[1] https://docs.nvidia.com/openshell/latest/observability/telem...

MisterMunchkin 10 hours ago||||
Israel was just caught doing an attack where Google ads would run JavaScript looking for known hardware identifiers from telemetry data they bought. When the ads showed on a target device, they would root you. Without you even interacting with the ad.
Lammy 11 hours ago||||
> _anonymous_ telemetry

There is no such thing. The mere act of making a network connection reveals things like your IP address (reveals your hosting provider or even your geolocation for residential/mobile IPs), days and times you use the software, your OS via TCP/IP stack fingerprinting, etc.

The network path between you and the telemetry endpoint is always listening, too: https://en.wikipedia.org/wiki/Room_641A

rnd0 6 hours ago||||
It doesn't have to be a specific concern. It's better to remove the option than to find out later that you've gotten burned by something you had no way to anticipate.

Don't take chances, give as little as possible. Better to assume you'll get burned somehow and leave it off.

skinfaxi 12 hours ago||||
Why give up more information if we have the option?
brabel 11 hours ago||
Because you don't mind contributing usage data so that the developers can understand which features are being used and maybe focus on improving those features in exchange for a free tool?
Reddit_MLP2 11 hours ago||||
if you're not paying for the product, you are the product...
fennecbutt 11 hours ago||
Is this also true of Linux? Or were us humans the stochastic parrots all along?
rnd0 6 hours ago||
>Is this also true of Linux?

It is not, nor of open source software in general.

In general, the saying is specifically in reference to services provided over the internet -gmail, youtube, whatever. Note that you don't have the right to modify them and share your own copies -they're closed source.

So no, it's not true of Linux, GNU, etc; it's an apples and oranges comparison.

lukewarm707 11 hours ago|||
Being recorded and observed makes me feel physically uncomfortable.
ivanjermakov 13 hours ago||
Agent runtime - actually a good name for what is called today coding agent or agent harness.
dangoodmanUT 13 hours ago|
Taking default telemetry is insane.

That aside, the level of control is cool, almost too pedantic. It likely is only particularly useful for very nuanced enterprise requirements (probably what it's targeting). Most companies can be much more coarse with their permissions, and I think the agentic industry is moving away from k8s as a deployment platform.

monsieurbanana 13 hours ago||
> I think the agentic industry is moving away from k8s as a deployment platform

Interesting, I don't to keep up that much with the AI changes so I'll just ask, why and where to?

dangoodmanUT 7 hours ago||
schedulers that can handle spikier workloads generally

believe me i love k8s, and i think agents wield it amazingly well, no more yaml-slop or kubectl (`k`) slop, just yell at claude to fix it

RevEng 4 hours ago||
Any examples of such schedulers?
user- 13 hours ago|||
I am very interested in hearing more about this take. I have a vague idea of what you mean but if you read something specific you'd like to share..

> I think the agentic industry is moving away from k8s as a deployment platform.

dangoodmanUT 7 hours ago||
its not reading, its observation. see other comment abt spiky-friendly workloads
esseph 4 hours ago||
This is a pretty unusual use case though, like I can see it growing, but it's not the same platform you use for long lived running business applications. Vastly different use case. (And a lot will settle for kata containers.)

Spinning up and snapshotting and rolling back agent states, sure.

esseph 12 hours ago||
> and I think the agentic industry is moving away from k8s as a deployment platform

Uhhhhhhhhhhh I think you and I live in very different versions of the world :-)

Vmware sent companies moving to nutanix, but it also sent a lot of companies moving to openshift or bare k8s and using kubevirt to handle VMs.

In fact, I haven't heard of an org moving to any other platform, really. Either openshift or k8s.

grim_io 10 hours ago|||
Openshift is just k8s with bells and whistles.
esseph 8 hours ago||
Enterprise support contracts, mostly
dangoodmanUT 7 hours ago|||
imo if you're going to run k8s, have it hosted

same as a db, better to pay #x as much and have it hosted then to be wishing it was not your problem when it was down

and we may very well live in different versions of the world. i'm on the frontlines of startups so we move with the customer, rather than making customers move with us

esseph 5 hours ago||
> imo if you're going to run k8s, have it hosted

Ours is all on-prem all over the country in our own internal small datacenters for regulatory, safety, security, and operational reasons. Provisioned and automated from bare metal. We also use those same images in cloud for something like a quorum situation, or maybe some data locality for a particular pinned workload.

But it's mostly us, in our stuff and at the enterprise edge.

Different problems.

More comments...