ID Open Smooth in Telegram

DocsSmooth Agent (self-hosted)

Configuration

Providers and models, automatic fallback, workspace, tools, voice and vision. Secrets live in .env, everything else in config.toml.

smooth-agent setup writes ~/.smooth-agent/config.toml for you. You can edit it any time; the full example with every option ships as smooth_agent/data/config.example.toml.

Providers

config.toml
default = "main"
fallbacks = ["backup"]          # tried in order when the default fails

[providers.main]
provider = "deepseek"
model = "deepseek-chat"

[providers.backup]
provider = "smooth-router"      # Smooth's own API, see Developer API
base_url = "https://api.smooth.family/v1"
model = "smooth-flash"
key_env = "SMOOTH_API_KEY"

Built-in presets (each reads its key from the preset's environment variable, e.g. DEEPSEEK_API_KEY, OPENAI_API_KEY, GLM_API_KEY):

PresetNotes
openaiOpenAI models
deepseekDeepSeek
glmZhipu GLM
groqGroq (fast inference)
openrouterHundreds of models behind one key
kimiMoonshot Kimi
smooth-routerSmooth's API (https://api.smooth.family/v1) or a self-hosted gateway
openai-compatibleAny OpenAI-compatible endpoint: set base_url (local servers such as Ollama, vLLM, LM Studio)

Use -p <name> (and -m <model>) on chat, ask or run to pick a provider for one run, and smooth-agent providers to list them. Web search uses Tavily, Brave or SearXNG when TAVILY_API_KEY, BRAVE_API_KEY or SEARXNG_URL is set, otherwise DuckDuckGo.

Agent settings

config.toml
[agent]
workspace = "~/smooth-workspace"    # default: ~/.smooth-agent/workspace
instructions = "Answer in Indonesian. Keep replies short."
timezone = "Asia/Jakarta"           # for schedules and "tomorrow at 9"
max_steps = 12                      # tool rounds per message
max_tokens = 4096                   # per reply
memory = true                       # long-term memory + saved, searchable sessions
context_tokens = 64000              # older messages are summarised beyond ~80% of this

Tools

config.toml
[tools]
files = "workspace"     # or "full": the whole machine, with approvals for writes outside the workspace and secret files
terminal = false        # true: shell + Python, each command asks first
confirm = true          # false: run commands without asking (only on a machine you trust)

More in Tools and permissions.

Vision, images, voice

config.toml
[vision]            # understanding images; defaults to the main provider/model

[image]             # image generation (OpenAI-compatible /images/generations)
provider = "openai"

[stt]               # speech to text for voice notes (OpenAI-compatible /audio/transcriptions)
provider = "groq"
language = "id"

[tts]               # voice replies (OpenAI-compatible /audio/speech, needs ffmpeg)
provider = "openai"
voice = "alloy"

Environment variables

VariableUse
SMOOTH_AGENT_HOMEWhere everything lives (default ~/.smooth-agent)
<PRESET>_API_KEYProvider keys, e.g. DEEPSEEK_API_KEY
TELEGRAM_BOT_TOKEN, WHATSAPP_TOKEN, …Channel secrets (see Chat channels)
NO_COLOR / FORCE_COLORTerminal colours

Last updated: