<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: mavdol04</title><link>https://news.ycombinator.com/user?id=mavdol04</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 16 May 2026 08:21:50 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=mavdol04" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by mavdol04 in "Show HN: Watch a neural net learn to play Snake"]]></title><description><![CDATA[
<p>That's cool, i did exactly the same few years ago</p>
]]></description><pubDate>Fri, 15 May 2026 20:13:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=48153251</link><dc:creator>mavdol04</dc:creator><comments>https://news.ycombinator.com/item?id=48153251</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48153251</guid></item><item><title><![CDATA[New comment by mavdol04 in "Show HN: Capsule Bash – Sandboxed Bash for Agents"]]></title><description><![CDATA[
<p>Nice, what are you building exactly ?</p>
]]></description><pubDate>Mon, 04 May 2026 15:04:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=48009633</link><dc:creator>mavdol04</dc:creator><comments>https://news.ycombinator.com/item?id=48009633</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48009633</guid></item><item><title><![CDATA[Show HN: Capsule Bash – Sandboxed Bash for Agents]]></title><description><![CDATA[
<p>I've always felt that existing Bash wasn't adapted for agents. It gives way too much freedom and not enough feedback to enrich the context after each command.<p>I ended up building this TypeScript-based sandboxed Bash. If we compare it to other alternatives, it is divided into two layers:<p>- The core, with all the Bash commands and the operator logic.<p>- The runtime, a pluggable part that manages code execution in the sandbox. There's a Wasm runtime available based on a Rust runtime I launched a few months ago. [1]<p>In practice, the core calls the runtime to execute code and get back structured information from the sandbox, including exact filesystem changes (what was created, modified or deleted) and direct feedback in stdout.<p>I added commonly used commands, including `python3 -c` and `node -e`, but if you find an edge case where the current commands aren't enough, let me know.<p>GitHub: <a href="https://github.com/capsulerun/bash" rel="nofollow">https://github.com/capsulerun/bash</a><p>--<p>[1]: <a href="https://news.ycombinator.com/item?id=46871387">https://news.ycombinator.com/item?id=46871387</a></p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48009460">https://news.ycombinator.com/item?id=48009460</a></p>
<p>Points: 3</p>
<p># Comments: 3</p>
]]></description><pubDate>Mon, 04 May 2026 14:49:16 +0000</pubDate><link>https://github.com/capsulerun/bash</link><dc:creator>mavdol04</dc:creator><comments>https://news.ycombinator.com/item?id=48009460</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48009460</guid></item><item><title><![CDATA[New comment by mavdol04 in "Ask HN: Why are people leaving GitHub now?"]]></title><description><![CDATA[
<p>I am in the EU timezone and had some minor issues recently with GitHub as well, but it never lasts very long.</p>
]]></description><pubDate>Thu, 30 Apr 2026 11:43:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=47961033</link><dc:creator>mavdol04</dc:creator><comments>https://news.ycombinator.com/item?id=47961033</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47961033</guid></item><item><title><![CDATA[Reimagining Bash for Untrusted Contexts]]></title><description><![CDATA[
<p>Article URL: <a href="https://capsulerun.github.io/blog/reimagining-bash-for-untrusted-contexts">https://capsulerun.github.io/blog/reimagining-bash-for-untrusted-contexts</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47936409">https://news.ycombinator.com/item?id=47936409</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Tue, 28 Apr 2026 16:10:38 +0000</pubDate><link>https://capsulerun.github.io/blog/reimagining-bash-for-untrusted-contexts</link><dc:creator>mavdol04</dc:creator><comments>https://news.ycombinator.com/item?id=47936409</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47936409</guid></item><item><title><![CDATA[New comment by mavdol04 in "Ask HN: What would be the impact of a LLM output injection attack?"]]></title><description><![CDATA[
<p>The worst that could happen is having your credentials stolen. It’s an LLM architectural flaw, so it has to be at the tools level so the only way to prevent it is still sandboxing in my opinion. Or at least sandboxing the tools themselves</p>
]]></description><pubDate>Tue, 21 Apr 2026 19:06:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=47853073</link><dc:creator>mavdol04</dc:creator><comments>https://news.ycombinator.com/item?id=47853073</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47853073</guid></item><item><title><![CDATA[One-time pad encryption with DNA (Paris to Tokyo)]]></title><description><![CDATA[
<p>Article URL: <a href="https://arxiv.org/abs/2603.17149">https://arxiv.org/abs/2603.17149</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47614857">https://news.ycombinator.com/item?id=47614857</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 02 Apr 2026 14:18:21 +0000</pubDate><link>https://arxiv.org/abs/2603.17149</link><dc:creator>mavdol04</dc:creator><comments>https://news.ycombinator.com/item?id=47614857</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47614857</guid></item><item><title><![CDATA[New comment by mavdol04 in "We rewrote our Rust WASM parser in TypeScript and it got faster"]]></title><description><![CDATA[
<p>I think a shared array just avoids the copy, not the serialization which is the main problem as they showed with serde-wasm-bindgen test</p>
]]></description><pubDate>Sat, 21 Mar 2026 00:28:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=47462721</link><dc:creator>mavdol04</dc:creator><comments>https://news.ycombinator.com/item?id=47462721</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47462721</guid></item><item><title><![CDATA[New comment by mavdol04 in "Prompt Injecting Contributing.md"]]></title><description><![CDATA[
<p>Wait, you just invented a reverse CAPTCHA for AI agent</p>
]]></description><pubDate>Thu, 19 Mar 2026 18:20:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=47443637</link><dc:creator>mavdol04</dc:creator><comments>https://news.ycombinator.com/item?id=47443637</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47443637</guid></item><item><title><![CDATA[New comment by mavdol04 in "Docker Sandboxes and Docker Agent"]]></title><description><![CDATA[
<p>That’s great, but it can’t be used in production because it’s not available for Linux (so no AWS, no GCP, etc.) and requires Docker Desktop. Still nice for experimenting, though.</p>
]]></description><pubDate>Mon, 16 Mar 2026 10:09:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=47397099</link><dc:creator>mavdol04</dc:creator><comments>https://news.ycombinator.com/item?id=47397099</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47397099</guid></item><item><title><![CDATA[New comment by mavdol04 in "Nominal Types in WebAssembly"]]></title><description><![CDATA[
<p>I mean standardizing on an x86 subset would replace wasm's native portability with a kind of 'emulated' compatibility, and this is one of wasm's strengths. If we do that, non-x86 hardware(mobile etc.) will pay the translation tax. So, keeping Wasm agnostic makes more sense anyway.</p>
]]></description><pubDate>Sat, 14 Mar 2026 18:18:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=47379489</link><dc:creator>mavdol04</dc:creator><comments>https://news.ycombinator.com/item?id=47379489</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47379489</guid></item><item><title><![CDATA[New comment by mavdol04 in "Show HN: Sandboxing untrusted code using WebAssembly"]]></title><description><![CDATA[
<p>It actually works a bit differently. The eval is executed by the interpreter running inside the isolated wasm sandbox (StarlingMonkey). You can think of it as each sandbox having its own dedicated JavaScript engine.</p>
]]></description><pubDate>Thu, 05 Feb 2026 23:40:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=46907046</link><dc:creator>mavdol04</dc:creator><comments>https://news.ycombinator.com/item?id=46907046</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46907046</guid></item><item><title><![CDATA[New comment by mavdol04 in "Show HN: Sandboxing untrusted code using WebAssembly"]]></title><description><![CDATA[
<p>Thanks! Not yet, but that's a great idea. I could definitely add it to the roadmap.</p>
]]></description><pubDate>Tue, 03 Feb 2026 18:31:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=46875071</link><dc:creator>mavdol04</dc:creator><comments>https://news.ycombinator.com/item?id=46875071</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46875071</guid></item><item><title><![CDATA[New comment by mavdol04 in "Show HN: Sandboxing untrusted code using WebAssembly"]]></title><description><![CDATA[
<p>yeah, the previous example was quite basic. I will write a complete example for that, but here is how you can run dynamic code:<p><pre><code>   import { task } from "@capsule-run/sdk";

   export default task({
     name: "main",
     compute: "HIGH",
   }, async () => {
     const untrustedCode = "const x = 10; x * 2 + 5;";
     const result = eval(untrustedCode);
     return result;
   });
