<?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: Reno Lu</title>
    <description>The latest articles on DEV Community by Reno Lu (@renolu).</description>
    <link>https://dev.to/renolu</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%2F3961766%2Fe973474b-a6f6-45ab-a944-e0495fc3346e.png</url>
      <title>DEV Community: Reno Lu</title>
      <link>https://dev.to/renolu</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/renolu"/>
    <language>en</language>
    <item>
      <title>Concat is a local CapCut alternative with an MCP server, so an agent can cut your video</title>
      <dc:creator>Reno Lu</dc:creator>
      <pubDate>Thu, 22 Oct 2026 17:44:13 +0000</pubDate>
      <link>https://dev.to/renolu/concat-is-a-local-capcut-alternative-with-an-mcp-server-so-an-agent-can-cut-your-video-5993</link>
      <guid>https://dev.to/renolu/concat-is-a-local-capcut-alternative-with-an-mcp-server-so-an-agent-can-cut-your-video-5993</guid>
      <description>&lt;p&gt;Concat is pitched as a free CapCut replacement, and its listed features include auto-captions, text-to-speech, background removal, keyframes, multi-track cutting, 4K export. For developers, the more important line is further down. Concat ships an MCP server built in, so an AI agent can edit video with it, plus a JSON-RPC API for scripts. A video editor that an agent can drive, running entirely on your own disk, is a different tool from a consumer app with an AI button.&lt;/p&gt;

&lt;p&gt;The README describes Concat as an open-source editor for macOS, Windows, Linux and Android, with iPhone and iPad builds that are sideloaded. Everything runs on a native Rust engine with a GPU compositor. It is licensed AGPL-3.0 and, in its own words, in beta: it works, and it still has edges.&lt;/p&gt;

&lt;h2&gt;
  
  
  Local by design
&lt;/h2&gt;

&lt;p&gt;The README's "none of the catches" list is short: no watermark, no account, no subscription, no upload. The AI pieces follow the same rule. Captions use local Whisper, where you pick a model size and get styled captions on the timeline. Voices come from free local text-to-speech, or from voice cloning based on a few seconds of a recording. Background removal handles people and objects, or you paint the mask yourself. The README says these models download once from Settings and then work offline, and that your footage never leaves your disk.&lt;/p&gt;

&lt;p&gt;If I were editing client footage, interviews or internal recordings, that last point would matter to me more than the effect count. There is a &lt;code&gt;CODE_SIGNING.md&lt;/code&gt; that the README says explains why Windows builds are not signed yet and what Concat sends over the network, which it summarizes as nothing you did not ask for. That document is worth a read before installing an unsigned build on a work machine.&lt;/p&gt;

&lt;h2&gt;
  
  
  The machine interface
&lt;/h2&gt;

&lt;p&gt;The README lists three ways to drive Concat without the mouse:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;An MCP server started with &lt;code&gt;concat --mcp&lt;/code&gt;, with setup in &lt;code&gt;docs/MCP.md&lt;/code&gt;. The README calls it one line to set up and names Claude among the agents that can edit with it.&lt;/li&gt;
&lt;li&gt;A JSON-RPC API for scripts.&lt;/li&gt;
&lt;li&gt;gRPC and a command-line tool, which the README says a build from source adds.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The developer docs on the project website cover the Concat API and its transports. The README does not list the individual MCP tools or RPC methods, so it does not show how fine-grained the control is, for example whether an agent can place a keyframe or only run whole operations. That is the first thing I would check in the docs before planning an automated pipeline around it.&lt;/p&gt;

&lt;p&gt;The README's "Good for" list includes Shorts, Reels, tutorials, screen recordings and podcast clips. Topics on the repository include video-editing automation and YouTube automation.&lt;/p&gt;

&lt;h2&gt;
  
  
  The voice cloning question
&lt;/h2&gt;

&lt;p&gt;Voice cloning from a few seconds of a recording is a capability worth pausing on. The README presents it as a feature alongside free local voices, and it does not describe consent checks or restrictions. If your team adopts Concat, decide up front whose voices you will clone and get permission in writing. The README does not mention consent checks of any kind.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting it running
&lt;/h2&gt;

&lt;p&gt;The README gives two download routes: the project website, which hands you the right build, and GitHub Releases with installers, packages and checksums for every platform. Windows is x86_64 only for now, with ARM builds paused. If SmartScreen blocks the unsigned build, the README says to choose More info and then Run anyway. On macOS it gives an &lt;code&gt;xattr -dr com.apple.quarantine&lt;/code&gt; command for an unsigned app. Linux gets &lt;code&gt;.deb&lt;/code&gt;, &lt;code&gt;.rpm&lt;/code&gt;, AppImage, an Arch package and a community Flatpak.&lt;/p&gt;

&lt;p&gt;Building from source needs Rust 1.93 or newer, FFmpeg 7 or newer development libraries, cmake and a C++ compiler, then &lt;code&gt;cargo run -p concat&lt;/code&gt; from the &lt;code&gt;src&lt;/code&gt; directory. CI runs &lt;code&gt;cargo fmt --check&lt;/code&gt; and &lt;code&gt;cargo clippy&lt;/code&gt; with warnings denied.&lt;/p&gt;

&lt;p&gt;The project's advice to contributors is to grab a release, use it, and find where it breaks. I would apply the same advice to an evaluation. For a team weighing it, I would cut one real video by hand first, then try the same edit through MCP and see how much of it the agent can actually do.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/jub0t/Concat" rel="noopener noreferrer"&gt;https://github.com/jub0t/Concat&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Curated by &lt;a href="https://www.agentpalisade.com" rel="noopener noreferrer"&gt;Agent Palisade&lt;/a&gt; — practical AI for small and mid-sized businesses.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>videoediting</category>
      <category>mcp</category>
      <category>rust</category>
      <category>ai</category>
    </item>
    <item>
      <title>jev-chat judges a conversation before it drafts a reply, and leaves the send button to you</title>
      <dc:creator>Reno Lu</dc:creator>
      <pubDate>Wed, 21 Oct 2026 17:47:05 +0000</pubDate>
      <link>https://dev.to/renolu/jev-chat-judges-a-conversation-before-it-drafts-a-reply-and-leaves-the-send-button-to-you-33ni</link>
      <guid>https://dev.to/renolu/jev-chat-judges-a-conversation-before-it-drafts-a-reply-and-leaves-the-send-button-to-you-33ni</guid>
      <description>&lt;p&gt;jev-chat-jarvis puts judgment before drafting. Its README observes that most AI tools skip that step and go straight to writing a reply. Jev, per its README, first works out what the other person really means, how risky the moment is and the best way to respond, and only then drafts replies. The last step is also deliberate: Jev fills the box, and you press send. It never sends on its own.&lt;/p&gt;

&lt;p&gt;The project, published as jev-chat, calls itself a chat decision assistant. It ships five apps across Android, Windows, macOS and iOS under the MIT license, and all of them follow the same three steps: read, judge, then draft, check and rank.&lt;/p&gt;

&lt;h2&gt;
  
  
  Judgment before drafting
&lt;/h2&gt;

&lt;p&gt;The README's "Why jev-chat?" section frames the problem as reading the other person: are they upset, testing you, or just chatting? A judgment model answers that before any text is written, and every draft is then checked against the judgment and ranked so the best fit comes first. Tapping a draft fills it into the message box.&lt;/p&gt;

&lt;p&gt;I like that ordering as a pattern. Keeping "what is going on here" apart from "what should I say" means the judgment is a separate step from drafting, checking and ranking. The README does not describe how the judgment is shown to the user in detail, but its screenshots are labeled "analysis" and "scored replies", which suggests both are visible.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it reads your chats
&lt;/h2&gt;

&lt;p&gt;Reading is where the platforms differ, and the README is specific:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Android: through the accessibility service, as an overlay on chat apps. The global edition targets WhatsApp chats in English; the Chinese edition covers chats in Chinese on QQ, Feishu, X and WhatsApp.&lt;/li&gt;
&lt;li&gt;Windows: beside your chat window, reading it with screenshots and on-device OCR or system text APIs.&lt;/li&gt;
&lt;li&gt;macOS: an overlay that reads the chat on screen and judges with a local model, on Apple Silicon.&lt;/li&gt;
&lt;li&gt;iOS: a custom keyboard. You copy a message and see intent, risk and replies on the keyboard. There is no App Store build yet, so you build it with Xcode.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The README says Jev does not modify the chat app or log in to it. On Android, setup means turning on the accessibility service and the overlay permission.&lt;/p&gt;

&lt;h2&gt;
  
  
  The privacy model and the account risk
&lt;/h2&gt;

&lt;p&gt;On Android, the README states that chat text, plus any background you turn on, goes only to the model provider you configure, with your own key. The project says it runs no server and never receives your chats, and that screenshots used for OCR never leave the phone. For the other platforms it points to each project's own README.&lt;/p&gt;

