Skip to content

Crescent617/yomi

Repository files navigation

Yomi

Rust Release License: AGPL v3

A minimalist AI coding assistant built in Rust, with both terminal and desktop interfaces.

TUI GUI
tui-demo gui-demo

Features

  • 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

Quick Start

Prerequisites

  • Rust 1.90+ (install via rustup)
  • API key from OpenAI or Anthropic

Dependencies

  • ripgrep (rg) — for file search
  • Nerd Font — for UI icons (optional but recommended)

Installation

Both (CLI + GUI)

brew update && brew install crescent617/tap/yomi-app crescent617/tap/yomi

CLI / TUI only

brew update && brew install crescent617/tap/yomi

GUI only

brew update && brew install crescent617/tap/yomi-app

Or download the latest .dmg from the releases page.

Configuration

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=xxx

Web Search

The 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 with Docker

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-stopped

Start it once to create the configuration directory:

docker compose up -d

Yomi 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
    - json

Restart SearXNG after changing the file:

docker compose restart searxng

Verify 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.

Usage

GUI Mode

yomi-gui

Interactive TUI Mode

# Launch TUI in current directory
yomi

# help
yomi -h

YOLO Mode

Skip all confirmations (use with caution):

yomi --yolo
yomi -y

Safety

  • 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

License

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.

Acknowledgments

  • 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

About

No description, website, or topics provided.

Resources

License

Stars

4 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors