<?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: wei feng</title>
    <description>The latest articles on DEV Community by wei feng (@wei_feng_502a1d98012c10be).</description>
    <link>https://dev.to/wei_feng_502a1d98012c10be</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%2F3962298%2Ff79638ea-f04e-4473-b897-e9a8b3a54b74.png</url>
      <title>DEV Community: wei feng</title>
      <link>https://dev.to/wei_feng_502a1d98012c10be</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/wei_feng_502a1d98012c10be"/>
    <language>en</language>
    <item>
      <title>A Custom AI Coding Tool Built for the Game Industry</title>
      <dc:creator>wei feng</dc:creator>
      <pubDate>Sun, 14 Jun 2026 10:13:57 +0000</pubDate>
      <link>https://dev.to/wei_feng_502a1d98012c10be/a-custom-ai-coding-tool-built-for-the-game-industry-4lhn</link>
      <guid>https://dev.to/wei_feng_502a1d98012c10be/a-custom-ai-coding-tool-built-for-the-game-industry-4lhn</guid>
      <description>&lt;p&gt;I have spent more than 15 years in the game industry. With the rapid progress of large language models over the past couple of years, AI has become capable enough to write code largely on its own. The role of the programmer is increasingly shifting toward feeding requirements to the AI, validating its output, and orchestrating agents.&lt;/p&gt;

&lt;p&gt;But code is only a small part of a game engine. Far more of the work lives in assets and pipelines. So I wanted to take tools like CodeX and Claude Code and deeply customize them for game development — teaching the model what a material is, what a blueprint is, and how to handle terrain, sky, UI, skeletal animation, packaging, performance optimization, and more. To that end, I heavily refactored the AI coding tool I use day to day and built in a large number of game development workflows.&lt;/p&gt;

&lt;p&gt;If you're interested, take a look: &lt;a href="https://github.com/wellingfeng/FreeUltraCode" rel="noopener noreferrer"&gt;https://github.com/wellingfeng/FreeUltraCode&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;One-click generation of Unreal Engine UMG interfaces.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa9oczkm2gulzmklt5yse.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa9oczkm2gulzmklt5yse.jpg" alt=" " width="799" height="347"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;One-click model generation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzlnye7rejpi8i9pijzq7.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzlnye7rejpi8i9pijzq7.jpg" alt=" " width="798" height="386"&gt;&lt;/a&gt;&lt;br&gt;
It already integrates image generation, 3D model generation, 2D sprite animation, sprite sheets, audio, skeletal rigging, video, and more — unifying the management of every kind of asset a game might need through a coding-focused large language model.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd6ykcl677nf5ii5g2ke6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd6ykcl677nf5ii5g2ke6.png" alt=" " width="799" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>FreeUltraCode: An AI Coding Tool with 20+ Free LLM Channels</title>
      <dc:creator>wei feng</dc:creator>
      <pubDate>Sat, 06 Jun 2026 01:05:21 +0000</pubDate>
      <link>https://dev.to/wei_feng_502a1d98012c10be/freeultracode-an-ai-coding-tool-with-20-free-llm-channels-53mi</link>
      <guid>https://dev.to/wei_feng_502a1d98012c10be/freeultracode-an-ai-coding-tool-with-20-free-llm-channels-53mi</guid>
      <description>&lt;p&gt;I've been a game developer for over a decade — Unity C#, Unreal C++, a few custom engines. Last year I started using Claude Code and Codex CLI heavily. Not for "write me a sorting function" stuff. I'm talking about having it read an entire rendering pipeline, modify logic across a dozen files, add physics debug tooling, fix multi-threaded race conditions.&lt;/p&gt;

&lt;p&gt;Claude Code is legit. It reads the project structure first, traces the call graph, then makes changes. Runs the build, catches errors, debugs itself, iterates until it passes. Codex is sharp too — especially when GCC spits out a wall of C++ template errors, it translates the noise into human-readable diagnostics.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;But the bills are brutal.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Dynamic Workflows Are Powerful. So Is the Bill.
&lt;/h2&gt;