&lt;p&gt;So on Android, your configured model provider receives your chat text. My rule would be simple: whatever you would not send to that provider's API, do not let Jev read. Setup requires enabling the accessibility service, and I would read the README's linked privacy policies before granting it.&lt;/p&gt;

&lt;p&gt;The README also includes a plain warning: using Jev inside apps such as QQ, Feishu, X or WhatsApp may not comply with their terms of service, and your account could be restricted or banned. It leaves the decision to you. If I were considering Jev for a work account, I would show that warning to my compliance team.&lt;/p&gt;

&lt;h2&gt;
  
  
  Licensing terms worth knowing
&lt;/h2&gt;

&lt;p&gt;The code is MIT licensed and the README says commercial use is allowed without payment or permission. It adds two conditions in its own words: keep LICENSE and NOTICE and credit the source in your product, and do not use the names "Jev Chat Assistant" or "jev-chat", or the chatjevs.com domain, to imply endorsement.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who it fits
&lt;/h2&gt;

&lt;p&gt;The status column shows a mix of preview, released and source-only apps. The global WhatsApp edition is a preview at v0.1.0, the Chinese Android edition is at v1.7, the Windows and macOS apps are released, and iOS is source only, built with Xcode. If I were trying it, I would configure a provider and key I already trust, use it on low-stakes conversations, and check whether the intent and risk read matches mine before relying on the ranking.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/jev-chat/jev-chat-jarvis" rel="noopener noreferrer"&gt;https://github.com/jev-chat/jev-chat-jarvis&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Curated by &lt;a href="https://www.agentpalisade.com" rel="noopener noreferrer"&gt;Agent Palisade&lt;/a&gt; — practical AI for small and mid-sized businesses.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>aiassistant</category>
      <category>llm</category>
      <category>android</category>
      <category>privacy</category>
    </item>
    <item>
      <title>Strata runs a 125B model on a 12 GB gaming GPU by leaning on system RAM, and the README spells out the cost</title>
      <dc:creator>Reno Lu</dc:creator>
      <pubDate>Tue, 20 Oct 2026 17:37:32 +0000</pubDate>
      <link>https://dev.to/renolu/strata-runs-a-125b-model-on-a-12-gb-gaming-gpu-by-leaning-on-system-ram-and-the-readme-spells-out-34la</link>
      <guid>https://dev.to/renolu/strata-runs-a-125b-model-on-a-12-gb-gaming-gpu-by-leaning-on-system-ram-and-the-readme-spells-out-34la</guid>
      <description>&lt;p&gt;Strata's README puts the instruction I would read first in a warning box, not in the speed table. While the model starts, your PC can be slow or stop responding for one to three minutes, because Strata loads 35 to 55 GB into RAM and locks part of it for the graphics card. Strata runs Qwen3.8-Flash-Next, a 125-billion-parameter model, on supported NVIDIA and AMD gaming PCs with at least 12 GB of VRAM and 32 GB of system RAM, and much of the model sits in that RAM.&lt;/p&gt;

&lt;p&gt;The project calls itself a one-click install for Windows and Linux, with experimental community paths for Apple Silicon, Intel Arc, AMD Strix Halo and older GPUs. It serves the model on localhost with OpenAI- and Anthropic-compatible endpoints and optional image input. The README says nothing leaves your PC.&lt;/p&gt;

&lt;h2&gt;
  
  
  RAM is the main constraint on model size
&lt;/h2&gt;

&lt;p&gt;The "Which model should I pick?" table is organized by RAM, with one exception: on a 32 GB system, a 24 GB card also runs Q2_0 and IQ2_XS. The requirements ask for 12 GB of VRAM or more and 32 GB of RAM or more, and the table maps memory to quantization:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;32 GB: the Coder version, a coding model with half of the experts removed.&lt;/li&gt;
&lt;li&gt;48 GB: IQ2_XS, or Q2_0 for speed.&lt;/li&gt;
&lt;li&gt;64 GB: IQ2_XS recommended, with IQ3_XXS and IQ3_S also fitting.&lt;/li&gt;
&lt;li&gt;96 GB or more: IQ3_S, or Unsloth's UD-IQ4_XS at roughly 4 bits.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The README lists what you give up at the small end. The Coder version reaches 91% of the full model's SWE-bench Verified score as measured by its authors, and it is weaker outside code, including Chinese and other CJK text. For those, the README points you back to sizes that keep every expert. The larger Unsloth files work with less RAM, but Strata then reads part of them from the SSD while it answers, which the README calls much slower: 7 to 8.5 tokens per second for UD-Q4_K_XL on a 64 GB PC.&lt;/p&gt;

&lt;h2&gt;
  
  
  The speed numbers and their conditions
&lt;/h2&gt;

&lt;p&gt;The README's speed tables come from two machines it describes as ordinary gaming PCs: an RTX 5070 with 12 GB, a Ryzen 5 7600 and 64 GB of RAM, and an RX 9070 XT with 16 GB, a Ryzen 9 3900X and 47 GB. On the NVIDIA box it reports 94 tokens per second of output at Q2_0 and 53 at IQ3_S, with prompt reading between 1,620 and 2,650 tokens per second on a 32K-token input. The engine versions differ between rows, and the full tables are in &lt;code&gt;docs/DETAILS.md&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;For agent use, the README also covers concurrency and first-message time. By default Strata answers one request at a time and queues the rest; setting &lt;code&gt;"parallel": 2&lt;/code&gt; allows two, and on a 12 GB card that makes each answer slower. And Strata reads the first message of a chat in full at about one minute per 30,000 tokens, while follow-ups start in seconds. If your agent opens with a large context dump, I would expect to wait on that first message. The &lt;code&gt;BENCH.bat&lt;/code&gt; script (&lt;code&gt;./bench.sh&lt;/code&gt; on Linux) measures chat, 4K and 16K prompts and an agent-style session using your own settings.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wiring agents to it
&lt;/h2&gt;

&lt;p&gt;Once running, Strata opens a browser app at &lt;code&gt;http://127.0.0.1:8080&lt;/code&gt; with Chat, a live Monitor of the model and your hardware, and an About page. For other tools you add an OpenAI-compatible provider at &lt;code&gt;http://127.0.0.1:8080/v1&lt;/code&gt;, and the README says any API key and any model name work. Anthropic-style clients use &lt;code&gt;/v1/messages&lt;/code&gt;, and for Claude Code the README sets &lt;code&gt;ANTHROPIC_BASE_URL=http://127.0.0.1:8080&lt;/code&gt;, and the Responses API for Codex CLI lives at &lt;code&gt;/v1/responses&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The install itself can be handed to an agent: the README offers a one-line prompt asking your coding assistant to follow &lt;code&gt;docs/AI_SETUP.md&lt;/code&gt;. The assistant then checks your card, RAM and disk and picks a model. There is also an MCP server so AI tools can install, start and stop Strata.&lt;/p&gt;

&lt;h2&gt;
  
  
  Set a key for network access
&lt;/h2&gt;

&lt;p&gt;Serving to your phone or another PC uses &lt;code&gt;START-HERE.bat --setup --host 0.0.0.0 --api-key &amp;lt;secret&amp;gt;&lt;/code&gt;, and the README adds: always set a key. If you only need the model on the same machine, I would leave the host setting alone.&lt;/p&gt;

&lt;p&gt;For a first run, budget about 80 GB of free disk, preferably SSD, and a roughly 70 GB download that resumes if interrupted. Expect the slow start the README warns about, and run the benchmark before you decide which size to keep.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/Niko1221/Strata" rel="noopener noreferrer"&gt;https://github.com/Niko1221/Strata&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Curated by &lt;a href="https://www.agentpalisade.com" rel="noopener noreferrer"&gt;Agent Palisade&lt;/a&gt; — practical AI for small and mid-sized businesses.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>llm</category>
      <category>localai</category>
      <category>inference</category>
      <category>ai</category>
    </item>
    <item>
      <title>Laya answers typed questions in one forward pass, and its README says fine-tuning is where accuracy jumps</title>
      <dc:creator>Reno Lu</dc:creator>
      <pubDate>Mon, 19 Oct 2026 18:54:03 +0000</pubDate>
      <link>https://dev.to/renolu/laya-answers-typed-questions-in-one-forward-pass-and-its-readme-says-fine-tuning-is-where-accuracy-3dbb</link>
      <guid>https://dev.to/renolu/laya-answers-typed-questions-in-one-forward-pass-and-its-readme-says-fine-tuning-is-where-accuracy-3dbb</guid>
      <description>&lt;p&gt;The number I would read first in the laya README is not the 33 ms latency. It is the gap between 0.362 and 0.766. On the project's own typed-decisions benchmark, the base English checkpoint scores 0.362 accuracy across 2,000 decisions, and the fine-tuned &lt;code&gt;laya-typed-decisions&lt;/code&gt; checkpoint scores 0.766. The README says this directly: the shipped checkpoints work zero-shot, but fine-tuning on decisions from your own domain is where accuracy jumps. I read that as two separate stages for any pilot: zero-shot evaluation, then fine-tuning.&lt;/p&gt;