</code></pre>
Hope that helps!</p>
]]></description><pubDate>Tue, 03 Feb 2026 17:49:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=46874359</link><dc:creator>mavdol04</dc:creator><comments>https://news.ycombinator.com/item?id=46874359</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46874359</guid></item><item><title><![CDATA[New comment by mavdol04 in "Show HN: Sandboxing untrusted code using WebAssembly"]]></title><description><![CDATA[
<p>I would love for the component model tooling to reach that level of maturity.<p>Since the runtime uses standard WASI and not Emscripten, we don't have that seamless dynamic linking yet. It will be interesting to see how the WASI path eventually converges with what Pyodide can do today regarding C-extensions.</p>
]]></description><pubDate>Tue, 03 Feb 2026 17:28:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=46874013</link><dc:creator>mavdol04</dc:creator><comments>https://news.ycombinator.com/item?id=46874013</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46874013</guid></item><item><title><![CDATA[New comment by mavdol04 in "Show HN: Sandboxing untrusted code using WebAssembly"]]></title><description><![CDATA[
<p>Thanks for the feedback! What do you think about running the separate file directly from the decorator?</p>
]]></description><pubDate>Tue, 03 Feb 2026 16:50:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=46873471</link><dc:creator>mavdol04</dc:creator><comments>https://news.ycombinator.com/item?id=46873471</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46873471</guid></item><item><title><![CDATA[New comment by mavdol04 in "Show HN: Sandboxing untrusted code using WebAssembly"]]></title><description><![CDATA[
<p>Thanks! Got it, I will add more examples for that. Currently you can do both: run dynamically untrusted code with eval, or run fully encapsulated logic (like in the existing examples).<p>I made a small example that might give you a better idea (it's not eval, but shows how to isolate a specific data processing task): <a href="https://github.com/mavdol/capsule/tree/main/examples/javascript/dialogue-evaluator" rel="nofollow">https://github.com/mavdol/capsule/tree/main/examples/javascr...</a><p>And yes, you are spot on regarding LeetCode platforms. The resource limits are also designed for that kind of usage.</p>
]]></description><pubDate>Tue, 03 Feb 2026 16:41:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=46873326</link><dc:creator>mavdol04</dc:creator><comments>https://news.ycombinator.com/item?id=46873326</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46873326</guid></item><item><title><![CDATA[New comment by mavdol04 in "Show HN: Sandboxing untrusted code using WebAssembly"]]></title><description><![CDATA[
<p>I understand your point. I added native Python support because C extensions will eventually become compatible. Also, we might see more libraries built with Rust extensions appearing, which will be much easier to port to Wasm.</p>
]]></description><pubDate>Tue, 03 Feb 2026 16:16:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=46872927</link><dc:creator>mavdol04</dc:creator><comments>https://news.ycombinator.com/item?id=46872927</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46872927</guid></item><item><title><![CDATA[New comment by mavdol04 in "Show HN: Sandboxing untrusted code using WebAssembly"]]></title><description><![CDATA[
<p>I recreated many Node.js built-ins so compatibility is actually quite extended.<p>For Python, the main limitation is indeed C extensions. I'm looking for solutions. the move to WASI 0.3 will certainly help with that.</p>
]]></description><pubDate>Tue, 03 Feb 2026 16:08:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=46872806</link><dc:creator>mavdol04</dc:creator><comments>https://news.ycombinator.com/item?id=46872806</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46872806</guid></item><item><title><![CDATA[Show HN: Sandboxing untrusted code using WebAssembly]]></title><description><![CDATA[
<p>Hi everyone,<p>I built a runtime to isolate untrusted code using wasm sandboxes.<p>Basically, it protects your host system from problems that untrusted code can cause. We’ve had a great discussion about sandboxing in Python lately that elaborates a bit more on the problem [1]. In TypeScript, wasm integration is even more natural thanks to the close proximity between both ecosystems.<p>The core is built in Rust. On top of that, I use WASI 0.2 via wasmtime and the component model, along with custom SDKs that keep things as idiomatic as possible.<p>For example, in Python we have a simple decorator:<p><pre><code>  from capsule import task

  @task(
      name="analyze_data", 
      compute="MEDIUM",
      ram="512mb",
      allowed_files=["./authorized-folder/"],
      timeout="30s", 
      max_retries=1
  )
  def analyze_data(dataset: list) -> dict:
      """Process data in an isolated, resource-controlled environment."""
      # Your code runs safely in a Wasm sandbox
      return {"processed": len(dataset), "status": "complete"}
