<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Safiyu Vattaparambil</title>
    <description>The latest articles on Forem by Safiyu Vattaparambil (@safiyuvs).</description>
    <link>https://forem.com/safiyuvs</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3667047%2F81b7554c-3cd7-488f-ae0d-8d4f43d393a2.jpg</url>
      <title>Forem: Safiyu Vattaparambil</title>
      <link>https://forem.com/safiyuvs</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/safiyuvs"/>
    <language>en</language>
    <item>
      <title>Your AI coding agent is a goldfish. I built the fix.</title>
      <dc:creator>Safiyu Vattaparambil</dc:creator>
      <pubDate>Sun, 03 May 2026 08:42:04 +0000</pubDate>
      <link>https://forem.com/safiyuvs/i-gave-my-ai-coding-agent-a-brain-hands-and-eyes-introducing-ctxnest-2jkk</link>
      <guid>https://forem.com/safiyuvs/i-gave-my-ai-coding-agent-a-brain-hands-and-eyes-introducing-ctxnest-2jkk</guid>
      <description>&lt;p&gt;AI coding assistants are incredible. They can refactor your spaghetti into... slightly more organized spaghetti. They can explain code they've never seen. They can confidently suggest solutions that are almost correct.&lt;/p&gt;

&lt;p&gt;What they can't do is &lt;em&gt;remember anything&lt;/em&gt;. Close the tab, and your AI goldfish starts fresh. Every. Single. Time.&lt;/p&gt;

&lt;p&gt;I got tired of it. So I built &lt;strong&gt;CtxNest&lt;/strong&gt; — a persistent Brain for knowledge, a sandboxed pair of Hands for action, and Eyes for feedback that closes the loop. All over MCP. All on your own machine. No cloud, no subscription, no vendor with access to your codebase.&lt;/p&gt;




&lt;h2&gt;
  
  
  The problem with "just paste more context"
&lt;/h2&gt;

&lt;p&gt;You know the ritual. Open a new chat. Paste the README. Paste the relevant file. Explain the architecture &lt;em&gt;again&lt;/em&gt;. Paste the error. Explain what you already tried. Watch the AI confidently suggest the exact thing you told it not to do two messages ago.&lt;/p&gt;

&lt;p&gt;A code suggester answers a question. An agent closes a task. The difference is a &lt;strong&gt;feedback loop&lt;/strong&gt; — and almost no tool has one.&lt;/p&gt;

&lt;p&gt;CtxNest builds that loop locally.&lt;/p&gt;




&lt;h2&gt;
  
  
  Brain → Hands → Eyes
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Brain → Hands → Eyes → Brain → ...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Brain&lt;/strong&gt; answers &lt;em&gt;what does the agent need to know?&lt;/em&gt; — a markdown knowledge vault with FTS5 full-text search, git-backed versioning per file, surgical section edits, and cross-project context. Think Obsidian, but your AI can actually read it without you copy-pasting things into a chat window at 11pm.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hands&lt;/strong&gt; answers &lt;em&gt;what can the agent safely do?&lt;/em&gt; — you declare commands in a &lt;code&gt;ctxnest.json&lt;/code&gt;, CtxNest exposes them as namespaced MCP tools. No shell. Locked working directory. Clean environment. Validated params. Hard timeout. Optional human approval. The agent can't invent tools, escape the project root, or modify its own command surface. It can only do what you said it could do. Revolutionary concept, I know.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Eyes&lt;/strong&gt; answers &lt;em&gt;what just happened?&lt;/em&gt; — Hands' formatted stdout, Brain's &lt;code&gt;diff_against_disk&lt;/code&gt; / &lt;code&gt;whats_new&lt;/code&gt; / &lt;code&gt;get_history&lt;/code&gt; for diff-aware observation, and &lt;code&gt;journal_append&lt;/code&gt; to write learnings back into Brain so the next session starts smarter than this one.&lt;/p&gt;

&lt;p&gt;That last part — the Journal arrow back to Brain — is what makes it compound. The agent documents what it did, and tomorrow's session finds that note. The loop gets smarter every run. Your AI goes from goldfish to something with actual long-term memory.&lt;/p&gt;




&lt;h2&gt;
  
  
  A real example
&lt;/h2&gt;

&lt;p&gt;You ask Claude Code: &lt;em&gt;"Convert the demo video to the right format for the target app."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;No preamble. No "here's the project structure." Just that sentence.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Brain (context gathering)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;search("target app video format")&lt;/code&gt; → finds &lt;code&gt;standards.md&lt;/code&gt;: target app requires H.264 MP4&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;search("demo video source")&lt;/code&gt; → finds &lt;code&gt;media-assets.md&lt;/code&gt;: source is &lt;code&gt;assets/raw/demo_raw.mov&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Hands (execution)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Calls &lt;code&gt;myproj__convert-video&lt;/code&gt; with the resolved paths&lt;/li&gt;
&lt;li&gt;Runs &lt;code&gt;ffmpeg&lt;/code&gt; safely in your project root — no shell injection, no creative path traversal, no excitement&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. Eyes (verification)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reads stdout, confirms conversion succeeded, checks file size and duration&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;4. Brain (journaling)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;journal_append&lt;/code&gt;: &lt;em&gt;"Converted demo_raw.mov to H.264 MP4. Final size: 14.2MB."&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One prompt. The agent pulled context, acted, verified, and documented. Tomorrow it already knows this was done and how it went.&lt;/p&gt;

