Getting Started¶
Installation¶
Download the latest binary for your platform from
GitHub Releases and place
it somewhere on your $PATH:
First-Time Setup¶
Just run smelt. With no config file, it launches an interactive wizard that
picks a provider, runs OAuth if needed (Codex, Copilot), and writes
~/.config/smelt/init.lua for API-key providers.
You can also skip the wizard and connect directly with CLI flags.
Local Models (Ollama)¶
Any server that speaks the OpenAI chat completions API works: Ollama, vLLM, SGLang, llama.cpp.
Cloud Providers¶
No API key needed — authenticate with your ChatGPT subscription:
The Codex provider uses OAuth to connect to your ChatGPT subscription. Tokens are stored locally and refreshed automatically.
No API key needed — authenticate with your GitHub Copilot subscription via device-code OAuth:
On login, smelt enables the policy for every model your account exposes
(so Claude, GPT, Grok, etc. work immediately). The list of available
models is discovered from the /models endpoint and cached locally.
Short-lived Copilot tokens refresh automatically in the background.
Configure with Lua¶
smelt's config lives at ~/.config/smelt/init.lua. It's a real Lua file, not a
schema — anything you can call on the smelt table runs at startup. Once you
have a setup you like, save it there and run smelt with no flags from then
on.
smelt.provider.register("ollama", {
type = "openai-compatible",
api_base = "http://localhost:11434/v1",
models = { "qwen3.5:27b" },
})
smelt.provider.register("openai", {
type = "openai",
api_base = "https://api.openai.com/v1",
api_key_env = "OPENAI_API_KEY",
models = { "gpt-5.5" },
})
smelt.settings.vim = true
The same file is where you add keymaps, custom slash commands, MCP servers,
permission rules, statusline segments, and your own tools. Switch models at
runtime with /model.
Next Steps¶
- Usage Guide — modes, tools, sessions, and the full daily workflow
- Customization — themes, keymaps, custom commands, MCP
- Plugin Authoring — write larger extensions against the Lua API
- Configuration Reference — every provider and setting field
- CLI Reference — all command-line flags