<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
    <title>dpc - ai</title>
    <subtitle>Notes by `dpc`</subtitle>
    <link href="https://dpc.pw/tags/ai/atom.xml" rel="self" type="application/atom+xml"/>
    <link href="https://dpc.pw"/>
    <generator uri="https://www.getzola.org/">Zola</generator>
    <updated>2026-04-12T00:00:00+00:00</updated>
    <id>https://dpc.pw/tags/ai/atom.xml</id>
    
    <entry xml:lang="en">
        <title>LLM Reviews in cargo-crev</title>
        <published>2026-04-12T00:00:00+00:00</published>
        <updated>2026-04-12T00:00:00+00:00</updated>
        <author>
          <name>Unknown</name>
        </author>
        <link rel="alternate" href="https://dpc.pw/posts/llm-reviews-in-cargo-crev/" type="text/html"/>
        <id>https://dpc.pw/posts/llm-reviews-in-cargo-crev/</id>
        
        <content type="html">&lt;p&gt;There has been lots of chatting about software supply chain security
recently, motivated by popular package exploits.&lt;&#x2F;p&gt;
&lt;p&gt;Well, I have some relevant news: &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;crev-dev&#x2F;cargo-crev&quot;&gt;cargo-crev&lt;&#x2F;a&gt; now supports LLM-assisted code reviews. Go try it!&lt;&#x2F;p&gt;
&lt;p&gt;Read on to get more information and background.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;history&quot;&gt;History&lt;a class=&quot;anchor&quot; aria-hidden=&quot;true&quot; href=&quot;#history&quot; hidden=&quot;&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;I started working on Crev in 2018. The idea
was (is) simple: if each of us (developers) reviewed at least some of our
dependencies, and then we could share and distribute such reviews
between each other with the help of a Web of Trust, we
could get a good review coverage of the ecosystem, gain more
trust in our supply chains, report back issues upstream and
improve overall health of the open source ecosystem.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;code&gt;cargo-crev&lt;&#x2F;code&gt; was an attempt to implement such a system,
for the language ecosystem I cared about most — Rust.&lt;&#x2F;p&gt;
&lt;p&gt;If I may say so, on a technical level I&#x27;m satisfied
with the UX and flow that was achieved. However, around 2020
I lost my enthusiasm for this project.&lt;&#x2F;p&gt;
&lt;p&gt;Why? Because it became apparent that no matter how well
&lt;code&gt;cargo-crev&lt;&#x2F;code&gt; actually works, the biggest obstacle to fully
realize the idea was lack of time by developers.&lt;&#x2F;p&gt;
&lt;p&gt;Reviewing code, even superficially, is a lot of effort and
it takes a very long time. And it
does not feel nearly as satisfying as actually creating
something new — writing code.&lt;&#x2F;p&gt;
&lt;p&gt;Open Source community was already overburdened with
just maintaining code. Asking developers to take on
yet another unpaid responsibility of trying to secure
supply chains is just asking too much.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;llms-getting-good-at-finding-issues&quot;&gt;LLMs getting good at finding issues&lt;a class=&quot;anchor&quot; aria-hidden=&quot;true&quot; href=&quot;#llms-getting-good-at-finding-issues&quot; hidden=&quot;&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;Just a few weeks ago I was reading some articles about new LLM
models finding non-trivial security issues, and Linux kernel and curl
developers admitting that after a deluge of mostly worthless slop security reports
they used to complain about, now they tend to receive actually worthwhile
AI-assisted bug and security reports. It reminded me about &lt;code&gt;cargo-crev&lt;&#x2F;code&gt;
and I realized that AI can actually fill the gap that made me
doubt it.&lt;&#x2F;p&gt;
&lt;p&gt;I&#x27;m not trying to overhype LLMs. But the fact is that
they can do, and in high volume, what developers themselves have
no time for: the 90&#x2F;10 security scanning that was otherwise quite hard
to automate.&lt;&#x2F;p&gt;
&lt;p&gt;An LLM can easily and reliably check if a code version published
on https:&#x2F;&#x2F;crates.io matches the code published in git.&lt;&#x2F;p&gt;
&lt;p&gt;An LLM can easily scan &lt;code&gt;build.rs&lt;&#x2F;code&gt; and the rest of the code and
look if anything looks out of place.&lt;&#x2F;p&gt;
&lt;p&gt;It is actually very hard to hide key-stealing malware
in a package that was supposed to format units, etc.&lt;&#x2F;p&gt;
&lt;p&gt;Especially in Rust, doing things that are wrong or
out of place creates a lot of noise, making such code
easy to notice, even by an LLM reviewer.&lt;&#x2F;p&gt;
&lt;p&gt;It might not be a silver bullet, but it is definitely
better than doing nothing.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;how-to-use-it&quot;&gt;How to use it&lt;a class=&quot;anchor&quot; aria-hidden=&quot;true&quot; href=&quot;#how-to-use-it&quot; hidden=&quot;&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;Note: In the initial release &lt;code&gt;cargo-crev&lt;&#x2F;code&gt; supports
only Claude Code agent. If you&#x27;re interested in adding
support for other coding agents, it should be relatively
easy — most scaffolding is already there. Feel free to chat
and create a PR.&lt;&#x2F;p&gt;
&lt;p&gt;Since version 0.27 &lt;code&gt;cargo-crev&lt;&#x2F;code&gt; has a built-in
review loop.&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #839496; background-color: #002B36;&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;cargo crev ai review-loop --iterations 10&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;which will start the agent 10 times, each time
selecting and reviewing a single dependency.&lt;&#x2F;p&gt;
&lt;p&gt;The agent will produce&amp;amp;update a single shell script
that can be used to conveniently review and sign
all reviews.&lt;&#x2F;p&gt;
&lt;p&gt;While the above is meant as a standard mass-review flow,
the core built-in agent review skill is available as an output of:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #839496; background-color: #002B36;&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;cargo crev ai skill review&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;and it should be easy for anyone to modify it and&#x2F;or build their own
LLM-assisted workflows.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;how-it-works&quot;&gt;How it works&lt;a class=&quot;anchor&quot; aria-hidden=&quot;true&quot; href=&quot;#how-it-works&quot; hidden=&quot;&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;The core change is that &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;dpc&#x2F;crev-proofs&#x2F;blob&#x2F;e8ae9359f6714f51b7198014386f0ba7b7c81cd3&#x2F;Z2hdE0ZebgUekVq0xdRfDlx09YAOMHEcbHE-aOcZBuk&#x2F;reviews&#x2F;2026-04-package-rV74rg.proof.crev#L18&quot;&gt;Crev&#x27;s reviews now have
fields to indicate that an LLM was used for the review&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;The rest is just relatively minor functionality to make producing
LLM reviews convenient end to end.&lt;&#x2F;p&gt;
&lt;p&gt;For people skeptical of LLMs, options to ignore LLM-generated reviews
have been and will be added where appropriate. You can just
ignore the slop reviews if you don&#x27;t trust them, fine with me.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;how-well-it-works&quot;&gt;How &lt;em&gt;well&lt;&#x2F;em&gt; it works&lt;a class=&quot;anchor&quot; aria-hidden=&quot;true&quot; href=&quot;#how-well-it-works&quot; hidden=&quot;&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;While working on this feature and testing it myself, &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;dpc&#x2F;crev-proofs&#x2F;commits&#x2F;master&#x2F;&quot;&gt;I have produced
quite a few LLM-assisted reviews&lt;&#x2F;a&gt;.
Judge by yourself.&lt;&#x2F;p&gt;
&lt;p&gt;To me these meet the bar of being useful. And they turned some spare
capacity from my Claude subscription into something that I otherwise
would not be able to do myself.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;summary&quot;&gt;Summary&lt;a class=&quot;anchor&quot; aria-hidden=&quot;true&quot; href=&quot;#summary&quot; hidden=&quot;&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;This is only an initial attempt at harnessing the AI in cargo-crev.
There still might be lots of things to improve and extend, but we have
to start somewhere.&lt;&#x2F;p&gt;
&lt;p&gt;If you like the idea and find it promising, I encourage you
to try it out, give some feedback, and submit improvements.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    
    <entry xml:lang="en">
        <title>I don&#x27;t want your PRs anymore</title>
        <published>2026-04-06T00:00:00+00:00</published>
        <updated>2026-04-06T00:00:00+00:00</updated>
        <author>
          <name>Unknown</name>
        </author>
        <link rel="alternate" href="https://dpc.pw/posts/i-dont-want-your-prs-anymore/" type="text/html"/>
        <id>https://dpc.pw/posts/i-dont-want-your-prs-anymore/</id>
        
        <content type="html">&lt;p&gt;I really appreciate that you&#x27;re enjoying the software I&#x27;m maintaining