&lt;p&gt;If &lt;code&gt;convert-video&lt;/code&gt; had &lt;code&gt;confirm: true&lt;/code&gt; in &lt;code&gt;ctxnest.json&lt;/code&gt;, step 2 pauses for your approval first. Because sometimes "just let the AI run ffmpeg on your files" is not the vibe.&lt;/p&gt;




&lt;h2&gt;
  
  
  How it stacks up
&lt;/h2&gt;

&lt;p&gt;Every other agentic coding tool ships with execution baked in. None have a knowledge base. None carry context across projects. None let &lt;em&gt;you&lt;/em&gt; define the command surface.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Execution&lt;/th&gt;
&lt;th&gt;Project knowledge base&lt;/th&gt;
&lt;th&gt;Cross-project context&lt;/th&gt;
&lt;th&gt;You control the commands&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Claude Code&lt;/td&gt;
&lt;td&gt;✓&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cursor&lt;/td&gt;
&lt;td&gt;✓&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Windsurf&lt;/td&gt;
&lt;td&gt;✓&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;CtxNest + Hands&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;✓&lt;/td&gt;
&lt;td&gt;✓&lt;/td&gt;
&lt;td&gt;✓&lt;/td&gt;
&lt;td&gt;✓&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Execution is a commodity at this point. Every coding agent has it. The gap is everything &lt;em&gt;around&lt;/em&gt; execution: persistent memory, cross-project standards, and a command surface you author and review like infrastructure — not one a vendor decided for you.&lt;/p&gt;

&lt;p&gt;And because it's all local:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Deterministic retrieval&lt;/strong&gt; — SQLite FTS5, not fuzzy vector embeddings. No hallucinated relevance for your class names and function signatures.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;History-aware&lt;/strong&gt; — agents can reason over the &lt;em&gt;history&lt;/em&gt; of your decisions, not just today's snapshot. "What did we decide about auth last month?" actually works.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero token waste&lt;/strong&gt; — agents browse before they pull. Context window stays clean instead of stuffed with your entire docs folder.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security by construction&lt;/strong&gt; — no credentials pre-staged in a remote sandbox, no multi-tenant blast radius, no data egress to a third party. Kill switch is &lt;code&gt;Ctrl-C&lt;/code&gt; on your own process. The threat model is refreshingly boring.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Getting started
&lt;/h2&gt;

&lt;p&gt;Docker is the fastest path:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://raw.githubusercontent.com/safiyu/ctxnest/main/docker-compose.hub.yml &lt;span class="se"&gt;\&lt;/span&gt;
  | docker compose &lt;span class="nt"&gt;-f&lt;/span&gt; - up &lt;span class="nt"&gt;-d&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;UI at &lt;code&gt;http://localhost:3000&lt;/code&gt;. Data persists in &lt;code&gt;./ctxnest-data&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Prefer MCP-only, no Docker? Drop this in your client's &lt;code&gt;mcpServers.json&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"ctxnest"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"npx"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"args"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"-y"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"ctxnest-mcp"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"env"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"CTXNEST_DATA_DIR"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"/absolute/path/to/your/data"&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Works with Claude Code, Cursor, Gemini, Codex, and anything else that speaks MCP.&lt;/p&gt;




&lt;h2&gt;
  
  
  See it in action
&lt;/h2&gt;

&lt;p&gt;Full walkthrough demo covering the Brain → Hands → Eyes loop, live MCP integration with Claude and Antigravity, knowledge vaulting, and local RAG — &lt;a href="https://youtu.be/kghe72WjahY" rel="noopener noreferrer"&gt;watch it here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Want to poke the MCP endpoints without installing anything? No-install interactive demo on the &lt;a href="https://glama.ai/mcp/servers/safiyu/ctxnest" rel="noopener noreferrer"&gt;CtxNest page on Glama&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;⭐ &lt;a href="https://github.com/safiyu/ctxnest" rel="noopener noreferrer"&gt;github.com/safiyu/ctxnest&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is v7.2.2. The Hands feature landed in v7.0.0 and it's where things got genuinely fun. Give it a spin, file issues, tell me what's broken.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built with care for the future of agentic coding. And mild frustration at AI goldfish memory.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>mcp</category>
      <category>development</category>
      <category>agents</category>
    </item>
    <item>
      <title>Telefetchr: The Ultimate Self-Hosted Telegram Downloader</title>
      <dc:creator>Safiyu Vattaparambil</dc:creator>
      <pubDate>Wed, 17 Dec 2025 13:34:08 +0000</pubDate>
      <link>https://forem.com/safiyuvs/telefetchr-the-ultimate-self-hosted-telegram-downloader-3hi1</link>
      <guid>https://forem.com/safiyuvs/telefetchr-the-ultimate-self-hosted-telegram-downloader-3hi1</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3kknt3pqsro73lf9wamn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3kknt3pqsro73lf9wamn.png" alt=" " width="800" height="373"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Have you ever tried to backup files from a Telegram channel or download a large series of videos? The native Telegram client is great for chatting, but when it comes to bulk file management, it leaves a lot to be desired. Single-threaded downloads, no advanced filtering, and the need to keep your desktop client open can be a pain.&lt;/p&gt;