</code></pre>
And in TypeScript we have a wrapper:<p><pre><code>  import { task } from "@capsule-run/sdk"

  export const analyze = task({
      name: "analyzeData", 
      compute: "MEDIUM", 
      ram: "512mb",
      allowedFiles: ["./authorized-folder/"],
      timeout: 30000, 
      maxRetries: 1
  }, (dataset: number[]) => {
      return {processed: dataset.length, status: "complete"}
  });
</code></pre>
You can set CPU (with compute), memory, filesystem access, and retries to keep precise control over your tasks.<p>It's still quite early, but I'd love feedback. I’ll be around to answer questions.<p>GitHub: <a href="https://github.com/mavdol/capsule" rel="nofollow">https://github.com/mavdol/capsule</a><p>[1] <a href="https://news.ycombinator.com/item?id=46500510">https://news.ycombinator.com/item?id=46500510</a></p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46871387">https://news.ycombinator.com/item?id=46871387</a></p>
<p>Points: 76</p>
<p># Comments: 25</p>
]]></description><pubDate>Tue, 03 Feb 2026 14:28:01 +0000</pubDate><link>https://github.com/mavdol/capsule</link><dc:creator>mavdol04</dc:creator><comments>https://news.ycombinator.com/item?id=46871387</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46871387</guid></item></channel></rss>