<?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>DEV Community: David Díaz</title>
    <description>The latest articles on DEV Community by David Díaz (@dd8888).</description>
    <link>https://dev.to/dd8888</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F552620%2F7e44501a-31d2-4e1a-a5e2-6e71bc5bc737.jpg</url>
      <title>DEV Community: David Díaz</title>
      <link>https://dev.to/dd8888</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dd8888"/>
    <language>en</language>
    <item>
      <title>Pinky Routes AI Phone Control Through a User Approval Gateway</title>
      <dc:creator>David Díaz</dc:creator>
      <pubDate>Thu, 12 Nov 2026 20:39:43 +0000</pubDate>
      <link>https://dev.to/dd8888/pinky-routes-ai-phone-control-through-a-user-approval-gateway-34gk</link>
      <guid>https://dev.to/dd8888/pinky-routes-ai-phone-control-through-a-user-approval-gateway-34gk</guid>
      <description>&lt;p&gt;Pinky is available as a public, Apache-2.0-licensed pre-alpha gateway that lets MCP-capable agents operate supported Android phones and iPhones while the owner watches, approves risky actions or takes control. For developers, the immediate consequence is that agents including Claude Code, Claude Desktop, Codex and Cursor can reach mobile interfaces from macOS, Windows or Linux, with agent connections available over stdio or HTTP. &lt;a href="https://github.com/DIYgod/pinky" rel="noopener noreferrer"&gt;The project describes the gateway, supported agents and desktop platforms in its repository&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Gateway-enforced approvals
&lt;/h2&gt;

&lt;p&gt;Payments, trades and transfers require approval by default. Users can also require confirmation for sends, orders, deletions, calls, installations, links that leave an app, settings changes or every step. Pinky says these rules run in its gateway rather than in instructions given to the agent, preventing an agent from approving its own action; the project claims to identify relevant buttons in 10 languages. &lt;a href="https://github.com/DIYgod/pinky" rel="noopener noreferrer"&gt;Pinky documents these approval categories and their enforcement model on its project page&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The gateway also hides banking, wallet and password-manager apps from agents by default, and it prevents agents from typing into password or one-time-code fields. A user can temporarily allow a banking or wallet app for a specific task, while each newly connected agent requires approval and receives only the scope the user grants. &lt;a href="https://github.com/DIYgod/pinky" rel="noopener noreferrer"&gt;Those default restrictions and per-agent scopes are described in the repository&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Device coverage and run records
&lt;/h2&gt;

&lt;p&gt;Pinky documents support for Android 10 through 17 and iOS 17.4 or later. Its desktop application runs on supported versions of macOS, Windows and Linux, while Android emulators and iOS Simulators can stand in for physical devices. &lt;a href="https://github.com/DIYgod/pinky" rel="noopener noreferrer"&gt;The repository lists the operating-system, phone and simulator requirements&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;On Android 13 and later, an agent can work on a hidden secondary display, leaving the phone’s primary screen available to its owner or switched off and locked. Older Android devices and iPhones use the main display. Clicking the desktop mirror pauses the agent for manual control, and touching an Android phone also pauses it. &lt;a href="https://github.com/DIYgod/pinky" rel="noopener noreferrer"&gt;Pinky’s documentation explains its display behavior and takeover controls&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Each run can include plain-language step descriptions, screenshots and a screen recording marked by step. Pinky says these records can be exported as an HTML report and remain on the user’s computer. &lt;a href="https://github.com/DIYgod/pinky" rel="noopener noreferrer"&gt;The project page documents its recording and export features&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Analysis: the boundary still needs testing
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Analysis:&lt;/strong&gt; Moving approval enforcement outside the agent’s instructions is Pinky’s most consequential design choice because it gives the agent no stated route to approve itself. The unresolved issue is recognition: where a rule depends on Pinky spotting a risky on-screen button, its practical protection depends on what the gateway correctly classifies. The repository claims coverage across 10 languages, but it also labels the software pre-alpha and says some built functionality still awaits testing by a person. That makes the gateway a security design to evaluate, not evidence that every mobile workflow will be classified correctly. &lt;a href="https://github.com/DIYgod/pinky" rel="noopener noreferrer"&gt;Pinky states both its button-detection scope and its pre-alpha testing status in the repository&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The project reports end-to-end Claude Code runs on physical Android and iPhone hardware, alongside support for USB or Wi-Fi connections and computer-based unlocking. It directs prospective users to its acceptance documentation for the current feature status and testing instructions. &lt;a href="https://github.com/DIYgod/pinky" rel="noopener noreferrer"&gt;Those implementation-status claims come from Pinky’s own project page&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>mobile</category>
      <category>opensource</category>
      <category>security</category>
    </item>
    <item>
      <title>Teardown packages 3D machine simulators for Claude Code</title>
      <dc:creator>David Díaz</dc:creator>
      <pubDate>Tue, 10 Nov 2026 20:38:09 +0000</pubDate>
      <link>https://dev.to/dd8888/teardown-packages-3d-machine-simulators-for-claude-code-ko7</link>
      <guid>https://dev.to/dd8888/teardown-packages-3d-machine-simulators-for-claude-code-ko7</guid>
      <description>&lt;p&gt;Teardown is an MIT-licensed GitHub project that provides a Claude Code skill for producing an offline, one-page HTML simulator from a plain-language request about a machine. For developers building technical demos or explainers, the relevant constraint is that the project aims to put the interactive model, surrounding numeric panels, a control that opens the active part, and an unattended tour into that same page. &lt;a href="https://github.com/elvarofficial/teardown" rel="noopener noreferrer"&gt;The project README&lt;/a&gt; describes this as a simulator that can be taken apart.&lt;/p&gt;

&lt;h2&gt;
  
  
  A constrained output format
&lt;/h2&gt;

&lt;p&gt;The repository’s suggested installation command is &lt;code&gt;npx skills add elvarofficial/teardown -g -a claude-code&lt;/code&gt;. It then calls for &lt;code&gt;npm install&lt;/code&gt; and &lt;code&gt;npx playwright install chromium&lt;/code&gt; in the installed directory, with Node.js 20 or newer required. The README lists ffmpeg as an extra dependency for video output and Python 3 for sound. &lt;a href="https://github.com/elvarofficial/teardown" rel="noopener noreferrer"&gt;The project README&lt;/a&gt; documents those prerequisites.&lt;/p&gt;

&lt;p&gt;Its example prompts cover a four-stroke motorcycle engine, a mechanical watch and a hydraulic excavator arm. The repository also contains three complete example machines: a V8, a Cessna and a Strandbeest. &lt;a href="https://github.com/elvarofficial/teardown" rel="noopener noreferrer"&gt;The project README&lt;/a&gt; identifies those examples and prompts.&lt;/p&gt;

&lt;p&gt;The project separates a machine definition from its interactive and recorded forms: the &lt;code&gt;-shared&lt;/code&gt; variant is the machine, &lt;code&gt;-live&lt;/code&gt; is the page a user drives, and &lt;code&gt;-film&lt;/code&gt; is the recorded tour. Its &lt;code&gt;build.mjs&lt;/code&gt; script bundles a machine into a single HTML file with three.js and fonts inlined. &lt;a href="https://github.com/elvarofficial/teardown" rel="noopener noreferrer"&gt;The project README&lt;/a&gt; describes that layout and build step.&lt;/p&gt;

&lt;h2&gt;
  
  
  More than a browser demo