&lt;p&gt;Enter Telefetchr: a self-hosted, Dockerized web application designed to supercharge your Telegram downloads.&lt;/p&gt;

&lt;p&gt;✨ Key Features&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Parallel "Chunk &amp;amp; Merge" Downloading&lt;/strong&gt;&lt;br&gt;
This is the secret sauce. Telegram's API allows searching for files, but downloading them sequentially can be slow due to network latency and protocol overhead.&lt;/p&gt;

&lt;p&gt;Telefetchr implements a Chunk &amp;amp; Merge strategy:&lt;/p&gt;

&lt;p&gt;Files are split into logical 4MB chunks.&lt;br&gt;
Multiple asynchronous workers download these chunks in parallel to separate temporary files (e.g., video.mp4.part1, video.mp4.part2).&lt;br&gt;
Non-blocking I/O: I use aiofiles to write data without blocking the event loop, ensuring the UI remains responsive.&lt;br&gt;
Once finished, the parts are merged instantly into the final file.&lt;br&gt;
This approach maximizes your bandwidth and solves "disk contention" issues common with simple parallel writers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Advanced Filtering&lt;/strong&gt;&lt;br&gt;
Forget scrolling for hours. Telefetchr indexes your channel and lets you filter by:&lt;/p&gt;

&lt;p&gt;File Type: Video, Audio, Photo, Document.&lt;br&gt;
Size: Min/Max size constraints (e.g., "&amp;gt; 1GB").&lt;br&gt;
Date: Filtering by upload time-frame.&lt;br&gt;
Search: Full-text search on file captions and names.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Smart Authentication&lt;/strong&gt;&lt;br&gt;
Security is key for self-hosting. Telefetchr comes with:&lt;/p&gt;

&lt;p&gt;JWT Authentication: Secure login for external access.&lt;br&gt;
Trusted Sub-net Bypass: Configure your home network (e.g., 192.168.1.0/24) as "trusted". Devices on your WiFi get instant Admin access without typing passwords, while external access remains locked down.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Docker First&lt;/strong&gt;&lt;br&gt;
Deploy anywhere. The entire stack (Fast-API back-end + Vanilla JS front-end) is packaged into a lightweight Docker container.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Deployment&lt;/strong&gt;: via docker compose stack&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt; &lt;span class="na"&gt;telefetchr&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;image&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;safiyu/telefetchr:latest&lt;/span&gt;
    &lt;span class="na"&gt;container_name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;telefetchr&lt;/span&gt;
    &lt;span class="na"&gt;volumes&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;./downloads:/app/downloads&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;./sessions:/app/sessions&lt;/span&gt;
    &lt;span class="na"&gt;environment&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;PYTHONUNBUFFERED=1&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;API_ID=12345&lt;/span&gt; &lt;span class="c1"&gt;# your api_id from my.telegram.org&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;API_HASH=saasdasdf12324&lt;/span&gt; &lt;span class="c1"&gt;# your api_hash from my.telegram.org&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;PHONE_NUMBER=12345&lt;/span&gt; &lt;span class="c1"&gt;# without + sign&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;MAX_CONCURRENT_DOWNLOADS=3&lt;/span&gt; &lt;span class="c1"&gt;# optional, default is 3&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;SECRET_KEY=your_generated_secret_key_here&lt;/span&gt; &lt;span class="c1"&gt;# Generate secret: python -c "import secrets; print(secrets.token_urlsafe(32))"&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;ADMIN_USERNAME=yourusername&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;ADMIN_PASSWORD=yourpassword&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;ACCESS_TOKEN_EXPIRE_MINUTES=1440&lt;/span&gt;  &lt;span class="c1"&gt;# 24 hours&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;PUID=1000&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;PGID=1000&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;TRUSTED_SUBNETS=192.168.1.0/24&lt;/span&gt;  &lt;span class="c1"&gt;# Optional auth bypass&lt;/span&gt;
    &lt;span class="na"&gt;restart&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;always&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Please report bugs and issues at &lt;a href="https://github.com/safiyu/telefetchr" rel="noopener noreferrer"&gt;https://github.com/safiyu/telefetchr&lt;/a&gt;&lt;/p&gt;

</description>
      <category>tooling</category>
      <category>docker</category>
      <category>telegram</category>
      <category>downloader</category>
    </item>
  </channel>
</rss>
