Skip to content
leonardcserPublic

About

A fast, Lua-scriptable coding agent for the terminal

Topics

Resources

Security policy

Stars

61 stars

Watchers

5 watching

Forks

Repository files navigation

smelt logo

Documentation  ·  Lua API  ·  Releases  ·  Issues

Warning

smelt is beta until 1.0. Interfaces may change between releases, so stay on the latest version.

Why

Most coding agents are heavy and hard to change. smelt uses a fraction of their memory and CPU, and you reshape it with plain Lua files that reload live.

smelt running a coding task in the terminal

What's inside

  • Lua plugins. Edit a Lua file to change keymaps, commands, tools or the UI. Changes apply live, with no restart and no build.
  • Own terminal renderer. Built from scratch for the terminal, so typing and scrolling stay instant even in sessions with tens of thousands of messages. Why not ratatui?
  • Vim editor. The same motions work in the prompt and the transcript, so you can search and yank agent output without the mouse.
  • No config needed. Run with flags, or use smelt auth for ChatGPT, GitHub Copilot, and Kimi Code.

Why we made these choices, and what they cost: Design decisions.

Benchmarks

Same model, same tasks: Terminal-Bench 2.1 with Qwen3.8 27B, 360 runs. Medians, lower is better.

Memory CPU time Wall time
smelt 0.20 GiB 6.1 s 352 s
pi 0.71 GiB 9.7 s 399 s
codex 2.09 GiB 9.8 s 372 s
claude code 1.42 GiB 17.5 s 783 s
opencode 2.80 GiB 116 s 421 s
mini-swe-agent 1.49 GiB 13.1 s 570 s

Measured per container (agent, tools and task): 20 tasks, 3 attempts each, 2 CPUs and 4 GiB. Full results

Install

curl -fsSL https://smeltagent.dev/install.sh | sh

Or grab a prebuilt binary (Linux and macOS on x86_64 and aarch64, Windows on x86_64) from the Releases page. Extract the archive and put smelt (smelt.exe on Windows) on your PATH, or install from source:

cargo install --locked --git https://github.com/leonardcser/smelt.git smelt-agent

Run

Subscription providers (ChatGPT Pro/Plus, GitHub Copilot, Kimi Code):

smelt auth                          # one-time login
smelt                               # provider auto-detected from credentials

Claude Code (runs your installed Claude Code agent):

claude auth login                   # authenticate through Claude Code
smelt                               # claude-code models appear in the picker

Claude Code owns authentication, the agent loop, native tools, and context management. smelt provides the terminal UI, permissions, and additional tools through MCP. It does not copy subscription credentials or impersonate Claude Code's API requests. See the Claude Code provider docs for configuration and limitations. smelt is not affiliated with Anthropic.

API-key providers (any OpenAI-compatible endpoint):

# local model via Ollama
smelt --model qwen3.6:27b --api-base http://localhost:11434/v1

# OpenAI, Anthropic, OpenRouter, etc.
smelt --model gpt-5.5 --api-base https://api.openai.com/v1 --api-key-env OPENAI_API_KEY

Or just run smelt with no arguments and follow the wizard. The default mode cycle is Normal → Plan → Apply → Yolo. Plan mode is bundled and autoloaded. Optional bundled plugins include which_key, the local request inspector, and LSP-backed semantic code tools; enable them from ~/.config/smelt/init.lua.

Docs

Full documentation for configuration, Lua API, keybindings, permissions, providers, and plugin authoring lives at smeltagent.dev.

License

MIT, see LICENSE. Inspired by Claude Code and Neovim.

About

A fast, Lua-scriptable coding agent for the terminal

Topics

Resources

Security policy

Stars

61 stars

Watchers

5 watching

Forks

Releases

Contributors

Languages