and want to help. But we need to rethink this collaboration, because
I feel like we&#x27;re increasingly wasting each other&#x27;s time.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;why-i-don-t-want-to-merge-your-pr&quot;&gt;Why I don&#x27;t want to merge your PR&lt;a class=&quot;anchor&quot; aria-hidden=&quot;true&quot; href=&quot;#why-i-don-t-want-to-merge-your-pr&quot; hidden=&quot;&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h3&gt;
&lt;p&gt;Since I don&#x27;t really know you, I always have to assume that you might be trying
to sneak in something malicious along with your changes, which makes
reviewing and merging them riskier than implementing them myself.&lt;&#x2F;p&gt;
&lt;p&gt;On top of that, there are a lot of personal and subjective aspects to code.
You might have certain preferences about formatting,
style, structure, dependencies, and approach, and I have mine.&lt;&#x2F;p&gt;
&lt;p&gt;Then we often need to synchronize with respect to review, CI runs, merge conflicts, etc.&lt;&#x2F;p&gt;
&lt;p&gt;And then there&#x27;s this common back-and-forth round-trip between the
contributor and maintainer, which is just delaying things.&lt;&#x2F;p&gt;
&lt;p&gt;Even before LLMs, writing the code was not the main bottleneck for me. But
writing code did take time, so a solid, working, easy-to-review PR was
often worth the small extra risk and inconvenience.&lt;&#x2F;p&gt;
&lt;p&gt;With LLMs becoming quite good at implementing things, that tradeoff
is almost never true anymore.&lt;&#x2F;p&gt;
&lt;p&gt;While I still need to review LLM-generated code, I generally don&#x27;t have to worry about
it being malicious the way an unknown contributor&#x27;s code could be. I&#x27;ve already
codified a lot of my coding preferences and style guidelines for my LLM.
And I can rapidly iterate at my own pace without having to synchronize with
another human who might be in a different timezone.&lt;&#x2F;p&gt;
&lt;p&gt;For these reasons, it&#x27;s just easier if I make the code changes
myself (with the help of an LLM).&lt;&#x2F;p&gt;
&lt;h3 id=&quot;the-nature-of-software-development-has-shifted&quot;&gt;The nature of software development has shifted&lt;a class=&quot;anchor&quot; aria-hidden=&quot;true&quot; href=&quot;#the-nature-of-software-development-has-shifted&quot; hidden=&quot;&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h3&gt;
&lt;p&gt;It&#x27;s increasingly apparent that &quot;the source code&quot; is less &quot;source&quot;
and more &quot;code&quot; — an intermediate formalized layer between
ideas in the developer&#x27;s head and instructions for the computer to
execute. It&#x27;s always been this way, but now, with the code itself
being easier to generate automatically, it&#x27;s just more visible.&lt;&#x2F;p&gt;
&lt;p&gt;There&#x27;s a wide range of reactions to coding agents out there,
from banning them to proclaiming that coding is dead and vibecoding
is the future. Personally, as things are right now, I sit somewhere in the middle.
I come up with the design, then let my agent do a lot of the actual writing, and then I review
and refine the result.&lt;&#x2F;p&gt;
&lt;p&gt;I could get huge amounts of code written, but I&#x27;m bottlenecked on:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;understanding — reading the existing code to be able to reason about it;&lt;&#x2F;li&gt;
&lt;li&gt;designing — coming up with the right changes and architecture;&lt;&#x2F;li&gt;
&lt;li&gt;reviewing — ensuring that the code is doing what I wanted.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;The code in your PR doesn&#x27;t help me much with any of these.
So let&#x27;s skip it — don&#x27;t attempt to implement code changes
with the goal of merging them into the codebase.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;how-can-you-help-instead&quot;&gt;How can you help instead&lt;a class=&quot;anchor&quot; aria-hidden=&quot;true&quot; href=&quot;#how-can-you-help-instead&quot; hidden=&quot;&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h3&gt;
&lt;p&gt;As the &quot;writing the code&quot; part is becoming less valuable, all other ways
of helping maintainers become relatively higher value.&lt;&#x2F;p&gt;
&lt;h4 id=&quot;give-feedback&quot;&gt;Give feedback&lt;a class=&quot;anchor&quot; aria-hidden=&quot;true&quot; href=&quot;#give-feedback&quot; hidden=&quot;&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h4&gt;
&lt;p&gt;As I&#x27;m busy implementing things, I often don&#x27;t have much time
to actually use them, or do good research on how to improve them.&lt;&#x2F;p&gt;
&lt;p&gt;Users telling me what works well and what could be improved can be very helpful.&lt;&#x2F;p&gt;
&lt;h4 id=&quot;discuss-ideas&quot;&gt;Discuss ideas&lt;a class=&quot;anchor&quot; aria-hidden=&quot;true&quot; href=&quot;#discuss-ideas&quot; hidden=&quot;&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h4&gt;
&lt;p&gt;I don&#x27;t know everything, and discussing things with
other people with different experiences and perspectives
can help me understand what I should be building and how.&lt;&#x2F;p&gt;
&lt;h4 id=&quot;report-and-investigate-bugs&quot;&gt;Report and investigate bugs&lt;a class=&quot;anchor&quot; aria-hidden=&quot;true&quot; href=&quot;#report-and-investigate-bugs&quot; hidden=&quot;&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h4&gt;
&lt;p&gt;A good bug report is 3&#x2F;4 of the bug itself being fixed.&lt;&#x2F;p&gt;
&lt;p&gt;If you spotted a problem, please describe it well, and even
do the debugging to figure out how to reproduce it and
where exactly the problem is.&lt;&#x2F;p&gt;
&lt;p&gt;Then discuss potential solutions.&lt;&#x2F;p&gt;
&lt;h4 id=&quot;prototype-changes&quot;&gt;Prototype changes&lt;a class=&quot;anchor&quot; aria-hidden=&quot;true&quot; href=&quot;#prototype-changes&quot; hidden=&quot;&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h4&gt;
&lt;p&gt;Send me a reference PR and&#x2F;or the prompt you used to produce it.&lt;&#x2F;p&gt;
&lt;p&gt;Yes, I know I just said that I don&#x27;t want your PRs. So let me
explain. With LLMs, it&#x27;s easier for me to get my own LLM to make the change
and then review it myself.&lt;&#x2F;p&gt;
&lt;p&gt;BUT — using code for illustrative purposes still makes sense.
A quick glance at code implementing something can be helpful,
even if I don&#x27;t end up merging it.&lt;&#x2F;p&gt;
&lt;p&gt;And if you share the actual &quot;source&quot; (prompt) to produce the &quot;code&quot;,
I can reuse and refine it, saving time.&lt;&#x2F;p&gt;
&lt;h4 id=&quot;review-code-and-point-out-problems&quot;&gt;Review code and point out problems&lt;a class=&quot;anchor&quot; aria-hidden=&quot;true&quot; href=&quot;#review-code-and-point-out-problems&quot; hidden=&quot;&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h4&gt;
&lt;p&gt;As I&#x27;m bottlenecked on reviews, an extra pair of eyes helps.&lt;&#x2F;p&gt;
&lt;h4 id=&quot;fork-the-code-and-report-back&quot;&gt;Fork the code and report back&lt;a class=&quot;anchor&quot; aria-hidden=&quot;true&quot; href=&quot;#fork-the-code-and-report-back&quot; hidden=&quot;&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h4&gt;
&lt;p&gt;Don&#x27;t be afraid of forking the code and changing it however you want.&lt;&#x2F;p&gt;
&lt;p&gt;Having to come up with designs supporting multiple use cases,
forming consensus, debating best outcomes, looking for compromises, etc.
is very time-consuming.&lt;&#x2F;p&gt;
&lt;p&gt;LLMs enable a great deal of software customizability. You can
make the changes you want by yourself faster and easier than ever,
and then rebase them (or not) on top of upstream
at your own pace.&lt;&#x2F;p&gt;
&lt;p&gt;Just fork. Add support for your own use case, do things your way,
ask neither for permission nor forgiveness.&lt;&#x2F;p&gt;
&lt;p&gt;As a maintainer, this saves me time too. And in the end, maybe both of us
can learn something from your version taking its own route.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    
    <entry xml:lang="en">
        <title>BubbleWrap your dev env and agents</title>
        <published>2026-03-25T00:00:00+00:00</published>
        <updated>2026-03-25T00:00:00+00:00</updated>
        <author>
          <name>Unknown</name>
        </author>
        <link rel="alternate" href="https://dpc.pw/posts/bubblewrap-your-dev-env-and-agents/" type="text/html"/>
        <id>https://dpc.pw/posts/bubblewrap-your-dev-env-and-agents/</id>
        
        <content type="html">&lt;p&gt;OK, so the world is collapsing, everything is getting hacked,