&lt;p&gt;Laya describes itself as a multilingual, non-autoregressive "System 1" decision engine. You hand it some state, such as an email, a ticket, a block of text or a JSON document, plus a set of typed questions. It answers all of them in a single forward pass and generates no text. In the README's words, there is nothing to parse and nothing to hallucinate.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three question types instead of a prompt
&lt;/h2&gt;

&lt;p&gt;The quickstart shows all three question types. A customer writes that they were billed twice for March and will cancel unless refunded today. The code defines three questions against that message:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;department&lt;/code&gt; is a &lt;code&gt;choice&lt;/code&gt; question with criteria for billing, technical and other.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;urgency&lt;/code&gt; is a &lt;code&gt;score&lt;/code&gt; question over "not urgent", "soon" and "blocking".&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;churn_risk&lt;/code&gt; is a &lt;code&gt;noul&lt;/code&gt; question, which the README's comment describes as returning the probability that the answer is yes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;router.predict(state, questions)&lt;/code&gt; returns structured answers for each, plus a &lt;code&gt;routing&lt;/code&gt; field naming which checkpoint handled the request. For a triage step in a support queue, that output gives you a choice you can switch on and a probability you can threshold, with no free text to validate.&lt;/p&gt;

&lt;p&gt;The README says the models are trained with reinforcement learning against strictly proper scoring rules, which it calls RLCD, and the fine-tuning loop includes a temperature calibration step. If you plan to act on the &lt;code&gt;noul&lt;/code&gt; probability rather than just the top choice, that calibration is the part to check on your own data.&lt;/p&gt;

&lt;h2&gt;
  
  
  A router over three checkpoints
&lt;/h2&gt;

&lt;p&gt;Laya ships three checkpoints and a &lt;code&gt;Router&lt;/code&gt; that picks one per request. The README's table lists them:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;laya&lt;/code&gt;: ModernBERT-large, 421M parameters, 512-token context, for English.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;laya-multilingual&lt;/code&gt;: mmBERT-base, 322M parameters, 1,024 tokens by default and up to 8,192, for 100+ languages, listed as 2x faster.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;laya-typed-decisions&lt;/code&gt;: ModernBERT-large, 421M parameters, 1,024 tokens, for the typed-decisions workflows.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The router detects script and language and sends non-English text to the multilingual model. The README's example routes a Hindi billing complaint and a Spanish crash report through the same call, and both come back from &lt;code&gt;laya-multilingual&lt;/code&gt; with the expected department.&lt;/p&gt;

&lt;h2&gt;
  
  
  The limits it states itself
&lt;/h2&gt;

&lt;p&gt;The long-document note includes measured results. &lt;code&gt;laya-multilingual&lt;/code&gt; ships with a 1,024-token limit that cuts long documents off, so you pass &lt;code&gt;max_len=8192&lt;/code&gt; to read further. The README reports that 16 to 18 of 20 requests were answered correctly with up to about 4,000 tokens of text before them, and that beyond that the results vary from 8 to 17 of 20. Its advice is to check long-document accuracy on your own data. I would take that literally and keep long inputs out of any automated path until you have.&lt;/p&gt;

&lt;p&gt;The latency figures come with their hardware: 33 ms for one question and 7.2 ms per question batched, measured on a T4. A separate &lt;code&gt;BENCHMARKS.md&lt;/code&gt; collects every run, and the README says it states the limits plainly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where it plugs in
&lt;/h2&gt;

&lt;p&gt;The base install is &lt;code&gt;python -m pip install laya&lt;/code&gt; on Python 3.10 or newer. Optional extras add an HTTP server, an MCP server, ONNX Runtime, a TileLang GPU fast path, pydantic models, and wrappers for LangChain, LlamaIndex and CrewAI. The 0.4.11 release notes add a Rust SDK that ports the Python SDK onto ONNX Runtime, with 210 offline tests checked against goldens from the Python implementation, and a &lt;code&gt;LayaToolSelector&lt;/code&gt; for routing tools in agent loops. A TypeScript package, &lt;code&gt;laya-ts&lt;/code&gt;, lives in the same repository.&lt;/p&gt;

&lt;p&gt;There is also a CLI: &lt;code&gt;laya "My payment failed twice" --preset triage&lt;/code&gt; answers a ready-made question set.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I would try it
&lt;/h2&gt;

&lt;p&gt;Pick one narrow decision your team already makes by hand, such as routing inbound tickets, and run laya zero-shot against a few hundred labeled examples. Compare your zero-shot result with the README's base-checkpoint score of 0.362, treating it as a reference point rather than a prediction for your data. If the decision is worth automating, the README points to a Kaggle 2xT4 notebook and an Apple Silicon script that run the full loop: build a dataset, train with RLCD, calibrate temperatures, evaluate and export. On the project's benchmark, fine-tuning moved accuracy from 0.362 to 0.766, so I would plan for that step from the start.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/NandhaKishorM/laya" rel="noopener noreferrer"&gt;https://github.com/NandhaKishorM/laya&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Curated by &lt;a href="https://www.agentpalisade.com" rel="noopener noreferrer"&gt;Agent Palisade&lt;/a&gt; — practical AI for small and mid-sized businesses.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>machinelearning</category>
      <category>nlp</category>
      <category>python</category>
      <category>ai</category>
    </item>
    <item>
      <title>mono-color-skill Writes Print Taste Down as Rules an Agent Can Check</title>
      <dc:creator>Reno Lu</dc:creator>
      <pubDate>Fri, 16 Oct 2026 17:04:48 +0000</pubDate>
      <link>https://dev.to/renolu/mono-color-skill-writes-print-taste-down-as-rules-an-agent-can-check-3cop</link>
      <guid>https://dev.to/renolu/mono-color-skill-writes-print-taste-down-as-rules-an-agent-can-check-3cop</guid>
      <description>&lt;p&gt;My reading of the README is that mono-color-skill is less an aesthetic than a spec. The name points to one ink, and the README's tagline covers both one-ink and controlled two-ink work, yet the README states that the skill defaults to controlled two-ink, with one dominant plate and one narrowly assigned accent plate, and that pure one-ink applies when a request explicitly asks for one-ink or monochrome. That default, and the numbers attached to it, are the part worth studying if you write skills for agents.&lt;/p&gt;

&lt;p&gt;Adjectives like "restrained" or "editorial" give a model little to hold. This repo writes its visual system down as quantities, role assignments, and a refusal list, then has the agent inspect what it generates.&lt;/p&gt;

&lt;h2&gt;
  
  
  Defaults written as numbers
&lt;/h2&gt;

&lt;p&gt;The ink rule reads like a config file. In two-ink work, the README says the dominant plate normally carries 70 to 85 percent of the printed area and the accent plate carries 15 to 30 percent. The accent is not free decoration: it "must have a specific job such as dates, annotations, selected objects, or overprint intersections." Two edge cases are closed in writing. The substrate is not a third color, and the darker color created where two plates overlap is not a third ink. Those sentences remove readings of "no more than two printing inks" that would otherwise stay open.&lt;/p&gt;

&lt;p&gt;Empty space gets the same treatment. Visible empty paper occupies 25 to 55 percent of the canvas on an asymmetric editorial grid, and the README says it controls pacing. The composition step pairs that range with "one deliberate disruption," which reads to me as a budget for breaking the grid once, not an open invitation.&lt;/p&gt;

&lt;p&gt;The palette is enumerated with hex values. The one-ink palette has eight inks, from Cobalt / Ultramarine at &lt;code&gt;#2148B8&lt;/code&gt; to Charcoal at &lt;code&gt;#30343A&lt;/code&gt;, and a separate list gives nine two-ink recipes such as Cobalt + Terracotta and Cyan + Brick Red. Substrates are three paper tones, each with a list of the work it supports: Neutral White &lt;code&gt;#FAFAF7&lt;/code&gt; for crisp cultural, social, event, and image-led work; Cool Gray &lt;code&gt;#E9E9E5&lt;/code&gt; for architecture, technology, charcoal-led systems, and restrained branding; Pale Beige &lt;code&gt;#F5F1E8&lt;/code&gt; for tactile, travel, food, intimate, archival, or explicitly nostalgic subjects.&lt;/p&gt;

&lt;h2&gt;
  
  
  Naming what it will not make
&lt;/h2&gt;

&lt;p&gt;The "Not this" section is the part I would borrow for my own skills. It lists outputs the skill rejects: a full-color photograph with a monochrome filter; a glossy mockup, 3D render, gradient poster, or cinematic scene; a centered template, card grid, sticker collage, or decorative blob system; marketing copy, invented branding, fake sponsors, URLs, or QR codes. To my mind, a negative list like this gives an agent concrete things to check against, where a positive description alone leaves the boundary vague.&lt;/p&gt;

&lt;p&gt;One refusal targets a specific association. The README says the work is not automatically retro, yellowed, sepia, distressed, or nostalgic because it uses halftone or limited inks. Contemporary editorial is the default, and vintage treatment appears only when requested. Pale Beige paper stays available for the subjects the README lists.&lt;/p&gt;

&lt;h2&gt;
  
  
  Copying grammar, not pictures
&lt;/h2&gt;

&lt;p&gt;The originality rule comes with a number as well. The README says the visual system was informed by a twelve-image research set, and it points to a references document with an image index, research notes, and attribution status. Rule 7 reads "References are grammar, not templates," and attaches a threshold: at least four structural variables change from every supplied reference. The refusal list adds that the output is not a reconstruction of a reference poster or artist signature. Even the repo's own generated examples are labeled as outputs, "not templates to reproduce."&lt;/p&gt;

&lt;p&gt;Identity gets a counterweight. Rule 6 says supplied people, objects, and scenes remain recognizable. Rule 3 describes what happens to a photograph: it becomes dots, grain, clipped highlights, ink pooling, and mild registration drift between plates. Put together, a photo you supply should still read as its subject after that treatment, while the layout is rebuilt around the subject, intent, words, and image role.&lt;/p&gt;

&lt;h2&gt;
  
  
  The inspection step
&lt;/h2&gt;

&lt;p&gt;The README describes five steps: read the input, choose the layout, assign the plates, compose the page, then generate and inspect. That final step names what to check: ink count, identity, hierarchy, texture, and originality. To my reading, ink count, identity, and originality each line up with a numbered rule: Rules 1, 6, and 7. The declared output is a generated raster image, the exact production prompt, and a short recipe. Having the prompt and recipe next to the image gives a reviewer something to compare against the rules.&lt;/p&gt;

&lt;p&gt;Installation is a &lt;code&gt;git clone&lt;/code&gt; into &lt;code&gt;~/.claude/skills/mono-color&lt;/code&gt; followed by a Claude Code restart, and the README says other agent environments can load &lt;code&gt;SKILL.md&lt;/code&gt; as the skill entry point. If you maintain skills of your own, read this README beside one of yours and count how many of your instructions an agent could fail in a way you could detect.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/yanliudesign/mono-color-skill" rel="noopener noreferrer"&gt;https://github.com/yanliudesign/mono-color-skill&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Curated by &lt;a href="https://www.agentpalisade.com" rel="noopener noreferrer"&gt;Agent Palisade&lt;/a&gt; — practical AI for small and mid-sized businesses.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>agentskills</category>
      <category>claudecode</category>
      <category>imagegeneration</category>
      <category>designsystems</category>
    </item>
    <item>
      <title>Reef adds a receipt header to inference responses, then learns from reports</title>
      <dc:creator>Reno Lu</dc:creator>
      <pubDate>Thu, 15 Oct 2026 17:29:51 +0000</pubDate>
      <link>https://dev.to/renolu/reef-adds-a-receipt-header-to-inference-responses-then-learns-from-reports-2cod</link>
      <guid>https://dev.to/renolu/reef-adds-a-receipt-header-to-inference-responses-then-learns-from-reports-2cod</guid>
      <description>&lt;p&gt;Reading the reef README, the detail I would study before any training recipe is a response header. Reef inference responses include &lt;code&gt;x-reef-agent-record-id&lt;/code&gt;, and the README calls its value a receipt. A later report names the receipts it evaluates, and Reef matches that feedback to the recorded interactions. That link between what the agent did and how it gets judged is where anyone running this in front of users should start asking about review and rollback.&lt;/p&gt;

&lt;p&gt;The README describes Reef as open-source infrastructure for continual self-improving agents, then gets specific about the mechanics: Reef connects agent inference, feedback, learning, and versioned delivery, and it can target either model weights or an agent's harness, including its prompts, rules, and skills.&lt;/p&gt;

&lt;h2&gt;
  
  
  A receipt on each inference response
&lt;/h2&gt;

&lt;p&gt;Reef exposes an inference endpoint that the README describes as OpenAI- and Anthropic-compatible, taking the provider's own request body at &lt;code&gt;/v1/chat/completions&lt;/code&gt; and &lt;code&gt;/v1/messages&lt;/code&gt;. Each request carries an &lt;code&gt;x-reef-scenario&lt;/code&gt; header. A new scenario name creates a scenario using the deployment's configured recipe, and the README states that requests do not select recipes.&lt;/p&gt;

&lt;p&gt;The response adds the receipt header. Your code then posts to &lt;code&gt;/reef/report&lt;/code&gt;, and a report can carry a numeric &lt;code&gt;score&lt;/code&gt;, a &lt;code&gt;feedback&lt;/code&gt; field holding plain text or a structured object, and &lt;code&gt;references&lt;/code&gt; listing the receipts being judged. The endpoint validates reports against a report schema.&lt;/p&gt;

&lt;p&gt;Because the receipt travels with the response, the judgment does not have to happen inline. The harness example tells you to run your tests first and then report the actual result. The recipe table also lists a "Learning from usage" category for real interaction where "no one reports a score or feedback arrives late."&lt;/p&gt;

&lt;h2&gt;
  
  
  The loop in four steps
&lt;/h2&gt;

&lt;p&gt;The README splits each learning cycle into four steps and names the modules behind each. Serve handles agent requests and records interactions (&lt;code&gt;service/&lt;/code&gt;, &lt;code&gt;runtime/&lt;/code&gt;). Observe matches feedback to recorded interactions and handles eligibility (&lt;code&gt;storage/records.py&lt;/code&gt;, &lt;code&gt;train/processors/&lt;/code&gt;). Grow produces an update from eligible records through a recipe (&lt;code&gt;recipe/&lt;/code&gt;, &lt;code&gt;train/&lt;/code&gt;). Commit applies the configured selection policy and publishes accepted updates, with candidate evaluation in &lt;code&gt;train/evaluation/&lt;/code&gt;, version history in &lt;code&gt;artifact/&lt;/code&gt;, and delivery in &lt;code&gt;surface/&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The two learning surfaces use that loop differently. On the weight path, the SAO example deployment uses each eligible scored rollout to run a training step. Per the README, once the recipe has enough feedback it trains, synchronizes the updated weights to the serving runtime, and later requests use the current version without restarting Reef. That path needs a trainable model and a supported GPU stack.&lt;/p&gt;

&lt;p&gt;The harness path needs a model endpoint instead of training GPUs. The &lt;code&gt;harness-evolve&lt;/code&gt; recipe points at an upstream provider, which is a local Ollama server in the example. A &lt;code&gt;reef-pi&lt;/code&gt; harness installed from the running server then executes tasks and sends reports such as &lt;code&gt;reef-pi report --score 0 --feedback "missed the empty-token case"&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where the gate sits
&lt;/h2&gt;

&lt;p&gt;For an operator, the question is what stands between a bad report and a changed agent. The README answers it for the harness tutorial: failed reports trigger a candidate skill update, Reef evaluates that candidate against the current harness on the tutorial's three coding tasks, and it publishes the candidate only if it wins. The README points to the tutorial for customizing the tasks and the evaluation. If you adopt this path, those tasks are part of the publication decision, so they deserve the care you would give a test suite.&lt;/p&gt;

&lt;p&gt;For weights, the README's SAO walkthrough describes training and synchronization but does not spell out an evaluation step before new weights reach serving. The general Commit step does mention a configured selection policy, so the architecture has a place for a gate. What the SAO example puts there is not described in the README text I worked from.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it says about review and rollback
&lt;/h2&gt;

&lt;p&gt;Reef keeps versions. Its comparison table lists version management and staying live through updates as abilities that an inference engine or an RL training framework lacks on its own. The Commit step writes to a version history, and the installation note says artifact and checkpoint functionality requires the &lt;code&gt;git-lfs&lt;/code&gt; system package, with Reef initializing Git LFS locally for its artifact repositories.&lt;/p&gt;

&lt;p&gt;The part of the README I read does not describe operations built over that history. I found no command there for rolling back to an earlier version, no way to pin a scenario to a known-good artifact, and no human approval step before an accepted update is published. Before relying on rollback in production, read the docs or the &lt;code&gt;artifact/&lt;/code&gt; module.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting a feel for it
&lt;/h2&gt;