&lt;p&gt;Let me explain Claude Code's Dynamic Workflows — they're not a "paid feature." They're a built-in execution system. You write a &lt;code&gt;.js&lt;/code&gt; script using &lt;code&gt;agent()&lt;/code&gt;, &lt;code&gt;parallel()&lt;/code&gt;, &lt;code&gt;pipeline()&lt;/code&gt;, &lt;code&gt;consensus()&lt;/code&gt;, and Claude Code orchestrates the run — sequential, parallel, voting, gating, fully automatic.&lt;/p&gt;

&lt;p&gt;Here's a simple code review workflow:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nf"&gt;parallel&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;
  &lt;span class="nf"&gt;agent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;scan for potential bugs&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
  &lt;span class="nf"&gt;agent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;check for security vulnerabilities&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
  &lt;span class="nf"&gt;agent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;review performance hot spots&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
  &lt;span class="nf"&gt;agent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;assess maintainability&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;span class="p"&gt;]);&lt;/span&gt;
&lt;span class="nf"&gt;consensus&lt;/span&gt;&lt;span class="p"&gt;([...],&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;strategy&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;multi-lens&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Four agents scanning in parallel, one consensus node aggregating votes. Clean.&lt;/p&gt;

&lt;p&gt;But scale this up and it becomes a compute black hole. One parallel block with 5 agents, a pipeline with 3 stages, each stage spawning 5 more — &lt;strong&gt;three levels deep and you've got 75 agents running.&lt;/strong&gt; Each agent makes independent API calls, reads files, reasons, outputs. A single complex refactor can easily spawn dozens or hundreds of agents. Thousands of API calls. One run.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dynamic Workflows themselves don't cost extra.&lt;/strong&gt; But it's a "more agents = more tokens" architecture — cost scales linearly with agent count. Run 100 Claude agents on a major refactor, and the token bill will blow through your monthly budget regardless.&lt;/p&gt;

&lt;p&gt;The real tension: &lt;strong&gt;multi-agent orchestration is essential, but paying premium rates for an entire agent army isn't sustainable.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Free Models Are Everywhere — But Scattered
&lt;/h2&gt;

&lt;p&gt;I've got API keys for these free/low-cost channels:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Models&lt;/strong&gt; — free playground access with rate limits, needs a GitHub token (&lt;code&gt;models:read&lt;/code&gt; scope)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hugging Face Router&lt;/strong&gt; — free monthly Inference Provider credits&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SambaNova Cloud&lt;/strong&gt; — Free Tier, no payment method required, daily request/token caps&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Together AI&lt;/strong&gt; — free trial credits on signup&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Groq&lt;/strong&gt; — free tier, genuinely fast inference&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gemini&lt;/strong&gt; — Google free tier&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DeepSeek / Kimi&lt;/strong&gt; — dirt cheap&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;NVIDIA NIM / OpenRouter / Mistral / Cerebras / Fireworks / Z.ai&lt;/strong&gt; — each with free or trial access&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LLM7 / Kilo Gateway&lt;/strong&gt; — keyless channels, just works&lt;/li&gt;
&lt;li&gt;Local: &lt;strong&gt;Ollama / LM Studio / llama.cpp&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Plenty of options. But every single one requires separate registration, key management, and environment variables. Want to try Groq today? Dig through emails for the key. Want SambaNova's DeepSeek-V3.1 tomorrow? Another round of setup.&lt;/p&gt;

&lt;p&gt;And here's the real problem: &lt;strong&gt;having a cheap model doesn't mean it writes good code.&lt;/strong&gt; Free models fall short on single-pass quality compared to Claude Code or Codex — shallower reasoning, context drift on long files, sloppy on complex refactors. That's why most people hoard free keys but still pay Claude at the end of the month.&lt;/p&gt;

&lt;p&gt;What I wanted to solve: &lt;strong&gt;use free/cheap models, orchestrated through workflows, to produce code quality on par with Claude Code and Codex.&lt;/strong&gt; One cheap model can't compete. But put five of them on an assembly line — planning, executing, reviewing, cross-verifying — and the quality gap closes through structure and collaboration.&lt;/p&gt;

&lt;h2&gt;
  
  
  FreeUltraCode: One Dropdown, All Channels
&lt;/h2&gt;

&lt;p&gt;FreeUltraCode is a local desktop app (Tauri 2 + Rust, &lt;a href="https://github.com/wellingfeng/FreeUltraCode" rel="noopener noreferrer"&gt;source on GitHub&lt;/a&gt;). What it does is dead simple:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A dropdown menu to switch channels.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The Channel selector at the bottom lists every channel you've configured. Pick one, conversations flow through it. Setup takes three steps: select channel → click "Register" to get a key from the provider's site → paste it back. Status turns green. Done.&lt;/p&gt;

&lt;p&gt;No proxy/VPN required, no registration handled for you, no keys stored on any server. All config, chat history, and API keys stay on your machine.&lt;/p&gt;

&lt;p&gt;Crucially: &lt;strong&gt;switch channels mid-session, context is preserved.&lt;/strong&gt; File references, intermediate conclusions, tool outputs — all carried over when you switch. No need to re-feed context.&lt;/p&gt;

&lt;h2&gt;
  
  
  Real-World Usage (Game Dev)
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Task: "Add a climbing system to this third-person character controller"

Step 1 → Switch to GitHub Models / Groq
  Scan project structure, locate CharacterMovement, Input, Animation layers
  Read relevant code, list existing interfaces and what needs changing
  (free models handle this fine)

Step 2 → Switch to Claude Code / Codex
  Core logic — add Climbing state to the state machine,
  change physics queries from Raycast → CapsuleTrace,
  add BlendSpace to the animation blueprint
  (premium models for architectural decisions)

Step 3 → Switch to Together AI / DeepSeek
  Write tests, run lint, generate comments, draft commit messages
  (high volume, low complexity — free channels in parallel)

Step 4 → Switch back to Claude Code
  Final review — walk through all changes, check edge cases,
  confirm network sync logic isn't missing
  (quality gate needs a reliable model)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Free Auto: Let the Tool Handle Channel Switching
&lt;/h2&gt;

&lt;p&gt;Manual switching works when you know which model fits the task. Sometimes you don't want to think about it. CI fails a linting task at 2 AM — you just want any free channel to fix it and stop bothering you.&lt;/p&gt;

&lt;p&gt;That's where the &lt;strong&gt;Auto channel&lt;/strong&gt; comes in (&lt;code&gt;freecc:auto&lt;/code&gt;, first option in the dropdown). It's not a fixed upstream — it's a &lt;strong&gt;smart router&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Configure keys for however many free channels you want&lt;/li&gt;
&lt;li&gt;Switch to Auto, send requests&lt;/li&gt;
&lt;li&gt;The proxy cycles through channels — first one to return a valid response wins&lt;/li&gt;
&lt;li&gt;Hit a 429 (rate limit)? Auto-skip, 30-second cooldown before retry&lt;/li&gt;
&lt;li&gt;Hit a 5xx (upstream down)? Mark as failed, skip for this round&lt;/li&gt;
&lt;li&gt;All channels exhausted? Returns 503 with a failure log showing what died and why&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Connection timeouts are budgeted&lt;/strong&gt; — no hanging on a single slow upstream. Channels that succeed are naturally prioritized (clean cooldown state); problematic ones get pushed to the back.&lt;/p&gt;

&lt;p&gt;Net effect: fire a request, get a result, channel switching is invisible. Configure 8 channels, and Auto becomes an 8-channel failover pool — one goes down, the next picks up.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Auto can also lock a model.&lt;/strong&gt; Set a model override like &lt;code&gt;z-ai/glm-5.1&lt;/code&gt; in Settings, and regardless of whether Auto routes to Groq, Together, or DeepSeek, they'll all be asked to run the same model. Useful when you know what model quality you want.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Real scenario (game dev):

2 AM. CI is red. A lint error from a Claude Code session.
You're asleep, but FreeUltraCode's scheduled task is still running.

Auto channel attempts:
  GitHub Models → 429, skip, 30s cooldown
  Groq → works, fixes it in minutes
  (DeepSeek, Together, HuggingFace never even get touched)

Wake up. CI is green. Commit is done.
You don't know whether Groq or DeepSeek fixed it.
You don't need to know.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Local Proxy: No Global Config Changes, Multiple Lines Simultaneously
&lt;/h2&gt;

&lt;p&gt;Tools like cc-switch solve the same problem, but they do it by modifying Claude Code's global environment variables — switch channels, change &lt;code&gt;ANTHROPIC_BASE_URL&lt;/code&gt;. That means &lt;strong&gt;you can only use one channel at a time&lt;/strong&gt;, and it affects everything globally. Open a second terminal window, same channel applies.&lt;/p&gt;

&lt;p&gt;FreeUltraCode takes a different path. It runs a Rust-based local reverse proxy on &lt;code&gt;127.0.0.1&lt;/code&gt;, routing by port path. Claude Code doesn't need any config changes — it thinks it's still talking to Anthropic's official API:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;Claude Code → 127.0.0.1:8766/ch/official     → Anthropic official
Claude Code → 127.0.0.1:8766/ch/deepseek     → DeepSeek
Claude Code → 127.0.0.1:8766/ch/kimi         → Kimi
Claude Code → 127.0.0.1:8766/ch/auto         → Free Auto smart routing
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each channel maps to its own port path, no interference. &lt;strong&gt;You can run official Claude, DeepSeek, and Kimi Claude Code sessions all at once.&lt;/strong&gt; The proxy handles Anthropic ↔ OpenAI protocol translation — if the upstream speaks OpenAI (Groq, Together, DeepSeek), the proxy translates; if it natively speaks Anthropic (Kimi, Z.ai), it passes through.&lt;/p&gt;

&lt;p&gt;Even better: &lt;strong&gt;dynamic channel switching within a single Claude Code session.&lt;/strong&gt; Claude Code reads &lt;code&gt;ANTHROPIC_BASE_URL&lt;/code&gt; from the environment on every call — FreeUltraCode's gateway injects this value per-request. Which means:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Round 1:
  DeepSeek scans project structure, finds the issue → cheap

Round 2:
  Switch to Claude official → precise fix

Same session, full context preserved.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No restarting the terminal. No re-feeding file references and intermediate conclusions. DeepSeek for problem identification, Claude for the actual fix — each doing what it's best at, costs under control.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;cc-switch&lt;/th&gt;
&lt;th&gt;FreeUltraCode&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Config approach&lt;/td&gt;
&lt;td&gt;Modify global env vars&lt;/td&gt;
&lt;td&gt;Gateway + port forwarding, no global changes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Multiple simultaneous channels&lt;/td&gt;
&lt;td&gt;❌ One channel at a time&lt;/td&gt;
&lt;td&gt;✅ Different terminals, different channels&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Same-session dynamic switching&lt;/td&gt;
&lt;td&gt;❌ Requires config change + restart&lt;/td&gt;
&lt;td&gt;✅ Dynamic base URL injection per API call&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Protocol translation&lt;/td&gt;
&lt;td&gt;Depends on upstream compatibility&lt;/td&gt;
&lt;td&gt;Rust proxy with built-in Anthropic↔OpenAI translation&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  /ultracode: Cheap Models, Premium Output
&lt;/h2&gt;

&lt;p&gt;This is the core of FreeUltraCode. One-line natural language task, auto-generated execution plan, parallel sub-agents — planning, execution, review, adversarial verification, acceptance gates — the entire pipeline running on your free channels.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;fuc ultracode &lt;span class="s2"&gt;"Move weapon damage calculation from client to server, handle prediction rollback"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Six built-in strategies, auto-selected: classify-and-act, fan-out-and-synthesize, adversarial-verification, generate-and-filter, tournament, loop-until-done.&lt;/p&gt;

&lt;p&gt;The underlying logic: &lt;strong&gt;replace single-model deep reasoning with structured pipelines.&lt;/strong&gt; One cheap model struggling alone → five cheap models working in sequence, cross-reviewing, gating each other. The total cost might still be a fraction of a single Claude invocation.&lt;/p&gt;

&lt;p&gt;Every run logs to &lt;code&gt;.fuc-run/&amp;lt;run-id&amp;gt;/&lt;/code&gt; with a complete audit trail: task ledger, event stream, verdict, final result.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tech Stack
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Layer&lt;/th&gt;
&lt;th&gt;Technology&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Desktop shell&lt;/td&gt;
&lt;td&gt;Tauri 2 + Rust&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Frontend&lt;/td&gt;
&lt;td&gt;React 18 + Vite 5 + TypeScript 5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;State management&lt;/td&gt;
&lt;td&gt;Zustand&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Styling&lt;/td&gt;
&lt;td&gt;Tailwind CSS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Channel proxy&lt;/td&gt;
&lt;td&gt;Rust &lt;code&gt;tiny_http&lt;/code&gt; + &lt;code&gt;ureq&lt;/code&gt;, local reverse proxy, Anthropic ↔ OpenAI protocol translation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Storage&lt;/td&gt;
&lt;td&gt;Fully local, zero server dependencies&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Who This Is For
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Daily Claude Code / Codex users feeling the token bill&lt;/li&gt;
&lt;li&gt;People with keys to multiple free channels but tired of config juggling&lt;/li&gt;
&lt;li&gt;Those who know which tasks can run on cheap models and which need premium, and want granular cost control&lt;/li&gt;
&lt;li&gt;Game/graphics/systems devs — large codebases, heavy compiles, high AI call volume&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Not for casual users who ask a question once in a while. If that's you, just open a terminal and run Claude Code. You don't need a shell on top.&lt;/p&gt;

&lt;h2&gt;
  
  
  Default Models (Partial)
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Channel&lt;/th&gt;
&lt;th&gt;Default Model&lt;/th&gt;
&lt;th&gt;Cost Model&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;GitHub Models&lt;/td&gt;
&lt;td&gt;&lt;code&gt;openai/gpt-4.1-mini&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Free, GitHub token required, rate-limited&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hugging Face Router&lt;/td&gt;
&lt;td&gt;&lt;code&gt;deepseek-ai/DeepSeek-V4-Pro&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Monthly free inference credits&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SambaNova Cloud&lt;/td&gt;
&lt;td&gt;&lt;code&gt;DeepSeek-V3.1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Free Tier, no card, daily caps&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Together AI&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Free credits on signup&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Kilo Gateway&lt;/td&gt;
&lt;td&gt;&lt;code&gt;poolside/laguna-xs.2:free&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;No key, 200 req/hr&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LLM7&lt;/td&gt;
&lt;td&gt;&lt;code&gt;codestral-latest&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;No key, 100 req/hr&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/wellingfeng/FreeUltraCode" rel="noopener noreferrer"&gt;github.com/wellingfeng/FreeUltraCode&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Discord: &lt;a href="https://discord.gg/2C9ptSEFG" rel="noopener noreferrer"&gt;discord.gg/2C9ptSEFG&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;QQ Group: 149523963&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Get Started
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;app
npm &lt;span class="nb"&gt;install
&lt;/span&gt;npm run dev       &lt;span class="c"&gt;# Web → localhost:5173&lt;/span&gt;
npm run desktop   &lt;span class="c"&gt;# Tauri desktop app&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;On Windows, double-click &lt;code&gt;run.bat&lt;/code&gt; in the repo root.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>productivity</category>
      <category>opensource</category>
    </item>
    <item>
      <title>an open-source version Dynamic Workflows</title>
      <dc:creator>wei feng</dc:creator>
      <pubDate>Mon, 01 Jun 2026 08:19:57 +0000</pubDate>
      <link>https://dev.to/wei_feng_502a1d98012c10be/an-open-source-version-dynamic-workflows-3p2d</link>
      <guid>https://dev.to/wei_feng_502a1d98012c10be/an-open-source-version-dynamic-workflows-3p2d</guid>
      <description>&lt;p&gt;Claude Code's Dynamic Workflows Are Expensive，found an open-source version called OpenWorkflows&lt;/p&gt;

&lt;p&gt;I recently upgraded Claude Code to version 4.8 and tried out Dynamic Workflows. I used it to develop a fairly complex feature for migrating a UE4 project to UE5. The quality was genuinely high, but it cost me more than 300 RMB in just one morning. My relay service only gives me a weekly quota of 600 RMB, so it is very easy to burn through the whole quota if I am not careful.&lt;/p&gt;

&lt;p&gt;From what I have read online, Dynamic Workflows uses multi-angle exploration, adversarial validation, and solution voting. In other words, dozens of agents run in parallel for each requirement, challenge each other, and select the best answer. No wonder the output quality is relatively high. Does anyone here understand this mechanism well?&lt;/p&gt;

&lt;p&gt;Since I am on a tight budget, I searched around and found an open-source version called OpenWorkflows (&lt;a href="https://github.com/wellingfeng/OpenWorkflows" rel="noopener noreferrer"&gt;https://github.com/wellingfeng/OpenWorkflows&lt;/a&gt;). It says it can use cheaper large models such as Kimi and DeepSeek. Has anyone tried it? I would really appreciate a tutorial.&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>claude</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
