{"id":78590,"date":"2026-09-16T07:17:58","date_gmt":"2026-09-16T07:17:58","guid":{"rendered":"https:\/\/www.devopsschool.com\/blog\/?p=78590"},"modified":"2026-09-16T07:18:08","modified_gmt":"2026-09-16T07:18:08","slug":"inferencefs-complete-tutorial","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/inferencefs-complete-tutorial\/","title":{"rendered":"InferenceFS Complete Tutorial"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">What Is InferenceFS, Why Does It Exist, How Does It Work, and What Does It Teach Us About LLMs?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Updated: September 2026<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS may be one of the most entertaining filesystem projects ever created\u2014but underneath the joke is a surprisingly useful lesson about modern AI.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Its premise is wonderfully absurd:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Why store the contents of a file when a large language model can simply guess what the file probably contained from its filename?<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Imagine creating:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">requirements<\/span><span class=\"hljs-selector-class\">.txt<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">without putting anything inside it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When someone later runs:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">cat<\/span> <span class=\"hljs-selector-tag\">requirements<\/span><span class=\"hljs-selector-class\">.txt<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">InferenceFS asks an LLM something equivalent to:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">What is the most likely contents <span class=\"hljs-keyword\">of<\/span> a file <span class=\"hljs-keyword\">with<\/span> the name \/requirements.txt?\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The model might respond:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">requests==2.32.5\nflask==3.1.2\npytest==8.4.2\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Those generated bytes become the contents returned by the filesystem.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nothing resembling the original contents had to be stored.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Brilliant?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Terrifying?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Both.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS is the 2026 successor to Philip Langdale&#8217;s earlier <strong>\u03c0fs<\/strong>, the famous experimental filesystem that represented file bytes as positions in the hexadecimal digits of \u03c0. The author explicitly describes InferenceFS as an <strong>April Fools&#8217; project<\/strong> and warns users not to store anything they care about.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But the implementation itself is real.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>mounts through FUSE,<\/li>\n\n\n\n<li>exposes normal-looking files and directories,<\/li>\n\n\n\n<li>supports multiple LLM backends,<\/li>\n\n\n\n<li>lazily generates file contents,<\/li>\n\n\n\n<li>caches generated results,<\/li>\n\n\n\n<li>attempts binary generation,<\/li>\n\n\n\n<li>handles FUSE inode\/file-descriptor lifecycle,<\/li>\n\n\n\n<li>retries API calls after rate limits,<\/li>\n\n\n\n<li>tracks apparent file sizes,<\/li>\n\n\n\n<li>and lets normal programs operate against the mounted filesystem.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The project is therefore much more than a joke.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It is an unusually good laboratory for learning:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>FUSE,<\/li>\n\n\n\n<li>virtual filesystems,<\/li>\n\n\n\n<li>LLM inference,<\/li>\n\n\n\n<li>hallucination,<\/li>\n\n\n\n<li>lossy compression,<\/li>\n\n\n\n<li>caching,<\/li>\n\n\n\n<li>binary generation,<\/li>\n\n\n\n<li>AI reliability,<\/li>\n\n\n\n<li>filesystem semantics,<\/li>\n\n\n\n<li>lazy computation,<\/li>\n\n\n\n<li>metadata,<\/li>\n\n\n\n<li>API-backed infrastructure,<\/li>\n\n\n\n<li>and the difference between <strong>plausible data<\/strong> and <strong>actual data<\/strong>.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">1. What Is InferenceFS?<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS is a <strong>FUSE userspace filesystem written in Python<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Instead of storing the real contents of ordinary files, it maintains a source directory containing the filesystem structure and then asks an LLM to generate contents when a file is read.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Conceptually:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">File path\n   \u2193\n\/project\/config.yaml\n   \u2193\nLLM\n   \u2193\n<span class=\"hljs-string\">\"What would config.yaml probably contain?\"<\/span>\n   \u2193\nGenerated YAML\n   \u2193\nApplication sees it <span class=\"hljs-keyword\">as<\/span> file contents\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The official project describes the architecture this way:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>The source directory supplies filenames and directory structure.<\/li>\n\n\n\n<li>A read causes an LLM request based on the filename.<\/li>\n\n\n\n<li>The model&#8217;s answer becomes file contents.<\/li>\n\n\n\n<li>Binary responses may be returned as base64 and decoded.<\/li>\n\n\n\n<li>Generated contents are cached.<\/li>\n\n\n\n<li>Writes appear successful but their data is discarded.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">That last point is critically important.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS is <strong>not persistent generative storage<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It is closer to:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">filesystem <span class=\"hljs-class\"><span class=\"hljs-keyword\">interface<\/span>\n        +\n<span class=\"hljs-title\">LLM<\/span>-<span class=\"hljs-title\">powered<\/span> <span class=\"hljs-title\">content<\/span> <span class=\"hljs-title\">generator<\/span>\n<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">than a conventional filesystem.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">2. InferenceFS in One Sentence<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS is:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>A FUSE filesystem where filenames act as prompts and LLM responses act as file contents.<\/strong><\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">3. The Most Important Thing to Understand<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Suppose you run:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">echo <span class=\"hljs-string\">\"My secret database password is abc123\"<\/span> &gt; <span class=\"hljs-regexp\">\/mnt\/i<\/span>nference\/secret.txt\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">A conventional filesystem stores:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">My secret database password is abc123\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">InferenceFS does <strong>not<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The current implementation&#8217;s <code>write()<\/code> method returns:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">len(buf)\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">to tell the calling program that the write succeeded.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But it does not persist <code>buf<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Instead, it tracks only the highest written offset so that it can remember an apparent file size.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When the file is later read, InferenceFS asks the configured LLM approximately:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">What is the most likely contents <span class=\"hljs-keyword\">of<\/span> a file <span class=\"hljs-keyword\">with<\/span> the name \/secret.txt\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">and returns whatever the model generates.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Therefore:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">What you write\n      \u2260\nwhat you later read\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">That difference defines InferenceFS.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">4. InferenceFS vs \u03c0fs<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS directly continues the joke started by \u03c0fs.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u03c0fs<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u03c0fs approximately says:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Your data already exists inside \u03c0.\nStore locations into \u03c0.\n<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">InferenceFS<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS says:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Your data probably exists somewhere in the model's knowledge.\nJust remember what the file was called.\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The original project&#8217;s comparison is roughly:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Property<\/th><th>\u03c0fs<\/th><th>InferenceFS<\/th><\/tr><\/thead><tbody><tr><td>Source of reconstructed content<\/td><td>\u03c0<\/td><td>LLM<\/td><\/tr><tr><td>Metadata<\/td><td>Byte positions<\/td><td>Filename\/path<\/td><\/tr><tr><td>Retrieval<\/td><td>BBP computation<\/td><td>Model inference<\/td><\/tr><tr><td>Exact reconstruction<\/td><td>Intended<\/td><td>No<\/td><\/tr><tr><td>Computational model<\/td><td>Deterministic mathematics<\/td><td>Probabilistic generation<\/td><\/tr><tr><td>Main limitation<\/td><td>Metadata &gt; data<\/td><td>Generated content \u2260 original<\/td><\/tr><tr><td>FUSE generation<\/td><td>C\/FUSE 2<\/td><td>Python\/pyfuse3<\/td><\/tr><tr><td>Main lesson<\/td><td>Information theory<\/td><td>AI as extreme lossy compression<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS&#8217;s author describes \u03c0fs as having impractical metadata but theoretically exact reconstruction, while InferenceFS has tiny metadata but an extremely lossy \u201ccodec.\u201d<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">5. Why Was InferenceFS Created?<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">On the surface:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">because storing files is expensive\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">and:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">LLMs already saw the internet\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">so perhaps they can \u201cremember\u201d your files.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That is the satire.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The deeper idea is much more interesting.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS asks:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">What does it mean when we claim that an LLM \u201cknows\u201d something?<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Suppose an LLM has seen thousands of examples of:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Dockerfile\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Then asking it to generate <code>\/Dockerfile<\/code> may produce something extremely plausible.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">FROM python:<span class=\"hljs-number\">3.14<\/span>-slim\n\nWORKDIR \/app\n\nCOPY requirements.txt .\nRUN pip install --no-cache-dir -r requirements.txt\n\nCOPY . .\n\nCMD &#91;<span class=\"hljs-string\">\"python\"<\/span>, <span class=\"hljs-string\">\"app.py\"<\/span>]\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The model has not necessarily retrieved <strong>your Dockerfile<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It has generated:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">a statistically plausible Dockerfile\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">InferenceFS turns that distinction into something you can literally mount.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">6. Retrieval vs Inference<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">This distinction is essential.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Retrieval<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A storage system normally performs:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">identifier\n   \u2193\nretrieve stored bytes\n   \u2193\nexact original bytes\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Example:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">\/foo.txt\n   \u2193\ndisk block 12345\n   \u2193\nHello world\n<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">InferenceFS<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS performs:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">identifier\n   \u2193\nprompt LLM\n   \u2193\ngenerate probable contents\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Example:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-9\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">\/foo.txt\n   \u2193\n<span class=\"hljs-string\">\"What probably belongs in \/foo.txt?\"<\/span>\n   \u2193\nHello there!\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-9\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">That is <strong>generation<\/strong>, not retrieval.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">7. The Core Architecture<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS can be represented as:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> <code>                      Application\n                           |\n                    open\/read\/write\n                           |\n                           v\n                     Linux VFS\n                           |\n                           v\n                       FUSE 3\n                           |\n                           v\n                       pyfuse3\n                           |\n                           v\n                  +----------------+\n                  |  InferenceFS   |\n                  +----------------+\n                    \/      |      \\\n                   \/       |       \\\n                  v        v        v\n             Source     LRU Cache   LLM Backend\n            Directory                  |\n                                        |\n                        +---------------+---------------+\n                        |               |               |\n                        v               v               v\n                      Gemini          Claude       Claude Code\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The source directory contains real filesystem metadata.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The generated contents live primarily:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">inside memory cache\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">after generation.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">8. Source Directory vs Mount Directory<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS needs two important paths:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">source\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">and:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">mountpoint\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Example:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">mkdir -p \/tmp\/inference-source\nmkdir -p \/tmp\/inference-mount\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The source directory might contain:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">\/tmp\/inference-source\/\n\u251c\u2500\u2500 hello.py\n\u251c\u2500\u2500 README.md\n\u251c\u2500\u2500 config.yaml\n\u2514\u2500\u2500 docs\/\n    \u2514\u2500\u2500 architecture.md\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">You then mount:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">\/tmp\/inference-source\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">through InferenceFS at:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">\/tmp\/inference-mount\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Applications access:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">\/tmp\/inference-mount\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">9. What Is Actually Stored?<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">This deserves careful treatment.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS does store real filesystem metadata:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>directory names,<\/li>\n\n\n\n<li>file names,<\/li>\n\n\n\n<li>paths,<\/li>\n\n\n\n<li>ownership,<\/li>\n\n\n\n<li>permissions,<\/li>\n\n\n\n<li>timestamps,<\/li>\n\n\n\n<li>directory structure,<\/li>\n\n\n\n<li>symbolic links,<\/li>\n\n\n\n<li>extended attributes where supported.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The source files can also contain <strong>numeric file-size metadata<\/strong> after writes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">What it does <strong>not<\/strong> store is the written payload.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So a file might physically contain:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">27\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">in the source directory.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That may mean:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-10\" data-shcb-language-name=\"JSON \/ JSON with Comments\" data-shcb-language-slug=\"json\"><span><code class=\"hljs language-json\"><span class=\"hljs-string\">\"The virtual file was written up to 27 bytes.\"<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-10\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JSON \/ JSON with Comments<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">json<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">It does not mean the virtual contents are <code>\"27\"<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The content comes from the LLM.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">10. What Happens When You Create a File?<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Suppose:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">touch \/mnt\/inference\/hello.py\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">InferenceFS creates the corresponding source-side file.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Conceptually:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Mounted filesystem\n\n\/mnt\/inference\/hello.py\n\n            \u2193\n\nSource metadata\n\n\/source\/hello.py\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The file contents have not yet been generated.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is important.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS uses <strong>lazy generation<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The model is not queried merely because a file exists.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">11. Lazy Content Generation<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">The current implementation intentionally waits until:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">read()\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">before generating content.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It does not generate on:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">create()\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">or:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">open()\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">This avoids spending API calls on files that are never read.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Flow:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-11\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">touch<\/span> <span class=\"hljs-selector-tag\">file<\/span><span class=\"hljs-selector-class\">.py<\/span>\n     \u2193\n<span class=\"hljs-selector-tag\">metadata<\/span> <span class=\"hljs-selector-tag\">created<\/span>\n     \u2193\n<span class=\"hljs-selector-tag\">NO<\/span> <span class=\"hljs-selector-tag\">model<\/span> <span class=\"hljs-selector-tag\">call<\/span>\n\n<span class=\"hljs-selector-tag\">open<\/span> <span class=\"hljs-selector-tag\">file<\/span><span class=\"hljs-selector-class\">.py<\/span>\n     \u2193\n<span class=\"hljs-selector-tag\">NO<\/span> <span class=\"hljs-selector-tag\">model<\/span> <span class=\"hljs-selector-tag\">call<\/span>\n\n<span class=\"hljs-selector-tag\">read<\/span> <span class=\"hljs-selector-tag\">file<\/span><span class=\"hljs-selector-class\">.py<\/span>\n     \u2193\n<span class=\"hljs-selector-tag\">model<\/span> <span class=\"hljs-selector-tag\">call<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-11\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">This is a solid systems-design choice even though the project itself is intentionally absurd.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">12. What Happens During a Read?<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Suppose:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">cat \/mnt\/inference\/hello.py\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The flow becomes:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-12\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">cat\n \u2193\nLinux VFS\n \u2193\nFUSE\n \u2193\npyfuse3\n \u2193\nInferenceFS.read()\n \u2193\n_check cache\n \u2193\ncache miss\n \u2193\n_generate_content(<span class=\"hljs-string\">\"\/hello.py\"<\/span>)\n \u2193\nLLM backend\n \u2193\ngenerated bytes\n \u2193\nLRU cache\n \u2193\nread requested slice\n \u2193\ncat\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-12\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The core implementation effectively performs:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-13\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">content = <span class=\"hljs-keyword\">await<\/span> self._ensure_content(fd)\n<span class=\"hljs-keyword\">return<\/span> content&#91;offset:offset + length]\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-13\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">and <code>_ensure_content()<\/code> consults the LRU cache before requesting generation.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">13. The Prompt<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">The current source uses the core user prompt:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-14\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">What is the most likely contents <span class=\"hljs-keyword\">of<\/span> a file <span class=\"hljs-keyword\">with<\/span> the name {filename}\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-14\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The path might therefore transform into:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-15\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">What is the most likely contents <span class=\"hljs-keyword\">of<\/span> a file <span class=\"hljs-keyword\">with<\/span> the name \/src\/main.py\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-15\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">or:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-16\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">What is the most likely contents <span class=\"hljs-keyword\">of<\/span> a file <span class=\"hljs-keyword\">with<\/span> the name \/kubernetes\/deployment.yaml\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-16\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The filename and directory structure effectively become prompt engineering.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">14. Directory Names Matter<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">This means:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">\/app\/config.yaml\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">may generate something different from:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">\/kubernetes\/config.yaml\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">or:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">\/prometheus\/config.yaml\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">because InferenceFS sends the relative path rather than merely the basename.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That gives the model contextual hints.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">\/nginx\/nginx.conf\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">is strongly suggestive.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So is:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">\/terraform\/main.tf\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">or:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">\/python\/requirements.txt\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The directory hierarchy effectively becomes part of your prompt.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">15. Filenames Become an API<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">In a normal filesystem:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">filename = identifier\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">With InferenceFS:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">filename = identifier + prompt\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">That is a very unusual design property.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Naming files becomes equivalent to specifying desired output.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Compare:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-17\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">config<\/span><span class=\"hljs-selector-class\">.yaml<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-17\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">with:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-18\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">kubernetes-production-nginx-config<\/span><span class=\"hljs-selector-class\">.yaml<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-18\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The second provides much more semantic information to the model.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">16. Supported LLM Backends<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">The current implementation has three registered backends:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">claude\nclaude-code\ngemini\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Usage:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">inferencefs --backend gemini SOURCE MOUNTPOINT\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">or:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">inferencefs --backend claude SOURCE MOUNTPOINT\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">or:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">inferencefs --backend claude-code SOURCE MOUNTPOINT\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">17. Google Gemini Backend<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">The project README currently recommends the Gemini backend.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Example:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-19\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-keyword\">export<\/span> API_KEY=<span class=\"hljs-string\">\"YOUR_API_KEY\"<\/span>\n\ninferencefs \\\n    --backend gemini \\\n    \/tmp\/source \\\n    \/tmp\/mount\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-19\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The current main branch hard-codes:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-20\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">gemini-3<\/span><span class=\"hljs-selector-class\">.1-flash-lite-preview<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-20\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">inside the implementation at the time of this review.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Because model availability and provider pricing change frequently, treat that model identifier as an implementation detail of the current repository rather than a permanent interface.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">18. Claude API Backend<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Claude can be used directly:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-21\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-keyword\">export<\/span> API_KEY=<span class=\"hljs-string\">\"YOUR_ANTHROPIC_KEY\"<\/span>\n\ninferencefs \\\n    --backend claude \\\n    \/tmp\/source \\\n    \/tmp\/mount\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-21\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The current source uses:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">claude-sonnet-4-20250514\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">for that backend.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Again, model IDs are vendor-specific implementation details and may change in future project versions.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">19. Claude Code Backend<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS can also call the locally installed Claude Code CLI:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">inferencefs \\\n    --backend claude-code \\\n    \/tmp\/source \\\n    \/tmp\/mount\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">This backend does not use <code>API_KEY<\/code> through InferenceFS.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Instead, it shells out to:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">claude\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">and relies on Claude Code&#8217;s existing authentication.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The implementation calls the CLI in noninteractive mode using JSON output and a one-turn request.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You therefore need the <code>claude<\/code> command installed, authenticated and visible in your <code>PATH<\/code>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">20. Backend Interface<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Internally, each backend implements:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-22\" data-shcb-language-name=\"HTTP\" data-shcb-language-slug=\"http\"><span><code class=\"hljs language-http\"><span class=\"hljs-attribute\">generate_file_contents(filename<\/span>: str) -&gt; bytes\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-22\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTTP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">http<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Conceptually:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> <code>                 ContentGenerator\n                         |\n        +----------------+---------------+\n        |                |               |\n        v                v               v\n     Claude         Claude Code       Gemini\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This is clean separation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The FUSE layer does not need to understand the model provider.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It simply asks:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">generate_file_contents(filename)\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">and expects bytes.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">21. Installation Requirements<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">As of September 2026, the PyPI project declares:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Python &gt;= 3.14\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">and dependencies including:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">anthropic &gt;= 0.40.0\ngoogle-genai &gt;= 1.68.0\npyfuse3 &gt;= 3.4.2\ntrio &gt;= 0.33.0\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Because <code>pyfuse3<\/code> interfaces with native FUSE libraries, Linux development packages are also required.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The project&#8217;s developer instructions call out:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">libfuse3-dev\npkg-config\nbuild-essential\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">22. Recommended Platform<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">The easiest environment is:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Linux\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">preferably:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Ubuntu \/ Debian\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">with FUSE 3.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS uses:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">pyfuse3\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">rather than the older FUSE 2 architecture used by \u03c0fs.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is a much more modern foundation.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">23. Install FUSE 3 on Ubuntu\/Debian<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Install the system prerequisites:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo apt update\n\nsudo apt install -y \\\n    fuse3 \\\n    libfuse3-dev \\\n    pkg-config \\\n    build-essential\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Verify:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">fusermount3 --version\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Check the FUSE device:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">ls -l \/dev\/fuse\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">You should normally have:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">\/dev\/fuse\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">available.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">24. Python 3.14 Requirement<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS currently requires:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Python &gt;= 3.14\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">This is important because many stable Linux distributions may have an older system Python.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Do not replace your operating system Python just to run InferenceFS.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A separate virtual environment or Python version manager is safer.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Using <code>uv<\/code> is particularly convenient because the project itself uses it.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">25. Install From PyPI<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">The current published release is:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-23\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">InferenceFS<\/span> 1<span class=\"hljs-selector-class\">.0<\/span><span class=\"hljs-selector-class\">.0<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-23\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">released:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">April 1, 2026\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">With an existing Python 3.14 environment:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">python --version\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Confirm:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-24\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">Python<\/span> 3<span class=\"hljs-selector-class\">.14<\/span><span class=\"hljs-selector-class\">.x<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-24\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Then:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">python -m venv .venv\nsource .venv\/bin\/activate\n\npip install --upgrade pip\npip install inferencefs\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Verify:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">inferencefs --help\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">26. Install Using <code>uv<\/code><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">A clean setup is:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-25\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">uv<\/span> <span class=\"hljs-selector-tag\">python<\/span> <span class=\"hljs-selector-tag\">install<\/span> 3<span class=\"hljs-selector-class\">.14<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-25\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Create a virtual environment:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-26\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">uv<\/span> <span class=\"hljs-selector-tag\">venv<\/span> <span class=\"hljs-selector-tag\">--python<\/span> 3<span class=\"hljs-selector-class\">.14<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-26\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Activate it:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">source .venv\/bin\/activate\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Install:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">uv pip install inferencefs\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Then:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">inferencefs --help\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">27. Install From Source<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">For development or source inspection:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-27\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">git <span class=\"hljs-keyword\">clone<\/span> https:<span class=\"hljs-comment\">\/\/github.com\/philipl\/inferencefs.git<\/span>\ncd inferencefs\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-27\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Then:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">uv sync\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The project itself documents this workflow.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Run:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">uv run inferencefs --help\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Run the tests:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">uv run pytest\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Lint:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">uv run ruff check src tests\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The repository documents both test and lint commands.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">28. Project Structure<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">The core repository is simple:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">inferencefs\/\n\u251c\u2500\u2500 src\/\n\u2502   \u2514\u2500\u2500 inferencefs\/\n\u2502       \u251c\u2500\u2500 __init__.py\n\u2502       \u251c\u2500\u2500 inferencefs.py\n\u2502       \u251c\u2500\u2500 backends.py\n\u2502       \u2514\u2500\u2500 main.py\n\u2502\n\u251c\u2500\u2500 tests\/\n\u2502   \u251c\u2500\u2500 test_main.py\n\u2502   \u251c\u2500\u2500 test_inferencefs.py\n\u2502   \u2514\u2500\u2500 test_backends.py\n\u2502\n\u251c\u2500\u2500 README.md\n\u251c\u2500\u2500 appendix.md\n\u251c\u2500\u2500 CLAUDE.md\n\u251c\u2500\u2500 pyproject.toml\n\u2514\u2500\u2500 LICENSE\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">29. Main Components<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\"><code>main.py<\/code><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Handles:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>CLI arguments,<\/li>\n\n\n\n<li>backend selection,<\/li>\n\n\n\n<li>API key loading,<\/li>\n\n\n\n<li>FUSE options,<\/li>\n\n\n\n<li>logging,<\/li>\n\n\n\n<li>FUSE initialization,<\/li>\n\n\n\n<li>Trio event loop,<\/li>\n\n\n\n<li>clean unmount.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><code>inferencefs.py<\/code><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Implements:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>FUSE operations,<\/li>\n\n\n\n<li>inode tracking,<\/li>\n\n\n\n<li>path mapping,<\/li>\n\n\n\n<li>reads,<\/li>\n\n\n\n<li>writes,<\/li>\n\n\n\n<li>caching,<\/li>\n\n\n\n<li>directory operations,<\/li>\n\n\n\n<li>persisted size metadata,<\/li>\n\n\n\n<li>rate-limit handling.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><code>backends.py<\/code><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Implements:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>backend abstraction,<\/li>\n\n\n\n<li>Claude API,<\/li>\n\n\n\n<li>Claude Code,<\/li>\n\n\n\n<li>Gemini,<\/li>\n\n\n\n<li>text\/binary response handling,<\/li>\n\n\n\n<li>base64 recovery,<\/li>\n\n\n\n<li>magic-byte detection.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">30. Your First InferenceFS Filesystem<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Create two directories:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">mkdir -p \/tmp\/inference-source\nmkdir -p \/tmp\/inference-mount\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Set your Gemini API key:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-28\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-keyword\">export<\/span> API_KEY=<span class=\"hljs-string\">\"YOUR_API_KEY\"<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-28\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Mount:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">inferencefs \\\n    --backend gemini \\\n    \/tmp\/inference-source \\\n    \/tmp\/inference-mount\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">If running from source:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">uv run inferencefs \\\n    --backend gemini \\\n    \/tmp\/inference-source \\\n    \/tmp\/inference-mount\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">31. Create Your First File<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">From another terminal:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">touch \/tmp\/inference-mount\/hello.py\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Now:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">ls -l \/tmp\/inference-mount\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The interesting part happens when you read it:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">cat \/tmp\/inference-mount\/hello.py\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">InferenceFS asks the model what <code>\/hello.py<\/code> should probably contain.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You might receive something like:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-29\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">def main():\n    <span class=\"hljs-keyword\">print<\/span>(<span class=\"hljs-string\">\"Hello, World!\"<\/span>)\n\n\n<span class=\"hljs-keyword\">if<\/span> __name__ == <span class=\"hljs-string\">\"__main__\"<\/span>:\n    main()\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-29\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The exact output is model-dependent.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">32. Try Different Filename Semantics<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Create:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">touch \/tmp\/inference-mount\/requirements.txt\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Read:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">cat \/tmp\/inference-mount\/requirements.txt\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Then:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">touch \/tmp\/inference-mount\/Dockerfile\ncat \/tmp\/inference-mount\/Dockerfile\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Then:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">touch \/tmp\/inference-mount\/docker-compose.yaml\ncat \/tmp\/inference-mount\/docker-compose.yaml\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Then:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">touch \/tmp\/inference-mount\/index.html\ncat \/tmp\/inference-mount\/index.html\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">This is where InferenceFS becomes fascinating.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The filesystem effectively exposes the model&#8217;s priors about common filenames.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">33. Contextual Path Experiment<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Try:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">mkdir -p \/tmp\/inference-mount\/kubernetes\ntouch \/tmp\/inference-mount\/kubernetes\/deployment.yaml\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Then:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">cat \/tmp\/inference-mount\/kubernetes\/deployment.yaml\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Compare with:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">mkdir -p \/tmp\/inference-mount\/github\ntouch \/tmp\/inference-mount\/github\/deployment.yaml\n\ncat \/tmp\/inference-mount\/github\/deployment.yaml\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The same basename may generate different content because the relative path provides context.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That is a great demonstration of prompt conditioning.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">34. Configuration Options<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">The current CLI accepts approximately:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-30\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">inferencefs<\/span>\n    <span class=\"hljs-selector-attr\">&#91;--backend {claude,claude-code,gemini}]<\/span>\n    <span class=\"hljs-selector-attr\">&#91;--api-key API_KEY]<\/span>\n    <span class=\"hljs-selector-attr\">&#91;--max-tokens MAX_TOKENS]<\/span>\n    <span class=\"hljs-selector-attr\">&#91;--cache-size CACHE_SIZE_MIB]<\/span>\n    <span class=\"hljs-selector-attr\">&#91;-d]<\/span>\n    <span class=\"hljs-selector-attr\">&#91;-o OPTIONS]<\/span>\n    <span class=\"hljs-selector-tag\">source<\/span>\n    <span class=\"hljs-selector-tag\">mountpoint<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-30\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The source currently defaults the backend to:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">claude\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">although the README recommends Gemini for its preferred experience.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">35. <code>--backend<\/code><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Choose the content generator:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">--backend gemini\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">or:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">--backend claude\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">or:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">--backend claude-code\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">36. <code>--api-key<\/code><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Instead of using:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-31\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-keyword\">export<\/span> API_KEY=...\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-31\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">you may provide:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-32\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">inferencefs \\\n    --backend gemini \\\n    --api-key <span class=\"hljs-string\">\"...\"<\/span> \\\n    SOURCE \\\n    MOUNT\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-32\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">For security, environment variables or a secure secrets mechanism are generally preferable to putting secrets directly into command lines, because command arguments may be visible in process listings or shell history.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">37. <code>API_KEY<\/code><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">If <code>--api-key<\/code> is absent, the current CLI checks:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">API_KEY\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">from the environment.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Example:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-33\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-keyword\">export<\/span> API_KEY=<span class=\"hljs-string\">\"$(cat ~\/.config\/inferencefs\/gemini-key)\"<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-33\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Then:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">inferencefs --backend gemini source mount\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">38. <code>--max-tokens<\/code><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Control maximum model output:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">--max-tokens 2048\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Example:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">inferencefs \\\n    --backend gemini \\\n    --max-tokens 2048 \\\n    \/tmp\/source \\\n    \/tmp\/mount\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The backend default is currently:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">4096\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">tokens.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Larger limits can:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>generate larger files,<\/li>\n\n\n\n<li>increase latency,<\/li>\n\n\n\n<li>increase provider cost,<\/li>\n\n\n\n<li>consume more cache memory.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">39. <code>--cache-size<\/code><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS uses an in-memory <strong>LRU cache<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Default:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">256 MiB\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Override:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">--cache-size 64\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">for:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">64 MiB\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Example:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">inferencefs \\\n    --backend gemini \\\n    --cache-size 64 \\\n    \/tmp\/source \\\n    \/tmp\/mount\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">40. Why the Cache Matters<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Without caching:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">read file\n \u2193\nAPI request\n\nread again\n \u2193\nanother API request\n\nread again\n \u2193\nanother API request\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">That would be:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>slow,<\/li>\n\n\n\n<li>expensive,<\/li>\n\n\n\n<li>inconsistent.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Instead:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">first read\n \u2193\nLLM request\n \u2193\ncache\n\nsecond read\n \u2193\ncache hit\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The LRU policy removes older entries when the memory limit is exceeded.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">41. Important Cache Consequence<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">The cache provides temporary consistency.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Suppose:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">\/config.yaml\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">generates:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-34\" data-shcb-language-name=\"HTTP\" data-shcb-language-slug=\"http\"><span><code class=\"hljs language-http\"><span class=\"hljs-attribute\">port<\/span>: 8080\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-34\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTTP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">http<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">While that content remains cached, reads generally see the same bytes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But if:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>the process restarts,<\/li>\n\n\n\n<li>the filesystem is unmounted\/remounted,<\/li>\n\n\n\n<li>or the cache entry is evicted,<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS may query the model again.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The new result might be:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-35\" data-shcb-language-name=\"HTTP\" data-shcb-language-slug=\"http\"><span><code class=\"hljs language-http\"><span class=\"hljs-attribute\">port<\/span>: 3000\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-35\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTTP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">http<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Therefore:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>A filename does not permanently identify a particular byte sequence.<\/strong><\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">This is radically different from ordinary storage.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">42. Cache Eviction Means Data Mutation<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Consider:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">read A\n\u2193\ngenerate A1\n\ncache fills\n\nA evicted\n\nread A\n\u2193\ngenerate A2\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Potentially:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">A1 != A2\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">No rename.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No write.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No modification timestamp change required.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The \u201cfile\u201d simply changed because inference was performed again.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That is completely unacceptable for real persistent storage\u2014but fantastic for demonstrating why generative output is not retrieval.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">43. Debug Mode<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Run:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">inferencefs \\\n    -d \\\n    --backend gemini \\\n    \/tmp\/source \\\n    \/tmp\/mount\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The CLI enables debug-level logging and adds the FUSE debug option.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is recommended while learning the project.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You can observe when content is:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Generating content for \/something.txt\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">rather than served from cache.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">44. Standard FUSE Options<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS accepts:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">-o OPTIONS\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">with comma-separated FUSE options.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Example conceptually:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">-o option1,option2\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">These are passed through to <code>pyfuse3<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The program also sets:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">fsname=inferencefs\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">on the mount.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">45. How Writes Actually Work<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">This is one of the best parts of the project.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Consider:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-36\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">printf <span class=\"hljs-string\">\"HELLO\"<\/span> &gt; <span class=\"hljs-regexp\">\/tmp\/i<\/span>nference-mount\/test.txt\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-36\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The application&#8217;s <code>write()<\/code> call sends five bytes:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">H E L L O\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">InferenceFS receives them.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But its implementation essentially does:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-37\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">end = offset + len(buf)\n\n<span class=\"hljs-keyword\">if<\/span> end &gt; previous_size:\n    written_size = end\n\n<span class=\"hljs-keyword\">return<\/span> len(buf)\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-37\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The <code>buf<\/code> itself is discarded.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The program sees a successful write.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The data disappears.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">46. The Ultimate <code>\/dev\/null<\/code> With Confidence<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">You can think of InferenceFS writes approximately as:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-38\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">\/dev\/<span class=\"hljs-literal\">null<\/span>\n+\nfile-size tracking\n+\nfuture hallucination\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-38\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">That is slightly simplified but captures the spirit.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">47. Written Size Persistence<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Why track the written size?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Suppose an application writes:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">100 bytes\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The system may later call:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">stat()\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">and expect the file size to be:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">100\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">InferenceFS therefore records the high-water mark.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When the file descriptor is released, the size may be written to the corresponding source file as an ASCII integer.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">source\/test.txt\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">might physically contain:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">100\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">That means:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">virtual apparent size = 100 bytes\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">not:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-39\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">virtual content = <span class=\"hljs-string\">\"100\"<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-39\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">48. File Size Priority<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">The implementation determines regular-file size approximately in this order:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">1. generated content exists in cache\n       \u2193\n   actual generated content length\n\n2. current written size exists in memory\n       \u2193\n   written high-water mark\n\n3. persisted numeric size exists in source file\n       \u2193\n   persisted size\n\n4. otherwise\n       \u2193\n   fake size\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">49. Why Unread Files Pretend to Be 1 GiB<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">This is a clever implementation hack.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">An empty source file normally reports:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">size = 0\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Some applications might therefore decide there is nothing to read.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS instead reports unread regular files as:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">1 GiB\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">using:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">1 &lt;&lt; 30\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">until content has actually been generated.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That encourages programs to call:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">read()\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">where the actual content can be generated.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When the generated stream returns EOF, the application discovers the real end.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">50. A Beautiful Filesystem Hack<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">This illustrates a broader systems principle.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sometimes metadata cannot be known until an expensive operation occurs.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS essentially says:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-40\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-string\">\"I don't know the real size yet,\nbut please try reading.\"<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-40\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">So it supplies a large placeholder.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It is a clever example of lazy metadata resolution.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">51. Async Architecture<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS uses:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Trio\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">because <code>pyfuse3<\/code> operates asynchronously.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The problem is that LLM SDK\/API calls may block.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So the implementation runs model generation using:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-41\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">trio<\/span><span class=\"hljs-selector-class\">.to_thread<\/span><span class=\"hljs-selector-class\">.run_sync<\/span>(...)\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-41\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Architecture:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-42\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">FUSE <span class=\"hljs-keyword\">async<\/span> loop\n      |\n      +---- ordinary FS operation\n      |\n      +---- LLM call\n                |\n                v\n         worker thread\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-42\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">This avoids blocking the Trio event loop while waiting for remote inference.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">52. Rate-Limit Handling<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS recognizes rate-limit conditions.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Its generation flow can retry:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">up to 3 retries\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">after the first request attempt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For Gemini, it looks for signals such as:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">429\nRESOURCE_EXHAUSTED\nretryDelay\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">For Anthropic, it recognizes rate-limit exception naming and attempts to derive a retry delay.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is another example where the joke project contains real engineering.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">53. Failure Behavior<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">If content generation ultimately fails, the FUSE layer raises:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">EIO\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">or:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">I\/O error\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">to the calling program.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That makes sense.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">From a filesystem consumer&#8217;s point of view:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">the storage backend failed\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">even though the \u201cstorage backend\u201d happens to be an LLM.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">54. Binary File Support<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS does not restrict itself to text.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Its system prompt instructs models:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-43\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">text file\n   \u2193\n<span class=\"hljs-keyword\">return<\/span> raw text\n\nbinary file\n   \u2193\n<span class=\"hljs-keyword\">return<\/span> base64-encoded binary\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-43\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The client then attempts to detect and decode base64.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This allows experiments such as:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">touch \/tmp\/inference-mount\/image.png\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">then:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">cp \/tmp\/inference-mount\/image.png \/tmp\/test.png\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Whether the result is actually useful is another matter.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">55. Binary Response Decoder<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">The response decoder is more sophisticated than you might expect.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It tries multiple strategies:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Strategy 1<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Strictly decode the entire response as base64.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Strategy 2<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Repair likely missing\/truncated padding.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Strategy 3<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Remove a small number of hallucinated non-base64 characters.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Strategy 4<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Find the longest base64-looking block within mixed text.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Strategy 5<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">If no valid binary payload can be established, treat the response as UTF-8 text.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">56. Binary Magic Bytes<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">To avoid interpreting ordinary text as binary, InferenceFS checks decoded content for known magic bytes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The current table recognizes signatures associated with formats such as:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>PNG<\/li>\n\n\n\n<li>GIF<\/li>\n\n\n\n<li>JPEG<\/li>\n\n\n\n<li>ZIP<\/li>\n\n\n\n<li>PDF<\/li>\n\n\n\n<li>ELF<\/li>\n\n\n\n<li>PE\/MZ<\/li>\n\n\n\n<li>WebAssembly<\/li>\n\n\n\n<li>Mach-O<\/li>\n\n\n\n<li>gzip<\/li>\n\n\n\n<li>bzip2<\/li>\n\n\n\n<li>xz<\/li>\n\n\n\n<li>7-Zip<\/li>\n\n\n\n<li>RIFF<\/li>\n\n\n\n<li>ICO<\/li>\n\n\n\n<li>BMP<\/li>\n\n\n\n<li>RAR<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">It also checks for non-printable bytes.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">57. Why Binary Generation Is Fascinating<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Text-generation models are naturally good at formats such as:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-44\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-class\">.py<\/span>\n<span class=\"hljs-selector-class\">.yaml<\/span>\n<span class=\"hljs-selector-class\">.json<\/span>\n<span class=\"hljs-selector-class\">.html<\/span>\n<span class=\"hljs-selector-class\">.ini<\/span>\n<span class=\"hljs-selector-class\">.csv<\/span>\n<span class=\"hljs-selector-class\">.md<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-44\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">because these formats are represented directly as textual tokens in massive quantities of training data.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Binary data is different.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To construct:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">PNG\nZIP\ngzip\nSQLite\nFLAC\nELF\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">the model may need to maintain:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>exact bytes,<\/li>\n\n\n\n<li>checksums,<\/li>\n\n\n\n<li>offsets,<\/li>\n\n\n\n<li>compressed streams,<\/li>\n\n\n\n<li>length fields,<\/li>\n\n\n\n<li>indexes,<\/li>\n\n\n\n<li>internal references,<\/li>\n\n\n\n<li>codec constraints.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">That is much harder than predicting plausible textual syntax.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">58. Binary Formats That Work Better<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">The author&#8217;s testing found relatively strong results for:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Text formats<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Python<\/li>\n\n\n\n<li>YAML<\/li>\n\n\n\n<li>HTML<\/li>\n\n\n\n<li>JSON<\/li>\n\n\n\n<li>CSV<\/li>\n\n\n\n<li>LaTeX<\/li>\n\n\n\n<li>RTF<\/li>\n\n\n\n<li>INI<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Simpler\/common binary headers<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>PNG<\/li>\n\n\n\n<li>JPEG<\/li>\n\n\n\n<li>GIF<\/li>\n\n\n\n<li>WAV<\/li>\n\n\n\n<li>MP4<\/li>\n\n\n\n<li>PDF<\/li>\n\n\n\n<li>ELF<\/li>\n\n\n\n<li>PE<\/li>\n\n\n\n<li>WASM<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Header-oriented containers<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>RIFF<\/li>\n\n\n\n<li>ISO BMFF<\/li>\n\n\n\n<li>Ogg<\/li>\n\n\n\n<li>FLV<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u201cWorks\u201d here does not mean arbitrary production-grade files are guaranteed to be valid.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It means models often reproduce enough recognizable format structure to make interesting demonstrations.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">59. Formats That Work Poorly<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">The author&#8217;s testing identifies significant problems with:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Compressed internals<\/h3>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">ZIP\ngzip\nbzip2\n<\/code><\/span><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Codec-specific formats<\/h3>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">FLAC\nAAC\nMIDI\n<\/code><\/span><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Cross-referenced structures<\/h3>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">ZIP central directory\nSQLite pages\nOLE2\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Why?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Because exact binary relationships must be calculated rather than merely approximated.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">60. Predicting Bytes vs Executing Algorithms<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">This is one of InferenceFS&#8217;s deepest lessons.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">An LLM may know that ZIP files begin with:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">PK\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">or:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">50 4B 03 04\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">That is pattern knowledge.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But producing a valid DEFLATE stream requires executing an exact algorithm.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Similarly, the model may know that PNG has recognizable chunks.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But if lengths, CRCs and compressed streams must all align exactly, probability alone is a poor substitute for computation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The author&#8217;s appendix summarizes this distinction as a boundary between learned format patterns and algorithmically constrained structures.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">61. LLMs as Lossy Compression<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">This is the intellectual heart of InferenceFS.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Imagine that a model&#8217;s weights are a giant lossy representation of its training distribution.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Then:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">model weights\n      =\nshared decoder\/codebook\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">and:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">filename\n      =\ntiny index\/query\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The model \u201cdecompresses\u201d:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-45\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">config<\/span><span class=\"hljs-selector-class\">.yaml<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-45\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">into:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">server:\n  port: 8080\ndatabase:\n  host: localhost\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The apparent compression ratio is extraordinary.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But there is a catch:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">generated result != original result\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The author explicitly frames this as <strong>extreme lossy compression<\/strong>: what comes back is plausible rather than faithful.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">62. A Useful Analogy<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Imagine destroying every recipe in the world but retaining filenames:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-46\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">chocolate_cake_recipe<\/span><span class=\"hljs-selector-class\">.txt<\/span>\n<span class=\"hljs-selector-tag\">carbonara<\/span><span class=\"hljs-selector-class\">.txt<\/span>\n<span class=\"hljs-selector-tag\">naan_recipe<\/span><span class=\"hljs-selector-class\">.txt<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-46\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Then hiring a chef and saying:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-47\" data-shcb-language-name=\"JSON \/ JSON with Comments\" data-shcb-language-slug=\"json\"><span><code class=\"hljs language-json\"><span class=\"hljs-string\">\"Tell me what this recipe probably contained.\"<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-47\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JSON \/ JSON with Comments<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">json<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The chef may produce an excellent recipe.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But it is not necessarily:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">the recipe you originally stored\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">InferenceFS does the digital equivalent.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">63. Another Analogy: Human Memory<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Suppose someone asks:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">What did your high school classroom look like?<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">You may remember:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>desks,<\/li>\n\n\n\n<li>whiteboard,<\/li>\n\n\n\n<li>windows,<\/li>\n\n\n\n<li>teacher&#8217;s table.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Your answer may be highly plausible.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But perhaps the whiteboard was actually green.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Perhaps there were 28 desks rather than 24.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Your brain reconstructed a plausible memory.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS intentionally treats an LLM somewhat like that reconstruction engine.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">64. Determinism<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Normal storage aims for:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">write X\nread X\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">InferenceFS has:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">name N\ngenerate approximately X\u2081\n\nlater:\n\nname N\ngenerate approximately X\u2082\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">where:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">X\u2081 may not equal X\u2082\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Reasons include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>stochastic generation,<\/li>\n\n\n\n<li>backend differences,<\/li>\n\n\n\n<li>provider model changes,<\/li>\n\n\n\n<li>prompt interpretation,<\/li>\n\n\n\n<li>model updates,<\/li>\n\n\n\n<li>cache eviction,<\/li>\n\n\n\n<li>different inference settings.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">This means InferenceFS lacks one of the defining properties expected from persistent storage:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">stable byte identity.<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">65. What Happens Across Unmounts?<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Generated content is cached:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">in process memory\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">not persisted as file payload.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Unmount:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">fusermount3 -u \/tmp\/inference-mount\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Then mount again.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Your file paths remain because the source directory persists.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But the generated-content cache does not.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The next read can trigger another model call.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Potentially:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-48\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">before<\/span> <span class=\"hljs-selector-tag\">unmount<\/span>:\n<span class=\"hljs-selector-tag\">file<\/span><span class=\"hljs-selector-class\">.py<\/span> <span class=\"hljs-selector-tag\">-<\/span>&gt; <span class=\"hljs-selector-tag\">version<\/span> <span class=\"hljs-selector-tag\">A<\/span>\n\n<span class=\"hljs-selector-tag\">after<\/span> <span class=\"hljs-selector-tag\">remount<\/span>:\n<span class=\"hljs-selector-tag\">file<\/span><span class=\"hljs-selector-class\">.py<\/span> <span class=\"hljs-selector-tag\">-<\/span>&gt; <span class=\"hljs-selector-tag\">version<\/span> <span class=\"hljs-selector-tag\">B<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-48\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">66. Unmounting<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Use:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">fusermount3 -u \/tmp\/inference-mount\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The project&#8217;s quick start documents <code>fusermount3<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You can verify:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">findmnt \/tmp\/inference-mount\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">67. File Operations Implemented<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS implements a surprisingly broad collection of filesystem operations, including behavior around:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>lookup,<\/li>\n\n\n\n<li>getattr,<\/li>\n\n\n\n<li>setattr,<\/li>\n\n\n\n<li>create,<\/li>\n\n\n\n<li>open,<\/li>\n\n\n\n<li>read,<\/li>\n\n\n\n<li>write,<\/li>\n\n\n\n<li>release,<\/li>\n\n\n\n<li>mkdir,<\/li>\n\n\n\n<li>readdir,<\/li>\n\n\n\n<li>unlink,<\/li>\n\n\n\n<li>rmdir,<\/li>\n\n\n\n<li>rename,<\/li>\n\n\n\n<li>hard links,<\/li>\n\n\n\n<li>symbolic links,<\/li>\n\n\n\n<li>fsync,<\/li>\n\n\n\n<li>extended attributes,<\/li>\n\n\n\n<li>access checks,<\/li>\n\n\n\n<li>filesystem statistics.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The metadata behavior primarily delegates to the underlying source directory.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The content generation behavior is the unusual layer on top.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">68. Low-Level FUSE API<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS uses:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-49\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">pyfuse3<\/span><span class=\"hljs-selector-class\">.Operations<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-49\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">and an inode-oriented API rather than a simple path-only abstraction.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It maintains structures for:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">inode \u2192 path\n\nfile descriptor \u2192 inode\n\ninode \u2192 file descriptor\n\nlookup counts\n\nopen counts\n\nfile descriptor \u2192 virtual filename\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">This is useful source code for developers learning how a real FUSE filesystem manages kernel-facing object lifecycles.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">69. Why Inode Tracking Exists<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Applications operate on concepts such as:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">inode\nfile descriptor\ndirectory entry\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">not merely strings.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Suppose:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-50\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">open(<span class=\"hljs-string\">\"\/a.txt\"<\/span>)\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-50\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">returns a handle.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The file might later:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">rename()\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">while that handle still exists.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Filesystem implementations therefore need bookkeeping that is more sophisticated than:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">dictionary&#91;path] = content\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">InferenceFS gives you a compact example of these issues.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">70. LRU Cache Architecture<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">The cache uses Python&#8217;s:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">OrderedDict\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">and stores:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">filename \u2192 bytes\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">It tracks:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">current_bytes\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">and:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">max_bytes\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">When inserting a new file would exceed the limit, least-recently-used entries are evicted until there is enough room.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Conceptually:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Cache:\n\nA  \u2190 oldest\nB\nC\nD  \u2190 newest\n\nNeed space\n\nevict A\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">This is a classic LRU implementation.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">71. Why Cache by Filename?<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">The generated content derives from:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">filename\/path\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">so that becomes the natural cache key.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Conceptually:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-51\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">cache&#91;<span class=\"hljs-string\">\"\/src\/main.py\"<\/span>] = generated_bytes\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-51\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">This makes repeated reads cheap.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But it also exposes a semantic issue:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">filename is being treated like content identity\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">which it obviously is not in real-world storage.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That tension is part of the joke.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">72. Cost Model<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Ordinary filesystem read cost:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">disk\/NVMe latency\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">InferenceFS cold read cost:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">network request\n+\nprovider queue\n+\nLLM inference\n+\ntokens\n+\nAPI billing\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Warm read:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">RAM cache\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Therefore:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">first read = expensive\nrepeated read = cheap\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">until eviction.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">73. Performance Characteristics<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Expect latency to depend heavily on:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>model,<\/li>\n\n\n\n<li>provider,<\/li>\n\n\n\n<li>prompt,<\/li>\n\n\n\n<li>generated file size,<\/li>\n\n\n\n<li>API region,<\/li>\n\n\n\n<li>rate limiting,<\/li>\n\n\n\n<li>network latency,<\/li>\n\n\n\n<li>cache state,<\/li>\n\n\n\n<li>max output tokens.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">A simple text file may appear quickly.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A cold read requiring a large model output may be dramatically slower than local storage.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is another excellent demonstration of how remote AI inference changes system architecture.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">74. API Cost<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS can consume paid inference APIs.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Operations that seem harmless:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">cat file\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">can potentially trigger billable model requests.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Commands that scan many files can be worse.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">grep -R something \/mnt\/inference\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">could trigger reads across many files.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Similarly:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">cp -R \/mnt\/inference \/tmp\/copy\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">may require generation for large numbers of files.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Treat the mount as an <strong>API execution surface<\/strong>, not just a filesystem.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">75. A Surprisingly Important Operational Lesson<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">In cloud-backed filesystems:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">filesystem operation\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">can map to:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">network\/API operation\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">InferenceFS exaggerates that relationship in a memorable way.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Running:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">cat foo\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">looks local.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But underneath it may invoke:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">remote LLM API\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">which has:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>authentication,<\/li>\n\n\n\n<li>pricing,<\/li>\n\n\n\n<li>quotas,<\/li>\n\n\n\n<li>rate limits,<\/li>\n\n\n\n<li>external dependencies,<\/li>\n\n\n\n<li>privacy consequences.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">That principle applies to many real systems too.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">76. Privacy Implications<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">The filename\/path is sent to the selected model backend.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Suppose you create:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">\/customers\/acme\/merger-plan.txt\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">or:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">\/hr\/alice-salary-review.txt\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">or:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">\/secrets\/production-db-password.txt\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Those names themselves may contain confidential information.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Therefore:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>Do not mount sensitive directory structures against third-party AI APIs.<\/strong><\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Even if file payloads are discarded, filenames alone can be sensitive metadata.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">77. The Built-In Personal-Data Prompt<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">The current backend system prompt contains special wording for filenames suggesting private or personal data.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It asks the model to generate <strong>generic placeholder content<\/strong> rather than real private information.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That is sensible for the demonstration.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It does not transform InferenceFS into a secure storage mechanism.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">78. Security Model<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS does not provide a traditional secure-storage model.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Risks include:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">API keys<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Protect:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">API_KEY\n<\/code><\/span><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Filename disclosure<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Paths can be sent to third parties.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Generated malicious content<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">An LLM could potentially generate:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">scripts\nshell commands\nconfiguration\nsource code\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">that should not automatically be trusted.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Supply-chain risk<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Generated code is not trusted software.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Nondeterminism<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Files can change without explicit writes.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">External availability<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The filesystem depends on remote services.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">API compromise<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Provider\/API credentials become part of the storage dependency chain.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">79. Never Execute Generated Binaries<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS can ask models to produce binary-looking files.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Do not interpret:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">valid ELF header\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">as:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">safe executable\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Never blindly execute:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">chmod +x generated-file\n.\/generated-file\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The same applies to:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">shell scripts\nPowerShell\nPython\nJavaScript\ninstallers\nmacros\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Treat all generated contents as untrusted.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">80. Never Use It for Secrets<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Do not create:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">id_rsa\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">and expect your SSH key back.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Do not create:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-52\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">production<\/span><span class=\"hljs-selector-class\">.env<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-52\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">and expect credentials.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Do not create:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-53\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">wallet<\/span><span class=\"hljs-selector-class\">.dat<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-53\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">and expect cryptocurrency keys.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Do not create:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-54\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">passwords<\/span><span class=\"hljs-selector-class\">.txt<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-54\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">and expect your passwords.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS cannot reconstruct arbitrary private information from a filename.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Any seemingly convincing result is generated content, not your original secret.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">81. Never Use It for Backups<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">A backup must satisfy something like:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">original bytes\n     \u2193\nstore\n     \u2193\nlater restore\n     \u2193\nsame original bytes\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">InferenceFS performs:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">filename\n     \u2193\ngenerate something plausible\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">That is the opposite of backup.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">82. Never Use It for Databases<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Databases depend on:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>exact pages,<\/li>\n\n\n\n<li>transaction logs,<\/li>\n\n\n\n<li>checksums,<\/li>\n\n\n\n<li>indexes,<\/li>\n\n\n\n<li>transactional ordering,<\/li>\n\n\n\n<li>durable writes,<\/li>\n\n\n\n<li>crash consistency,<\/li>\n\n\n\n<li>stable offsets.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS intentionally violates several fundamental assumptions.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Do not use it for:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">PostgreSQL\nMySQL\nSQLite\nMongoDB\nRedis persistence\nRocksDB\nLevelDB\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">or any real database data.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">83. Never Use It for Kubernetes Persistent Volumes<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">A Kubernetes application expects:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">write state\n\u2192 restart\n\u2192 state still exists\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">InferenceFS gives:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">write state\n\u2192 bytes disappear\n\u2192 future read is generated\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">This would be spectacularly wrong.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Do not use it as a real PersistentVolume backend.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">84. Real Use Cases<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS does have excellent legitimate uses.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">84.1 Teaching FUSE<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Study:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-55\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">inode management\nread\/write callbacks\ndirectory operations\n<span class=\"hljs-keyword\">async<\/span> filesystems\nFUSE lifecycle\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-55\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">84.2 Teaching LLM Hallucination<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Demonstrate the difference between:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">looks correct\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">and:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">is correct\n<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">84.3 Teaching Generative vs Retrieval Systems<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">It makes the distinction tangible.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">84.4 Studying Model Priors<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ask:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-56\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">What<\/span> <span class=\"hljs-selector-tag\">does<\/span> <span class=\"hljs-selector-tag\">the<\/span> <span class=\"hljs-selector-tag\">model<\/span> <span class=\"hljs-selector-tag\">think<\/span> <span class=\"hljs-selector-tag\">README<\/span><span class=\"hljs-selector-class\">.md<\/span> <span class=\"hljs-selector-tag\">contains<\/span>?\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-56\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">84.5 File Format Research<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Explore what models understand about:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">PNG\nZIP\nELF\nPDF\nWAV\nSQLite\n<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">84.6 LLM Benchmarking<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Use filenames as standardized prompts across different models.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">84.7 AI Education<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS may be one of the funniest possible demonstrations of why:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">plausibility != truth\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">85. Model-Prior Experiments<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Create:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-57\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">touch<\/span> <span class=\"hljs-selector-tag\">README<\/span><span class=\"hljs-selector-class\">.md<\/span>\n<span class=\"hljs-selector-tag\">touch<\/span> <span class=\"hljs-selector-tag\">package<\/span><span class=\"hljs-selector-class\">.json<\/span>\n<span class=\"hljs-selector-tag\">touch<\/span> <span class=\"hljs-selector-tag\">Cargo<\/span><span class=\"hljs-selector-class\">.toml<\/span>\n<span class=\"hljs-selector-tag\">touch<\/span> <span class=\"hljs-selector-tag\">go<\/span><span class=\"hljs-selector-class\">.mod<\/span>\n<span class=\"hljs-selector-tag\">touch<\/span> <span class=\"hljs-selector-tag\">pom<\/span><span class=\"hljs-selector-class\">.xml<\/span>\n<span class=\"hljs-selector-tag\">touch<\/span> <span class=\"hljs-selector-tag\">Makefile<\/span>\n<span class=\"hljs-selector-tag\">touch<\/span> <span class=\"hljs-selector-tag\">Dockerfile<\/span>\n<span class=\"hljs-selector-tag\">touch<\/span> <span class=\"hljs-selector-tag\">Jenkinsfile<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-57\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Read each.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This reveals conventions learned by the model.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-58\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">package<\/span><span class=\"hljs-selector-class\">.json<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-58\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">may produce a plausible Node.js project.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-59\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">Cargo<\/span><span class=\"hljs-selector-class\">.toml<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-59\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">may produce Rust metadata.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-60\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">go<\/span><span class=\"hljs-selector-class\">.mod<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-60\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">may produce Go module information.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">These are not \u201cremembered files.\u201d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">They are samples from learned conventions.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">86. DevOps Experiment<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Try:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Dockerfile\ndocker-compose.yaml\nJenkinsfile\n.github\/workflows\/ci.yml\nterraform\/main.tf\nansible\/playbook.yaml\nkubernetes\/deployment.yaml\nhelm\/Chart.yaml\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Then inspect whether the model generates coherent infrastructure definitions.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This can reveal what default patterns and conventions a model has absorbed.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">87. Observability Experiment<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Create:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-61\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">prometheus<\/span><span class=\"hljs-selector-class\">.yml<\/span>\n<span class=\"hljs-selector-tag\">grafana-dashboard<\/span><span class=\"hljs-selector-class\">.json<\/span>\n<span class=\"hljs-selector-tag\">datadog-agent<\/span><span class=\"hljs-selector-class\">.yaml<\/span>\n<span class=\"hljs-selector-tag\">otel-collector<\/span><span class=\"hljs-selector-class\">.yaml<\/span>\n<span class=\"hljs-selector-tag\">fluent-bit<\/span><span class=\"hljs-selector-class\">.conf<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-61\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Read them.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You can compare:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>syntax validity,<\/li>\n\n\n\n<li>modernity,<\/li>\n\n\n\n<li>configuration conventions,<\/li>\n\n\n\n<li>security defaults,<\/li>\n\n\n\n<li>hallucinated settings.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Again, never treat generated configuration as authoritative.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">88. Programming-Language Experiment<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Create:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-62\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">hello<\/span><span class=\"hljs-selector-class\">.py<\/span>\n<span class=\"hljs-selector-tag\">hello<\/span><span class=\"hljs-selector-class\">.go<\/span>\n<span class=\"hljs-selector-tag\">hello<\/span><span class=\"hljs-selector-class\">.rs<\/span>\n<span class=\"hljs-selector-tag\">Hello<\/span><span class=\"hljs-selector-class\">.java<\/span>\n<span class=\"hljs-selector-tag\">main<\/span><span class=\"hljs-selector-class\">.cpp<\/span>\n<span class=\"hljs-selector-tag\">index<\/span><span class=\"hljs-selector-class\">.js<\/span>\n<span class=\"hljs-selector-tag\">main<\/span><span class=\"hljs-selector-class\">.rb<\/span>\n<span class=\"hljs-selector-tag\">Program<\/span><span class=\"hljs-selector-class\">.cs<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-62\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Ask:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">What style does each backend generate?\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Compare:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Claude\nGemini\nClaude Code\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">This is an unusual but useful qualitative model benchmark.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">89. Binary Experiment<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Try:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-63\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">touch<\/span> <span class=\"hljs-selector-tag\">image<\/span><span class=\"hljs-selector-class\">.png<\/span>\n<span class=\"hljs-selector-tag\">touch<\/span> <span class=\"hljs-selector-tag\">document<\/span><span class=\"hljs-selector-class\">.pdf<\/span>\n<span class=\"hljs-selector-tag\">touch<\/span> <span class=\"hljs-selector-tag\">application<\/span><span class=\"hljs-selector-class\">.exe<\/span>\n<span class=\"hljs-selector-tag\">touch<\/span> <span class=\"hljs-selector-tag\">application<\/span><span class=\"hljs-selector-class\">.elf<\/span>\n<span class=\"hljs-selector-tag\">touch<\/span> <span class=\"hljs-selector-tag\">archive<\/span><span class=\"hljs-selector-class\">.zip<\/span>\n<span class=\"hljs-selector-tag\">touch<\/span> <span class=\"hljs-selector-tag\">database<\/span><span class=\"hljs-selector-class\">.sqlite<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-63\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Then use:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-64\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">file<\/span> <span class=\"hljs-selector-tag\">image<\/span><span class=\"hljs-selector-class\">.png<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-64\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">or:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">xxd image.png | head\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">and format-specific validators.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You will likely observe an interesting boundary between:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">recognizable header\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">and:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">fully valid structured file\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">That boundary is exactly what the author&#8217;s appendix highlights.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">90. Example Binary Validation Lab<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">For PNG:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-65\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">file<\/span> <span class=\"hljs-selector-tag\">image<\/span><span class=\"hljs-selector-class\">.png<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-65\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Potentially:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-66\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">pngcheck<\/span> <span class=\"hljs-selector-tag\">image<\/span><span class=\"hljs-selector-class\">.png<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-66\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">For ZIP:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-67\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">unzip<\/span> <span class=\"hljs-selector-tag\">-t<\/span> <span class=\"hljs-selector-tag\">archive<\/span><span class=\"hljs-selector-class\">.zip<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-67\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">For PDF:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-68\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">pdfinfo <span class=\"hljs-built_in\">document<\/span>.pdf\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-68\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">For ELF:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-69\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">readelf<\/span> <span class=\"hljs-selector-tag\">-h<\/span> <span class=\"hljs-selector-tag\">application<\/span><span class=\"hljs-selector-class\">.elf<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-69\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">For SQLite:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-70\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">sqlite3 database.sqlite <span class=\"hljs-string\">'.schema'<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-70\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">This can produce a fascinating comparison between:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">superficially correct\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">and:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">semantically valid\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">91. Testing Different Backends<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Create the same source tree.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mount with Gemini:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">inferencefs \\\n    --backend gemini \\\n    source \\\n    mount-gemini\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Mount separately with Claude:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">inferencefs \\\n    --backend claude \\\n    source2 \\\n    mount-claude\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Then compare:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">diff \\\n    mount-gemini\/Dockerfile \\\n    mount-claude\/Dockerfile\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">This turns InferenceFS into a quirky comparative benchmark.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">92. Testing Reproducibility<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Mount:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">inferencefs --backend gemini source mount\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Read:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">cat mount\/config.yaml &gt; first.txt\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Unmount:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">fusermount3 -u mount\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Mount again.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Read:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">cat mount\/config.yaml &gt; second.txt\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Compare:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-71\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">diff<\/span> <span class=\"hljs-selector-tag\">-u<\/span> <span class=\"hljs-selector-tag\">first<\/span><span class=\"hljs-selector-class\">.txt<\/span> <span class=\"hljs-selector-tag\">second<\/span><span class=\"hljs-selector-class\">.txt<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-71\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Any difference demonstrates the core issue:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">filename alone is not a lossless content identifier\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">93. Inspect the Source Directory<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Create:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-72\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">printf <span class=\"hljs-string\">'Hello world'<\/span> &gt; <span class=\"hljs-regexp\">\/tmp\/i<\/span>nference-mount\/test.txt\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-72\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Unmount if necessary, then inspect:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">cat \/tmp\/inference-source\/test.txt\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">You may see a decimal size value representing the virtual written size rather than:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Hello world\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">That is one of the simplest demonstrations of how InferenceFS discards actual write payloads.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">94. Troubleshooting: <code>pyfuse3<\/code> Build Failure<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">If installation complains about FUSE headers or <code>pkg-config<\/code>, install:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo apt install -y \\\n    fuse3 \\\n    libfuse3-dev \\\n    pkg-config \\\n    build-essential\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Then retry your Python installation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The project&#8217;s own developer documentation identifies these system dependencies.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">95. Troubleshooting: Python Version<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">If you see something resembling:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">requires Python &gt;=3.14\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">check:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">python --version\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">InferenceFS 1.0.0 declares Python 3.14 or newer.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Use a separate Python 3.14 environment.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">96. Troubleshooting: Missing <code>\/dev\/fuse<\/code><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Check:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">ls -l \/dev\/fuse\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">If unavailable on a normal Linux host:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo modprobe fuse\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Containers may require explicit FUSE device access.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">97. Troubleshooting: No API Key<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">The CLI requires an API key for backends whose class declares:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-73\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">requires_api_key = <span class=\"hljs-keyword\">True<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-73\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">If none is available, it exits with an error telling you to use:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">--api-key\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">or:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">API_KEY\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Check:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-74\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-keyword\">echo<\/span> <span class=\"hljs-string\">\"${API_KEY:+API_KEY is set}\"<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-74\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Do not print secrets to shared terminal logs.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">98. Troubleshooting: <code>claude<\/code> Not Found<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">For:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">--backend claude-code\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">InferenceFS expects the executable:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">claude\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">to exist in <code>PATH<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Check:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">command -v claude\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">and make sure Claude Code is already authenticated.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The backend invokes the CLI through Python <code>subprocess.run()<\/code>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">99. Troubleshooting: I\/O Error<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">A read returning:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Input\/output error\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">may indicate that generation failed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Potential causes:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>bad API key,<\/li>\n\n\n\n<li>network failure,<\/li>\n\n\n\n<li>model unavailable,<\/li>\n\n\n\n<li>provider error,<\/li>\n\n\n\n<li>rate limiting,<\/li>\n\n\n\n<li>malformed provider response,<\/li>\n\n\n\n<li>CLI backend failure.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Run debug mode:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">inferencefs -d ...\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">to inspect logs.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">100. Troubleshooting: File Suddenly Changed<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">That is expected behavior if generated content was no longer cached.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Possible causes:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">process restart\nmount restart\ncache eviction\ndifferent backend\nprovider model update\nnondeterministic generation\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">InferenceFS provides no content-addressed persistence for generated bytes.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">101. Troubleshooting: Binary File Is Corrupt<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Also expected.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">An LLM can often imitate:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">format structure\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">but may fail to calculate:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>checksums,<\/li>\n\n\n\n<li>compressed streams,<\/li>\n\n\n\n<li>indexes,<\/li>\n\n\n\n<li>internal offsets,<\/li>\n\n\n\n<li>codec state.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The project&#8217;s own documented limitations explicitly call this out.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">102. Containers<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">FUSE in containers is more complicated because the container needs:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">\/dev\/fuse\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">and sufficient capabilities.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A typical experiment may require access resembling:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">--device \/dev\/fuse\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">and additional security permissions depending on the runtime.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Do not jump directly to:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">--privileged\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">for production environments simply to make FUSE work.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For learning InferenceFS:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Linux VM\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">is generally simpler.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">103. macOS<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS specifically depends on:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">pyfuse3\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">which targets Linux FUSE behavior.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For macOS users, the least-friction route is generally:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">macOS\n  \u2193\nLinux VM\n  \u2193\nInferenceFS\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">rather than attempting to port the filesystem to macFUSE.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">104. Windows<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Similarly, the project is fundamentally designed around Linux\/FUSE 3.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A Linux virtual machine is the cleanest environment for experimentation.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">105. Testing<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">The repository includes dedicated tests for:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">filesystem operations\nInferenceFS generation behavior\ncache behavior\nsize tracking\nbackends\nresponse decoding\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The project documentation uses:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">uv run pytest\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">or:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">uv run pytest -v\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">This is another reason the repository is worth studying beyond the joke itself.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">106. Development Workflow<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Clone:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-75\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">git <span class=\"hljs-keyword\">clone<\/span> https:<span class=\"hljs-comment\">\/\/github.com\/philipl\/inferencefs.git<\/span>\ncd inferencefs\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-75\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Install dependencies:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">uv sync\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Run tests:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">uv run pytest\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Run lint:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">uv run ruff check src tests\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Build package:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">uv build\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Mount development version:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">uv run inferencefs \\\n    --backend gemini \\\n    \/tmp\/source \\\n    \/tmp\/mount\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">107. Package Technology<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">The project currently uses:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">hatchling\nhatch-vcs\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">for its Python build system.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The console command:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">inferencefs\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">maps to:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-76\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">inferencefs<\/span><span class=\"hljs-selector-class\">.main<\/span><span class=\"hljs-selector-pseudo\">:main<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-76\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">That is defined directly in <code>pyproject.toml<\/code>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">108. License<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS declares:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-77\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">AGPL-3<\/span><span class=\"hljs-selector-class\">.0-or-later<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-77\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Anyone modifying or deploying the project in contexts where licensing matters should review the AGPL obligations rather than assuming conventional permissive open-source terms.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">109. Production Readiness<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS should not be treated as production persistent storage.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The author explicitly says:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Do not use it to store anything you care about.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">It lacks the semantic contract required for persistent data because it intentionally does not preserve writes.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">110. Do Not Use InferenceFS For<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Do not use it for:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>backups,<\/li>\n\n\n\n<li>databases,<\/li>\n\n\n\n<li>home directories,<\/li>\n\n\n\n<li>source-of-truth repositories,<\/li>\n\n\n\n<li>secrets,<\/li>\n\n\n\n<li>SSH keys,<\/li>\n\n\n\n<li>cryptocurrency wallets,<\/li>\n\n\n\n<li>legal documents,<\/li>\n\n\n\n<li>financial records,<\/li>\n\n\n\n<li>Kubernetes persistent storage,<\/li>\n\n\n\n<li>Docker volumes containing state,<\/li>\n\n\n\n<li>VM disks,<\/li>\n\n\n\n<li>configuration-of-record,<\/li>\n\n\n\n<li>user uploads,<\/li>\n\n\n\n<li>medical records,<\/li>\n\n\n\n<li>build artifacts requiring reproducibility,<\/li>\n\n\n\n<li>package repositories,<\/li>\n\n\n\n<li>container registries,<\/li>\n\n\n\n<li>logs requiring audit integrity,<\/li>\n\n\n\n<li>compliance records.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">If exact bytes matter, InferenceFS is fundamentally the wrong abstraction.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">111. Excellent Uses For InferenceFS<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Use it for:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>computer-science demonstrations,<\/li>\n\n\n\n<li>FUSE education,<\/li>\n\n\n\n<li>LLM education,<\/li>\n\n\n\n<li>hallucination demonstrations,<\/li>\n\n\n\n<li>inference-vs-retrieval teaching,<\/li>\n\n\n\n<li>model comparisons,<\/li>\n\n\n\n<li>file-format experiments,<\/li>\n\n\n\n<li>caching demonstrations,<\/li>\n\n\n\n<li>API-backed filesystem study,<\/li>\n\n\n\n<li>prompt engineering experiments,<\/li>\n\n\n\n<li>AI reliability workshops,<\/li>\n\n\n\n<li>information-theory discussions.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">112. InferenceFS vs Conventional Filesystem<\/h1>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Property<\/th><th>ext4\/XFS<\/th><th>InferenceFS<\/th><\/tr><\/thead><tbody><tr><td>Writes preserved<\/td><td>Yes<\/td><td>No<\/td><\/tr><tr><td>Reads exact<\/td><td>Yes<\/td><td>No<\/td><\/tr><tr><td>Persistent content<\/td><td>Yes<\/td><td>No<\/td><\/tr><tr><td>Content source<\/td><td>Stored blocks<\/td><td>LLM<\/td><\/tr><tr><td>Metadata<\/td><td>Filesystem metadata<\/td><td>Source tree<\/td><\/tr><tr><td>Remote inference<\/td><td>No<\/td><td>Yes<\/td><\/tr><tr><td>API dependency<\/td><td>No<\/td><td>Usually<\/td><\/tr><tr><td>Cache<\/td><td>OS caches<\/td><td>Explicit generated-content LRU<\/td><\/tr><tr><td>Deterministic<\/td><td>Essentially<\/td><td>Not guaranteed<\/td><\/tr><tr><td>Production storage<\/td><td>Yes<\/td><td>No<\/td><\/tr><tr><td>Educational novelty<\/td><td>Moderate<\/td><td>Extremely high<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">113. InferenceFS vs Object Storage<\/h1>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Property<\/th><th>S3\/Object Storage<\/th><th>InferenceFS<\/th><\/tr><\/thead><tbody><tr><td>Upload object<\/td><td>Stored<\/td><td>Discarded<\/td><\/tr><tr><td>Get object<\/td><td>Exact stored bytes<\/td><td>Generated bytes<\/td><\/tr><tr><td>Object identity<\/td><td>Key + version\/data<\/td><td>Filename prompt<\/td><\/tr><tr><td>Durability<\/td><td>Engineered<\/td><td>Not applicable<\/td><\/tr><tr><td>Versioning<\/td><td>Often<\/td><td>No generated-content versioning<\/td><\/tr><tr><td>Integrity<\/td><td>Checksums<\/td><td>No equivalent content guarantee<\/td><\/tr><tr><td>Cost basis<\/td><td>Storage + requests<\/td><td>LLM inference + cache<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">114. InferenceFS vs RAG<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS is not RAG.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">RAG<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">query\n \u2193\nretrieve relevant documents\n \u2193\nmodel sees real evidence\n \u2193\nanswer grounded in retrieved data\n<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">InferenceFS<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">filename\n \u2193\nmodel\n \u2193\ngenerate probable file contents\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">There is no retrieval database containing your original file contents.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This distinction is extremely important.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">115. InferenceFS vs Generative AI<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS is essentially a filesystem-shaped wrapper around generative AI.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Normally:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">prompt \u2192 generated response\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">InferenceFS maps that into:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">filename \u2192 generated file\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The operating system abstraction makes generation look like storage.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That inversion is what makes the project so clever.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">116. InferenceFS vs <code>\/dev\/null<\/code><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Writes are philosophically close to:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-78\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">\/dev\/<span class=\"hljs-literal\">null<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-78\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">because bytes disappear.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But unlike <code>\/dev\/null<\/code>, InferenceFS preserves the existence of the filename and apparent write size.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Then, on read, it generates replacement content.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So approximately:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-79\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">InferenceFS =\n<span class=\"hljs-regexp\">\/dev\/<\/span><span class=\"hljs-literal\">null<\/span>\n+\nmetadata\n+\nLLM\n+\nFUSE\n+\nconfidence\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-79\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">117. InferenceFS vs <code>\/dev\/urandom<\/code><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\"><code>\/dev\/urandom<\/code> generates bytes rather than storing them.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS also generates bytes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But <code>\/dev\/urandom<\/code> makes no claim that its bytes correspond to what you wanted.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS generates semantically plausible data conditioned by the filename.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">\/dev\/urandom:\nrandom-looking bytes\n\nInferenceFS:\ncontextually plausible bytes\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">118. InferenceFS vs Templates<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">It also resembles an extremely sophisticated templating engine.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Traditional template:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Dockerfile.tpl\n+\nvariables\n=\nDockerfile\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">InferenceFS:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-80\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">filename <span class=\"hljs-string\">\"Dockerfile\"<\/span>\n+\nLLM prior\n=\nDockerfile\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-80\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The \u201ctemplate\u201d lives inside the model weights.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">119. InferenceFS vs Content-Addressed Storage<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">A system like Git says:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">content\n \u2193\ncryptographic hash\n \u2193\nstable content identity\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">InferenceFS effectively says:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">filename\n \u2193\nsemantic prompt\n \u2193\nprobable content\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">These are almost opposites.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A hash exists specifically to bind identity to exact bytes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A filename contains insufficient information to do that.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">120. InferenceFS vs Deduplication<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Traditional deduplication:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">same content\n \u2193\nsame stored block\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">InferenceFS&#8217;s joke version is closer to:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">same semantic filename\n \u2193\ngenerate something likely\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The README jokes that files with the same name are aggressively \u201cdeduplicated,\u201d but this is satire, not storage deduplication.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">121. Why This Project Matters<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS exposes a problem that is easy to forget when chatting with AI:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">A highly plausible answer can feel like retrieval even when nothing was retrieved.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Suppose you ask an LLM:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">What normally goes in \/etc\/nginx\/nginx.conf?\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">and it returns an excellent configuration.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Your brain may think:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-81\" data-shcb-language-name=\"JSON \/ JSON with Comments\" data-shcb-language-slug=\"json\"><span><code class=\"hljs language-json\"><span class=\"hljs-string\">\"It knows nginx.conf.\"<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-81\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JSON \/ JSON with Comments<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">json<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">But what happened may really be:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">learned probability distribution\n+\nprompt\n+\ngeneration\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">InferenceFS makes that distinction impossible to ignore because the generated answer appears as a literal \u201cfile.\u201d<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">122. Plausibility Is Not Truth<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS teaches:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">syntactically correct\n\u2260\nfactually correct\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">and:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">looks like original\n\u2260\nis original\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">and:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">model confidence\n\u2260\nstorage integrity\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">and:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">generation\n\u2260\nretrieval\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">These distinctions are central to responsible AI engineering.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">123. The Filename as Compressed Semantic Information<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">A filename like:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-82\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">nginx<\/span><span class=\"hljs-selector-class\">.conf<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-82\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">contains very little byte-level information.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But semantically it contains a lot.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It implies:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>probably text,<\/li>\n\n\n\n<li>probably NGINX syntax,<\/li>\n\n\n\n<li>probably directives,<\/li>\n\n\n\n<li>probably <code>server<\/code>,<\/li>\n\n\n\n<li>perhaps port 80,<\/li>\n\n\n\n<li>perhaps <code>location \/<\/code>,<\/li>\n\n\n\n<li>perhaps log paths.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">An LLM can expand that semantic hint into hundreds of plausible bytes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That is why the project feels like compression.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But the reconstructed details are largely invented.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">124. Semantic Compression vs Lossless Compression<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Consider:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-83\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">wedding_photo<\/span><span class=\"hljs-selector-class\">.jpg<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-83\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The filename tells us:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">photo\nwedding\nJPEG\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">But not:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>who was present,<\/li>\n\n\n\n<li>what anyone looked like,<\/li>\n\n\n\n<li>where they stood,<\/li>\n\n\n\n<li>exact pixels,<\/li>\n\n\n\n<li>camera settings,<\/li>\n\n\n\n<li>colors,<\/li>\n\n\n\n<li>timestamp.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">An LLM or generative image model could create a convincing wedding image.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But nearly all information from the original photograph has been lost.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That is <strong>semantic reconstruction<\/strong>, not lossless decompression.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">125. Information-Theoretic Perspective<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Suppose your original file contains:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">N bits\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">A filename may contain only:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">M bits\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">where:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">M &lt;&lt; N\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">There is no way for those M bits to uniquely distinguish all possible N-bit files.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The missing information must come from somewhere.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS supplies it from:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">model priors\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">rather than from the original file.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That is why the output can be plausible but cannot generally be exact.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">126. A Simple Proof<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Suppose the filename is:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-84\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">a<\/span><span class=\"hljs-selector-class\">.txt<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-84\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Could the original content be:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Hello\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Yes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Could it also be:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Goodbye\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Yes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Could it contain an entire novel?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Yes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Could it contain random bytes?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Yes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The same filename corresponds to effectively unbounded possible contents.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Therefore:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">filename alone\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">cannot uniquely identify the original content.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No model intelligence can change that fundamental information deficit.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">127. LLM Weights Are Not a Filesystem<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">A model&#8217;s parameters encode statistical structure learned during training.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">They are not generally a dictionary like:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">\/path\/file1 \u2192 exact bytes\n\/path\/file2 \u2192 exact bytes\n\/path\/file3 \u2192 exact bytes\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Even when models reproduce remembered passages, treating model parameters as a deterministic data archive is the wrong abstraction.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS deliberately exaggerates that mistaken assumption.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">128. A Gold-Standard Learning Lab<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Install dependencies:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo apt update\n\nsudo apt install -y \\\n    fuse3 \\\n    libfuse3-dev \\\n    pkg-config \\\n    build-essential\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Clone:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-85\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">git <span class=\"hljs-keyword\">clone<\/span> https:<span class=\"hljs-comment\">\/\/github.com\/philipl\/inferencefs.git<\/span>\ncd inferencefs\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-85\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Prepare Python environment:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">uv sync\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Create directories:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">mkdir -p \/tmp\/inference-source\nmkdir -p \/tmp\/inference-mount\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Configure API:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-86\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-keyword\">export<\/span> API_KEY=<span class=\"hljs-string\">\"YOUR_API_KEY\"<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-86\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Mount:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">uv run inferencefs \\\n    -d \\\n    --backend gemini \\\n    \/tmp\/inference-source \\\n    \/tmp\/inference-mount\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">129. Lab 1 \u2014 Text Generation<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Another terminal:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">touch \/tmp\/inference-mount\/hello.py\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Read:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">cat \/tmp\/inference-mount\/hello.py\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Observe the original terminal logs.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Read again:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">cat \/tmp\/inference-mount\/hello.py\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The second read should normally be served from the cache rather than generate content again.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">130. Lab 2 \u2014 Filename Semantics<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Create:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">touch \/tmp\/inference-mount\/README.md\ntouch \/tmp\/inference-mount\/Dockerfile\ntouch \/tmp\/inference-mount\/package.json\ntouch \/tmp\/inference-mount\/requirements.txt\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Read each:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-87\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-keyword\">for<\/span> f in README.md Dockerfile package.json requirements.txt; <span class=\"hljs-keyword\">do<\/span>\n    <span class=\"hljs-keyword\">echo<\/span> <span class=\"hljs-string\">\"===== $f =====\"<\/span>\n    cat <span class=\"hljs-string\">\"\/tmp\/inference-mount\/$f\"<\/span>\ndone\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-87\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Observe what conventions the model associates with each filename.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">131. Lab 3 \u2014 Write Discard<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Run:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-88\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">printf <span class=\"hljs-string\">'THIS IS MY EXACT CONTENT'<\/span> \\\n    &gt; <span class=\"hljs-regexp\">\/tmp\/i<\/span>nference-mount\/exact.txt\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-88\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Then read:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">cat \/tmp\/inference-mount\/exact.txt\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Do not expect:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">THIS IS MY EXACT CONTENT\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Then inspect:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">cat \/tmp\/inference-source\/exact.txt\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">This demonstrates payload discard and size persistence.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">132. Lab 4 \u2014 Cache<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Run:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-89\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">cat \/tmp\/inference-mount\/config.yaml &gt; <span class=\"hljs-regexp\">\/tmp\/<\/span>read1\ncat \/tmp\/inference-mount\/config.yaml &gt; <span class=\"hljs-regexp\">\/tmp\/<\/span>read2\n\ncmp \/tmp\/read1 \/tmp\/read2\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-89\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">While cached, they should normally match.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Then restart the filesystem and compare again.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">133. Lab 5 \u2014 Nondeterminism<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Save one run:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-90\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">cat \/tmp\/inference-mount\/config.yaml &gt; <span class=\"hljs-regexp\">\/tmp\/<\/span>version1\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-90\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Unmount:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">fusermount3 -u \/tmp\/inference-mount\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Start again.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Save:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-91\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">cat \/tmp\/inference-mount\/config.yaml &gt; <span class=\"hljs-regexp\">\/tmp\/<\/span>version2\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-91\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Compare:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">diff -u \/tmp\/version1 \/tmp\/version2\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">This is an excellent demonstration of generative persistence failure.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">134. Lab 6 \u2014 Binary Formats<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Create:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">touch \/tmp\/inference-mount\/photo.png\ntouch \/tmp\/inference-mount\/report.pdf\ntouch \/tmp\/inference-mount\/app.elf\ntouch \/tmp\/inference-mount\/archive.zip\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Copy generated bytes:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">cp \/tmp\/inference-mount\/photo.png \/tmp\/photo.png\ncp \/tmp\/inference-mount\/report.pdf \/tmp\/report.pdf\ncp \/tmp\/inference-mount\/app.elf \/tmp\/app.elf\ncp \/tmp\/inference-mount\/archive.zip \/tmp\/archive.zip\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Inspect:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">file \/tmp\/photo.png\nfile \/tmp\/report.pdf\nfile \/tmp\/app.elf\nfile \/tmp\/archive.zip\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Then validate internals.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For ZIP:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">unzip -t \/tmp\/archive.zip\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">This often highlights the difference between a recognizable header and a truly valid format.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">135. Lab 7 \u2014 Compare Models<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Generate the same filename using:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Gemini\nClaude\nClaude Code\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Compare:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">correctness\nsyntax\nlength\nstyle\nbinary validity\nlatency\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">This turns InferenceFS into an entertaining qualitative model benchmark.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">136. Lab 8 \u2014 Path Context<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Create:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">mkdir -p \/tmp\/inference-mount\/aws\nmkdir -p \/tmp\/inference-mount\/kubernetes\nmkdir -p \/tmp\/inference-mount\/docker\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Then:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">touch \/tmp\/inference-mount\/aws\/config.yaml\ntouch \/tmp\/inference-mount\/kubernetes\/config.yaml\ntouch \/tmp\/inference-mount\/docker\/config.yaml\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Read them.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The directory context should influence model interpretation.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">137. Lab 9 \u2014 DevOps Model Knowledge<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Create:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">terraform\/main.tf\nkubernetes\/deployment.yaml\nhelm\/values.yaml\nansible\/playbook.yaml\n.github\/workflows\/ci.yaml\nprometheus\/prometheus.yml\notel\/collector.yaml\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Examine:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>version freshness,<\/li>\n\n\n\n<li>deprecated APIs,<\/li>\n\n\n\n<li>security defaults,<\/li>\n\n\n\n<li>syntax validity,<\/li>\n\n\n\n<li>assumptions,<\/li>\n\n\n\n<li>hallucinated properties.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">This is particularly useful for AI-assisted DevOps education.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">138. Lab 10 \u2014 What Models Don&#8217;t Know<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Create obscure or invented filenames:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-92\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">xyzzy-q91<\/span><span class=\"hljs-selector-class\">.conf<\/span>\n<span class=\"hljs-selector-tag\">foo<\/span><span class=\"hljs-selector-class\">.bar<\/span><span class=\"hljs-selector-class\">.baz<\/span>\n<span class=\"hljs-selector-tag\">company-secret-format<\/span><span class=\"hljs-selector-class\">.dat<\/span>\n<span class=\"hljs-selector-tag\">customprotocol<\/span><span class=\"hljs-selector-class\">.v99<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-92\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Observe how the model fills information gaps.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You will likely see stronger hallucination as semantic hints decrease.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This demonstrates how generation quality depends heavily on prior probability.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">139. Best Practices for Safe Experimentation<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">For an InferenceFS lab:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Use disposable directories.<\/li>\n\n\n\n<li>Use no personal data.<\/li>\n\n\n\n<li>Use no secrets.<\/li>\n\n\n\n<li>Use no real production filenames if sensitive.<\/li>\n\n\n\n<li>Monitor API spend.<\/li>\n\n\n\n<li>Keep cache sizes reasonable.<\/li>\n\n\n\n<li>Enable debug mode while learning.<\/li>\n\n\n\n<li>Validate binary output before opening it.<\/li>\n\n\n\n<li>Never execute generated binaries.<\/li>\n\n\n\n<li>Assume all generated content is untrusted.<\/li>\n\n\n\n<li>Never interpret output as recovered original data.<\/li>\n\n\n\n<li>Unmount when finished.<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">140. Architecture Summary<\/h1>\n\n\n\n<pre class=\"wp-block-preformatted\"> <code>                        User Program\n                              |\n                              | POSIX operations\n                              v\n                         Linux Kernel\n                              |\n                              | FUSE\n                              v\n                          pyfuse3\n                              |\n                              v\n                       InferenceFS\n                   +----------+----------+\n                   |                     |\n                   v                     v\n            Source metadata         Content request\n            directory                    |\n                                         v\n                                   LRU cache lookup\n                                    \/           \\\n                                 hit             miss\n                                  |               |\n                                  v               v\n                               bytes         LLM backend\n                                                  |\n                              +-------------------+-------------------+\n                              |                   |                   |\n                              v                   v                   v\n                           Gemini              Claude            Claude Code\n                              |                   |                   |\n                              +-------------------+-------------------+\n                                                  |\n                                                  v\n                                       text \/ base64 response\n                                                  |\n                                                  v\n                                      response decoder\n                                                  |\n                                                  v\n                                          generated bytes\n                                                  |\n                                                  v\n                                             LRU cache\n                                                  |\n                                                  v\n                                             application\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">141. Read Workflow<\/h1>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-93\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">cat foo.py\n   |\n   v\nopen(foo.py)\n   |\n   v\nread(foo.py)\n   |\n   v\ncache?\n   |\n   +---- yes ---&gt; <span class=\"hljs-keyword\">return<\/span> cached bytes\n   |\n   +---- no\n          |\n          v\n      prompt LLM\n          |\n          v\n     receive output\n          |\n          v\n   decode <span class=\"hljs-keyword\">if<\/span> binary\n          |\n          v\n      cache bytes\n          |\n          v\n     <span class=\"hljs-keyword\">return<\/span> slice\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-93\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">142. Write Workflow<\/h1>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-94\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-keyword\">echo<\/span> hello &gt; foo.txt\n       |\n       v\n     create\n       |\n       v\n     write\n       |\n       +---- input bytes discarded\n       |\n       v\ntrack max written offset\n       |\n       v\n     release\n       |\n       v\npersist numeric file size\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-94\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Later:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-95\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">cat foo.txt\n    |\n    v\nLLM generates <span class=\"hljs-string\">\"foo.txt\"<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-95\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Not:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-96\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-string\">\"hello\"<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-96\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">143. What InferenceFS Gets Surprisingly Right<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">From an engineering perspective, several design decisions are sensible:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>lazy generation,<\/li>\n\n\n\n<li>backend abstraction,<\/li>\n\n\n\n<li>bounded LRU cache,<\/li>\n\n\n\n<li>asynchronous FUSE integration,<\/li>\n\n\n\n<li>rate-limit handling,<\/li>\n\n\n\n<li>binary response recovery,<\/li>\n\n\n\n<li>API-key validation,<\/li>\n\n\n\n<li>persistent apparent sizes,<\/li>\n\n\n\n<li>inode lifecycle management,<\/li>\n\n\n\n<li>extensive automated testing,<\/li>\n\n\n\n<li>clean packaging.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">That combination is why studying the repository is worthwhile even though its storage model is deliberately ridiculous.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">144. What InferenceFS Deliberately Gets Wrong<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">The central storage semantics are intentionally broken:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-97\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">writes <span class=\"hljs-keyword\">do<\/span> not preserve content\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-97\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">and:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">reads generate guesses\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Consequently it cannot guarantee:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>durability,<\/li>\n\n\n\n<li>fidelity,<\/li>\n\n\n\n<li>consistency,<\/li>\n\n\n\n<li>reproducibility,<\/li>\n\n\n\n<li>exact recovery,<\/li>\n\n\n\n<li>data integrity,<\/li>\n\n\n\n<li>stable content identity.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">That is the point.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">145. The Real Lesson About Generative AI<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS illustrates one of the most important rules of modern AI:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>A generative model should not be treated as a database merely because it can produce answers that resemble stored information.<\/strong><\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">If exact source truth matters, use:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-98\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">database\nsearch\nRAG\nobject storage\n<span class=\"hljs-built_in\">document<\/span> store\nsource repository\nAPI\nverified external source\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-98\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">and then use the model to reason over that evidence.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Do not ask probability to masquerade as persistence.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">146. The Real Lesson About RAG<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS also explains why RAG exists.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Without retrieval:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">question\n \u2193\nmodel prior\n \u2193\nplausible answer\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">With retrieval:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">question\n \u2193\nsearch real source\n \u2193\nrelevant evidence\n \u2193\nmodel reasoning\n \u2193\ngrounded answer\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The difference is similar to:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">InferenceFS\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">versus:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">an actual filesystem\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">That is a memorable mental model.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">147. The Real Lesson About AI Coding<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Suppose you ask:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Generate my company's existing deployment.yaml.\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Without access to your repository, an LLM might produce an excellent Kubernetes manifest.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But that is:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-99\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">a<\/span> <span class=\"hljs-selector-tag\">deployment<\/span><span class=\"hljs-selector-class\">.yaml<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-99\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">not necessarily:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-100\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">your<\/span> <span class=\"hljs-selector-tag\">deployment<\/span><span class=\"hljs-selector-class\">.yaml<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-100\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">InferenceFS makes exactly this error intentionally.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The same principle applies to AI coding assistants:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Give the model the real codebase when exact project context matters.<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">148. The Real Lesson About \u201cMemory\u201d<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">If an AI model can generate a plausible:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-101\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">README<\/span><span class=\"hljs-selector-class\">.md<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-101\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">that does not establish that it retrieved a specific README from training.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Generation can arise from learned structure and probabilities.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS helps separate:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">memorization\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">from:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">generalization\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">and from:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">retrieval\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Even when outputs look familiar, determining which mechanism produced them can be nontrivial.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">149. Suggested Learning Path<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Beginner<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Understand:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>FUSE,<\/li>\n\n\n\n<li>filesystem mounts,<\/li>\n\n\n\n<li>filenames vs contents,<\/li>\n\n\n\n<li>LLM generation.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Intermediate<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Run InferenceFS and experiment with:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>text files,<\/li>\n\n\n\n<li>path context,<\/li>\n\n\n\n<li>cache behavior,<\/li>\n\n\n\n<li>writes,<\/li>\n\n\n\n<li>remounts.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Advanced<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Study:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>pyfuse3<\/code>,<\/li>\n\n\n\n<li>Trio,<\/li>\n\n\n\n<li>inode lifecycle,<\/li>\n\n\n\n<li>LRU caching,<\/li>\n\n\n\n<li>API backends,<\/li>\n\n\n\n<li>base64 decoder,<\/li>\n\n\n\n<li>rate-limit behavior.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Expert<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Use the project to study:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>information theory,<\/li>\n\n\n\n<li>LLM memorization,<\/li>\n\n\n\n<li>semantic compression,<\/li>\n\n\n\n<li>model priors,<\/li>\n\n\n\n<li>hallucination,<\/li>\n\n\n\n<li>reproducibility,<\/li>\n\n\n\n<li>binary format generation,<\/li>\n\n\n\n<li>retrieval vs generative knowledge.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">150. Command Cheat Sheet<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Install system dependencies:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo apt install \\\n    fuse3 \\\n    libfuse3-dev \\\n    pkg-config \\\n    build-essential\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Clone:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-102\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">git <span class=\"hljs-keyword\">clone<\/span> https:<span class=\"hljs-comment\">\/\/github.com\/philipl\/inferencefs.git<\/span>\ncd inferencefs\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-102\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Install:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">uv sync\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Prepare:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">mkdir -p \/tmp\/source \/tmp\/mount\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Gemini:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-103\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-keyword\">export<\/span> API_KEY=<span class=\"hljs-string\">\"...\"<\/span>\nuv run inferencefs \\\n    --backend gemini \\\n    \/tmp\/source \\\n    \/tmp\/mount\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-103\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Claude:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-104\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-keyword\">export<\/span> API_KEY=<span class=\"hljs-string\">\"...\"<\/span>\nuv run inferencefs \\\n    --backend claude \\\n    \/tmp\/source \\\n    \/tmp\/mount\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-104\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Claude Code:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">uv run inferencefs \\\n    --backend claude-code \\\n    \/tmp\/source \\\n    \/tmp\/mount\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Debug:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">uv run inferencefs \\\n    -d \\\n    --backend gemini \\\n    \/tmp\/source \\\n    \/tmp\/mount\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">64 MiB cache:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">uv run inferencefs \\\n    --backend gemini \\\n    --cache-size 64 \\\n    \/tmp\/source \\\n    \/tmp\/mount\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Create:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">touch \/tmp\/mount\/hello.py\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Read:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">cat \/tmp\/mount\/hello.py\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Unmount:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">fusermount3 -u \/tmp\/mount\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Tests:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">uv run pytest\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Lint:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">uv run ruff check src tests\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">151. Frequently Asked Questions<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Is InferenceFS a real filesystem?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">It is a real FUSE filesystem implementation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Its persistence semantics are intentionally not those of normal storage.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Does it actually store my file contents?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">No.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Written bytes are discarded by the current implementation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Only metadata such as paths and apparent written sizes is retained.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Can it recover my original file?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Generally, no.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It asks an LLM to produce what that filename probably contains.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">What happens if I write data and read it back?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">You should not expect the written bytes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The read result is generated by the model.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Why does <code>write()<\/code> report success?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Because the filesystem deliberately accepts writes while discarding payloads.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It reports the number of bytes as successfully written and records apparent size.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That behavior is part of the project&#8217;s design.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Is generated content cached?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Yes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS uses a configurable in-memory LRU cache.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The default is approximately:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">256 MiB\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Does the cache survive restart?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">No.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The generated content cache is process memory.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Will the same filename always produce the same content?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">No guarantee.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Outputs may change after regeneration.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Does InferenceFS support binary files?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">It attempts to.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The model is asked for base64 representations, which the application decodes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Common format headers can work surprisingly well, but complex compressed\/cross-referenced structures may be invalid.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Is InferenceFS safe for production?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">No.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The author explicitly labels it an April Fools&#8217; project and warns against storing anything important with it.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">What Python version does it require?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Current packaging requires:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-105\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">Python<\/span> 3<span class=\"hljs-selector-class\">.14<\/span>+\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-105\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">What is the latest published version?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">As of September 2026, PyPI lists:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-106\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\">1<span class=\"hljs-selector-class\">.0<\/span><span class=\"hljs-selector-class\">.0<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-106\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">released:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">April 1, 2026\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Which backend should I start with?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The project&#8217;s current README recommends Gemini for the preferred out-of-the-box demonstration.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Provider capabilities, prices and model availability can change, so check the provider before running large experiments.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Does Claude Code require an API key?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS itself does not request one for the <code>claude-code<\/code> backend.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It relies on the locally installed Claude CLI&#8217;s authentication.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Can InferenceFS replace S3?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Absolutely not.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">S3 stores bytes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS guesses bytes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That distinction is rather important.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Can it replace Git?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">No.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Git&#8217;s design is built around exact content identity.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS intentionally provides no such guarantee.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Can it be used for generating boilerplate?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Technically, the underlying concept can inspire useful tools.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A system where:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">filename\/path\n\u2192 generate scaffold\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">could be useful.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But that is better implemented explicitly as a code generator, template engine or AI scaffolding tool\u2014not disguised as persistent storage.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">152. From Joke to Useful Design Pattern<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Interestingly, a safer version of the concept could be genuinely useful.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Imagine a <strong>GenerativeFS<\/strong> where files marked as virtual are intentionally generated:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">\/generated\/\n\u251c\u2500\u2500 README.md\n\u251c\u2500\u2500 architecture.md\n\u251c\u2500\u2500 api-examples.md\n\u2514\u2500\u2500 test-data.json\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">But unlike InferenceFS, the system would clearly distinguish:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">generated virtual artifacts\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">from:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">persistent files\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">It could:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>persist generations,<\/li>\n\n\n\n<li>record model\/version,<\/li>\n\n\n\n<li>record prompts,<\/li>\n\n\n\n<li>store hashes,<\/li>\n\n\n\n<li>track provenance,<\/li>\n\n\n\n<li>regenerate explicitly,<\/li>\n\n\n\n<li>show generated status.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">That becomes a legitimate AI-powered virtual filesystem.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS helps expose what safeguards such a real system would need.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">153. What a Production Generative Filesystem Would Need<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">At minimum:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">content persistence\ncontent hashing\ngeneration provenance\nmodel identifier\nprompt version\ntimestamps\nexplicit regeneration\nversion history\ndeterministic mode where possible\naudit logs\nAPI cost controls\nsecrets management\nprivacy boundaries\nvalidation\ncontent safety\nchecksums\nuser-visible generated status\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Without those, generative content should never masquerade as durable storage.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">154. \u03c0fs vs InferenceFS: The Bigger Lesson<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">\u03c0fs asks:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Can deterministic mathematics replace storage?<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Answer:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Not without retaining enough information to identify the original data.\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">InferenceFS asks:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Can model knowledge replace storage?<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Answer:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-107\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">Only <span class=\"hljs-keyword\">if<\/span> you are willing to replace exact information <span class=\"hljs-keyword\">with<\/span> plausible reconstruction.\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-107\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Together, they make a wonderful pair.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u03c0fs<\/h3>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">exact-ish reconstruction\n+\ntoo much metadata\n<\/code><\/span><\/pre>\n\n\n<h3 class=\"wp-block-heading\">InferenceFS<\/h3>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">almost no metadata\n+\nalmost no guarantee of exact reconstruction\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">One preserves information and pays for it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The other discards information and asks probability to fill the gaps.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">155. Final Takeaway<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS begins with a wonderfully ridiculous proposition:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Why store files when an LLM can simply remember what files with those names usually look like?<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">The implementation then takes that idea seriously enough to expose its consequences.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A filename such as:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Dockerfile\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">really can expand into a convincing Dockerfile.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A filename such as:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-108\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">config<\/span><span class=\"hljs-selector-class\">.yaml<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-108\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">really can expand into plausible configuration.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A filename such as:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-109\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">image<\/span><span class=\"hljs-selector-class\">.png<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-109\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">may even cause a model to emit enough base64-encoded structure to resemble an actual PNG.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">And that&#8217;s precisely why InferenceFS is valuable.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Because it demonstrates how easy it is to confuse:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">plausibility\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">with:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">truth\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">and:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">generation\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">with:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">retrieval\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">and:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">semantic familiarity\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">with:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">exact memory\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">and:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">AI output\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">with:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">stored evidence\n<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">A traditional filesystem promises:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Give me bytes and I will return the same bytes later.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS promises something closer to:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Give me a filename and I&#8217;ll ask a model what probably belonged there.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Those are fundamentally different contracts.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">InferenceFS deliberately chooses the second contract and wraps it inside an interface normally associated with the first.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That mismatch is the joke.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It is also the lesson.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">And that makes InferenceFS a surprisingly powerful teaching tool for understanding not only filesystems, but the fundamental nature\u2014and limits\u2014of generative AI.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">References<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">The primary source is the official <strong>philipl\/inferencefs<\/strong> repository. The repository describes InferenceFS as the successor to \u03c0fs, documents its FUSE interface, backends, cache and quick-start workflow.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The project&#8217;s <strong>CLAUDE.md<\/strong> documents its internal architecture, lazy generation, pyfuse3 design, cache behavior, asynchronous execution, backend structure, testing and known limitations.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The current <strong><code>inferencefs.py<\/code> implementation<\/strong> shows the actual read\/write semantics, inode bookkeeping, LRU cache, retry handling, fake 1 GiB size, persisted written-size metadata and FUSE operations.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The current <strong><code>backends.py<\/code> implementation<\/strong> documents the LLM prompts, Claude\/Claude Code\/Gemini integrations, binary base64 processing and magic-byte detection.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The project&#8217;s <strong>technical appendix<\/strong> explains the intended lesson around LLMs as lossy compression and records experimental limitations with compressed, codec-specific and cross-referenced binary formats.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">PyPI currently lists <strong>InferenceFS 1.0.0<\/strong>, released April 1, 2026, requiring Python 3.14+, under the AGPL-3.0-or-later license.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>What Is InferenceFS, Why Does It Exist, How Does It Work, and What Does It Teach Us About LLMs? Updated: September 2026 InferenceFS may be one of&#8230; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[11138],"tags":[],"class_list":["post-78590","post","type-post","status-publish","format-standard","hentry","category-best-tools"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/78590","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=78590"}],"version-history":[{"count":1,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/78590\/revisions"}],"predecessor-version":[{"id":78591,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/78590\/revisions\/78591"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=78590"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=78590"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=78590"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}