A minimalist AI coding assistant built in Rust, with both terminal and desktop interfaces.
| TUI | GUI |
|---|---|
![]() |
![]() |
- TUI — minimalist terminal interface for seamless interaction
- GUI — desktop app built with Tauri for a richer experience
- Tools — built-in file operations (read/write/edit), glob/grep, shell command execution, and more
- Configurable — context window, agent tools, and LLM provider settings
- Safe by default — all operations require user confirmation except in YOLO mode
- Rust 1.90+ (install via rustup)
- API key from OpenAI or Anthropic
brew update && brew install crescent617/tap/yomi-app crescent617/tap/yomibrew update && brew install crescent617/tap/yomibrew update && brew install crescent617/tap/yomi-appOr download the latest .dmg from the releases page.
See CONFIG.md for more options.
# General
export YOMI_CONTEXT_WINDOW=200k
# OpenAI
export OPENAI_API_KEY=sk-...
export OPENAI_API_MODEL=gpt-4o # optional, defaults to gpt-4o
export OPENAI_API_BASE=https://xxx
# Anthropic
export YOMI_PROVIDER=anthropic
export ANTHROPIC_AUTH_TOKEN=sk-...
export ANTHROPIC_BASE_URL=https://xxx
export ANTHROPIC_MODEL=xxxThe web_search tool tries engines in the following priority order. Set the environment variable for the engine(s) you want to enable.
| Priority | Engine | Environment Variable | Notes |
|---|---|---|---|
| 1 | SearXNG | SEARXNG_URL |
Self-hosted; recommended. See SearXNG with Docker below. |
| 2 | Kimi | KIMI_AGENT_API_KEY |
Optional KIMI_SEARCH_ENDPOINT to override the built-in endpoint. |
| 3 | Serper | SERPER_API_KEY |
Paid Google Search API. |
| 4 | Brave | BRAVE_API_KEY |
Paid Brave Search API. |
| 5 | DuckDuckGo | — | Free HTML scraping fallback. |
| 6 | Bing | — | Free HTML scraping fallback. |
The GUI loads environment variables from ~/.env at startup (%USERPROFILE%\.env on Windows). Example:
SEARXNG_URL=http://127.0.0.1:8080
KIMI_AGENT_API_KEY=sk-...Restart the GUI after editing this file.
SearXNG is the recommended self-hosted option. This minimal Compose setup binds the service to localhost only.
Create compose.yaml:
services:
searxng:
image: docker.io/searxng/searxng:latest
container_name: searxng
ports:
- "127.0.0.1:8080:8080"
volumes:
- ./searxng:/etc/searxng:rw
restart: unless-stoppedStart it once to create the configuration directory:
docker compose up -dYomi requests SearXNG results with format=json. SearXNG commonly enables only HTML by default, so add json to searxng/settings.yml while preserving the other settings:
search:
formats:
- html
- jsonRestart SearXNG after changing the file:
docker compose restart searxngVerify that JSON search is enabled:
curl --fail --get 'http://127.0.0.1:8080/search' \
--data-urlencode 'q=yomi' \
--data-urlencode 'format=json'The response should be JSON containing a results array. A 403 Forbidden response usually means json is missing from search.formats.
For detailed configuration guidance, see docs/CONFIG.md and the official SearXNG container documentation.
yomi-gui# Launch TUI in current directory
yomi
# help
yomi -hSkip all confirmations (use with caution):
yomi --yolo
yomi -y- Read-Only by Default - Tools are categorized by safety level
- Git-Aware - Respects .gitignore in Glob/Grep operations
- File State Tracking - Write/Edit tools require reading files first to prevent conflicts
- Cancellation Support - All long-running operations can be cancelled
Copyright (C) 2026 Huaru Li. See NOTICE for the copyright notice.
This project is licensed under the GNU Affero General Public License v3.0 only (AGPL-3.0-only) - see the LICENSE file for details.
You may use this project commercially, but distributing modified versions or making modified versions available to users over a network requires offering the corresponding source code under the same license.
- Built with Tokio async runtime
- TUI powered by tuirealm
- GUI powered by Tauri
- File operations use ignore crate for git-aware walking
- Inspired by Claude Code and similar AI coding assistants