&lt;p&gt;The package installs with &lt;code&gt;uv pip install reef-infra&lt;/code&gt;, and the README says to use a source checkout for the training examples. The minimal starting point runs Reef as a pure inference server with &lt;code&gt;uv run reef serve --inference.model-path Qwen/Qwen2.5-1.5B-Instruct&lt;/code&gt;. If you want to watch the gate work without training GPUs, the documented harness example uses a local Ollama model, and a failing report is what sets a candidate update in motion.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/Human-Agent-Society/reef" rel="noopener noreferrer"&gt;https://github.com/Human-Agent-Society/reef&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Curated by &lt;a href="https://www.agentpalisade.com" rel="noopener noreferrer"&gt;Agent Palisade&lt;/a&gt; — practical AI for small and mid-sized businesses.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>aiagents</category>
      <category>continuallearning</category>
      <category>llmtraining</category>
      <category>python</category>
    </item>
    <item>
      <title>scroll-craft gives coding agents design rules and checks for building scroll-driven sites</title>
      <dc:creator>Reno Lu</dc:creator>
      <pubDate>Wed, 14 Oct 2026 17:40:59 +0000</pubDate>
      <link>https://dev.to/renolu/scroll-craft-gives-coding-agents-design-rules-and-checks-for-building-scroll-driven-sites-1116</link>
      <guid>https://dev.to/renolu/scroll-craft-gives-coding-agents-design-rules-and-checks-for-building-scroll-driven-sites-1116</guid>
      <description>&lt;p&gt;My reading of the scroll-craft README puts its build rules ahead of the scroll animation. What stands out is the fingerprint gate, which requires a plan change when it fails, and the headless browser pass, which reports problems including contrast on the composited page. Several of its rules are written as things a build may not do.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem it names
&lt;/h2&gt;

&lt;p&gt;The README claims the bulk of AI website output fails in one of two directions: well behaved and forgettable, or a flashy scroll animation with 2.1:1 body text, a headline that wraps to six lines on a phone, and the same six sections every other AI page has. Its stated answer is to treat interaction and craft as one job rather than two.&lt;/p&gt;

&lt;p&gt;The skill works with Codex, Claude Code, or another coding agent that can read instructions, edit files, run commands, and inspect a browser. The README says agents use their own tools for file access, shell commands, browser inspection, and user questions, while the design workflow is shared. It also ships as a Claude Code plugin, installed with &lt;code&gt;/plugin marketplace add nateherkai/scroll-craft&lt;/code&gt; and then &lt;code&gt;/plugin install nateherk-design&lt;/code&gt;. For Codex, you copy the complete &lt;code&gt;scroll-craft&lt;/code&gt; folder into your project's &lt;code&gt;.agents/skills/&lt;/code&gt; directory. The README notes that the ten-site rebuild it documents was built with Codex.&lt;/p&gt;

&lt;h2&gt;
  
  
  Rules that stop repetition
&lt;/h2&gt;

&lt;p&gt;The uniqueness rules come first. It defines eight page grammars (filmic one-shot, chaptered editorial, live surface, continuous world, typographic poster, gallery, split stage, rhythmic cutlist) and calls them mutually exclusive, with each one forbidding what the others require. Every build must invent a signature move, one bespoke interaction that exists on that site alone. The README rules out a recoloured spotlight as a candidate.&lt;/p&gt;

&lt;p&gt;Then comes the fingerprint gate. A new build must differ from every page you have already made on at least 4 of 6 dimensions: grammar, nav, hero, act shape, close, signature move. If a plan fails, the README says to change the plan, not the record. The registry lives at &lt;code&gt;&amp;lt;workspace&amp;gt;/FINGERPRINTS.md&lt;/code&gt; and starts empty, which the README calls correct, since the gate exists to stop you repeating yourself. Your first build has nothing to clear. An &lt;code&gt;EXAMPLES.md&lt;/code&gt; file holds the author's twelve-row table, offered as illustration rather than constraint.&lt;/p&gt;

&lt;h2&gt;
  
  
  A design floor written as numbers
&lt;/h2&gt;

&lt;p&gt;The craft rules read like a style guide with the vague parts replaced by values. Typography gets two families maximum, a 45 to 75ch measure, tracking that tightens as size grows, and line height inverse to measure. Spacing uses a 4px base, more space above a heading than below it, and fluid section padding so a phone does not inherit desktop air. Colour gets six roles and one accent, secondary text tinted rather than flat grey, and no pure black.&lt;/p&gt;

&lt;p&gt;Before any act exists, the skill asks for a feeling curve: one line per act naming the emotion and what on screen causes it. Two adjacent acts with the same feeling means one is filler. It also calls for one engineered peak, which gets the asset budget, the silence in front of it, and more scroll room than anything else on the page. A page with three peaks, the README says, has none.&lt;/p&gt;

&lt;p&gt;There is a refuse list too. It bans identical feature-card grids, &lt;code&gt;01 / 06&lt;/code&gt; counters, scroll cues, gradient text, em dashes, invented statistics, fake dashboards, AI-purple gradients, and the cream-and-brass artisan palette. Brand guidelines count as inputs, not decoration: point it at a brand kit and the kit's hard rules win, including rules that forbid things the skill would otherwise reach for.&lt;/p&gt;

&lt;h2&gt;
  
  
  The browser check and its stated limit
&lt;/h2&gt;

&lt;p&gt;A headless browser walks the finished page at every scroll position, waits for the video playhead to settle, and reports four kinds of problem. Dead scroll is scroll that changes nothing on screen. Cues that never reach full opacity are copy the reader only ever sees faded. Contrast is measured per line at the brightest frame that passes under it, with the direction picked per line so light-on-dark and dark-on-light are both graded. And a clip stuck on a poster is one that silently never decoded. The requirements table lists &lt;code&gt;playwright-core&lt;/code&gt; plus Chrome for this pass, with &lt;code&gt;npm i playwright-core&lt;/code&gt; run in the build folder.&lt;/p&gt;

&lt;p&gt;After that, it writes a contact sheet. The README gives the reason: a machine can prove a page works and cannot tell you it means anything.&lt;/p&gt;

&lt;p&gt;Setup gets its own guard. The README says to run &lt;code&gt;doctor&lt;/code&gt; before anything else, because common setup faults otherwise surface later as misleading errors, such as a stripped ffmpeg reporting a missing filter as a syntax error in your command. A full ffmpeg build is needed so clips scrub rather than play. &lt;code&gt;KIE_AI_API_KEY&lt;/code&gt; is optional and only matters if you want assets generated; building from your own photos and footage needs no key.&lt;/p&gt;

&lt;p&gt;The engine, &lt;code&gt;scrollcraft.js&lt;/code&gt; plus its CSS, is never edited per project. You theme it with six colour tokens and two fonts and write your own semantic HTML around it.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/nateherkai/scroll-craft" rel="noopener noreferrer"&gt;https://github.com/nateherkai/scroll-craft&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Curated by &lt;a href="https://www.agentpalisade.com" rel="noopener noreferrer"&gt;Agent Palisade&lt;/a&gt; — practical AI for small and mid-sized businesses.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>agentskills</category>
      <category>webdesign</category>
      <category>claudecode</category>
      <category>scrollanimation</category>
    </item>
    <item>
      <title>EverRoom treats memory as something a source has to earn</title>
      <dc:creator>Reno Lu</dc:creator>
      <pubDate>Tue, 13 Oct 2026 19:39:23 +0000</pubDate>
      <link>https://dev.to/renolu/everroom-treats-memory-as-something-a-source-has-to-earn-5d6e</link>
      <guid>https://dev.to/renolu/everroom-treats-memory-as-something-a-source-has-to-earn-5d6e</guid>
      <description>&lt;p&gt;My reading of the EverRoom README is that one of its key design decisions concerns what the workspace declines to remember. The project describes itself as a local-first personal context workspace for files, conversations, memory, and AI agents, yet much of its documentation explains what a source goes through before it earns a place in long-term knowledge. The README states the thesis directly: context "should be assembled from evidence, scoped to a place of work, and made visible enough for a person to govern."&lt;/p&gt;

&lt;p&gt;Status comes first. The README marks Everroom as under active development, names macOS as the current development target, and warns that APIs, storage schemas, and agent contracts may change while the first complete local workflow is being finished. Read everything below as a description of a direction and a partially built system, not a finished product.&lt;/p&gt;

&lt;h2&gt;
  
  
  Memory as a routing outcome
&lt;/h2&gt;

&lt;p&gt;The README positions the project against a specific pattern. It says Everroom is not intended to be "another chat client, a thin RAG screen, or a notebook that quietly accumulates unreviewed summaries." My reading is that the section on how a Room works is where that position becomes concrete. Sources are linked to a Room and kept with stable identity and version history. Routing and evidence checks then decide whether a piece of material becomes a Room wiki page, an entity candidate, a memory document, or only a link.&lt;/p&gt;