&lt;/h2&gt;

&lt;p&gt;Teardown also includes a capture path. Its &lt;code&gt;capture.mjs&lt;/code&gt; tool renders a film frame by frame to a 60 fps MP4 or emits review sheets of still images; the repository’s sound tooling generates procedural audio on the film timeline. &lt;a href="https://github.com/elvarofficial/teardown" rel="noopener noreferrer"&gt;The project README&lt;/a&gt; lists those capture and sound components. The project credits &lt;code&gt;whaleyxbt/claude-motion&lt;/code&gt; for the runtime, frame capture, sound engine and review rules. &lt;a href="https://github.com/elvarofficial/teardown" rel="noopener noreferrer"&gt;The project README&lt;/a&gt; names that upstream dependency.&lt;/p&gt;

&lt;h2&gt;
  
  
  The unresolved question is fidelity
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Analysis:&lt;/strong&gt; Teardown is most clearly a packaging and presentation workflow, rather than evidence of a validated engineering-simulation system. The README specifies how a generated machine should look, behave in a page, be reviewed and be recorded, but it does not describe a procedure for calibrating a model against physical measurements or validating its numerical behavior. &lt;a href="https://github.com/elvarofficial/teardown" rel="noopener noreferrer"&gt;The project README&lt;/a&gt; documents the workflow and bundled examples.&lt;/p&gt;

&lt;p&gt;That leaves a specific trade-off for teams using it: a single-file interactive teardown can be useful for explanation, design discussion or demos, but the repository alone does not establish that its displayed values or motions are suitable for engineering decisions. Developers should treat physical fidelity as a requirement to verify separately, not a property supplied by the presentation pipeline.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>claude</category>
      <category>github</category>
      <category>opensource</category>
    </item>
    <item>
      <title>AnyModelBot Splits Local Agent State From Remote Inference</title>
      <dc:creator>David Díaz</dc:creator>
      <pubDate>Sun, 08 Nov 2026 20:39:56 +0000</pubDate>
      <link>https://dev.to/dd8888/anymodelbot-splits-local-agent-state-from-remote-inference-3e41</link>
      <guid>https://dev.to/dd8888/anymodelbot-splits-local-agent-state-from-remote-inference-3e41</guid>
      <description>&lt;p&gt;AnyModelBot’s maintainers have published an MIT-licensed personal-agent application for Windows, macOS and Linux, with desktop, command-line, Docker and local web-console modes. It can route model requests through Modelflare or supported vendors’ official APIs. &lt;a href="https://github.com/modelflare-ai/AnyModelBot" rel="noopener noreferrer"&gt;The project repository documents the available deployments and model routes.&lt;/a&gt; &lt;strong&gt;Analysis:&lt;/strong&gt; For developers, the immediate consequence is a deployable agent control plane on their own machine—not a guarantee that model inputs remain there.&lt;/p&gt;

&lt;h2&gt;
  
  
  Separate bots, workspaces and permission levels
&lt;/h2&gt;

&lt;p&gt;Each bot has its own persona, default model, workspace and memory. The documented tools can read and write files, execute commands and operate the desktop, subject to the selected permission level and platform capabilities. &lt;a href="https://github.com/modelflare-ai/AnyModelBot" rel="noopener noreferrer"&gt;The repository describes these bot boundaries and tools.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The permission model has three levels. Read-only mode restricts changes. The default workspace mode limits the bot to its own folder and asks before it crosses that boundary. Full-permission mode runs without the sandbox, although recursive deletion still requires approval. &lt;a href="https://github.com/modelflare-ai/AnyModelBot" rel="noopener noreferrer"&gt;Those distinctions are specified in the project’s permission documentation.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;AnyModelBot also supports background jobs and scheduled rules. Long-running work can continue while the user has other conversations, then return its result to the original thread. The listed messaging integrations are WeChat, Feishu, Telegram, Slack and Discord; the repository says those external channels currently handle one-to-one conversations rather than channel group chats. &lt;a href="https://github.com/modelflare-ai/AnyModelBot" rel="noopener noreferrer"&gt;The supported task and messaging behavior is described in the README.&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Model selection also selects a data route
&lt;/h2&gt;

&lt;p&gt;The repository says one Modelflare account provides access to more than 70 text, image and video models from 13 providers, with token-based billing. It presents GPT, Claude, Gemini, Grok, DeepSeek, Kimi and GLM among the available families and says AnyModelBot itself has no subscription fee. &lt;a href="https://github.com/modelflare-ai/AnyModelBot" rel="noopener noreferrer"&gt;These are the project’s stated Modelflare and pricing terms.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Users can instead supply official API keys for OpenAI, Anthropic, Google Gemini, xAI, DeepSeek, Kimi, GLM, Qwen, MiniMax and Mistral. In that configuration, requests go directly to the selected vendor rather than through Modelflare, although the repository says image and video generation currently requires Modelflare. &lt;a href="https://github.com/modelflare-ai/AnyModelBot" rel="noopener noreferrer"&gt;The direct-provider route and its limitation are documented here.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The local side includes conversations, memories, workspace files, API keys and login tokens. The remote side can include prompts, file contents and tool results needed for a response, plus screenshots when computer-use tools inspect the display. Messages sent through connected chat services also pass through those platforms. &lt;a href="https://github.com/modelflare-ai/AnyModelBot" rel="noopener noreferrer"&gt;The repository’s privacy section explicitly divides data along these lines.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Modelflare retains request logs when it proxies a request, with retention details delegated to its trust documentation. Using an official provider key removes Modelflare from that request path, but the selected model vendor still receives the request. &lt;a href="https://github.com/modelflare-ai/AnyModelBot" rel="noopener noreferrer"&gt;The project states both routing conditions in its privacy disclosure.&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Analysis: Local control does not settle data exposure
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Analysis:&lt;/strong&gt; AnyModelBot’s defensible distinction is between the location of the agent’s state and the location of model inference. Workspaces, memory, credentials and the agent runtime remain under the user’s control, while the information required to run a selected model follows either the Modelflare route or a direct vendor route. That is a narrower and more useful definition of “local-first” than treating the whole system as local. &lt;a href="https://github.com/modelflare-ai/AnyModelBot" rel="noopener noreferrer"&gt;The documented architecture supports this separation.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The unresolved trade-off is authority versus disclosure. The default workspace gate can prevent an agent from crossing its folder boundary without approval, while full-permission mode deliberately removes that sandbox. Neither setting changes the need to transmit task context when a remote model must interpret a file, tool result or screen. Approval therefore constrains some local actions; it does not by itself make the task data local. &lt;a href="https://github.com/modelflare-ai/AnyModelBot" rel="noopener noreferrer"&gt;The permission and privacy documentation exposes both sides of that trade-off.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Developers evaluating AnyModelBot should treat provider routing, bot permissions and connected messaging services as one security boundary. A direct vendor key removes the Modelflare intermediary, not the model provider. Restricting a bot’s workspace narrows its local reach, but tasks using connected channels or computer control introduce additional data paths. &lt;a href="https://github.com/modelflare-ai/AnyModelBot" rel="noopener noreferrer"&gt;Those paths are enumerated by the project rather than hidden behind the local-first label.&lt;/a&gt;&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>opensource</category>
      <category>software</category>
    </item>
    <item>
      <title>Unslop Brings Staged UI Review to Claude Code and Codex</title>
      <dc:creator>David Díaz</dc:creator>
      <pubDate>Mon, 02 Nov 2026 20:39:26 +0000</pubDate>
      <link>https://dev.to/dd8888/unslop-brings-staged-ui-review-to-claude-code-and-codex-12cb</link>
      <guid>https://dev.to/dd8888/unslop-brings-staged-ui-review-to-claude-code-and-codex-12cb</guid>
      <description>&lt;p&gt;Unslop is a GitHub-hosted skill for Claude Code and Codex that targets what its author describes as “vibecoded, AI-looking” interfaces. For developers, the concrete change is an ordered review process: the skill audits a screen and proposes a design direction before it begins editing. &lt;a href="https://github.com/heydamir/unslop" rel="noopener noreferrer"&gt;The project documents the workflow and installation steps on GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  From audit to ordered revisions
