GitHub - leonardcser/smelt: A fast, Lua-scriptable AI coding agent for the terminal

2 min read Original article ↗

smelt logo

Documentation  ·  Lua API  ·  Releases  ·  Issues

[!WARNING]

smelt is in active development. Use the latest pre-release tag and update often; interfaces may still change between releases.

Why

Most coding agents are bloated and hard to customize. smelt is small, fast, and scriptable in Lua like Neovim. Built from scratch, with care for the details.

demo

What's inside

  • Lua plugins. Keymaps, commands, autocmds, custom tools, and custom modes.
  • Terminal renderer. Its own grid and layout engine, not ratatui.
  • Vim editor. Motions, text objects, registers, undo.
  • Deterministic fuzzing. Fixed clock and stubbed I/O, so any crash can be replayed.
  • No config needed. Run with flags, or use smelt auth for ChatGPT, GitHub Copilot, and Kimi Code.

Install

Prebuilt Linux and macOS binaries for x86_64 and aarch64 are on the Releases page, or install from source:

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

Run

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

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

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 leonardcser.github.io/smelt.

License

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