&lt;p&gt;That final option carries the idea. A source can sit in a Room, attached and traceable, without being turned into permanent memory. The README describes the goal as a workspace that "can become more useful over time without turning every source into permanent memory."&lt;/p&gt;

&lt;p&gt;The product model table draws the same lines. Evidence is versioned, addressable source material with positions and provenance, and the README says it protects "the difference between a source and a model's interpretation." Knowledge covers wiki pages, entities, links, and route decisions built from that evidence. Memory is conversation capture plus layered MemoryCore derivations labeled L0-L3, listed as having a visible lifecycle.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Room draws the boundary
&lt;/h2&gt;

&lt;p&gt;A Context Room is the working surface for a project, person, topic, or ongoing responsibility, and the README contrasts it with "a global prompt dump." When an Agent handles a request, it receives only the Room-scoped tools and documents needed for that request. Knowledge tools resolve the current Room or session before reading wiki pages, sources, or materials. According to the README, agents do not receive a global unbounded corpus by default.&lt;/p&gt;

&lt;p&gt;The loop is meant to close on itself. Document changes are committed through the document kernel, recorded as operations, and sent back through the same ingest path. The README calls the loop "deliberately reversible": a generated summary is useful only when a person can inspect where it came from, correct it, and let the correction flow back into the next task.&lt;/p&gt;

&lt;h2&gt;
  
  
  Engineering notes along the same line
&lt;/h2&gt;

&lt;p&gt;Several implementation notes in the README read to me as the governance idea applied at the storage and process level.&lt;/p&gt;

&lt;p&gt;The ingest layer identifies and normalizes a source once, then fans it out to Knowledge, Memory, or Room links according to a recorded policy snapshot. Original files and parsed Markdown have one storage owner, and downstream systems keep stable references, hashes, and provenance instead of copying the source into several databases.&lt;/p&gt;

&lt;p&gt;Document edits go through a transactional commit core and outbox. Knowledge and Memory fan-out happens after the authoritative document version is committed, and the README says this means an external service failure cannot corrupt the document.&lt;/p&gt;

&lt;p&gt;Connector calls are prepared against real Action Schemas and real connections before execution. Tokens remain in trusted processes, and destructive or externally visible actions are designed to require approval.&lt;/p&gt;

&lt;p&gt;The README also lists explicit fallback states for the fake Agent runtime, disabled MemoryCore, unavailable connectors, and model failures, with the stated aim that a missing optional service should not make local documents inaccessible.&lt;/p&gt;

&lt;p&gt;The desktop uses Electron 39 and React, with local storage on SQLite WAL, Drizzle ORM, FTS5, and content-addressed objects.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the main branch holds now
&lt;/h2&gt;

&lt;p&gt;The README says the main branch contains the first integrated product loop, and its status table separates "Available" from "Available, evolving." The desktop workspace, the local gateway, and agent sessions are marked available. Evidence and ingest, Knowledge Rooms, Context Docs, Reality Perception (user-triggered microphone and system-audio capture with transcription), agent work management, and files and understanding carry the evolving label. Memory is available when enabled. Connectors sit at "Foundation available," with provider coverage still expanding.&lt;/p&gt;

&lt;p&gt;Some features require optional local services or model credentials, though the README says the desktop can still start with the isolated development runtime. The prerequisites list macOS, Node.js 22 or newer, and pnpm 11.15.1.&lt;/p&gt;

&lt;p&gt;The README also names what the first release does not begin with: continuous screen recording, an autonomous multi-agent swarm, enterprise administration, or mandatory cloud synchronization. The open question for me is how the "only a link" route behaves once a Room fills with a real project's worth of material, and the project's own status note says the complete workflow around it is still being finished.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/NxcoreAI/EverRoom" rel="noopener noreferrer"&gt;https://github.com/NxcoreAI/EverRoom&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Curated by &lt;a href="https://www.agentpalisade.com" rel="noopener noreferrer"&gt;Agent Palisade&lt;/a&gt; — practical AI for small and mid-sized businesses.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>memory</category>
      <category>typescript</category>
    </item>
    <item>
      <title>phone-harness gives your agent a real phone, while its README leaves guardrails unspecified</title>
      <dc:creator>Reno Lu</dc:creator>
      <pubDate>Mon, 12 Oct 2026 21:28:32 +0000</pubDate>
      <link>https://dev.to/renolu/phone-harness-gives-your-agent-a-real-phone-while-its-readme-leaves-guardrails-unspecified-1n0p</link>
      <guid>https://dev.to/renolu/phone-harness-gives-your-agent-a-real-phone-while-its-readme-leaves-guardrails-unspecified-1n0p</guid>
      <description>&lt;p&gt;My reading of the phone-harness README is that the question of trust rests on a human responsibility it names in one line of the Limits section: "Connecting the phone is always the user's job." Once you make that connection, the agent drives. The project connects Claude Code, Codex, or any agent to your real phone, and the task in the README's Demo section is "Buy me a Waymo to Delah Coffee from my current location." That is an agent asked to pay for something. If you run agents for a living, the thing to check is what sits between the agent and that purchase. The README describes setup steps you perform with your own hands, but does not say they constrain later actions.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the agent gets
&lt;/h2&gt;

&lt;p&gt;The README says the agent "sees the screen, taps, types, and reads the result." It claims no jailbreak, no Xcode, and nothing installed on the phone. Control runs through the Mac's iPhone Mirroring window on iPhone and through adb on Android.&lt;/p&gt;

&lt;p&gt;On iPhone, iPhone Mirroring renders the phone as a Mac window and forwards mouse and keyboard as touches. The harness captures that window, runs OCR on it with Apple's Vision framework to get text with tap-ready coordinates, and posts HID-level events for taps, swipes, and typing.&lt;/p&gt;

&lt;p&gt;On Android, adb is the transport. &lt;code&gt;screencap&lt;/code&gt; is the capture, the phone's accessibility tree is the text source, and &lt;code&gt;input&lt;/code&gt; is the hands. The README says this works over USB or Wi-Fi, with no window needed.&lt;/p&gt;

&lt;p&gt;The same helpers work on both platforms, and &lt;code&gt;phone-harness config set platform ios|android&lt;/code&gt; picks the default. The README's usage example looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;phone-harness &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="no"&gt;PY&lt;/span&gt;&lt;span class="sh"&gt;'
open_app("Notes")
tap_text("New Note")
type_text("hello from the harness")
print([o["text"] for o in ocr()][:10])
&lt;/span&gt;&lt;span class="no"&gt;PY
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Helpers are pre-imported. The README points to SKILL.md as the agent's day-to-day guide and to helpers.py for the full list. I have not read either file for this piece.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where the human stays in the loop
&lt;/h2&gt;

&lt;p&gt;Setup is itself delegated to an agent. You paste a prompt into Claude Code or Codex telling it to clone the repo into &lt;code&gt;~/.phone-harness&lt;/code&gt;, read &lt;code&gt;install.md&lt;/code&gt; first, install it so &lt;code&gt;phone-harness&lt;/code&gt; is a command on your PATH, register it as an agent skill named phone-harness using &lt;code&gt;phone-harness skill&lt;/code&gt; as the body, then read &lt;code&gt;onboarding.md&lt;/code&gt; and walk you through it. The agent installs the tool that will later drive your phone. That ordering deserves a look before you paste anything.&lt;/p&gt;

&lt;p&gt;What the README leaves to you during setup are the pairing and permission steps. The agent asks which phone is your default and walks you through "the parts that need your hands": pairing iPhone Mirroring and granting Accessibility and Screen Recording, or turning on Android developer options and approving adb. &lt;code&gt;phone-harness --doctor&lt;/code&gt; checks the chain.&lt;/p&gt;

&lt;p&gt;The Limits section lists a few more points where a person has to act or where the harness falls short. Unlocking the iPhone pauses mirroring, and a PIN-locked Android needs the user. OCR sees text, not icons, so unlabeled controls need a screenshot and a vision-capable model. There is no multi-touch and no camera or Face ID flows, and DRM video renders black. The README lists these under Limits and does not present them as safety features, and neither would I.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the README does not cover
&lt;/h2&gt;

&lt;p&gt;For a tool whose Demo section asks an agent to buy a Waymo ride, the README says nothing about several things an operator would want to know. It does not mention confirmation prompts before purchases or messages, an allowlist of apps, a log of what the agent tapped, a dry-run mode, or a way to cap what a connected agent can do. Whether any of that exists in the code or in SKILL.md, the README does not say.&lt;/p&gt;

&lt;p&gt;It also advertises Phone Harness Cloud, described as hosted iPhones and Androids "with stealth, real numbers, 2FA, and unlimited devices." The README gives no further detail on how that service works.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I would try it
&lt;/h2&gt;

