Skip to content

1.64.0 — think, design, undo, MCP

Choose a tag to compare

@sppideey sppideey released this 03 Oct 06:42
· 7 commits to main since this release

ucode now thinks before it acts, designs every build, can undo anything, and connects to MCP servers — still free, and no slower.

Measured

  • A tasks app builds in 1m 09s with 3 requests, the same as before (1m 08s with the new thinking switched off).
  • npm run eval: 10 real jobs (6 app builds, a bug fix, a new function, a rename, a question about a project) — all pass, about 39s and 3 requests a job.
  • 504 unit tests pass.

Smarter

  • Thinking levels. Flash-Lite did not think at all unless asked (it got a two-step riddle wrong; with low it got it right for +0.7s). ucode now asks for low on every step, medium on the first step of a build or change, high once a fix has failed. UCODE_THINK=0 turns it off.
  • Learns its mistakes. Problems it keeps catching are counted in ~/.ucode/lessons.json and warned about before the next build.
  • Tries a different approach when the same problem survives a fix, and offers Gemini 3.5 Flash for that fix — only if you say yes.
  • Change requests in an existing project get their own rules: find the code, read only what is involved, smallest change in the code's own style.
  • Questions about a project are answered from its files, never guessed.
  • Plan check: items left open in its plan are sent back before it says it is done.

Less generic

  • A design direction for every build: a tone, two Google Fonts and an accent.
  • A generated-look check (starter colours, Inter, purple-to-blue gradients, gradient text, emoji icons) that sends it back once. UCODE_DESIGN_CHECK=0 turns it off.
  • Stock phrases ("sleek", "seamless", "intuitive") are cut from the closing message.

Safer

  • /undo [n] puts the whole project back — including what commands changed — from snapshots in a hidden git repo of ucode's own.
  • "commands": "ask" / /permissions ask puts every command to you first; answer a to always allow it.
  • Hooks: afterEdit (a formatter, say) and beforeCommand (non-zero exit blocks the command).
  • A project's own hooks and MCP servers run only after you approve them — re-asked if they, or the scripts they run, change.

New commands

/diff, /commit [msg] (message written from the diff), /review (bugs in uncommitted changes, read-only), /init (writes UCODE.md), /mcp, /permissions, and your own slash commands from .ucode/commands/*.md.

New powers

  • MCP servers over stdio or HTTP: ucode mcp add context7 npx -y @upstash/context7-mcp. Built in, no new dependency.
  • Headless: ucode -p "task" [--json] [--yes] for scripts and CI.
  • Other models: Ollama or any OpenAI-compatible server — UCODE_BASE_URL=http://localhost:11434/v1 UCODE_MODEL=qwen2.5-coder ucode.
  • Faster search with ripgrep when installed; Go and Rust tests run after changes.
  • Request pacing to Google's per-minute free limit; /stats shows requests sent.
npm i -g ucode-agent@1.64.0