minimax-cli 0.4.0

Unofficial MiniMax M2.1 CLI - Just run 'minimax' to start chatting
# ╔══════════════════════════════════════════════════════════════════════════════╗
# ║                         MiniMax CLI Configuration                            ║
# ║                                                                              ║
# ║  Unofficial CLI for MiniMax Platform - Not affiliated with MiniMax Inc.     ║
# ╚══════════════════════════════════════════════════════════════════════════════╝

# See `docs/CONFIGURATION.md` for how config is loaded (profiles, env overrides, etc.).

# ─────────────────────────────────────────────────────────────────────────────────
# API Keys
# ─────────────────────────────────────────────────────────────────────────────────
api_key = "YOUR_MINIMAX_API_KEY" # must be non-empty
# anthropic_api_key = "YOUR_ANTHROPIC_COMPAT_API_KEY"  # Not yet supported

# ─────────────────────────────────────────────────────────────────────────────────
# Base URLs
# ─────────────────────────────────────────────────────────────────────────────────
base_url = "https://api.minimax.io" # US/global endpoint (default)
# base_url = "https://api.minimaxi.com"         # China endpoint
# anthropic_base_url = "https://api.minimax.io/anthropic"  # Computed from base_url

# ─────────────────────────────────────────────────────────────────────────────────
# Default Models
# ─────────────────────────────────────────────────────────────────────────────────
default_text_model = "MiniMax-M2.1"

# Parsed but currently unused (reserved for future versions):
# default_image_model = "image-01"
# default_video_model = "video-01"
# default_audio_model = "speech-01"
# default_music_model = "music-01"

# ─────────────────────────────────────────────────────────────────────────────────
# Paths
# ─────────────────────────────────────────────────────────────────────────────────
skills_dir = "~/.minimax/skills"
mcp_config_path = "~/.minimax/mcp.json"
notes_path = "~/.minimax/notes.txt"

# Parsed but currently unused (reserved for future versions):
# output_dir = "./outputs"
# tools_file = "./tools.json"
# memory_path = "~/.minimax/memory.md"

# ─────────────────────────────────────────────────────────────────────────────────
# Security
# ─────────────────────────────────────────────────────────────────────────────────
allow_shell = false

# ─────────────────────────────────────────────────────────────────────────────────
# Feature Flags
# ─────────────────────────────────────────────────────────────────────────────────
[features]
shell_tool = true
subagents = true
web_search = true
apply_patch = true
mcp = true
rlm = true
duo = true
exec_policy = true

# ─────────────────────────────────────────────────────────────────────────────────
# Retry Configuration
# ─────────────────────────────────────────────────────────────────────────────────
[retry]
enabled = true
max_retries = 3
initial_delay = 1.0
max_delay = 60.0
exponential_base = 2.0

# ─────────────────────────────────────────────────────────────────────────────────
# Context Compaction (PLANNED - not yet implemented)
# ─────────────────────────────────────────────────────────────────────────────────
# [compaction]
# enabled = false                  # Enable auto-compaction
# token_threshold = 50000          # Trigger compaction above this token estimate
# message_threshold = 50           # Or above this message count
# model = "MiniMax-M2.1"           # Model to use for summarization
# cache_summary = true             # Cache the summary block

# ─────────────────────────────────────────────────────────────────────────────────
# RLM Sandbox Configuration
# ─────────────────────────────────────────────────────────────────────────────────
[rlm]
max_context_chars = 10000000     # Max characters for context (10MB)
max_search_results = 100         # Max search results
default_chunk_size = 2000        # Default chunk size
default_overlap = 200            # Default chunk overlap
session_dir = "~/.minimax/rlm"   # Directory for RLM sessions

# ─────────────────────────────────────────────────────────────────────────────────
# Duo Mode Configuration
# ─────────────────────────────────────────────────────────────────────────────────
[duo]
max_turns = 10                   # Max turns before timeout
approval_threshold = 0.9         # Score needed for approval (0-1)
default_max_tokens = 8192        # Default max tokens for Duo requests
coach_temperature = 0.3          # Temperature for coach validation
player_temperature = 0.7         # Temperature for player implementation

# ─────────────────────────────────────────────────────────────────────────────────
# Coding API Configuration
# ─────────────────────────────────────────────────────────────────────────────────
# Use a separate API key and endpoint for coding tasks
# api_key_2 = "YOUR_CODING_API_KEY"           # Optional: separate coding API key
# base_url_2 = "https://api.minimax.io"       # Optional: separate coding endpoint
# default_coding_model = "MiniMax-M2.1-Coding" # Model for coding tasks

# ─────────────────────────────────────────────────────────────────────────────────
# Profile Example (for multiple environments)
# ─────────────────────────────────────────────────────────────────────────────────
# Select a profile with `minimax --profile <name>` or `MINIMAX_PROFILE=<name>`.
[profiles.work]
api_key = "WORK_MINIMAX_API_KEY"
base_url = "https://api.minimax.io"

[profiles.dev]
api_key = "DEV_MINIMAX_API_KEY"
allow_shell = true

# ─────────────────────────────────────────────────────────────────────────────────
# Hooks (optional)
# ─────────────────────────────────────────────────────────────────────────────────
# Hooks run shell commands on lifecycle events (session start/end, tool calls, etc.).
# Configure as `[[hooks.hooks]]` under a `[hooks]` table.
#
# [hooks]
# enabled = true
# default_timeout_secs = 30
#
# [[hooks.hooks]]
# event = "session_start"
# command = "echo 'MiniMax CLI session started'"