Skip to content

wellingfeng/FreeUltraCode

Repository files navigation

FreeUltraCode game development mark

FreeUltraCode

The AI coding agent built for game development.

In a game engine, code is only a small part of the work. The rest is assets and pipeline — materials, blueprints, terrain, sky, UI, skeletal animation, packaging, performance. FreeUltraCode is a Claude Code / Codex / Gemini style agent rebuilt around that reality: it understands game-engine concepts, generates the full range of game assets (images, 3D models, 2D sprite animation, atlases, audio, rigging, video), and routes routine work through free or low-cost channels so premium quota goes where it matters.

English  ·  中文  ·  Français  ·  Deutsch  ·  Español  ·  Português  ·  Русский  ·  日本語  ·  한국어  ·  हिन्दी  ·  العربية  ·  Discord  ·  QQ Group: 149523963

version 0.4.0 Tauri 2.11 React 18 TypeScript 5.6 Vite 5.4 Join Discord QQ Group 149523963

❤️ Sponsor

API NODE Thanks to API NODE for sponsoring this project! API NODE is an AI API gateway that provides stable, cost-effective relay access to Claude Code, Codex, Gemini, and other leading models through a single endpoint — a great fit for routing FreeUltraCode requests through one reliable provider. Register via this link.

One-click Unreal Engine UMG interface
FreeUltraCode generates an Unreal Engine UMG interface in one click

One-click 3D model generation
FreeUltraCode generates a 3D model in one click

FreeUltraCode generated 3D model preview

Image, sprite, mesh, audio, rigging, and video — all managed through one coding agent
FreeUltraCode unified game asset generation

FreeUltraCode game asset workflow

Game-asset generation in the same session as your code
FreeUltraCode generates an asset, then switches back to coding in one chat session

Important

Community · 加入社区 — join the FreeUltraCode Discord or QQ group for setup help, model routing ideas, and contributor coordination. Discord: https://discord.gg/2C9ptSEFG · QQ Group: 149523963

Why FreeUltraCode

AI is now good enough to write most of the code on its own. In practice the programmer's role is shifting toward describing intent, verifying output, and orchestrating agents. But a game is not just code. A game engine is full of materials, blueprints, terrain, sky, UI, skeletal animation, packaging, and performance tuning — and most general coding agents have no idea what any of that means.

FreeUltraCode takes a Claude Code / Codex / Gemini style agent and customizes it deeply for game development:

  • Speaks game-engine language. The agent is primed with game-development concepts so it can reason about materials, blueprints, terrain, lighting, UI (UMG and others), skeletal animation, build/packaging, and performance optimization — not just generic source files.
  • Generates every asset type a game needs. Images, 3D models, 2D sprite animation, sprite atlases, audio, skeletal rigging, and video are all produced from the same chat surface and managed through one coding-agent workflow.
  • Built-in game-dev expert roster. 40+ specialist roles (technical director, gameplay/AI/network/tools programmer, level/economy designer, art and audio directors, QA, release manager, and more) span Unity, Unreal, Godot, and Web engines.
  • Keeps premium quota for what matters. Route routine work through free, trial-credit, or low-cost channels, and keep keys, settings, and history local.

What It Can Do

Game-Dev Coding Chat

  • Ask for gameplay code, engine integration, shader/material logic, build scripts, bug investigation, refactors, tests, and release notes.
  • Work against Unity, Unreal, Godot, or Web engine projects — the agent reasons about engine concepts, not just files.
  • Attach file paths or drag files into the composer.
  • Review streamed assistant output, command logs, file references, and generated summaries in one chat surface.
  • Continue with follow-up requests in the same session.

Game Asset Generation

Every asset type a game needs can be generated from the same chat surface and applied to your project, then handed back to the coding model — all in one session history. Each generator runs through your configured provider.

Asset What it makes Enter mode
Images Concept art, UI mockups, icons, posters, textures, references /image, /img, /draw, /生图, or /image-mode-start
ComfyUI graphs Node-based, editable image pipelines /comfyui-mode-start
2D sprites Game sprites, sequence frames, spritesheets /sprite or /sprite-mode-start
3D models Props, characters, scene meshes, blockouts /mesh-mode-start (search the library with /mesh-search)
Music BGM, score, music clips /music or /music-mode-start
Speech Voice lines and narration /speech-mode-start
Video Video clips and motion assets /video or /video-mode-start

The agent first polishes your prompt, sends it to the configured provider, and shows the result in the chat stream with the prompt and provider details. Leave any mode with its matching *-mode-end command.

Game-Dev Expert Roster

