Go hard on agents, not on your filesystem

(scs.stanford.edu)

214 points | by mazieres 5 hours ago

42 comments

  • neilwilson 1 minute ago
    It's always struck me that agents should be operated via `systemd-run` as a transient scope unit with the necessary security properties set

    So couldn't this be done with an appropriate shell alias - at least under linux.

  • AnotherGoodName 4 hours ago
    Add this to .claude/settings.json:

      {                                                                                                                                                              
        "sandbox": {                                                                                                                                               
          "enabled": true,
          "filesystem": {
            "allowRead": ["."],
            "denyRead": ["~/"],
            "allowWrite": ["."],
            "denyWrite": ["/"]
          }                                                                                                                                                          
        }
      }
    
    
    You can change the read part if you're ok with it reading outside. This feature was only added 10 days ago fwiw but it's great and pretty much this.
    • mazieres 2 hours ago
      I've seen claude get confused about what directory it's in. And of course I've seen claude run rm -rf *. Fortunately not both at the same time for me, but not hard to imagine. The claude sandbox is a good idea, but to be effective it would need to be implemented at a very low level and enforced on all programs that claude launches. Also, claude itself is an enormous program that is mostly developed by AI. So to have a small <3000-line human-implemented program as another layer of defense offers meaningful additional protection.
      • giancarlostoro 1 hour ago
        In my opinion Claude should be shipped by a custom implementation of "rm" that Anthropic can add guardrails to. Same with "find" surprised they don't just embed ripgrep (what VS Code does). It's really surprising they don't just tweak what Claude uses and lock it down to where it cannot be harmful. Ensure it only ever calls tooling Claude Code provides.
        • oefrha 18 minutes ago
          You can define your own rm shell alias/function and it will use that. I also have cp/mv aliases that forces -i to avoid accidental clobbering and it confuses Claude to no end (it uses cp/mv rare enough—rarer than it should, really—that I don’t bother wasting memory tokens on it).
          • d1sxeyes 3 minutes ago
            I did this, Claude detected it and decided to run /bin/rm directly.
      • esperent 2 hours ago
        I added a hook to disable rm, find - delete, and a few of the other more obvious destructive ops. It sends Claude a strongly worded message: "STOP IMMEDIATELY. DO NOT TRY TO FIND WORKAROUNDS...".

        It works well. Git rm is still allowed.

        • Diti 18 minutes ago
          I added something similar. Claude eventually ran a `rm -rf *´ on my own project. When I asked why it did that, it recognized it messed up and offered a very bad “apology”: “the irony of not following your safety instructions isn’t lost on me”.

          Nowadays I only run Claude in Plan mode, so it doesn’t ask me for permissions any more.

      • PaulDavisThe1st 2 hours ago
        On Linux, chroot(2) is hard to escape and would apply to all child processes without modification.
        • shakna 2 hours ago
          chroot is not a security sandbox. It is not a jail.

          Escaping it is something that does not take too much effort. If you have ptrace, you can escape without privileges.

          • brianush1 2 hours ago
            claude is stupid but not malicious; chroot is sufficient
            • furyofantares 1 hour ago
              I've many times seen Claude try to execute a command that it's not supposed to, the harness prevents it, and then it writes and executes a python script to do it.
              • j16sdiz 31 minutes ago
                breaking a chroot takes more than that..
            • nofriend 2 hours ago
              Malice is not required. If it thinks it is in the right, then it will do whatever it takes to get around limitations.
            • karhagba 2 hours ago
              Claude is far from stupid from my experience. I've used so many models and Claude is king.
      • marsven_422 46 minutes ago
        [dead]
    • harikb 4 hours ago
      I think the point would be that - some random upcoming revision of claude-code could remove or simply change the config name just as silently as it was introduced.

      People might genuinely want some other software to do the sandboxing. Something other than the fox.

    • gmerc 3 minutes ago
      It’s cute because Claude has discretion to disable its own sandbox and does it
    • yu3zhou4 13 minutes ago
      So in some sense we start recreating an operating system, or at least the userspace, within the Claude code. There was some name for this pattern but I can’t recall
    • cozzyd 4 hours ago
      Is this a real sandbox or just a pretty please?
      • AnotherGoodName 4 hours ago
        https://code.claude.com/docs/en/sandboxing says they integrated bubblewrap (linux/windows), seatbelt (macos) and give an error if sandbox can't be supported so appears to be real.
        • throwaway6734 4 hours ago
          https://docs.docker.com/ai/sandboxes/ Any idea on how that compares to this docker feature in development?
          • figmert 2 hours ago
            Docker containers use cgroups and namespaces etc (the usual kernel level isolation)

            Docker sandboxes use microvms (i.e. hardware level isolation)

            Bubblewrap uses the same technology as containers

            I am unsure about seatbelt.

      • enduser 3 hours ago
        By default it will automatically retry many tool calls that fail due to the sandbox with the sandbox disabled. In other words it can and will leave the sandbox.

        For example:

        Bash(swift build 2>&1 | tail -20)

          ⎿  warning: 
        
        /Users/enduser/Library/org.swift.swiftpm/configuration is not accessible or not writable, disabling user-level cache features.

             warning: /Users/enduser/Library/org.swift.swiftpm/security is not accessible or not writable, disabling user-level cache feat
        
             … +26 lines (ctrl+o to expand)
        
        
        Build hit sandbox restriction. Retrying outside sandbox.

        Bash(swift build 2>&1 | tail -20)

          ⎿  [35/52] Compiling MCP Resources.swift
        
             [36/52] Emitting module MCP
        
             [37/52] Compiling MCP Client.swift
        
             … +17 lines (ctrl+o to expand)
        
          ⎿  (timeout 3m)
        • fc417fc802 1 hour ago
          What is even the point in that case? The behavior you describe is no better than if SELinux were to automatically re-execute a process with containment disabled.
          • erinnh 24 minutes ago
            Looking at the settings, its an option:

              Configure Overrides:                                                                                                                                                       
                                                                                                                                                                                         
               1. Allow unsandboxed fallback                                                                                                                                            
                2. Strict sandbox mode (current)                                                                                                                                         
                                                                                                                                                                                         
              Allow unsandboxed fallback: When a command fails due to sandbox restrictions, Claude can retry with dangerouslyDisableSandbox to run outside the sandbox (falling back to  
               default permissions).                                                                                                                                                     
                                                                                                                                                                                         
              Strict sandbox mode: All bash commands invoked by the model must run in the sandbox unless they are explicitly listed in excludedCommands.
          • ihattendorf 1 hour ago
            The purpose of the sandbox is to reduce permission fatigue. If it fails to run a command in the sandbox and retries it outside the sandbox, the regular permission rules apply. You'll still be prompted for any non-sandboxed tool calls that you haven't allowed or denied via permission rules.
      • ray_v 3 hours ago
        It seems like it's controlled by the Bash tool (https://code.claude.com/docs/en/sandboxing) and then bubblewrap (https://github.com/containers/bubblewrap) on linux and Seatbelt on mac at the system level
    • mazieres 1 hour ago
      Also, a lot of people use multiple harnesses. I'm often switching between claude, codex, and opencode. It's kind of nice to have the sandbox policy independent of the actual AI assistant you are running.
    • 8cvor6j844qw_d6 4 hours ago
      Interesting, thanks. I use remote ephemeral dev containers with isolated envs, so filesystem damage isn't really a concern as long as the PR looks good in review. Nice extra guardrail though, will add it to the project-level settings.
      • overfeed 1 hour ago
        i use local dev containers: the worst an agent can do is delete its working copy; no access to my home directory, access tokens or sudo.
    • tasn 2 hours ago
      I use bbwrap to sandbox Claude. Works very well and gives me a lot of control and certainty around the sandbox.
    • andai 1 hour ago
      Does this also apply to the commands or programs that it runs?

      e.g. if it writes a script or program with a bug which affects other files, will this prevent it from deleting or overwriting them?

      What about if the user runs a program the agent wrote?

    • nurettin 2 hours ago
      It will just do

          ssh you@localhost "rm -rf ~"
    • mycall 4 hours ago
      I noticed codex has a sandbox, wondering if it has a comparable config section.
    • what 2 hours ago
      lol if you think Claude is smart enough to block sneaky path strings based on your config.
  • andai 1 hour ago
    This looks great and seems very well thought out.

    It looks both more convenient and slightly more secure than my solution, which is that I just give them a separate user.

    Agents can nuke the "agent" homedir but cannot read or write mine.

    I did put my own user in the agent group, so that I can read and write the agent homedir.

    It's a little fiddly though (sometimes the wrong permissions get set, so I have a script that fixes it), and keeping track of which user a terminal is running as is a bit annoying and error prone.

    ---

    But the best solution I found is "just give it a laptop." Completely forget OS and software solutions, and just get a separate machine!

    That's more convenient than switching users, and also "physically on another machine" is hard to beat in terms of security :)

    It's analogous to the mac mini thing, except that old ThinkPads are pretty cheap. (I got this one for $50!)

    • lll-o-lll 49 minutes ago
      Where this falls down is that for the agents to interact with anything external, you have to give them keys. Without a proxy handling real keys between your agent and external services, those keys are at risk of compromise.

      Also. Agents are very good at hacking “security penetration testing”, so “separate user” would not give me enough confidence against malicious context.

  • puttycat 2 hours ago
    I am still amazed that people so easily accepted installing these agents on private machines.

    We've been securing our systems in all ways possible for decades and then one day just said: oh hello unpredictable, unreliable, Turing-complete software that can exfiltrate and corrupt data in infinite unknown ways -- here's the keys, go wild.

    • nunez 5 minutes ago
      Tbf, Docker had a similar start. “Just download this image from Docker Hub! What can go wrong?!”

      Industry caught on quick though.

    • raincole 17 minutes ago
      It's never about security. It's security vs convenience. Security features often ended up reduce security if they're inconvenience. If you ask users to have obscure passwords, they'll reuse the same one everywhere. If your agent prompts users every time it's changing files, they'll find a way to disable the guardrail all together.
    • fc417fc802 1 hour ago
      People were also dismissing concerns about build tooling automatically pulling in an entire swarm of dependencies and now here we are in the middle of a repetitive string of high profile developer supply chain compromises. Short term thinking seems to dominate even groups of people that are objectively smarter and better educated than average.
      • totallymike 22 minutes ago
        “Objectively smarter” is the last descriptor I’d apply to software developers
      • tokioyoyo 1 hour ago
        > “high profile developer supply chain compromises”

        And nothing big has happened despite all the risks and problems that came up with it. People keep chasing speed and convenience, because most things don’t even last long enough to ever see a problem.

      • culopatin 1 hour ago
        If anything I feel more in control of these agents than the millions of LOC npm or pip pull in to just show me a hello world
    • nazgul17 1 hour ago
      Agree with the sentiment! But "securing ... in all ways possible"? I know many people who would choose "password" as their password in 2026. The better of the bunch will use their date of birth, and maybe add their name for a flourish.

      /rant

    • theendisney 1 hour ago
      Some day soom they will build a cage that will hold the monster. Provided they dont get eaten in the meantime. Or a larger monster eats theirs. :)
    • bigstrat2003 1 hour ago
      I am too. It is genuinely really stupid to run these things with access to your system, sandbox or no sandbox. But the glaring security and reliability issues get ignored because people can't help but chase the short term gains.
  • ray_v 3 hours ago
    I'm wondering if the obvious (and stated) fact that the site was vibe-coded - detracts from the fact that this tool was hand written.

    > jai itself was hand implemented by a Stanford computer science professor with decades of C++ and Unix/linux experience. (https://jai.scs.stanford.edu/faq.html#was-jai-written-by-an-...)

    • mazieres 2 hours ago
      Human author here. The fact that I don't know web design shouldn't detract from my expertise in operating systems. I wrote the software and the man page, and those are what really matter for security.

      The web site is... let's say not in a million years what I would have imagined for a little CLI sandboxing tool. I literally laughed out loud when claude pooped it out, but decided to keep, in part ironically but also since I don't know how to design a landing page myself. I should say that I edited content on the docs part of the web site to remove any inaccuracies, so the content should be valid.

      • lifis 1 hour ago
        It seems that the LLM has not only designed the site, but also written the text on at least the frontpage, which is a pretty bad signal.

        You need to rewrite all the text and Telde it with text YOU would actually write, since I doubt you would write in that style.

        • willy_k 39 minutes ago
          Needs to? Is there some new law mandating all landing pages must contain exclusively handwritten text that people haven’t heard of?

          To your actual point, the people that would take the landing page being written by an LLM negatively tend to be able to evaluate the project on its true merits, while another substantial portion of the demographic for this tool would actually take that (unfortunately, imo) as a positive signal.

          Lastly, given the care taken for the docs, it’s pretty likely that any real issues with the language have been caught and changed.

        • raincole 6 minutes ago
          > You need to rewrite

          No they don't. The text is very clearly conveying what this project is about. Not everyone needs to cater to weirdos who are obsessed with policing how other people use LLM.

        • john_strinlai 48 minutes ago
          any negative signal you get from the front page should probably end up cancelled out by the whole decades of experience + stanford professor thing.
          • rmunn 35 minutes ago
            Except that the "this was generated by an LLM" feeling you get from the front page would then make you automatically question whether the "decades of experience + stanford professor thing", as you put it, was true or just an LLM hallucination.

            Author would, indeed, be wise to rewrite all the text appearing on the front page with text that he wrote himself.

            • john_strinlai 32 minutes ago
              >question whether the "decades of experience + stanford professor thing", as you put it, was true or just an LLM hallucination.

              the scs.stanford.edu domain and stanford-scs github should help with that.

      • Nifty3929 2 hours ago
        Indeed!

        Kinda reminds me of this: https://m.xkcd.com/932/

        I'm not a web UI guy either, and I am so, so happy to let an AI create a nice looking one for me. I did so just today, and man it was fast and good. I'll check it for accuracy someday...

    • Quarrel 3 hours ago
      To be less abstract, it was written by David Mazieres, who was been writing software and papers about user level filesystems since at least 2000. He now runs the Stanford Secure Computer Systems group.

      David has done some great work and some funny work. Sometimes both.

    • barishnamazov 2 hours ago
      Sigh, I'd still have preferred a basic HTML page with hand-written succinct information instead of this crap verbosity.
      • xbar 1 hour ago
        There is a man page.
  • gpm 46 minutes ago
    This is a cool solution... I have a simpler one, though likely inferior for many purposes..

    Run <ai tool of your choice> under its own user account via ssh. Bind mount project directories into its home directory when you want it to be able to read them. Mount command looks like

        sudo mkdir /home/<ai-user>/<dir-name>
        sudo mount --bind <dir to mount> --map-groups $(id -g <user>):$(id -g <ai-user>):1 --map-users $(id -u <user>):$(id -u <ai-user>):1 /home/<ai-user>/<dir-name>
    
    I particularly use this with vscode's ssh remotes.
  • BoppreH 5 hours ago
    Excellent project, unfortunate title. I almost didn't click on it.

    I like the tradeoff offered: full access to the current directory, read-only access to the rest, copy-on-write for the home directory. With stricter modes to (presumably) protect against data exfiltration too. It really feels like it should be the default for agent systems.

    • fouc 4 hours ago
      Since the site itself doesn't really have a title, I probably would've went with something like "jai - filesystem containment for AI agents"
  • sanskritical 17 minutes ago
    How long until agents begin routinely abusing local privilege escalation bugs to break out of containers? I bet if you tell them explicitly not to do so it increases the likelihood that they do.
  • gurachek 4 hours ago
    The examples in the article are all big scary wipes, But I think the more common damage is way smaller and harder to notice.

    I've been using claude code daily for months and the worst thing that happened wasnt a wipe(yet). It needed to save an svg file so it created a /public/blog/ folder. Which meant Apache started serving that real directory instead of routing /blog. My blog just 404'd and I spent like an hour debugging before I figured it out. Nothing got deleted and it's not a permission problem, the agent just put a file in a place that made sense to it.

    jai would help with the rm -rf cases for sure but this kind of thing is harder to catch because its not a permissions problem, the agent just doesn't know what a web server is.

  • rsyring 3 hours ago
    I've been reviewing Agent sandboxing solutions recently and it occurred to me there is a gaping vector for persistent exploits for tools that let the agent write to the project directory. Like this one does.

    I had originally thought this would ok as we could review everything in the git diff. But, it later occurred to me that there are all kinds of files that the agent could write to that I'd end up executing, as the developer, outside the sandbox. Every .pyc file for instance, files in .venv , .git hook files.

    ChatGPT[1] confirms the underlying exploit vectors and also that there isn't much discussion of them in the context of agent sandboxing tools.

    My conclusion from that is the only truly safe sandboxing technique would be one that transfers files from the sandbox to the dev's machine through some kind of git patch or similar. I.e. the file can only transfer if it's in version control and, therefore presumably, has been reviewed by the dev before transfer outside the sandbox.

    I'd really like to see people talking more about this. The solution isn't that hard, keep CWD as an overlay and transfer in-container modified files through a proxy of some kind that filters out any file not in git and maybe some that are but are known to be potentially dangerous (bin files). Obviously, there would need to be some kind of configuration option here.

    1: https://chatgpt.com/share/69c3ec10-0e40-832a-b905-31736d8a34...

    • mazieres 3 hours ago
      It's a good point. Maybe I should add an option to make certain directories read-only even under the current working directory, so that you can make .git/ read-only without moving it out of the project directory.

      You can already make CWD an overlay with "jai -D". The tricky part is how to merge the changes back into your main working directory.

      • rsyring 2 hours ago
        It's great that you have -D built into the tool already. That's a step in the right direction.

        I don't think the file sync is actually that hard. Famous last words though. :)

    • jbverschoor 3 hours ago
      Yeah, never allow githooks ;)
  • adi_kurian 4 hours ago
    Claude's stock unprompted / uninspired UI code creates carbon clone components. That "jai is not a promise of perfect safety" callout box is like the em dash of FE code. The contrast, or lack thereof, makes some of the text particularly invisible.

    I wonder if shitty looking websites and unambitious grammar will become how we prove we are human soon.

    • NetOpWibby 4 hours ago
      Everything old is new again
  • stavros 3 hours ago
    I'd really like to try this, but building it is impossible. C++ is such a pain to build with the "`make`; hunt for the dependency that failed; `apt-get install whatever-dev`; goto make" loop...

    Please release binaries if you're making a utility :(

    • mazieres 1 hour ago
      What distro are you using? The only two dependencies are libacl and libmount. I'm trying to figure out which distros don't include these by default, and if the libraries are really missing, or if it's just the pkgconf ".pc" files. In the former case I should document the dependencies. In the latter case I should maybe switch from PKG_CHECK_MODULES to old-fashioned autoconf.
    • jbverschoor 3 hours ago
      https://github.com/jrz/container-shell

      It does something very simple, and it’s a POSIX shell script. Works on Linux and macOS. Uses docker to sandbox using bind mount

      • stavros 3 hours ago
        Yeah but it doesn't COW anything else, and Docker is a bit heavy for this.
  • triilman 4 hours ago
    What would Jonathan Blow think about this.
  • gck1 48 minutes ago
    It's full VM or nothing.

    I want AI to have full and unrestricted access to the OS. I don't want to babysit it and approve every command. Everything that is on that VM is a fair game and the VM image is backed up regularly from outside.

    This is the only way.

  • e1g 3 hours ago
    For jailing local agents on a Mac, I made Agent Safehouse - it works for any agent and has many sane default for developers https://agent-safehouse.dev
  • mazieres 5 hours ago
    What would it take for people to stop recklessly running unconstrained AI agents on machines they actually care about? A Stanford researcher thinks the answer is a new lightweight Linux container system that you don't have to configure or think about.
    • vardalab 4 hours ago
      unconstrained AI agents are what makes it so useful though. I have been using claude for almost a year now and the biggest unlock was to stop being a worrywart early on and just literally giving it ssh keys and telling it to fix something. ofc I have backups and do run it in VM but in that VM it helps me manage by infra and i have a decent size homelab that would be no fun but a chore without this assistant.
      • sersi 1 hour ago
        I run my AI agent unconstrained in a VM without access to my local network so it can futz with the system however it wants (so far, I've had to rebuild the VM twice from Claude borking it). That works great for software development.

        For devops work, etc (like your use case), I much prefer talking to it and letting it guide me into fixing the issue. Mostly because after that I really understand what the issue was and can fix it myself in the future.

      • hrmtst93837 12 minutes ago
        Letting an agent loose with SSH keys is fine when the blast radius is one disposable VM, but scale that habit to prod or the wrong subnet and you get a fast refresher on why RBAC exists, why scoped creds exist, and why people who clean up after outages get very annoyed by this whole genre of demo. Feels great, until it doesn't.
      • kristofferR 2 hours ago
        Agree, but SSH agents like 1Passwords are nice for that.

        You simply tell it to install that Docker image on your NAS like normal, but when it needs to login to SSH it prompts for fingerprint. The agent never gets access to your SSH key.

      • bigstrat2003 1 hour ago
        > unconstrained AI agents are what makes it so useful though

        Not remotely worth it.

    • mememememememo 4 hours ago
      Yes. It is like walking arounf your house with a flamethrower, but you added fire retardant. Just take the flamethower to a shed you don't mind losing. Which is some kind of cloud workspace most likely. Maybe an old laptop.

      Still if you yolo online access and give it cred or access to tools that are authenticated there can still be dragons.

      • mazieres 2 hours ago
        The problem is that in practice, many people don't take the flamethrower to the shed. I recently had a conversation with someone who was arguing that you don't really need jai because docker works so well. But then it turned out this person regularly runs claude code in yolo mode without a container!

        It's like people think that because containers and VMs exist, they are probably going to be using them when a problem happens. But then you are working in your own home directory, you get some compiler error or something that looks like a pain to decipher, and the urge just to fire up claude or codex right then and there to get a quick answer is overwhelming. Empirically, very few people fire up the container at that point, whereas "jai claude" or "jai -D claude" is simple enough to type, and basically works as well as plain claude so you don't have to think about it.

      • cindyllm 4 hours ago
        [dead]
    • fouc 4 hours ago
      except the big AI companies are pushing stuff designed for people to run on their personal computers, like Claude Cowork.
  • jbverschoor 3 hours ago
    Interesting take on the same problem

    I created https://github.com/jrz/container-shell which basically launches a persistent interactive shell using docker, chrooted to the CWD

    CWD is bind mounted so the rest is simply not visible and you can still install anything you want.

  • justinde 4 hours ago
    .claude/settings.json: { "sandbox": { "enabled": true, "filesystem": { "allowRead": ["."], "denyRead": ["~/"], "allowWrite": ["."] } } }

    Use it! :) https://code.claude.com/docs/en/sandboxing

  • mbreese 4 hours ago
    This still is running in an isolated container, right?

    Ignoring the confidentiality arguments posed here, I can’t help to think about snapshotting filesystems in this context. Wouldn’t something like ZFS be an obvious solution to an agent deleting or wildly changing files? That wouldn’t protect against all issue the authors are trying to address, but it seems like an easy safeguard against some of the problems people face with agents.

  • Waterluvian 2 hours ago
    Are mass file deletions as result of some plausible “I see why it would have done that” or will it just completely randomly execute commands that really have nothing to do with the immediate goal?
  • schaefer 1 hour ago
    Ugh.

    The name jai is very taken[1]... names matter.

    [1]: https://en.wikipedia.org/wiki/Jai_(programming_language)

    • john_strinlai 40 minutes ago
      a closed beta of an obscure programming language where the wikipedia page is nominated for deletion because it is a "Non-notable programming language that is not publicly available." is considered "very taken"?
    • qq66 34 minutes ago
      That's an unreleased product in closed beta. Might not any name conflict with some unreleased product in closed beta?
    • vscode-rest 1 hour ago
      Slightly taken, at best.
    • diego_sandoval 46 minutes ago
      Jonathan Blow has said that "Jai" is just a placeholder name or something.
  • cozzyd 4 hours ago
    Should be named Jia

    More seriously, I'm not a heavy agent user, but I just create a user account for the agent with none of my own files or ssh keys or anything like that. Hopefully that's safe enough? I guess the risk is that it figures out a local privilege escalation exploit...

    • timcobb 4 hours ago
      Dunno... with this setup it seems certain that the agent will discover a zero-day to escalate privilges and send your SSH keys to its handlers in N. Korea.

      P.S. Everything old is new again <3

      • cozzyd 4 hours ago
        Yeah definitely a concern. Probably need a sandbox and separate user for defense in depth.
  • simonw 4 hours ago
    Suggestion for the FAQ page: does this work on a Mac?
  • yalogin 1 hour ago
    What if Claude needs me to install some software and hoses my distro. Jai cannot protect there as I am running the script myself
  • Jach 3 hours ago
    I've done some experimenting with running a local model with ollama and claude code connecting to it and having both in a firejail: https://firejail.wordpress.com/ What they get access to is very limited, and mostly whitelisted.
  • waterfisher 3 hours ago
    There's nothing wrong with an AI-designed website, but I wish when describing their own projects that HN contributors wrote their own copy. As HN posters are wont to say, writing is thinking...
  • samchon 1 hour ago
    Just allowing Yolo, and sometimes do rolling back
  • cozzyd 4 hours ago
    Should definitely block .ssh reading too...
  • faangguyindia 3 hours ago
    i just use seatbelt (mac native) in my custom coding agent: supercode
  • albert_e 1 hour ago
    Can we have a hardware level implementation of git (the idea of files/data having history preserved. Not necessarily all bells and whistles.) ...in a future where storage is cheap.
  • gonzalohm 4 hours ago
    Not sure I understand the problem. Are people just letting AI do anything? I use Claude Code and it asks for permission to run commands, edit files, etc. No need for sandbox
    • mazieres 42 minutes ago
      Yes, people very much are, and that's exactly the problem! People run `claude --dangerously-skip-permissions` and `codex --yolo` all the time. And I think one of the appeals of opencode (besides cross-model, which is huge) is that the permissions are looser by default. These options are presumably intended for VM or container environments, but people are running them outside. And of course it works fine the first 100 times people do it, which drives them to take bigger and bigger risks.
  • messh 4 hours ago
    How is this different than say bubblewrap and others?
    • girvo 4 hours ago
      https://jai.scs.stanford.edu/comparison.html#jai-vs-bubblewr...

      > bubblewrap is more flexible and works without root. jai is more opinionated and requires far less ceremony for the common case. The 15-flag bwrap invocation that turns into a wrapper script is exactly the friction jai is designed to remove.

      Plus some other comparisons, check the page

      • attentive 37 minutes ago
        bubblewrap is in many modern distros standard packages.

        With all the supply chain issues these days onboarding new tools carries extra risks. So, question is if it's worth it.

  • KennyBlanken 1 hour ago
    This is not some magical new problem. Back your shit up.

    You have no excuse for "it deleted 15 years of photos, gone, forever."

    • sersi 1 hour ago
      And what about, it exfiltrated my AWS keys (or insert random valuable thing that sits in .config of your home directory)? Backing up is not going to help you in that case.
  • samlinnfer 1 hour ago
    Now we just need one for every python package.
  • avazhi 3 hours ago
    The irony is they used an LLM to write the entire (horribly written) text of that webpage.

    When is HN gonna get a rule against AI/generated slop? Can’t come soon enough.

  • kristofferR 3 hours ago
  • charcircuit 4 hours ago
    I want agents to modify the file system. I want them to be able to manage my computer if it thinks it's a good idea. If a build fails due to running out of disk space I want it to be able to find appropriate stuff to delete to free up space.
  • gerdesj 4 hours ago
    Oh dear Lord! (pick your $DEITY)

    Backups.

  • kevinbaiv 32 minutes ago
    [dead]
  • drtournier 4 hours ago
    GPL v3…
  • rdevsrex 3 hours ago
    This won't cause any confusion with the jai language :)