&lt;/h2&gt;

&lt;p&gt;The audit identifies patterns including purple gradients, glows, emoji labels, forceful copy and uneven spacing. Unslop then derives a direction from the product, covering its character, visual world, limited uses of color and a signature detail. Its edits proceed through spacing, color, icons, copy, type, layout, details, visuals and motion, in that order. &lt;a href="https://github.com/heydamir/unslop" rel="noopener noreferrer"&gt;Those stages are specified in the project README&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The README says the skill can work on dashboards, applications and landing pages built with Next.js, React, Vue, Svelte, Tailwind, or plain HTML and CSS. It can also inspect a live-site URL. Users invoke it with &lt;code&gt;/unslop&lt;/code&gt; in Claude Code or &lt;code&gt;$unslop&lt;/code&gt; in Codex, although the repository says an agent can also select the skill from a request written in ordinary language. &lt;a href="https://github.com/heydamir/unslop" rel="noopener noreferrer"&gt;The supported inputs, stacks and commands are documented here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If the initial screen is already satisfactory, the intended behavior is to suggest limited refinements instead of carrying out a full redesign. The proposed direction appears before edits, giving the user an opportunity to steer it early, but the documentation does not describe a mandatory approval gate. &lt;a href="https://github.com/heydamir/unslop" rel="noopener noreferrer"&gt;The README states both behaviors&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Optional media features add dependencies
&lt;/h2&gt;

&lt;p&gt;For hero visuals, Unslop can use image services such as fal, Replicate, OpenAI Images or Higgsfield. If no service is connected, it can offer to connect one as an MCP server; the project says it displays the prompt and asks before each paid generation. &lt;a href="https://github.com/heydamir/unslop" rel="noopener noreferrer"&gt;The image-generation workflow is described in the repository&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The skill can also create a square story video, lasting under 10 seconds, that shows the interface changing. Live-site snapshots and story videos require Playwright and its Chromium browser, while video output additionally requires &lt;code&gt;ffmpeg&lt;/code&gt; on the system path. &lt;a href="https://github.com/heydamir/unslop" rel="noopener noreferrer"&gt;The repository lists these dependencies&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Unslop uses the CC BY 4.0 license. The README permits modification, sharing and commercial use provided users credit creator Damir Sokolovsky and link to the repository. &lt;a href="https://github.com/heydamir/unslop" rel="noopener noreferrer"&gt;The licensing conditions are published with the project&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Analysis: a review rubric, not evidence of better design
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Analysis:&lt;/strong&gt; Unslop’s more consequential idea is not automated CSS editing but the conversion of a subjective critique into an inspectable sequence. Surfacing the audit and proposed direction before the ordered passes gives developers a clearer point at which to challenge the agent’s assumptions. That interpretation follows from &lt;a href="https://github.com/heydamir/unslop" rel="noopener noreferrer"&gt;the workflow documented by the project&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The unresolved trade-off is that a repeatable rubric can also standardize one author’s aesthetic preferences. The project page defines recognizable visual clichés and provides examples, but it does not report usability testing, product metrics or comparative evaluation establishing that removing those patterns improves an interface. Developers still need an independent review of whether the proposed direction suits the product and its users. &lt;a href="https://github.com/heydamir/unslop" rel="noopener noreferrer"&gt;The repository shows the project’s documented scope and evidence&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>github</category>
      <category>softwaredevelopment</category>
      <category>tools</category>
    </item>
    <item>
      <title>MOSS-Image Publishes 5B DiT Weights and Layout JSON Workflow</title>
      <dc:creator>David Díaz</dc:creator>
      <pubDate>Fri, 23 Oct 2026 19:43:29 +0000</pubDate>
      <link>https://dev.to/dd8888/moss-image-publishes-5b-dit-weights-and-layout-json-workflow-5e6o</link>
      <guid>https://dev.to/dd8888/moss-image-publishes-5b-dit-weights-and-layout-json-workflow-5e6o</guid>
      <description>&lt;p&gt;OpenMOSS has published code and weights for MOSS-Image-Base and MOSS-Image-SFT, giving developers a 5B-parameter DiT text-to-image model with a documented JSON layout-prompt format. The practical consequence is that text placement and composition can be expressed as structured input rather than left entirely to a natural-language prompt. &lt;a href="https://github.com/OpenMOSS/MOSS-Image" rel="noopener noreferrer"&gt;The project repository&lt;/a&gt; describes the model as targeting text rendering, layout generation and efficient fine-tuning.&lt;/p&gt;

&lt;h2&gt;
  
  
  Two published variants and conventional entry points
&lt;/h2&gt;

&lt;p&gt;The repository lists &lt;strong&gt;MOSS-Image-Base&lt;/strong&gt; as its base text-to-image model and &lt;strong&gt;MOSS-Image-SFT&lt;/strong&gt; as a version fine-tuned from the base on curated data. It provides a Python example built around &lt;code&gt;diffusers.DiffusionPipeline&lt;/code&gt;, and documents a Gradio application for local use. &lt;a href="https://github.com/OpenMOSS/MOSS-Image" rel="noopener noreferrer"&gt;The same repository&lt;/a&gt; also says MOSS-Image is supported natively in ComfyUI, with built-in loaders for ComfyUI-format weights.&lt;/p&gt;

&lt;p&gt;For inference, the documented defaults are Flow-matching Euler sampling, 50 steps, CFG 3, shift 5, and negative-branch skipping at layer 22. These are project recommendations, not independent performance measurements. &lt;a href="https://github.com/OpenMOSS/MOSS-Image" rel="noopener noreferrer"&gt;The repository's sampling table&lt;/a&gt; also documents GPU-resident, component offload and sequential memory modes, with sequential mode trading inference speed for lower memory use.&lt;/p&gt;

&lt;h2&gt;
  
  
  Layout is part of the prompt interface
&lt;/h2&gt;

&lt;p&gt;MOSS-Image's most concrete control mechanism is a JSON input format containing a scene summary and an &lt;code&gt;items&lt;/code&gt; array. Each item can include a label, description, optional text to render and a bounding box; the documented example uses centralized pixel coordinates and a &lt;code&gt;yxyx&lt;/code&gt; box format. &lt;a href="https://github.com/OpenMOSS/MOSS-Image" rel="noopener noreferrer"&gt;The layout guide in the repository&lt;/a&gt; instructs users to match those coordinates to the requested output dimensions and to pass the JSON as the prompt string in the Python API.&lt;/p&gt;