FreeUltraCode ships a roster of 40+ game-development specialists that the agent can draw on automatically based on the task:

  • Engine specialists for Unity, Unreal, Godot (GDScript / C# / GDExtension / shaders), and Web.
  • Programming roles: technical director, lead/engine/gameplay/AI/network/tools/UI programmers.
  • Design roles: game, level, economy, live-ops, and narrative designers.
  • Art & audio directors and specialists, VFX, sound design, and audio direction.
  • Production, quality, and release: producer, QA lead/tester, devops, security, localization, and release manager.

Configure the active engine, council mode, and which experts are enabled in Settings.

Free-Model Routing

  • 20+ remote channels plus local runtimes: NVIDIA NIM, OpenRouter, GitHub Models, Hugging Face Router, SambaNova Cloud, Together AI, Google Gemini, DeepSeek, Mistral, Mistral Codestral, OpenCode, Wafer, Kimi, Cerebras, Groq, Fireworks, Z.ai, LLM7, Kilo Gateway, plus local runtimes such as Ollama, LM Studio, and llama.cpp.- Keyless experimental routes: LLM7 and Kilo Gateway can be tried without an API key, but should only be used for non-sensitive coding prompts.
  • Official free/trial-credit routes: GitHub Models, Hugging Face Router, SambaNova Cloud, Together AI, Gemini, Groq, Cerebras, NVIDIA NIM, OpenRouter, Mistral/Codestral, DeepSeek, Kimi, Z.ai, OpenCode, Wafer, and Fireworks use provider keys kept locally in the app.
  • Local Rust proxy translates between Anthropic and OpenAI-compatible protocols.
  • Claude Code can route through configured free channels without changing the chat UI.
  • Provider keys, model overrides, and local model settings are managed from the app settings.

Free channel routing
FreeUltraCode free channel routing screenshot

Current default coding-oriented models:

Channel Default model
GitHub Models openai/gpt-4.1-mini
Hugging Face Router deepseek-ai/DeepSeek-V4-Pro
SambaNova Cloud DeepSeek-V3.1
Together AI Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8
Kilo Gateway poolside/laguna-xs.2:free
LLM7 codestral-latest

Dynamic Workflow (/ultracode)

For complex multi-step coding tasks, /ultracode <task> generates a purpose-built execution harness on the fly and runs it immediately — no visual canvas needed.

  • Describe the task in natural language. The planner builds a harness with parallel subagents, adversarial verification, and acceptance gates.
  • Six internal strategies are chosen automatically: classify-and-act, fan-out-and-synthesize, adversarial-verification, generate-and-filter, tournament, and loop-until-done.
  • Every run is fully logged under .fuc-run/<run-id>/ with a task ledger, events, verdict, and final result.
  • Run from the desktop app or the CLI: fuc ultracode "<task>" --json --interactive --cwd <workspace>.
  • Zero config — reuses local claude CLI login credentials.

Free Auto — Multi-Channel Auto-Switching

The Auto channel (freecc:auto in the Channel menu) routes each request through the best currently available free channel without manual switching.

  • Rotates through all configured free channels, automatically skipping channels that hit rate limits (429) or return upstream errors (5xx).
  • Tracks per-channel cooldowns with backoff: when a channel returns an error, it is paused for a cooling period before being retried.
  • Supports an optional model override so all auto-routed requests use the same model regardless of which channel handles them.
  • If all channels are exhausted, returns a 503 with the failure log so you can diagnose the outage.

Multi-Provider Chain: DeepSeek → CodeX

When using /ultracode, the harness can chain multiple providers across plan steps automatically. A typical pattern: let DeepSeek produce responsive drafts with low cost, then let CodeX pick up and refine the output for final quality.

  • The Dynamic Harness plan supports per-step model overrides — assign DeepSeek to brainstorming/classification steps and CodeX/Gemini to implementation/verification steps.
  • cc-switch compatibility: FreeUltraCode reads cc-switch CLI config so any provider already configured for Claude Code routing is immediately available for ultracode steps.
  • Fan-out-and-synthesize strategy parallelizes DeepSeek workers across independent subtasks, then a consensus gate (CodeX) synthesizes and verifies the results.

Speed-Aware Channel Selection

The free proxy auto channel prioritizes channels based on real-world availability signals:

  • Rate-limit awareness: Channels returning 429 are cooling for 30+ seconds before retry, preventing wasted attempts on saturated upstreams.
  • Fail-fast on errors: Non-retryable errors (4xx auth failures, 5xx upstream down) are tracked per-channel with cooldowns; the auto router skips them for the current request.
  • Connection-time budget: Each channel attempt is subject to the upstream's timeout; the auto router cycles through candidates without blocking on a single slow upstream.
  • Natural ordering by responsiveness: Channels that succeed leave the cooldown registry empty and are naturally tried first; channels with errors are deferred to the end of the candidate list.

These features work together so /ultracode harness runs stay resilient even when individual free providers are slow, rate-limited, or temporarily unavailable.

Local-First Workspace

  • Sessions, favorites, scheduled prompts, API keys, and workspace history are stored locally.
  • No hosted FreeUltraCode server is required.
  • The desktop app can use local CLI credentials and local model runtimes already available on your machine.

Quick Start

Run the web app from app/:

cd app
npm install
npm run dev

Vite starts at http://localhost:5173.

Run the desktop app:

cd app
npm run desktop

Build a production desktop package:

cd app
npm run package

From the repository root:

./run.sh        # macOS/Linux: rebuild if needed, then launch
./package.sh    # macOS/Linux: build native bundles (.dmg on macOS)
run.bat         # Windows: rebuild if needed, then launch
build.bat       # Windows: package the NSIS installer

Basic Usage

Register a Free Channel

  1. Open the bottom Channel menu and choose a free channel with a warning mark, for example Free · OpenRouter.

Choose an unconfigured free channel from the Channel menu

  1. In the API key dialog, click Open registration site.

Open the provider registration site from the API key dialog

  1. Create a new API key on the provider page, then copy it.

Create a provider API key

  1. Paste the key back into FreeUltraCode and click Save and Use. After saving, the warning mark disappears from that channel.

Configured free channel without warning mark

  1. You can also manage every free channel from Settings -> Channels -> Free Channels. Channels marked Ready have the required configuration.

Manage free channels in settings

After the channel is ready, use the bottom input to chat through that route. See the free channel registration guide for the full Chinese walkthrough.

Generate Game Assets

Asset modes turn the chat composer into an asset-generation surface while keeping the same session history. They are useful for producing UI mockups, icons, textures, sprites, 3D models, audio, and video, then switching back to coding in the same conversation. Image mode is the example below; sprite, mesh, music, speech, and video modes work the same way with their own *-mode-start commands.

  1. Open Settings -> Images (or the matching asset section), choose a default provider, and fill in the required API key, account ID, base URL, or local ComfyUI endpoint. Providers with complete configuration are available from the composer in that mode.

  2. Start a chat session and type /image-mode-start. You can also start and generate in one message, for example:

    /image-mode-start a stylized stone-wall texture for a fantasy dungeon, tileable, 1024x1024
    
  3. While the mode is on, ordinary messages generate assets instead of running coding edits. The bottom Channel selector switches to asset providers, and the model selector appears when model selection is enabled.

  4. Describe the asset you want. FreeUltraCode first asks the coding model to polish the prompt, then sends it to the configured provider. The result appears in the chat stream with the prompt and provider details.

  5. Send /image-mode-end to return to the normal coding channel and model. If you only need one asset without staying in a mode, send a one-shot command such as /image, /img, /draw, /生图, /sprite, /music, or /video followed by the prompt.

How It Works

User request
    |
    v
Chat composer
    |
    +--> selected runtime / channel / permission / workspace
             |
             +--> direct provider API, local CLI, or local free-channel proxy
                        |
                        +--> streamed assistant output, tool log, and chat history

Free-channel proxy:

  • Runs locally and binds to 127.0.0.1:<port>.
  • Routes each channel through http://127.0.0.1:<port>/ch/<channelId>.
  • Translates Anthropic and OpenAI-compatible streaming protocols.
  • Lets Claude Code use non-Anthropic and local providers through the same gateway path.

Technology Stack

Area Technology
Desktop shell Tauri 2, Rust
Frontend React 18, Vite 5, TypeScript 5
State Zustand
Styling Tailwind CSS, CSS variables
Icons lucide-react
Provider routing Claude Code, Codex, Gemini, extensible provider settings
Free-channel proxy Rust tiny_http + ureq, Anthropic/OpenAI protocol translation

Project Structure

app/
  src/
    components/  Shared UI and rich assistant-message rendering
    lib/         Provider settings, free-channel routing, asset generation
                 (image, sprite, mesh/3D, music, speech, video, ComfyUI),
                 game-dev expert roster, persistence helpers
    panels/      Sidebar, chat dock, settings, scheduling UI
    store/       Zustand state and local history
  src-tauri/
    src/
      free_proxy.rs    Rust reverse proxy + Anthropic/OpenAI translation
      lib.rs           Tauri commands, filesystem/history bridge
  doc/                 Tutorials, localized READMEs, screenshots
docs/                  Research notes, static docs, assets
pencil/                Pencil design files

Documentation

Development

Useful commands from app/:

npm run dev        # Vite dev server
npm run typecheck  # TypeScript check without emitting files
npm run lint       # ESLint for .ts and .tsx files
npm run test       # Vitest suite
npm run desktop    # Tauri development mode
npm run package    # Production Tauri build

Community

Pull requests should describe the behavior change, list verification commands, link related issues, and include screenshots or short recordings for UI changes.

License

MIT. See LICENSE.