&lt;p&gt;Given what the README does say, the practical move is to limit the exposure yourself. Use a spare device or a secondary account rather than the phone that holds your payment methods and primary email, since the README does not describe app allowlists or action-level controls. Run &lt;code&gt;phone-harness --doctor&lt;/code&gt; to confirm the chain, then start with the kind of task in the usage example, opening Notes and reading text back, before handing it anything that costs money. On the iPhone path the phone is rendered as a window on your Mac, so you can keep that window in view while the agent works.&lt;/p&gt;

&lt;p&gt;The author describes phone-harness as free and maintained in their own time, with sponsorship as the way to keep it that way.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/ShawnPana/phone-harness" rel="noopener noreferrer"&gt;https://github.com/ShawnPana/phone-harness&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Curated by &lt;a href="https://www.agentpalisade.com" rel="noopener noreferrer"&gt;Agent Palisade&lt;/a&gt; — practical AI for small and mid-sized businesses.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>agents</category>
      <category>automation</category>
      <category>mobile</category>
      <category>security</category>
    </item>
    <item>
      <title>delivery-harness lets the rule engine set the payout and keeps the model advisory</title>
      <dc:creator>Reno Lu</dc:creator>
      <pubDate>Sun, 11 Oct 2026 17:50:53 +0000</pubDate>
      <link>https://dev.to/renolu/delivery-harness-lets-the-rule-engine-set-the-payout-and-keeps-the-model-advisory-5hl3</link>
      <guid>https://dev.to/renolu/delivery-harness-lets-the-rule-engine-set-the-payout-and-keeps-the-model-advisory-5hl3</guid>
      <description>&lt;p&gt;One short line in the delivery-harness README captures a central design decision: compensation amounts are decided by the rule engine, never by the model. For a project that calls itself an AI harness, much of what the README describes reads like a fence around the model, keeping its output advisory while deterministic code holds the numbers.&lt;/p&gt;

&lt;p&gt;Scope comes first. The README calls the repository an educational MVP and says it is not a production-ready delivery or compensation system. Its business tools return synthetic data, state is mostly held in memory, and there is no authentication, authorization, tenant isolation, or rate limiting. The authors warn against exposing it to the public internet, submitting real personal or order data, or executing compensation decisions without authentication, policy enforcement, and human approval. I read it as a reference implementation to study and run locally.&lt;/p&gt;

&lt;h2&gt;
  
  
  What stays deterministic
&lt;/h2&gt;

&lt;p&gt;The README lists two synchronous workflows: abnormal-order analysis and compensation suggestion. Around them sit four locally registered tools covering orders, ETA, station capacity, and compensation rules, and each tool derives its result from its arguments. Synthetic orders vary by order ID across six named scenarios, one of which is delivered on time.&lt;/p&gt;

&lt;p&gt;The README also describes a deterministic timeline that splits an order into dispatch wait, to-shop, merchant prep, and on-road legs. According to the README, that timeline is reported alongside the model's answer "as the baseline it has to beat."&lt;br&gt;
On the compensation side, the rule engine owns the amount, and the README points to an architecture decision record for that choice. For &lt;code&gt;DAMAGED&lt;/code&gt; complaints, the caller passes a &lt;code&gt;damage_level&lt;/code&gt; of &lt;code&gt;FULL&lt;/code&gt; or &lt;code&gt;PARTIAL&lt;/code&gt;; without evidence, the policy returns zero and requires manual review. The property &lt;code&gt;harness.compensation.approval-threshold&lt;/code&gt; defaults to &lt;code&gt;10.0&lt;/code&gt;, and payouts at or above that value require a human approver.&lt;/p&gt;

&lt;p&gt;Failure handling follows the same split. When a completed workflow has an unavailable optional dependency, the README says the run is reported as &lt;code&gt;DEGRADED&lt;/code&gt;, the deterministic result remains available, and the affected step is recorded as failed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where the model sits
&lt;/h2&gt;

&lt;p&gt;The model is reached through an OpenAI-compatible chat-completions client behind an interface, which the README says makes the workflows testable without a model. The default &lt;code&gt;HARNESS_LLM_ENDPOINT&lt;/code&gt; points at localhost on port 11434, &lt;code&gt;qwen2.5:7b&lt;/code&gt; is the example model, and the Compose port binds to &lt;code&gt;127.0.0.1&lt;/code&gt; only.&lt;/p&gt;

&lt;p&gt;Knowledge retrieval is in-memory and lexical, scored by query-term overlap, with a rule and case base seeded at startup. The README flags ingested documents as a prompt-injection trust boundary, a habit worth copying into any harness that lets operators add knowledge.&lt;/p&gt;

&lt;p&gt;The fields &lt;code&gt;needs_human_review&lt;/code&gt; and &lt;code&gt;approval_required&lt;/code&gt; are derived from guardrail outcome, parse success, model confidence, and baseline agreement. The README calls this reporting, not authority, and says nothing here executes a payment. Its advisory checker detects a small set of phrases and amount conditions, and the README states that it is not a policy engine.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tests and evaluation
&lt;/h2&gt;

&lt;p&gt;The suite has 112 tests, and both workflows run end to end against a stub model transport, so no test needs Ollama or a Docker daemon. The README names &lt;code&gt;buildsDifferentEvidenceForDifferentOrders&lt;/code&gt; as the load-bearing test. It asserts that two different orders produce two different prompts, which the README calls the property every other measurement depends on.&lt;/p&gt;

&lt;p&gt;Evaluation runs live in memory, and scorers report "not measured" instead of a perfect score when a case declares no expectation. The README describes the scorers as lexical and calibrated to catch regressions, not to certify quality, and says six synthetic cases cannot establish accuracy. It adds that &lt;code&gt;modelVersion&lt;/code&gt; and &lt;code&gt;promptVersion&lt;/code&gt; on a run are metadata labels that do not yet select a model or change the workflow prompt.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is not implemented
&lt;/h2&gt;

&lt;p&gt;The README also lists capabilities the project does not claim as implemented, a list worth checking if you are sketching an AI layer over an operational process like refunds or dispatch exceptions. It names autonomous agent planning, production tool integrations, durable persistence, vector embeddings and Milvus RAG, authentication, rate limiting, distributed tracing, and automatic compensation execution. The known limitations add that rules, documents, cases, evaluations, feedback, metrics, and traces are lost on restart, and that retrieval splits CJK text on whitespace and punctuation rather than segmenting it.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/diudiu-tech/delivery-harness" rel="noopener noreferrer"&gt;https://github.com/diudiu-tech/delivery-harness&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Curated by &lt;a href="https://www.agentpalisade.com" rel="noopener noreferrer"&gt;Agent Palisade&lt;/a&gt; — practical AI for small and mid-sized businesses.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>java</category>
      <category>guardrails</category>
    </item>
    <item>
      <title>What chat-on-steroids Grants ChatGPT on Your Machine</title>
      <dc:creator>Reno Lu</dc:creator>
      <pubDate>Sat, 10 Oct 2026 17:32:23 +0000</pubDate>
      <link>https://dev.to/renolu/what-chat-on-steroids-grants-chatgpt-on-your-machine-52c7</link>
      <guid>https://dev.to/renolu/what-chat-on-steroids-grants-chatgpt-on-your-machine-52c7</guid>
      <description>&lt;p&gt;My reading of the chat-on-steroids README is that the sentence a security reviewer needs sits inside a collapsed installation notes section: "Shell commands run with your normal user privileges." The capability pitch leads the page, and several of the controls fit in a few bullet points further down. Anyone deciding whether to install this should read the feature list with that privilege line in mind.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the app hands to a ChatGPT conversation
&lt;/h2&gt;

&lt;p&gt;The README describes a desktop app, which it abbreviates as CoS, that works through a ChatGPT conversation. According to the README, you can "Let ChatGPT read and edit files, run tests, keep terminals open and use your desktop," and follow the tool results as they arrive. A companion extension loads into Chrome as an unpacked extension, and the README says pairing is automatic.&lt;/p&gt;

&lt;p&gt;The README then goes past a single session. You can split independent jobs across workers and bring their results back, and "Workers keep their context, so the next task can pick up where they left off." Goal "follows unfinished work," Loop "keeps working within your brief," and Compact &amp;amp; Resume carries the session and worker history into a fresh chat. You can send a correction while work runs.&lt;/p&gt;

&lt;p&gt;Read as an access inventory, the documented features include file reads and edits, open terminals, desktop use, a companion browser extension, and workers that keep context between tasks.&lt;/p&gt;

&lt;p&gt;The README also makes a usage claim in bold on the page: it "Uses your ChatGPT conversation. Does not consume Codex quota." It adds that your account's model availability, usage and context limits still apply. That is the project's statement, and nothing in the README lets me check it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The controls the README documents
&lt;/h2&gt;