&lt;p&gt;That makes the interface suitable for tooling that already has deterministic scene metadata—for example, an editor that knows where a headline or illustration should sit. It does not establish that a generated image will exactly obey every coordinate or render every string correctly; the repository presents examples and capability claims, but no evaluation methodology or benchmark results in the supplied documentation. &lt;a href="https://github.com/OpenMOSS/MOSS-Image" rel="noopener noreferrer"&gt;The project page&lt;/a&gt; characterizes text rendering and layout control as key highlights.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Analysis:&lt;/strong&gt; The useful distinction here is between a model that can be asked for a layout and one whose layout can be represented, stored and edited as data. MOSS-Image documents the latter interface, which could make generation pipelines easier to integrate with design tools. The unresolved trade-off is reliability: developers will still need their own validation loop for text accuracy, box adherence and composition quality because the repository does not supply quantitative evidence for those properties. &lt;a href="https://github.com/OpenMOSS/MOSS-Image" rel="noopener noreferrer"&gt;The documented JSON workflow&lt;/a&gt; supports structured authoring, while the page's stated capabilities remain project claims.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fine-tuning and licensing boundaries
&lt;/h2&gt;

&lt;p&gt;The repository says community tooling includes full fine-tuning and LyCORIS training, including LoRA, for both model variants. It specifically points to KohakuMossTrainer, which the project says supports several precision modes, multi-GPU approaches and adapter training with as little as 6GB of VRAM. &lt;a href="https://github.com/OpenMOSS/MOSS-Image" rel="noopener noreferrer"&gt;Those details appear in the repository's release notes&lt;/a&gt;, so teams should verify the linked trainer and its hardware assumptions before treating that memory figure as a deployment requirement.&lt;/p&gt;

&lt;p&gt;The standalone pipeline code is released under the Apache License 2.0. &lt;a href="https://github.com/OpenMOSS/MOSS-Image" rel="noopener noreferrer"&gt;The repository license section&lt;/a&gt; does not, in the supplied page text, separately spell out the terms governing every published model weight or every third-party community artifact. Developers planning redistribution or commercial deployment should therefore check the relevant weight and dependency terms rather than infer them from the pipeline-code license alone.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>deeplearning</category>
      <category>machinelearning</category>
      <category>opensource</category>
    </item>
    <item>
      <title>DigUp Searches Local Media, Documents and Code On-Device</title>
      <dc:creator>David Díaz</dc:creator>
      <pubDate>Wed, 21 Oct 2026 19:40:00 +0000</pubDate>
      <link>https://dev.to/dd8888/digup-searches-local-media-documents-and-code-on-device-4n68</link>
      <guid>https://dev.to/dd8888/digup-searches-local-media-documents-and-code-on-device-4n68</guid>
      <description>&lt;p&gt;DigUp is available as a free, open-source desktop application for searching selected local documents, images, recordings, videos and source code. Its macOS build is accompanied by beta releases for Windows and Linux. For developers, the immediate consequence is one search interface that can locate a function, screenshot, PDF page or point in a recording without uploading those files to a hosted service, according to the &lt;a href="https://github.com/ARahim3/DigUp" rel="noopener noreferrer"&gt;project repository&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  One query, two retrieval paths
&lt;/h2&gt;

&lt;p&gt;DigUp runs Google DeepMind’s EmbeddingGemma 2 through llama.cpp. Its readers convert files into text, pictures or sound representations, then store vectors for pages, passages, images, video frames and audio segments in a SQLite index. Those vectors occupy the same 768-dimensional space, allowing one text query to rank different media types together, according to the &lt;a href="https://github.com/ARahim3/DigUp" rel="noopener noreferrer"&gt;implementation description&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Semantic retrieval is only one part of the search path. DigUp also maintains a keyword index and boosts exact-word matches, which is intended to preserve literal searches for names, invoice numbers and error codes that an embedding may not represent precisely. Queries therefore combine vector proximity with lexical matching rather than treating embeddings as a substitute for exact search, as the &lt;a href="https://github.com/ARahim3/DigUp" rel="noopener noreferrer"&gt;README explains&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Indexing granularity depends on the format. DigUp processes PDFs page by page, splits audio into overlapping 30-second windows, and samples video frames while also indexing the soundtrack. Search results can point to a PDF page or media timestamp, although jumping directly to that location depends on the viewer available on each operating system, according to the &lt;a href="https://github.com/ARahim3/DigUp" rel="noopener noreferrer"&gt;supported-format and playback notes&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code stays in a separate index
&lt;/h2&gt;

&lt;p&gt;Code search is disabled until the user enables it for selected folders. It reads source files, notebooks without their outputs and repository documentation, then opens matches at the relevant line in a configured editor. The code index remains separate from general file search, and code queries must begin with &lt;code&gt;code:&lt;/code&gt;, according to the &lt;a href="https://github.com/ARahim3/DigUp" rel="noopener noreferrer"&gt;code-search documentation&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The project says this path skips files ignored by Git, along with vendored or generated code, data files and content that resembles a key or password. It lists support for editors including VS Code, Cursor, Zed, Sublime Text and JetBrains IDEs, plus several platform-specific options, in the &lt;a href="https://github.com/ARahim3/DigUp" rel="noopener noreferrer"&gt;same documentation&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Local processing still has a cost
&lt;/h2&gt;

&lt;p&gt;The maintainers state that indexed content does not leave the computer and that DigUp has no account requirement or telemetry. The application connects to download its model once and to check for updates once per day; the update check can be disabled and is described as sending no information about indexed files. These are claims made by the &lt;a href="https://github.com/ARahim3/DigUp" rel="noopener noreferrer"&gt;project itself&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;That design shifts computation and storage onto the user’s machine. The initial model download is 865 MB, and the first indexing pass can take from minutes to hours depending on the selected files and hardware. DigUp estimates that duration during setup; on Windows and Linux it uses a GPU when a setup check finds that path faster than the processor while producing the same results, according to the &lt;a href="https://github.com/ARahim3/DigUp" rel="noopener noreferrer"&gt;installation and performance notes&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Platform constraints are uneven. The Mac version requires Apple Silicon and macOS 14 or later. Windows requires 64-bit Windows 10 or 11, and its beta installer is not yet signed. The documented Linux packages target 64-bit Intel and AMD systems, with &lt;code&gt;.deb&lt;/code&gt; and AppImage distributions available from the &lt;a href="https://github.com/ARahim3/DigUp" rel="noopener noreferrer"&gt;project’s releases and installation instructions&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Analysis: broader retrieval means broader access
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Analysis:&lt;/strong&gt; DigUp’s consequential design choice is the combination of cross-media vector ranking with exact-string retrieval, not semantic search alone. That can make fragmented project material searchable through one interface, while the separate code index limits accidental mixing between repositories and personal files. The architecture and separation are documented in the &lt;a href="https://github.com/ARahim3/DigUp" rel="noopener noreferrer"&gt;repository&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The unresolved trade-off is scope. Better retrieval requires granting the application access to more folders and paying the corresponding indexing cost. Folder selection, opt-in code search and exclusions for several sensitive file categories narrow that boundary, but they do not remove the need to decide which local material belongs in a consolidated search index. Those controls and exclusions are described by the &lt;a href="https://github.com/ARahim3/DigUp" rel="noopener noreferrer"&gt;project&lt;/a&gt;; judging whether they are sufficient remains a user-side trust decision.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>search</category>
      <category>software</category>
    </item>
    <item>
      <title>cleanyourtv Debloats Android TV and Replaces Its Home Screen</title>
      <dc:creator>David Díaz</dc:creator>
      <pubDate>Mon, 19 Oct 2026 19:45:30 +0000</pubDate>
      <link>https://dev.to/dd8888/cleanyourtv-debloats-android-tv-and-replaces-its-home-screen-i3f</link>
      <guid>https://dev.to/dd8888/cleanyourtv-debloats-android-tv-and-replaces-its-home-screen-i3f</guid>
      <description>&lt;p&gt;&lt;a href="https://github.com/Gathin23/cleanyourtv" rel="noopener noreferrer"&gt;cleanyourtv&lt;/a&gt; packages Wi-Fi Android debugging, package-disable scripts and a replacement Home launcher into one workflow for Android TV and Google TV. For developers, the consequence is a reversible way to modify a television without root or a cable: selected packages are disabled rather than uninstalled, and the project provides restore tooling.&lt;/p&gt;