all dependencies are probably stealing keys and mining crypto,
slop is everywhere, and I&#x27;m part of the problem.&lt;&#x2F;p&gt;
&lt;p&gt;So what do I do? &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=jkvCe4bKeL0&amp;amp;t=173s&quot;&gt;I&#x27;m going to isolate!&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;I had this in mind for a long while, but only recently
LLM agents became good enough that I actually find it
really useful to let them go without babysitting every
command they are trying to run.&lt;&#x2F;p&gt;
&lt;p&gt;So the goals are:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;protect my systems from the slopus,&lt;&#x2F;li&gt;
&lt;li&gt;protect my systems from malicious dependencies (at least somewhat),&lt;&#x2F;li&gt;
&lt;li&gt;retain the usual UX.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Because of the last point, I am not going to be doing
separate user account, or a separate VM, or play with dockers.&lt;&#x2F;p&gt;
&lt;p&gt;What I&#x27;m going to do is to use the &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;containers&#x2F;bubblewrap&quot;&gt;BubbleWrap&lt;&#x2F;a&gt;,
to remount only parts of host system and home directory, and most
of them in read-only mode. This way my tooling
and general DX remains almost exactly the same,
but if the Slopus has an episode of psychosis,
or pulls in a cryptomining malware, there is
only so much damage that it can do.&lt;&#x2F;p&gt;
&lt;p&gt;So the core of this system is the &lt;code&gt;isolate&lt;&#x2F;code&gt; script:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #839496; background-color: #002B36;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #586E75;font-style: italic;&quot;&gt;#!&#x2F;usr&#x2F;bin&#x2F;env bash&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;set&lt;&#x2F;span&gt;&lt;span style=&quot;color: #CB4B16;&quot;&gt; -euo&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt; pipefail&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #586E75;font-style: italic;&quot;&gt;# Skip re-isolating if already inside an isolated environment&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #859900;&quot;&gt;if&lt;&#x2F;span&gt;&lt;span&gt; [[&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt; -n&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;ISOLATE_ENV&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt;:-}&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt; ]];&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt; then&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #859900;&quot;&gt;	&amp;gt;&amp;amp;2&lt;&#x2F;span&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt; echo&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt; &amp;quot;warning: already isolated&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;	exec&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt;$&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;@&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #859900;&quot;&gt;fi&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;tiocsti_path&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;&amp;quot;&#x2F;proc&#x2F;sys&#x2F;dev&#x2F;tty&#x2F;legacy_tiocsti&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #859900;&quot;&gt;if&lt;&#x2F;span&gt;&lt;span&gt; [&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt; ! -f&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;$tiocsti_path&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt; ]&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt; ||&lt;&#x2F;span&gt;&lt;span&gt; [&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt; &amp;quot;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;cat&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;$tiocsti_path&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;&amp;quot;)&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt; !=&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt; &amp;quot;0&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt; ];&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt; then&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #859900;&quot;&gt;	&amp;gt;&amp;amp;2&lt;&#x2F;span&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt; echo&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt; &amp;quot;warning: TIOCSTI not disabled&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #859900;&quot;&gt;fi&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;args&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span&gt;()&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;args&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt;+=&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;	--dev-bind &#x2F;dev &#x2F;dev&lt;&#x2F;span&gt;&lt;span&gt; \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;	--proc &#x2F;proc&lt;&#x2F;span&gt;&lt;span&gt; \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;	--tmpfs &#x2F;tmp&lt;&#x2F;span&gt;&lt;span&gt; \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;	--tmpfs &#x2F;run&lt;&#x2F;span&gt;&lt;span&gt; \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt; 	--setenv PROMPT_ENV_INDICATOR &amp;quot;isolated&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt; \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt; 	--setenv ISOLATE_ENV &amp;quot;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;pwd&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;)&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #859900;&quot;&gt;for&lt;&#x2F;span&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt; p&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt; in&lt;&#x2F;span&gt;&lt;span&gt; \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;	&#x2F;bin&lt;&#x2F;span&gt;&lt;span&gt; \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;	&#x2F;usr&#x2F;bin&lt;&#x2F;span&gt;&lt;span&gt; \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;	&#x2F;etc&lt;&#x2F;span&gt;&lt;span&gt; \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;	&#x2F;nix&lt;&#x2F;span&gt;&lt;span&gt; \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;	&#x2F;run&#x2F;current-system&lt;&#x2F;span&gt;&lt;span&gt; \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;	&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;$HOME&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;&#x2F;bin&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt; \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;	&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;$HOME&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;&#x2F;.config&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt; \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;	&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;$HOME&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;&#x2F;nix&#x2F;dot&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt; \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;	&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;$HOME&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;&#x2F;.gitconfig&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt; \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;	&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;$HOME&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;&#x2F;.nix-profile&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt; \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;	&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;$HOME&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;&#x2F;.local&#x2F;share&#x2F;direnv&#x2F;allow&#x2F;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt; \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;	;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt; do&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;	args&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt;+=&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;--ro-bind &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;$p&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;&amp;quot; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;$p&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #859900;&quot;&gt;done&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #859900;&quot;&gt;for&lt;&#x2F;span&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt; p&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt; in&lt;&#x2F;span&gt;&lt;span&gt; \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;	&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;$HOME&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;&#x2F;.cargo&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt; \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;	&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;$HOME&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;&#x2F;.claude&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt; \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;	&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;$HOME&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;&#x2F;.claude.json&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt; \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;	&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;$HOME&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;&#x2F;nix&#x2F;dot&#x2F;.claude&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt; \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;	&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;$XDG_RUNTIME_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;&#x2F;gnupg&#x2F;S.gpg-agent&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt; \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;	&amp;quot;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;pwd&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;)&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;\&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;	;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt; do&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;	args&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt;+=&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;--bind &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;$p&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;&amp;quot; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;$p&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #859900;&quot;&gt;done&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #859900;&quot;&gt;if&lt;&#x2F;span&gt;&lt;span&gt; [[&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt; -n&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;NIRI_SOCKET&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt;:-}&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt; &amp;amp;&amp;amp; -S&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;$NIRI_SOCKET&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt; ]];&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt; then&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;	args&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt;+=&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;--bind &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;$NIRI_SOCKET&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;&amp;quot; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;$NIRI_SOCKET&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;	args&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt;+=&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;--setenv NIRI_SOCKET &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;$NIRI_SOCKET&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #859900;&quot;&gt;fi&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;args&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt;+=&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt; 	--dir &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;$HOME&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;&#x2F;.gnupg&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt; \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt; 	--chmod&lt;&#x2F;span&gt;&lt;span style=&quot;color: #D33682;&quot;&gt; 0700&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;$HOME&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;&#x2F;.gnupg&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt; \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #586E75;font-style: italic;&quot;&gt;# Source extra config (e.g. set by auto-isolate) to allow&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #586E75;font-style: italic;&quot;&gt;# project-specific additions to args&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #859900;&quot;&gt;if&lt;&#x2F;span&gt;&lt;span&gt; [[&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt; -n&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;ISOLATE_EXTRA_CONFIG&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt;:-}&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt; &amp;amp;&amp;amp; -f&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;$ISOLATE_EXTRA_CONFIG&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt; ]];&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt; then&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;	source&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;$ISOLATE_EXTRA_CONFIG&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #586E75;font-style: italic;&quot;&gt;	# Hide the config file inside the sandbox by overlaying &#x2F;dev&#x2F;null&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;	args&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt;+=&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;--ro-bind &#x2F;dev&#x2F;null &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;$ISOLATE_EXTRA_CONFIG&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #859900;&quot;&gt;fi&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;exec&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt; bwrap&lt;&#x2F;span&gt;&lt;span style=&quot;color: #CB4B16;&quot;&gt; \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;	&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;args&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt;@&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;]&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #CB4B16;&quot;&gt; \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;	&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt;$&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;@&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;I&#x27;m not going to spend time explaining every detail here,
please read the Bubblewrap docs, or ask your local LLM.&lt;&#x2F;p&gt;
&lt;p&gt;But if you, dear reader, are planning to do the same&#x2F;similar thing,
you&#x27;ll probably want to go over each path and consider
implications. E.g. I&#x27;m using a &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;drduh&#x2F;YubiKey-Guide&quot;&gt;fancy Yubikey SSH&#x2F;GPG setup&lt;&#x2F;a&gt;
and I need to touch the hardware yubikey every time I ssh
somewhere. Because of that I&#x27;m not afraid of mounting the ssh&#x2F;gpg
socket into the isolated environment.&lt;&#x2F;p&gt;
&lt;p&gt;Anyway, in a nutshell: &lt;code&gt;isolate&lt;&#x2F;code&gt; will run a given command
in an environment where almost only the current working directory
is writable, and rest are only the bare minimum parts needed
to get things working, mostly in read-only mode. Kind-a, mostly.
The goal here is a good enough security and robustness without
sacrificing almost any DX.&lt;&#x2F;p&gt;
&lt;p&gt;Thanks to using Nix, the first thing I&#x27;m going to use this &lt;code&gt;isolate&lt;&#x2F;code&gt;
script to wrap Slopus. That guy should never get a full
access to anything important directly.&lt;&#x2F;p&gt;
&lt;p&gt;Inside my system&#x27;s &lt;code&gt;flake.nix&lt;&#x2F;code&gt; in the main overlay I have something like this:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #839496; background-color: #002B36;&quot;&gt;&lt;code data-lang=&quot;nix&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;            claude-code&lt;&#x2F;span&gt;&lt;span style=&quot;color: #DC322F;&quot;&gt; =&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #DC322F;&quot;&gt;              let&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;                orig&lt;&#x2F;span&gt;&lt;span style=&quot;color: #DC322F;&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; pkgs-unstable&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt;.&lt;&#x2F;span&gt;&lt;span&gt;claude-code&lt;&#x2F;span&gt;&lt;span style=&quot;color: #DC322F;&quot;&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #DC322F;&quot;&gt;              in&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;              final&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt;.&lt;&#x2F;span&gt;&lt;span&gt;writeShellScriptBin&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt; &amp;quot;claude&amp;quot; &amp;#39;&amp;#39;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;                exec env CARGO_TERM_QUIET=true PATH=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #DC322F;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;final&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt;.&lt;&#x2F;span&gt;&lt;span&gt;not-git&lt;&#x2F;span&gt;&lt;span style=&quot;color: #DC322F;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;&#x2F;bin:$PATH&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color: #DC322F;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;.&#x2F;dot&#x2F;bin&#x2F;isolate&lt;&#x2F;span&gt;&lt;span style=&quot;color: #DC322F;&quot;&gt;} ${&lt;&#x2F;span&gt;&lt;span&gt;orig&lt;&#x2F;span&gt;&lt;span style=&quot;color: #DC322F;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;&#x2F;bin&#x2F;claude &amp;quot;$@&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;              &amp;#39;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #DC322F;&quot;&gt;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;This makes Slopus always start in an isolated environment,
so I can&#x27;t forget about it. I also replace &lt;code&gt;git&lt;&#x2F;code&gt; with a wrapper
reminding Slopus that we&#x27;re using Jujutsu, and make &lt;code&gt;cargo build&lt;&#x2F;code&gt; less
noisy by default to (maybe) save some tokens.&lt;&#x2F;p&gt;
&lt;p&gt;Then I want to automate entering isolated environment
in every project I&#x27;m working on.&lt;&#x2F;p&gt;
&lt;p&gt;For that I have &lt;code&gt;auto-isolate&lt;&#x2F;code&gt;:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #839496; background-color: #002B36;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #586E75;font-style: italic;&quot;&gt;#!&#x2F;usr&#x2F;bin&#x2F;env bash&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;set&lt;&#x2F;span&gt;&lt;span style=&quot;color: #CB4B16;&quot;&gt; -euo&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt; pipefail&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #859900;&quot;&gt;if&lt;&#x2F;span&gt;&lt;span&gt; [[&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt; ! -x&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;$HOME&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;&#x2F;bin&#x2F;isolate&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt; ]];&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt; then&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #859900;&quot;&gt;	&amp;gt;&amp;amp;2&lt;&#x2F;span&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt; echo&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt; &amp;quot;warning: &lt;&#x2F;span&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;$HOME&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;&#x2F;bin&#x2F;isolate not found, skipping isolation&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;	exec&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt;$&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;@&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #859900;&quot;&gt;fi&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;dir&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;&amp;quot;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;pwd&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;)&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #859900;&quot;&gt;while&lt;&#x2F;span&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt; true&lt;&#x2F;span&gt;&lt;span&gt;;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt; do&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #859900;&quot;&gt;	if&lt;&#x2F;span&gt;&lt;span&gt; [[&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt; -f&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;$dir&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;&#x2F;.isolate&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt; ]];&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt; then&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;		exec&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt; env ISOLATE_EXTRA_CONFIG=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;$dir&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;&#x2F;.isolate&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt; $HOME&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;&#x2F;bin&#x2F;isolate &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt;$&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;@&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #859900;&quot;&gt;	fi&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #859900;&quot;&gt;	if&lt;&#x2F;span&gt;&lt;span&gt; [[&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;$dir&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt; ==&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt; &amp;quot;&#x2F;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt; ]];&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt; then&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #859900;&quot;&gt;		break&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #859900;&quot;&gt;	fi&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;	dir&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;&amp;quot;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;dirname&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;$dir&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;&amp;quot;)&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #859900;&quot;&gt;done&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;exec&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt;$&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;@&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;&lt;code&gt;auto-isolate&lt;&#x2F;code&gt; will automatically call &lt;code&gt;isolate&lt;&#x2F;code&gt; for a given
command if it can find &lt;code&gt;.isolate&lt;&#x2F;code&gt; in current working dir
or any ancestor dir.&lt;&#x2F;p&gt;
&lt;p&gt;One could wire it in a shell startup file, but since I have
a whole system for working in the CLI heavily rooted in tmux,
I am going to put it in &lt;code&gt;~&#x2F;.config&#x2F;tmux&#x2F;tmux.conf&lt;&#x2F;code&gt; like this:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #839496; background-color: #002B36;&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;set-option -g default-command &amp;quot;$HOME&#x2F;bin&#x2F;auto-isolate ${SHELL}&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;# in case I want to actually do something outside of the isolated env constrains&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;bind E new-window &amp;quot;${SHELL}&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;This way every time I&#x27;m starting a new pane in tmux,
it will trigger &lt;code&gt;auto-isolate&lt;&#x2F;code&gt;. Now I &lt;code&gt;touch ~&#x2F;lab&#x2F;.isolate&lt;&#x2F;code&gt; and
since all my dev projects are always inside &lt;code&gt;~&#x2F;lab&lt;&#x2F;code&gt; I pretty much
can&#x27;t ever forget to &lt;code&gt;isolate&lt;&#x2F;code&gt; my projects.&lt;&#x2F;p&gt;
&lt;p&gt;If you haven&#x27;t noticed before, the &lt;code&gt;isolate&lt;&#x2F;code&gt; script supports &lt;code&gt;ISOLATE_EXTRA_CONFIG&lt;&#x2F;code&gt;
which allows adding project-specific modifications to the isolated
environment. E.g. for a little GUI project I&#x27;m working on, I had to
create following &lt;code&gt;.isolate&lt;&#x2F;code&gt; file:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #839496; background-color: #002B36;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #859900;&quot;&gt;if&lt;&#x2F;span&gt;&lt;span&gt; [[&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt; -n&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;$WAYLAND_DISPLAY&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt; ]];&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt; then&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;    args&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt;+=&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;--ro-bind &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;$XDG_RUNTIME_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;$WAYLAND_DISPLAY&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;&amp;quot; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;$XDG_RUNTIME_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;$WAYLAND_DISPLAY&lt;&#x2F;span&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #859900;&quot;&gt;fi&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #268BD2;&quot;&gt;args&lt;&#x2F;span&gt;&lt;span style=&quot;color: #859900;&quot;&gt;+=&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;	--bind &#x2F;dev&#x2F;dri&#x2F; &#x2F;dev&#x2F;dri&#x2F;&lt;&#x2F;span&gt;&lt;span&gt; \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;	--bind &#x2F;dev&#x2F;shm &#x2F;dev&#x2F;shm&lt;&#x2F;span&gt;&lt;span&gt; \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;	--bind &#x2F;tmp&#x2F;.X11-unix&#x2F; &#x2F;tmp&#x2F;.X11-unix&#x2F;&lt;&#x2F;span&gt;&lt;span&gt; \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #2AA198;&quot;&gt;	--bind &#x2F;run&#x2F;opengl-driver&#x2F;lib&#x2F; &#x2F;run&#x2F;opengl-driver&#x2F;lib&#x2F;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;so it can show me the UI, when I run &lt;code&gt;cargo r&lt;&#x2F;code&gt;.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    
    <entry xml:lang="en">
        <title>Personal AI usage disclosure</title>
        <published>2026-02-04T00:00:00+00:00</published>
        <updated>2026-02-04T00:00:00+00:00</updated>
        <author>
          <name>Unknown</name>
        </author>
        <link rel="alternate" href="https://dpc.pw/posts/personal-ai-usage-disclosure/" type="text/html"/>
        <id>https://dpc.pw/posts/personal-ai-usage-disclosure/</id>
        
        <content type="html">&lt;h1 id=&quot;personal-ai-usage-disclosure&quot;&gt;Personal AI usage disclosure&lt;a class=&quot;anchor&quot; aria-hidden=&quot;true&quot; href=&quot;#personal-ai-usage-disclosure&quot; hidden=&quot;&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h1&gt;