&lt;p&gt;Setup begins with approving your project folder under Settings &amp;gt; Workspace. The installation notes say to "choose your approved folders and review capabilities before connecting," and one screenshot is captioned "Folder and capability settings." The README does not spell out how folder approval is enforced.&lt;/p&gt;

&lt;p&gt;Per the README, fresh installs enable Core capabilities and two workers, and Windows also enables Desktop permissions. A Windows user who clicks through setup therefore starts with Desktop permissions on. The README does not say that macOS or Linux installs enable them by default.&lt;/p&gt;

&lt;p&gt;Then comes the privilege line. Shell commands run with your normal user privileges. The README does not describe a sandbox for those commands, a per-command approval step, an allowlist, or an audit log. The project may still have some of these. The footer links to a SECURITY.md file, and since its contents are not in the README, I will not describe them here.&lt;/p&gt;

&lt;p&gt;Distribution trust is a gap the README raises itself. Under an "Unsigned beta" note, it says Windows is not publisher-signed and macOS is unsigned and unnotarized. It tells you to verify the package against the release checksums. On Linux it requires a Secret Service keyring and recommends the DEB, and it notes that when unprivileged user namespaces are disabled, the AppImage launcher can fall back to &lt;code&gt;--no-sandbox&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The listed requirements include a ChatGPT account or workspace with Developer mode and custom MCP apps, plus Chrome 116 or newer or a current Edge. The second setup step has you connect Core through Settings &amp;gt; Setup and add it in ChatGPT's Developer mode, and it links to a tunnel setup guide. The README itself does not explain what the tunnel exposes or how it is authenticated.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I would approach an evaluation
&lt;/h2&gt;

&lt;p&gt;If I were reviewing chat-on-steroids for a team, I would treat its shell-command capability as operating with my local user privileges, because that is what the privilege note says. Starting from the README's own notes, my checklist would look like this. Verify each package against the release checksums before running it. Approve only the project folder needed for the evaluation. Review capabilities before connecting, not after. On Windows, decide on purpose whether Desktop permissions should stay enabled, and consider whether two workers are needed at all.&lt;/p&gt;

&lt;p&gt;I would read the linked tunnel guide and SECURITY.md before connecting.&lt;/p&gt;

&lt;p&gt;Updates add their own routine. The README says that after updating you should reload the companion extension and refresh the CoS apps in ChatGPT when prompted.&lt;/p&gt;

&lt;p&gt;The project is MIT licensed, and its README states it is not affiliated with or endorsed by OpenAI.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/totec448-spec/chat-on-steroids" rel="noopener noreferrer"&gt;https://github.com/totec448-spec/chat-on-steroids&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Curated by &lt;a href="https://www.agentpalisade.com" rel="noopener noreferrer"&gt;Agent Palisade&lt;/a&gt; — practical AI for small and mid-sized businesses.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>mcp</category>
      <category>security</category>
      <category>chatgpt</category>
      <category>agents</category>
    </item>
    <item>
      <title>qwen-audio-agent keeps the voice talking while your coding agent works</title>
      <dc:creator>Reno Lu</dc:creator>
      <pubDate>Fri, 09 Oct 2026 18:35:03 +0000</pubDate>
      <link>https://dev.to/renolu/qwen-audio-agent-keeps-the-voice-talking-while-your-coding-agent-works-3p1p</link>
      <guid>https://dev.to/renolu/qwen-audio-agent-keeps-the-voice-talking-while-your-coding-agent-works-3p1p</guid>
      <description>&lt;p&gt;Reading the qwen-audio-agent README, what stands out is the architecture: a realtime voice layer sits in front of an agent you may already run, such as Qwen Code, OpenCode, Codex or Claude Code, keeps the spoken conversation going, and hands tool work to that backend. The README frames the goal as presence: conversation should not grind to a halt because the Agent is looking something up, calling a tool, or working on a task.&lt;/p&gt;

&lt;h2&gt;
  
  
  Two lanes, one assistant
&lt;/h2&gt;

&lt;p&gt;The architecture section describes the routing. Questions that can be answered directly are answered immediately; when tools or sustained processing are needed, the task is delegated to the backend Agent. The README adds that throughout, the user always faces the same assistant.&lt;/p&gt;

&lt;p&gt;The feature list fills in the concurrency. Frontend conversation and background tasks run in parallel, and you can ask about progress or cancel at any time. You can create multiple independent tasks that the backend Agent executes asynchronously, with continuous status tracking. When a task completes, its result returns to the current conversation, where you can ask follow-up questions or request modifications. The voice side is described as full-duplex realtime interaction with natural interruption and sustained multi-turn conversation.&lt;/p&gt;

&lt;p&gt;The README calls this a "foreground conversation + background task" design.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bring your own backend
&lt;/h2&gt;

&lt;p&gt;The backend side is where I would spend evaluation time. The README says integration reuses your preferred Agent's model configuration, tools, MCP, Skills, and authentication. Backends connect over ACP, and the support table lists how each one gets there: native ACP for Qwen Code, OpenCode, Qoder, MiniMax Code, Kimi Code, Hermes, CodeBuddy and DeepSeek; a built-in ACP bridge for OpenClaw; and an external ACP adapter for Codex, Claude Code and Pi.&lt;/p&gt;

&lt;p&gt;Each row carries a rating. According to the README, five stars mean a thoroughly tested recommended integration, while four stars indicate active development or not yet fully verified. Codex, Claude Code, Pi, DeepSeek, MiniMax Code, Hermes and CodeBuddy sit at four stars today, so if your team works in one of those, read the backend documentation before planning around it. There is also a "None" row for frontend-only mode, which needs no config.&lt;/p&gt;

&lt;p&gt;The News section records that backend Agents were unified under the ACP architecture in v0.9.0, when the project was open-sourced. The v2.0.0 entry says the next major version is under active development, with ongoing work on the Agent architecture, task lifecycle, multimodal input, memory, and extensibility.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting it running
&lt;/h2&gt;

&lt;p&gt;The README asks for Node.js 22.22.2+ or 24.15.0+ with npm 10+, and recommends the global npm install:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; qwen-audio-agent
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then &lt;code&gt;qwenaudio config&lt;/code&gt; creates your config. The example sets &lt;code&gt;DASHSCOPE_API_KEY&lt;/code&gt;, &lt;code&gt;QWEN_AUDIO_REALTIME_MODEL&lt;/code&gt; for the voice frontend, &lt;code&gt;AGENT_PROTOCOL&lt;/code&gt; for the backend (leave it empty or set it to none for frontend-only mode), and an optional &lt;code&gt;QWEN_AUDIO_AGENT_BACKEND_MODEL&lt;/code&gt;. The comment on that last variable says explicit values use standard ACP, while an empty value reuses the Agent config.&lt;/p&gt;

&lt;p&gt;You start the Gateway in one terminal with &lt;code&gt;qwenaudio&lt;/code&gt; and the TUI in another with &lt;code&gt;qwenaudio tui&lt;/code&gt;, or use &lt;code&gt;qwenaudio webui&lt;/code&gt; for the browser UI. DashScope realtime voice is the default. The README lists Speech-to-Speech and ModelBest MiniCPM-o 4.5 as alternatives, with local or hosted endpoints selected through their service URL, and the v1.3.0 note describes the speech-to-speech integration as supporting fully local VAD, STT, LLM, and TTS.&lt;/p&gt;

&lt;p&gt;A desktop app is also available. It provides a persistent floating voice orb with a built-in Gateway, automatic idle sleep, local voice wake, and customizable appearance, and the README includes build scripts for macOS, Windows and Linux.&lt;/p&gt;

&lt;h2&gt;
  
  
  Beyond the desktop
&lt;/h2&gt;

&lt;p&gt;The README says the current framework focuses on desktop productivity, then argues the same split can expand to other scenarios. Its table marks a smart cockpit example and the VoiceMem and LightRAG integrations as available, an AI Passport hardware card as experimental and currently half-duplex only, customer support and embodied intelligence as planned, and a livestream assistant as exploratory.&lt;/p&gt;

&lt;p&gt;The smart-cockpit reference scenario ships in the repository, and the README describes its cockpit UI, small A2A Agent, and cockpit service as customer-replaceable examples. LightRAG connects through the generic &lt;code&gt;KnowledgeProvider&lt;/code&gt;, and the README notes that the core npm package includes neither LightRAG nor VoiceMem Python code or dependencies. Lightweight Markdown memory remains the default.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/QwenAudio/qwen-audio-agent" rel="noopener noreferrer"&gt;https://github.com/QwenAudio/qwen-audio-agent&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Curated by &lt;a href="https://www.agentpalisade.com" rel="noopener noreferrer"&gt;Agent Palisade&lt;/a&gt; — practical AI for small and mid-sized businesses.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>voiceai</category>
      <category>agents</category>
      <category>acp</category>
      <category>developertools</category>
    </item>
  </channel>
</rss>