&lt;h2&gt;
  
  
  The workflow changes package state
&lt;/h2&gt;

&lt;p&gt;Setup requires a computer on the same Wi-Fi network as the television. Users must enable USB debugging, authorize the computer through the television’s debugging prompt and, when a separate Network or ADB debugging option is present, enable that too. The documented quick start uses a coding assistant with shell access, while a manual route is available through Python 3 tools and shell or PowerShell scripts. &lt;a href="https://github.com/Gathin23/cleanyourtv" rel="noopener noreferrer"&gt;Project instructions&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Before making changes, the workflow backs up the installed-package list and settings. It then applies model-specific selections with Android’s &lt;code&gt;pm disable-user&lt;/code&gt;; the supplied &lt;code&gt;disable.sh&lt;/code&gt; and &lt;code&gt;restore.sh&lt;/code&gt; scripts apply or reverse the same debloat list. The project’s checklist also asks which apps the user needs and whether voice assistance, Chromecast and system updates should remain enabled. &lt;a href="https://github.com/Gathin23/cleanyourtv" rel="noopener noreferrer"&gt;Package-management workflow&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  A small launcher supplies the new Home screen
&lt;/h2&gt;

&lt;p&gt;The replacement app, &lt;code&gt;com.gathin.tvhome&lt;/code&gt;, is described as roughly 280 KB installed. It is written in Java with AndroidX RecyclerView and designed for televisions with 1 GB of RAM; the repository says it uses no network connection, background services, video or blur effects. Building it requires JDK 17 and Android SDK platform 34. &lt;a href="https://github.com/Gathin23/cleanyourtv" rel="noopener noreferrer"&gt;Launcher documentation&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The project describes the resulting interface as Apple TV-style. It includes a dock, a top shelf for the focused app, an application grid, input controls, network status, settings access, themes and a clock screensaver. &lt;a href="https://github.com/Gathin23/cleanyourtv" rel="noopener noreferrer"&gt;Launcher feature list&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The installation scripts query which package owns Home and disable only launchers they recognize as &lt;code&gt;tvlauncher&lt;/code&gt; or &lt;code&gt;launcherx&lt;/code&gt;, unless the operator supplies an override or chooses to leave the stock launcher alone. The build-and-install script also rolls back if the new launcher does not become Home. &lt;a href="https://github.com/Gathin23/cleanyourtv" rel="noopener noreferrer"&gt;Installation behavior&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Compatibility stops at OS boundaries
&lt;/h2&gt;

&lt;p&gt;The repository reports 54 tested TV lists across 23 brands. Its detailed list is not limited to television sets: it also covers streaming boxes, sticks and projectors, including Chromecast with Google TV, NVIDIA Shield, Xiaomi devices, Fire TV hardware and XGIMI projectors. &lt;a href="https://github.com/Gathin23/cleanyourtv" rel="noopener noreferrer"&gt;Tested-device lists&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The project targets Android TV and Google TV. Samsung televisions running Tizen and LG televisions running webOS use different systems. Fire TV can use the debloat portion, but Fire OS does not assign Home to a third-party launcher; the repository also notes that some China-market TCL sets refuse launcher installation. &lt;a href="https://github.com/Gathin23/cleanyourtv" rel="noopener noreferrer"&gt;Platform limitations&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Analysis:&lt;/strong&gt; The project’s central engineering choice is to treat disabled-package state as the rollback boundary instead of deleting software. That makes restoration possible, but it does not remove the need for device-specific judgment. The checklist concerning voice assistance, Chromecast and updates shows the unresolved trade-off: packages considered bloat may also participate in integrated services a household wants to retain. A restore script can reverse state changes, but it cannot make that selection for the operator. &lt;a href="https://github.com/Gathin23/cleanyourtv" rel="noopener noreferrer"&gt;The documented workflow and restore model&lt;/a&gt;&lt;/p&gt;

</description>
      <category>android</category>
      <category>github</category>
      <category>opensource</category>
      <category>tools</category>
    </item>
    <item>
      <title>Solid Glass Adds an AI UI Theme to shadcn/ui Projects</title>
      <dc:creator>David Díaz</dc:creator>
      <pubDate>Sat, 17 Oct 2026 19:44:14 +0000</pubDate>
      <link>https://dev.to/dd8888/solid-glass-adds-an-ai-ui-theme-to-shadcnui-projects-hj3</link>
      <guid>https://dev.to/dd8888/solid-glass-adds-an-ai-ui-theme-to-shadcnui-projects-hj3</guid>
      <description>&lt;p&gt;Solid Glass is a public GitHub project that packages a glass-inspired design system for AI applications as a stylesheet intended to work with shadcn/ui. For developers building chat and agent interfaces, its practical proposition is narrow but useful: the stylesheet targets the &lt;code&gt;data-slot&lt;/code&gt; attributes and classes that existing shadcn/ui components already carry, so adoption is presented as a theme integration rather than a component rewrite. &lt;a href="https://github.com/deeplethe/solid-glass" rel="noopener noreferrer"&gt;Source: Solid Glass repository&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  A theme layer, not an AI framework
&lt;/h2&gt;

&lt;p&gt;The project describes its visual treatment as sitting between flat design and “liquid glass”: surfaces retain outlines, borders, highlights and shadows, while avoiding the highly transparent treatment that can interfere with text legibility. Its stated design goals are tactility, precision, physicality and materiality; for interfaces with streaming responses, agent tasks and pending human decisions, it argues that neutral surfaces and reserved use of colour and motion help keep the UI calm and readable. &lt;a href="https://github.com/deeplethe/solid-glass" rel="noopener noreferrer"&gt;Source: Solid Glass repository&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The core distribution is one CSS file. The repository says it defines colours, three glass thicknesses, a state and motion, while also defining shadcn/ui’s variable names. It supports light and dark modes, although the project describes dark mode as the intended material treatment. &lt;a href="https://github.com/deeplethe/solid-glass" rel="noopener noreferrer"&gt;Source: Solid Glass repository&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Installation begins from a shadcn/ui project using React 19, Tailwind CSS 4 and Base UI components. Developers add the &lt;code&gt;deeplethe/solid-glass/solid-glass&lt;/code&gt; stylesheet through the shadcn CLI, import it after Tailwind and shadcn styles, and remove the &lt;code&gt;:root&lt;/code&gt; and &lt;code&gt;.dark&lt;/code&gt; colour variables created by shadcn initialization because Solid Glass defines variables with the same names. &lt;a href="https://github.com/deeplethe/solid-glass" rel="noopener noreferrer"&gt;Source: Solid Glass repository&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Components for agent-facing screens
&lt;/h2&gt;

