AgentStack
MCP verified Apache-2.0 Self-run

Yaicli

mcp-belingud-yaicli · by belingud

YAICLI: A powerful command-line AI assistant with 25+ LLM providers. Features chat, command execution, quick queries, function calling, MCP support, and persistent history. Seamlessly integrates into workflows with smart environment detection.

No reviews yet
0 installs
15 views
0.0% view→install

Install

$ agentstack add mcp-belingud-yaicli

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Yaicli? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

YAICLI: Your AI assistant in command line.

[](https://pypi.org/project/yaicli/)

YAICLI is a powerful yet lightweight command-line AI assistant that brings the capabilities of Large Language Models ( LLMs) like GPT-5 directly to your terminal. Interact with AI through multiple modes: have natural conversations, generate and execute shell commands, or get quick answers without leaving your workflow.

Supports both standard and deep reasoning models across all major LLM providers.

> [!NOTE] > YAICLI is actively developed. While core functionality is stable, some features may evolve in future releases.

> We support MCP since v0.7.0! > > We support Function Call since v0.5.0!

✨ Key Features

🔄 Multiple Interaction Modes

  • 💬 Chat Mode: Engage in persistent conversations with full context tracking
  • 🚀 Execute Mode: Generate and safely run OS-specific shell commands
  • ⚡ Quick Query: Get instant answers without entering interactive mode

🧠 Smart Environment Awareness

  • Auto-detection: Identifies your shell (bash/zsh/PowerShell/CMD) and OS
  • Safe Command Execution: Verification before running any command
  • Flexible Input: Pipe content directly (cat log.txt | ai "analyze this")

🖼️ Image Input (Vision)

  • Local Images: Pass local image files with --image/-i (JPEG, PNG, GIF, WebP)
  • URL Images: Pass image URLs directly to vision-capable models
  • Multi-Image: Specify --image multiple times for comparison tasks
  • 30+ Providers: Automatic format conversion for OpenAI, Anthropic, Gemini, Ollama families

🔌 Universal LLM Compatibility

  • OpenAI-Compatible: Works with any OpenAI-compatible API endpoint
  • Multi-Provider Support: Support multiple providers

💻 Enhanced Terminal Experience

  • Real-time Streaming: See responses as they're generated with cursor animation
  • Rich History Management: Manage histories with 500 entries by default
  • Syntax Highlighting: Beautiful code formatting with customizable themes

🛠️ Developer-Friendly

  • Layered Configuration: Environment variables > Config file > Sensible defaults
  • Debugging Tools: Verbose mode with detailed API tracing

📚 Function Calling & MCP

  • Function Calling: Enable function/MCP calling in API requests
  • Function Output: Show the output of functions/MCP
  • Tool Confirmation: Confirm each tool call before execution — allow once, for the session, permanently, or deny

Full document: https://belingud.github.io/yaicli/

📦 Installation

Prerequisites

  • Python 3.10 or higher

Quick Install

# Using pip (recommended for most users)
pip install yaicli

# Using pipx (isolated environment)
pipx install yaicli

# Using uv (faster installation)
uv tool install yaicli

Yaicli has several optional dependencies group, you can copy below commands to install specific dependencies.

# install all denpendencies
pip install 'yaicli[all]'

# install with specific provider support
pip instsall 'yaicli[ollama,cohere,doubao,huggingface,gemini,mistral,anthropic]'

Install by uv.

# install all denpendencies
uv tool install 'yaicli[all]'

# install with specific provider support
uv tool instsall 'yaicli[ollama,cohere,doubao,huggingface,gemini,mistral,anthropic]'

Install from Source

git clone https://github.com/belingud/yaicli.git
cd yaicli
pip install .

Buildin Supported Providers

  • AI21
  • Anthropic/Claude
  • Anthropic Bedrock
  • Anthropic Vertex
  • Cerebras
  • Chatglm
  • Chuts
  • Cohere
  • Cohere Badrock
  • Cohere Sagemaker
  • Deepseek
  • Doubao
  • Fireworks
  • Gemini
  • Groq
  • Huggingface
  • Longcat
  • Longcat Anthropic Format
  • Minimax
  • Mistral
  • ModelScope
  • Ollama
  • Openai
  • Openai Azure
  • Sambanova
  • Siliconflow
  • Spark
  • Targon
  • Together
  • Vertex ai
  • X AI
  • Yi
  • Unlimited OpenAI-compatible providers

⚙️ Configuration

YAICLI uses a simple configuration file to store your preferences and API keys.

First-time Setup

  1. Run ai once to generate the default configuration file
  2. Edit ~/.config/yaicli/config.ini to add your API key
  3. Customize other settings as needed

Configuration File Structure

The default configuration file is located at ~/.config/yaicli/config.ini. You can use ai --template to see default

Configuration Options Reference

| Option | Description | Default | Env Variable | | ---------------------- | ------------------------------------------- | ------------------------ | -------------------------- | | PROVIDER | LLM provider (openai, claude, cohere, etc.) | openai | YAI_PROVIDER | | BASE_URL | API endpoint URL | - | YAI_BASE_URL | | API_KEY | Your API key | - | YAI_API_KEY | | MODEL | LLM model to use | gpt-5.2 | YAI_MODEL | | DEFAULT_ROLE | Default role | DEFAULT | YAI_DEFAULT_ROLE | | SHELL_NAME | Shell type | auto | YAI_SHELL_NAME | | OS_NAME | Operating system | auto | YAI_OS_NAME | | STREAM | Enable streaming | true | YAI_STREAM | | TIMEOUT | API timeout (seconds) | 60 | YAI_TIMEOUT | | EXTRA_HEADERS | Extra headers | - | YAI_EXTRA_HEADERS | | EXTRA_BODY | Extra body | - | YAI_EXTRA_BODY | | REASONING_EFFORT | Reasoning effort | - | YAI_REASONING_EFFORT | | INTERACTIVE_ROUND | Interactive mode rounds | 25 | YAI_INTERACTIVE_ROUND | | CODE_THEME | Syntax highlighting theme | monokai | YAI_CODE_THEME | | TEMPERATURE | Response randomness | 0.7 | YAI_TEMPERATURE | | FREQUENCY_PENALTY | Repeat pubnish | 0.0 | YAI_FREQUENCY_PENALTY | | TOP_P | Top-p sampling | 1.0 | YAI_TOP_P | | MAX_TOKENS | Max response tokens | 1024 | YAI_MAX_TOKENS | | MAX_HISTORY | Max history entries | 500 | YAI_MAX_HISTORY | | AUTO_SUGGEST | Enable history suggestions | true | YAI_AUTO_SUGGEST | | SHOW_REASONING | Enable reasoning display | true | YAI_SHOW_REASONING | | JUSTIFY | Text alignment | default | YAI_JUSTIFY | | CHAT_HISTORY_DIR | Chat history directory | /yaicli/chats | YAI_CHAT_HISTORY_DIR | | MAX_SAVED_CHATS | Max saved chats | 20 | YAI_MAX_SAVED_CHATS | | ROLE_MODIFY_WARNING | Warn user when modifying role | true | YAI_ROLE_MODIFY_WARNING | | ENABLE_FUNCTIONS | Enable function calling | true | YAI_ENABLE_FUNCTIONS | | SHOW_FUNCTION_OUTPUT | Show function output when calling function | true | YAI_SHOW_FUNCTION_OUTPUT | | ENABLE_MCP | Enable MCP tools | false | YAI_ENABLE_MCP | | SHOW_MCP_OUTPUT | Show MCP output when calling mcp | true | YAI_SHOW_MCP_OUTPUT | | MAX_TOOL_CALL_DEPTH | Max tool calls in one request | 8 | YAI_MAX_TOOL_CALL_DEPTH | | TOOL_CONFIRM | Confirm each tool call before running it | true | YAI_TOOL_CONFIRM |

> Tool execution confirmation: With TOOL_CONFIRM enabled (the default), YAICLI asks before running each > tool/function call. At the prompt you can allow it once, allow it for the rest of the session, allow it permanently, > or deny it. Permanent approvals are stored per tool name in ~/.config/yaicli/tool_permissions.json. Set > TOOL_CONFIRM=false (or YAI_TOOL_CONFIRM=false) to run tool calls silently, as in previous versions. In > non-interactive sessions (e.g. piped input) only tools already in the permissions file run; others are denied.

LLM Provider Configuration

YAICLI works with major LLM providers. The default configuration is set up for OpenAI, but you can easily switch to other providers.

Note: blank BASE_URL (or no BASE_URL) means use provider default url.

Pre-configured Provider Settings

| Provider | BASE_URL | | ------------------------------ | --------------------------------------------------------- | | OpenAI (default) | https://api.openai.com/v1 | | Claude (native API) | https://api.anthropic.com/v1 | | Claude (OpenAI-compatible) | https://api.anthropic.com/v1/openai | | Cohere | https://api.cohere.com | | Gemini | https://generativelanguage.googleapis.com/v1beta/openai |

> Note: Many providers offer OpenAI-compatible endpoints that work with the default settings. > > - Google Gemini: https://ai.google.dev/gemini-api/docs/openai > - Claude: https://docs.anthropic.com/en/api/openai-sdk

If you not sure about baseurl or just use the default provider baseurl, just leave it blank or delete BASE_URL.

[core]
PROVIDER=cohere
BASE_URL=
API_KEY=xxx
MODEL=command-r-plus
Openai

Yaicli use openai as provider as default provider, gpt-5.2 as default model, you can add your api key to use as it is.

PROVIDER=openai
BASE_URL=
API_KEY=
MODEL=gpt-5.2

Extra params:

# REASONING_EFFORT: [high, midium, low]
REASONING_EFFORT=

See official for more details: https://platform.openai.com/docs/guides/reasoning?api-mode=chat

Openai Azure
PROVIDER=openai-azure
BASE_URL=
API_KEY=
MODEL=gpt-5.2

Support config keys:

AZURE_AD_TOKEN=
AZURE_ENDPOINT=
AZURE_DEPLOYMENT=
API_VERSION=

Support environment variables:

AZURE_OPENAI_API_KEY=
AZURE_OPENAI_AD_TOKEN=
AZURE_OPENAI_ENDPOINT=

If API_KEY not set in config, will look for AZURE_OPENAI_API_KEY environment variable.

If AZURE_AD_TOKEN not set in config, will look for AZURE_OPENAI_AD_TOKEN environment variable.

If BASE_URL and AZURE_ENDPOINT not set in config, will look for AZURE_OPENAI_ENDPOINT environment variable.

Anghropic/Claude
PROVIDER=anthropic
API_KEY=
MODEL=claude-sonnet-4-20250514

If you want to access Anthropic bedrock, you need to set AWS_SECRET_ACCESS_KEY, AWS_ACCESS_KEY_ID, AWS_SESSION_TOKEN and AWS_REGION in config or environment variables.

PROVIDER=anthropic-bedrock
AWS_SECRET_ACCESS_KEY=
AWS_ACCESS_KEY_ID=
AWS_SESSION_TOKEN=
AWS_REGION=
MODEL=anthropic.claude-opus-4-20250514-v1:0

Support ANTHROPIC_BEDROCK_BASE_URL env or BASE_URL in config file, with same effect.

Also support Anthropic vertex with key PROJECT_ID and CLOUD_ML_REGION in config or environment variables.

PROVIDER=anthropic-vertex
PROJECT_ID=
CLOUD_ML_REGION=

You can set anthropic base url by ANTHROPIC_VERTEX_BASE_URL env, or set BASE_URL in config file, same effect.

Deepseek
PROVIDER=deepseek
API_KEY=
MODEL=deepseek-chat

Thinking mode can be controlled with the existing EXTRA_BODY and REASONING_EFFORT settings. DeepSeek enables thinking by default for supported thinking models, so this is only needed when you want to be explicit or set effort:

PROVIDER=deepseek
API_KEY=
MODEL=deepseek-v4-pro
REASONING_EFFORT=high
EXTRA_BODY={"thinking":{"type":"enabled"}}

To disable thinking mode:

EXTRA_BODY={"thinking":{"type":"disabled"}}

When thinking mode is enabled, DeepSeek returns reasoning_content, which YAICLI displays as reasoning output and preserves during live tool-call conversations. DeepSeek ignores temperature, top_p, presence_penalty, and frequency_penalty while thinking is enabled.

OpenRouter
PROVIDER=openrouter
API_KEY=
MODEL=deepseek/deepseek-chat-v3-0324
Mistral
PROVIDER=mistral
API_KEY=
MODEL=codestral-latest
Gemini

Basic config:

PROVIDER=gemini
API_KEY=
MODEL=gemini-2.5-flash

Extra params:

TOP_K=
PRESENCE_PENALTY=
FREQUENCY_PENALTY=
SEED=
THINKING_BUDGET=
API_VERSION=
BASE_URL=
Vertex AI
PROVIDER=vertexai
MODEL=gemini-2.5-flash
PROJECT=
LOCATION=
Huggingface

Default HF_PROVIDER is auto.

HF_PROVIDER=auto
PROVIDER=huggingface
API_KEY=
MODEL=deepseek-ai/DeepSeek-R1-0528

See official docs for HF_PROVIDER: https://huggingface.co/docs/inference-providers/index

Groq
PROVIDER=groq
API_KEY=
MODEL=llama-3.3-70b-versatile
LongCat
PROVIDER=longcat
API_KEY=
MODEL=LongCat-Flash-Chat
BASE_URL=https://api.longcat.chat/openai
XAI
PROVIDER=xai
API_KEY=
MODEL=grok-3
Minimax
PROVIDER=minimax
API_KEY=
MODEL=MiniMax-M2.1

Extra params:

# Enable/disable interleaved thinking (default: true)
MINIMAX_REASONING_SPLIT=true

MiniMax-M2.1 supports Interleaved Thinking - the model can reason before each tool use. When enabled, reasoning content is preserved in conversation history and displayed alongside responses.

Chatglm
PROVIDER=chatglm
API_KEY=
MODEL=glm-4-plus

Extra params:

Check offcial docs: https://bigmodel.cn/dev/api/normal-model/glm-4

# true or false
DO_SAMPLE=
Chutes
PROVIDER=chutes
API_KEY=
MODEL=deepseek-ai/DeepSeek-V3-0324
Cerebras
PROVIDER=cerebras
API_KEY=
MODEL=llama3.3-70b
AI21
PROVIDER=ai21
API_KEY=
MODEL=jamba-large-1.6
Sambanova
PROVIDER=sambanova
API_KEY=
MODEL=DeepSeek-V3-0324

Only a few models support tool call as below:

  • Meta-Llama-3.1-8B-Instruct
  • Meta-Llama-3.1-405B-Instruct
  • Meta-Llama-3.3-70B-Instruct
  • Llama-4-Scout-17B-16E-Instruct
  • DeepSeek-V3-0324

See official docs for more detail: https://docs.sambanova.ai/cloud/docs/capabilities/function-calling

ModelScope
PROVIDER=modelscope
API_KEY=
MODEL=deepseek-ai/DeepSeek-V3-0324
Inifiniai
PROVIDER=infiniai
; BASE_URL=https://cloud.infini-ai.com/maas/v1
API_KEY=
MODEL=deepseek-v3
Siliconflow
PROVIDER=siliconflow
API_KEY=
MODEL=Qwen/Qwen3-32B
Yi
PROVIDER=yi
API_KEY=
MODEL=yi-lightning
Cohere

You have to install cohere dependencies, pip install 'yaicli[cohere]'

PROVIDER=cohere
API_KEY=
MODEL=command-a-03-2025

Check official docs: https://docs.cohere.com/docs/text-gen-quickstart

Support keys:

ENVIRONMENT=

For private deploy and Azure api, you need to set BASE_URL.

PROVIDER=cohere
API_KEY=
MODEL=command-a-03-2025
BASE_URL=

For Bedr

Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.