&lt;p&gt;Since people have strong opinions about it and in an effort to keep things honest, let me write it once here so I can link to it from relevant README files and be done with it:&lt;&#x2F;p&gt;
&lt;p&gt;✨ &lt;strong&gt;I use LLMs when working on my projects.&lt;&#x2F;strong&gt; ✨&lt;&#x2F;p&gt;
&lt;p&gt;If you have problems with it you have been informed. Keep reading if you would like to know more details and some of my opinions on the matter.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;my-history-of-using-llms&quot;&gt;My history of using LLMs&lt;a class=&quot;anchor&quot; aria-hidden=&quot;true&quot; href=&quot;#my-history-of-using-llms&quot; hidden=&quot;&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h3&gt;
&lt;p&gt;I&#x27;ve been relatively slow to start using LLMs, since they didn&#x27;t have good integrations with CLI text editors (in particular Helix) and command line usage so they did not fit my workflow (I live in tmux, running fish shell and helix). Sometime in very late 2024 I discovered &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;aider.chat&#x2F;&quot;&gt;Aider&lt;&#x2F;a&gt; and that&#x27;s when I started actually using LLMs for programming. Few months later I switched to Claude Code, and have been using it as a primary LLM ever since. There have been many significant improvements in how LLMs do as coding assistants during 2025, and somewhere in the second half of 2025 I was actually satisfied with their robustness and quality of what they produced.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;how-i-use-them&quot;&gt;How I use them&lt;a class=&quot;anchor&quot; aria-hidden=&quot;true&quot; href=&quot;#how-i-use-them&quot; hidden=&quot;&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h3&gt;
&lt;p&gt;Just to get it out of the way: &lt;strong&gt;I do not vibe-code&lt;&#x2F;strong&gt;. By vibe-coding I mean largely unsupervised usage and not paying too much attention to the code AI produces. I believe vibe-coding can maybe work for very simple CRUD web apps and simple software, but at least at the moment LLMs are nowhere near producing really quality code without supervision. It seems definitely possible to build complex LLM-based agent loops and systems, that cross-check, verify, etc. to increase how far vibe-coding can be employed, but as things are right now I find it complex, wasteful and not very interesting.&lt;&#x2F;p&gt;
&lt;p&gt;The way I use LLMs is largely treating it as a very sophisticated auto-completion and refactoring engine. I give it relatively small scope tasks, I like to point it at existing code with similar patterns and design, to ensure it produces exactly what I have in mind. Even with such a methodical usage it&#x27;s quite common for the LLM to produce substandard code, overcomplicate or even break some adjacent stuff. It&#x27;s been getting significantly better over time, but I fully recognize coding agents are a bit spooky in how unpredictable they can be. That&#x27;s why I do review code the LLM produces and spend significant amount of time post-processing, refactoring and cleaning it.&lt;&#x2F;p&gt;
&lt;p&gt;All in all, despite all the drawbacks and shortcomings of LLMs, they are still the most significant improvement for my productivity as a developer I&#x27;ve ever experienced. I build better, more ambitious things faster, and the quality is significantly improved. E.g. my projects now have way more tests - because it&#x27;s faster to create and maintain them, and frankly - the flakiness of LLMs requires it. My code has more and better comments, examples and auxiliary stuff like that. Just the other day, I asked the LLM to scan a certain security-sensitive code for all attack vectors it can think of and write a unit test for each of them, and indeed AI found an important case that I missed. I screwed up, I wrote that code by hand. AI saved my bacon this time, repaying for all the dozen times when it did something really dumb that I had to tell it to correct.&lt;&#x2F;p&gt;
&lt;p&gt;How exactly I use AI agents will evolve over time and I might not remember to update this document.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;political-concerns&quot;&gt;Political concerns&lt;a class=&quot;anchor&quot; aria-hidden=&quot;true&quot; href=&quot;#political-concerns&quot; hidden=&quot;&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h3&gt;
&lt;p&gt;I know. The electricity and water usage, the ingestion of GPL-licensed code, the jobs that will be replaced, social repercussions, economic inequality. Yeah, yeah, I hear ya.&lt;&#x2F;p&gt;
&lt;p&gt;I just don&#x27;t think hiding your head in the sand and just refusing to use LLMs or even any code that was modified by an LLM is going to help anyone. The march of technological progress is kind of inevitable due to competitive pressures.&lt;&#x2F;p&gt;
&lt;p&gt;Every technology brings important downsides and costs for all the benefits it makes. Such is the nature of civilizational progress. I guess the best we can do is to use political will and wisdom to increase the benefits, and mitigate the costs. And we will likely fail again to do so for a long time. But we did stop adding lead to car fuel eventually at least.&lt;&#x2F;p&gt;
&lt;p&gt;From all the ways I could think of AI-like technology could have been developed, we got quite lucky. The LLM companies really have little moat, are a subject to heavy market competition from the get go, and even determined individuals can run their own LLMs locally. Much better than a hypothetical scenario where a single big-corp discovery gives it a patent and exclusive secret AI tech leading to impossible market advantage and universal monopoly over the whole economy.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;software-collaboration-dynamic-concerns&quot;&gt;Software collaboration dynamic concerns&lt;a class=&quot;anchor&quot; aria-hidden=&quot;true&quot; href=&quot;#software-collaboration-dynamic-concerns&quot; hidden=&quot;&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h3&gt;
&lt;p&gt;So anyone can be a coder now, and produce terrible buggy code at the pace of 40 junior developers. And they are all very happy to open a PR to your project.&lt;&#x2F;p&gt;
&lt;p&gt;And now that everyone is LLMing, how do you keep up and ensure the quality doesn&#x27;t suffer, and people don&#x27;t waste each other&#x27;s time with slop.&lt;&#x2F;p&gt;
&lt;p&gt;There are no easy answers here. We will manage, and we will see.&lt;&#x2F;p&gt;
&lt;p&gt;I think the dynamics of SWE collaboration will drastically change. I predict teams will get smaller, and more projects will be developed by individuals leveraging their productivity. But only time will tell.&lt;&#x2F;p&gt;
&lt;p&gt;And LLM-based solutions are desperately needed to help with vetting, reviewing, testing, ensuring code quality, etc. There&#x27;s definitely a lot of potential and work to be done.&lt;&#x2F;p&gt;
</content>
        
    </entry>
</feed>