&lt;p&gt;Beyond the theme, the project supplies installable components including &lt;code&gt;status-glyph&lt;/code&gt;, &lt;code&gt;panel&lt;/code&gt;, &lt;code&gt;tag&lt;/code&gt;, &lt;code&gt;dot-loader&lt;/code&gt;, &lt;code&gt;turn-status&lt;/code&gt;, &lt;code&gt;composer&lt;/code&gt;, &lt;code&gt;tool-steps&lt;/code&gt;, &lt;code&gt;diff-view&lt;/code&gt;, &lt;code&gt;ask-card&lt;/code&gt;, &lt;code&gt;context-ring&lt;/code&gt;, &lt;code&gt;task-notice&lt;/code&gt; and &lt;code&gt;reasoning&lt;/code&gt;. The README positions these around an agent workflow: showing activity, accepting a prompt, rendering tool steps and diffs, asking for user input, and displaying context usage. &lt;a href="https://github.com/deeplethe/solid-glass" rel="noopener noreferrer"&gt;Source: Solid Glass repository&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The repository also includes complete screen-level “Blocks,” including an &lt;code&gt;agent-workspace&lt;/code&gt;, plus a Create page that exposes controls for thickness, tint, chart colour, type, radius, rim and blur and produces corresponding CSS variable changes. &lt;a href="https://github.com/deeplethe/solid-glass" rel="noopener noreferrer"&gt;Source: Solid Glass repository&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The compatibility trade-off
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Analysis:&lt;/strong&gt; Solid Glass’s most consequential choice is to treat shadcn/ui as the compatibility surface rather than create another self-contained component ecosystem. That should reduce initial adoption cost for teams already on the shadcn stack, because the theme is designed around existing slots and classes. It also leaves an unresolved maintenance question: the approach depends on those structural conventions remaining stable enough for a stylesheet to keep selecting the intended parts. The repository notes that some displayed shadcn/ui components differ slightly from stock versions, while saying the stylesheet does not depend on those differences. &lt;a href="https://github.com/deeplethe/solid-glass" rel="noopener noreferrer"&gt;Source: Solid Glass repository&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is therefore best read as a focused UI layer, not evidence of a broader agent runtime or application framework. Its value will depend less on the glass treatment itself than on whether its component conventions fit a team’s existing shadcn/ui codebase and the information density of its AI workflows. The repository is licensed under MIT and includes contribution, code-of-conduct and security-policy materials. &lt;a href="https://github.com/deeplethe/solid-glass" rel="noopener noreferrer"&gt;Source: Solid Glass repository&lt;/a&gt;&lt;/p&gt;

</description>
      <category>css</category>
      <category>frontend</category>
      <category>opensource</category>
      <category>ui</category>
    </item>
    <item>
      <title>ARTEX Preserves Its Final Version as a Pure-Source Backup</title>
      <dc:creator>David Díaz</dc:creator>
      <pubDate>Thu, 15 Oct 2026 19:42:56 +0000</pubDate>
      <link>https://dev.to/dd8888/artex-preserves-its-final-version-as-a-pure-source-backup-1nii</link>
      <guid>https://dev.to/dd8888/artex-preserves-its-final-version-as-a-pure-source-backup-1nii</guid>
      <description>&lt;p&gt;ARTEX’s maintainers are preserving the autonomous penetration-testing system’s final version as a pure-source backup. The former &lt;code&gt;autumn27/artex&lt;/code&gt; Docker image is unavailable, so the repository now directs users to the maintained &lt;code&gt;mianhuatang11/artex&lt;/code&gt; image or a local source build. Developers evaluating or operating ARTEX should note that these deployment paths have different update behavior, as documented in the &lt;a href="https://github.com/mhtsec/ARTEX" rel="noopener noreferrer"&gt;project repository&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The project describes ARTEX as the champion entry in Baidu’s “agent+” attack-and-defense competition. That designation is the maintainers’ description and should not be read as independent verification of either the contest result or the system’s effectiveness against real targets. &lt;a href="https://github.com/mhtsec/ARTEX" rel="noopener noreferrer"&gt;The repository page&lt;/a&gt; is the source of the claim.&lt;/p&gt;

&lt;h2&gt;
  
  
  A planner, workers and two linked graphs
&lt;/h2&gt;

&lt;p&gt;ARTEX combines a Go monolithic backend, a statically exported Next.js frontend embedded in the Go binary, and PostgreSQL storage. Exploration requires an LLM configuration through Anthropic or OpenAI credentials or the application’s interface. Its documented agent roles include goal decomposition, a planner, multiple workers and a human-in-the-loop main agent. &lt;a href="https://github.com/mhtsec/ARTEX" rel="noopener noreferrer"&gt;The architecture documentation&lt;/a&gt; describes these components.&lt;/p&gt;

&lt;p&gt;The system separates its data into two linked structures. A shared asset graph stores domains, subdomains, IP addresses, services, applications and endpoints. A task-specific exploration graph stores goals, intents, facts, findings and hints, while anchors associate those records with individual assets. This separation supports both an investigation’s lineage and asset-level coverage views, according to the &lt;a href="https://github.com/mhtsec/ARTEX" rel="noopener noreferrer"&gt;dual-graph design&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The planner reads the exploration state and dispatches uncovered directions as intents. Workers claim one intent at a time, run tools and write resulting assets, facts or findings back to the graphs; those changes can wake the planner for another cycle. Workers can also search traces from other work items in the same task, excluding their own current trace. &lt;a href="https://github.com/mhtsec/ARTEX" rel="noopener noreferrer"&gt;The engine documentation&lt;/a&gt; specifies this event-driven loop and cross-worker search.&lt;/p&gt;

&lt;h2&gt;
  
  
  Controls around execution and retesting
&lt;/h2&gt;

&lt;p&gt;ARTEX documents a recording MITM proxy for tool traffic and &lt;code&gt;guard&lt;/code&gt; and &lt;code&gt;intercept&lt;/code&gt; components that provide approval gates. Its interface exposes activity streams, approval records, traffic recordings, asset coverage and human-in-the-loop conversations. &lt;a href="https://github.com/mhtsec/ARTEX" rel="noopener noreferrer"&gt;The repository’s subsystem and interface documentation&lt;/a&gt; lists those controls and views.&lt;/p&gt;

&lt;p&gt;Vulnerability retesting runs in a separate agent session rather than restarting the original scan. A retest can conclude that an issue remains reproducible, has been fixed or cannot be confirmed. A successfully completed retest marked as fixed can update the vulnerability’s status automatically, while the original evidence and report remain available. &lt;a href="https://github.com/mhtsec/ARTEX" rel="noopener noreferrer"&gt;The retesting documentation&lt;/a&gt; defines that workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  Deployment has two update layers
&lt;/h2&gt;

&lt;p&gt;The installation script supports either an all-Docker deployment or a locally compiled application, while Docker Compose and a manual source build are also documented. The backup repository does not host precompiled binaries; it instead refers users to releases from the original repository when available. &lt;a href="https://github.com/mhtsec/ARTEX" rel="noopener noreferrer"&gt;The installation instructions&lt;/a&gt; describe these options.&lt;/p&gt;

&lt;p&gt;ARTEX’s in-application updater replaces the program but not the Docker image. The documentation warns that tools bundled in the image, including Playwright and nmap, are not updated through that path, and recreating the container restores the application version included in the image. Updating the full environment instead requires pulling and recreating the ARTEX container. &lt;a href="https://github.com/mhtsec/ARTEX" rel="noopener noreferrer"&gt;The update documentation&lt;/a&gt; distinguishes these procedures.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Analysis —&lt;/strong&gt; ARTEX effectively treats the application binary and its containerized security toolchain as separate release units. The unresolved operational issue is release coordination: an application-only update leaves bundled tools unchanged, while container recreation can replace the application with the image’s bundled version. Teams adopting ARTEX should therefore decide which combination constitutes a tested deployment and track both layers rather than treating the two update paths as interchangeable. This interpretation follows from the project’s documented &lt;a href="https://github.com/mhtsec/ARTEX" rel="noopener noreferrer"&gt;Docker update behavior&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>cybersecurity</category>
      <category>docker</category>
      <category>opensource</category>
      <category>security</category>
    </item>
    <item>
      <title>Aurelio Pairs Local Finance Records With an Optional AI Adviser</title>
      <dc:creator>David Díaz</dc:creator>
      <pubDate>Tue, 13 Oct 2026 19:42:29 +0000</pubDate>
      <link>https://dev.to/dd8888/aurelio-pairs-local-finance-records-with-an-optional-ai-adviser-4h0</link>
      <guid>https://dev.to/dd8888/aurelio-pairs-local-finance-records-with-an-optional-ai-adviser-4h0</guid>
      <description>&lt;p&gt;Aurelio is a public, MIT-licensed personal-finance application that runs on the user’s computer and keeps its records there. Its AI adviser is optional and connects through OpenRouter with the user’s API key. Developers can therefore clone and run the financial tracker locally while deciding separately whether to configure the external AI integration. &lt;a href="https://github.com/LosaLosSantos/aurelio-finance" rel="noopener noreferrer"&gt;The repository documents the license, local operation and optional adviser.&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  A ledger for assets, liabilities and goals
&lt;/h2&gt;

&lt;p&gt;Aurelio records banks, brokers, cash and dated holdings. Its portfolio views calculate position costs, gains and dividends, while its fund look-through breaks exposure down by country, sector, company and currency. The app also covers recurring investments, homes, debts, income, expenses, savings rates and the returns required for financial goals. &lt;a href="https://github.com/LosaLosSantos/aurelio-finance" rel="noopener noreferrer"&gt;These functions are listed in the project README.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Running the demo requires Git, Node.js 22 or later and &lt;code&gt;uv&lt;/code&gt;. The supplied macOS, Linux and Windows scripts start the app with an invented household and open it at &lt;code&gt;http://localhost:8000&lt;/code&gt;. &lt;a href="https://github.com/LosaLosSantos/aurelio-finance" rel="noopener noreferrer"&gt;The repository provides the requirements and demo commands.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For non-demo use, records reside in &lt;code&gt;backend/data.db&lt;/code&gt;. The project says it saves a copy beside that file before an update changes the data format. &lt;a href="https://github.com/LosaLosSantos/aurelio-finance" rel="noopener noreferrer"&gt;The storage path and pre-update copy behavior are documented in the README.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The repository also documents separate backend and frontend test commands using &lt;code&gt;pytest&lt;/code&gt; and &lt;code&gt;npm test&lt;/code&gt;, plus hot-reload commands based on Uvicorn and the frontend development server. &lt;a href="https://github.com/LosaLosSantos/aurelio-finance" rel="noopener noreferrer"&gt;Those development workflows appear in the project documentation.&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The adviser introduces a second boundary
&lt;/h2&gt;

&lt;p&gt;The “Ask Aurelio” chat answers from the user’s records, can search the web and presents proposed changes as cards that the user must confirm. Enabling it requires an OpenRouter account with credit and an API key stored in &lt;code&gt;backend/.env&lt;/code&gt;; users can select a model in the chat. &lt;a href="https://github.com/LosaLosSantos/aurelio-finance" rel="noopener noreferrer"&gt;The repository describes the chat behavior and OpenRouter configuration.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Analysis:&lt;/strong&gt; Local record storage and local AI processing are not the same property. Aurelio keeps its ledger on the user’s machine, but the optional adviser routes through OpenRouter and can use those records when answering questions. Developers evaluating the app should therefore treat storage and AI processing as separate trust boundaries rather than reading “runs on your own computer” as a claim that every enabled operation remains local. &lt;a href="https://github.com/LosaLosSantos/aurelio-finance" rel="noopener noreferrer"&gt;That interpretation follows from the project’s description of local records and its OpenRouter-backed adviser.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The confirmation-card flow provides a visible checkpoint before a proposed change is accepted. &lt;strong&gt;Analysis:&lt;/strong&gt; It does not settle the separate question of what financial context is appropriate to submit to an external AI service. The unresolved trade-off is between the adviser’s record-aware answers and web search on one side, and keeping the application free of that external integration on the other. &lt;a href="https://github.com/LosaLosSantos/aurelio-finance" rel="noopener noreferrer"&gt;The underlying confirmation, record access, web search and optional-AI behaviors are documented by the project.&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>privacy</category>
      <category>software</category>
    </item>
    <item>
      <title>OpenDots Packages Persistent Agents for Chat, Calls and Slack</title>
      <dc:creator>David Díaz</dc:creator>
      <pubDate>Sun, 11 Oct 2026 19:38:51 +0000</pubDate>
      <link>https://dev.to/dd8888/opendots-packages-persistent-agents-for-chat-calls-and-slack-4o6o</link>
      <guid>https://dev.to/dd8888/opendots-packages-persistent-agents-for-chat-calls-and-slack-4o6o</guid>
      <description>&lt;p&gt;OpenDots is a public, MIT-licensed template for building persistent AI “coworkers” that can work through documents, text chat, voice calls and Slack. For developers, the important constraint is that it is &lt;strong&gt;not&lt;/strong&gt; a hosted agent product: teams run the application, configure its infrastructure and connect the external services that make conversations, calls and computer tools work. &lt;a href="https://github.com/CopilotKit/OpenDots" rel="noopener noreferrer"&gt;OpenDots repository&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The project organizes work around &lt;strong&gt;Spaces&lt;/strong&gt; and specialist “Dots.” A Dot can receive a name, role instructions and permitted tools, while its access can span multiple Spaces. Pages live in the local workspace database and support a searchable library, a visual editor, autosave, revision checks and page-specific conversations. &lt;a href="https://github.com/CopilotKit/OpenDots" rel="noopener noreferrer"&gt;OpenDots repository&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Agent work with explicit approval points
&lt;/h2&gt;

&lt;p&gt;OpenDots includes two notable controls for agent actions. A Dot can present a draft through a human-in-the-loop card, where approval creates a page in an authorized Space; changing the draft requires a new review. For MCP-connected tools, read-only tools run directly, while other tools pause for an &lt;strong&gt;Approve &amp;amp; run&lt;/strong&gt; decision in chat. Tool availability can also be enabled or disabled for each Dot. &lt;a href="https://github.com/CopilotKit/OpenDots" rel="noopener noreferrer"&gt;OpenDots repository&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The template can also attach a separate computer to each Dot through OpenBot’s container supervisor and computer service. Its browser profile and workspace files persist across stops and starts, and the interface exposes browser control, files, terminal output and human takeover. The repository is explicit that an unconfigured template does not execute commands on the host. &lt;a href="https://github.com/CopilotKit/OpenDots" rel="noopener noreferrer"&gt;OpenDots repository&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For communications, the project describes continuous text conversations, voice calls that pair realtime speech with a separate compute agent, and a Slack integration built with Channels SDK. Calls and longer-running work share the same conversation context and tool permissions, according to the project documentation. &lt;a href="https://github.com/CopilotKit/OpenDots" rel="noopener noreferrer"&gt;OpenDots repository&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The deployment boundary is the product boundary
&lt;/h2&gt;

&lt;p&gt;A developer can create Spaces, write pages and configure Dots locally before connecting services. Chatting requires an Intelligence project and a model configuration; calls additionally require a speech provider, while Slack and computer features need their respective setup. The architecture uses AG-UI between the application and agent interface, plus CopilotKit components and runtime, TanStack AI, Threads, and Channels SDK for Slack. &lt;a href="https://github.com/CopilotKit/OpenDots" rel="noopener noreferrer"&gt;OpenDots repository&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That distinction matters because OpenDots separates local workspace data from conversational and provider data. Pages, workspace metadata and thread bindings are stored in SQLite, but conversation messages, tool calls and run events are persisted in the configured Intelligence deployment. In the hosted configuration, those records go to CopilotKit’s cloud; the configured model provider receives conversation context, including authorized page content and tool results. &lt;a href="https://github.com/CopilotKit/OpenDots" rel="noopener noreferrer"&gt;OpenDots repository&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Public-web research has another boundary: queries and selected URLs go to Parallel by default unless &lt;code&gt;WEB_SEARCH_PROVIDER=disabled&lt;/code&gt; is set. Speech and messaging integrations send data to their configured providers when used. The repository also documents telemetry opt-outs through &lt;code&gt;COPILOTKIT_TELEMETRY_DISABLED=true&lt;/code&gt; or &lt;code&gt;DO_NOT_TRACK=1&lt;/code&gt;. &lt;a href="https://github.com/CopilotKit/OpenDots" rel="noopener noreferrer"&gt;OpenDots repository&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Analysis:&lt;/strong&gt; OpenDots’ useful contribution is not a claim that agents can safely operate unattended; it is the attempt to make the intervention points visible in the application: per-Dot permissions, approval cards, isolated computer services and explicit provider configuration. The unresolved trade-off is operational rather than cosmetic. A team that wants persistent agents across documents, Slack, voice and browser tasks must also own the integration surface, permission design and data flows that those channels introduce. The repository’s own separation of local page storage, conversation persistence and external provider traffic makes that responsibility hard to ignore. &lt;a href="https://github.com/CopilotKit/OpenDots" rel="noopener noreferrer"&gt;OpenDots repository&lt;/a&gt;&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>github</category>
      <category>opensource</category>
    </item>
    <item>
      <title>invisible_playwright_mcp Pairs MCP With Stealth Firefox</title>
      <dc:creator>David Díaz</dc:creator>
      <pubDate>Fri, 09 Oct 2026 19:40:53 +0000</pubDate>
      <link>https://dev.to/dd8888/invisibleplaywrightmcp-pairs-mcp-with-stealth-firefox-1kkk</link>
      <guid>https://dev.to/dd8888/invisibleplaywrightmcp-pairs-mcp-with-stealth-firefox-1kkk</guid>
      <description>&lt;p&gt;&lt;code&gt;invisible_playwright_mcp&lt;/code&gt; packages a browser agent as an MCP server and a local web UI, while its maintainer claims the underlying Firefox engine is undetected by anti-bot systems and CAPTCHAs. For developers, that means assistant clients can drive page interactions with configuration that may retain login state, route traffic through a proxy and send page content to an external provider. &lt;a href="https://github.com/feder-cr/invisible_playwright_mcp" rel="noopener noreferrer"&gt;The repository documents each of those behaviors&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Two interfaces to the same browser
&lt;/h2&gt;

&lt;p&gt;The repository provides installation paths for Claude Code, Codex and Gemini CLI. Its standalone interface runs locally, presents chat beside a live browser and requires an OpenRouter key. The same package starts the MCP server when invoked without a subcommand and launches the interface with the &lt;code&gt;ui&lt;/code&gt; subcommand. &lt;a href="https://github.com/feder-cr/invisible_playwright_mcp" rel="noopener noreferrer"&gt;The project also points Python developers to &lt;code&gt;invisible_playwright&lt;/code&gt;, a related library whose API follows Playwright’s&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The README says the agent interacts through pointer movements and key presses. Configuration includes proxies, seeded browser identities, persistent profile directories and a headed mode. The project says a repeated seed produces the same browser identity, a profile directory preserves cookies and logins across restarts, and proxy selection determines timezone, locale and network egress. &lt;a href="https://github.com/feder-cr/invisible_playwright_mcp" rel="noopener noreferrer"&gt;These options are described on the project page&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Analysis:&lt;/strong&gt; The anti-detection promise is stronger than the evidence presented on the repository page. The claim appears without a target-site matrix, testing protocol, success rate or independent validation. That does not establish that the claim is false, but it leaves developers without a documented basis for estimating reliability against a particular site’s defenses. &lt;a href="https://github.com/feder-cr/invisible_playwright_mcp" rel="noopener noreferrer"&gt;The repository page presents the claim and configuration details but none of those measurements&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Local execution still has external data flows
&lt;/h2&gt;

&lt;p&gt;The project says the agent runs on the user’s machine and has no server of its own. Sessions, profiles and screenshots are stored locally. However, sites receive browser traffic, the web UI sends its conversation and page content read by the agent to OpenRouter, and an MCP client sends corresponding information to whichever provider it uses. &lt;a href="https://github.com/feder-cr/invisible_playwright_mcp" rel="noopener noreferrer"&gt;Those boundaries are set out in the project’s privacy policy&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The engine is downloaded from a GitHub release when the server or interface first starts, and a GeoIP database is downloaded when a proxy is configured. Each browser launch also fetches a one-line counter file from a GitHub release. The project says that request carries no identifier, although GitHub sees the originating IP address as it would for another HTTPS request. &lt;a href="https://github.com/feder-cr/invisible_playwright_mcp" rel="noopener noreferrer"&gt;The maintainer says nothing else is collected or sent to the author&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The README warns that changing the interface host from its loopback default exposes a service with no authentication. It also says passing an OpenRouter key on the command line places the key in shell history and, on Linux, the process list; using an environment variable or local &lt;code&gt;.env&lt;/code&gt; file avoids those two exposures. &lt;a href="https://github.com/feder-cr/invisible_playwright_mcp" rel="noopener noreferrer"&gt;The project documents both warnings&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  The unresolved control boundary
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Analysis:&lt;/strong&gt; Pairing persistent browser state with an agent intended to appear less detectable shifts the central deployment question toward authorization and review. A profile can preserve cookies and logins, page data can leave the machine, and a host change can expose an unauthenticated interface. The unresolved trade-off is whether teams can gain useful browser access without granting overly broad access to stored sessions or sensitive page content. &lt;a href="https://github.com/feder-cr/invisible_playwright_mcp" rel="noopener noreferrer"&gt;Those risks follow from the project’s documented persistence, data-flow and host settings&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The project tells users to read the terms of sites they visit, respect rate limits and avoid submitting anything that a human has not reviewed. &lt;a href="https://github.com/feder-cr/invisible_playwright_mcp" rel="noopener noreferrer"&gt;Its responsible-use guidance places those obligations on the operator&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>mcp</category>
      <category>opensource</category>
      <category>tools</category>
    </item>
  </channel>
</rss>
