Essential kimi-cli Commands: A Complete Guide to MoonshotAI's CLI
The kimi-cli tool provides a Typer-based command-line interface with global options for configuration, session management, and run modes, plus sub-commands for authentication and server operations.
MoonshotAI's kimi-cli is a powerful command-line interface built on the Typer framework that enables seamless interaction with Kimi AI models. Located in the MoonshotAI/kimi-cli repository, the main CLI entry point at src/kimi_cli/cli/__init__.py defines a comprehensive set of flags and sub-commands categorized into configuration, UI modes, logging, and agent selection, while src/kimi_cli/cli/__main__.py serves as the entry point that installs crash handlers. This guide covers the essential commands and options available in the callback function spanning lines 79-200, along with validation logic at lines 354-561.
Global Options and Configuration Flags
The kimi command accepts numerous global options declared in the CLI callback that control everything from basic configuration to UI behavior. These options are processed before any sub-command execution and are handled by the configuration system in src/kimi_cli/config.py.
Meta and Debugging Options
Control CLI behavior and troubleshooting output with these essential flags:
--versionor-V: Display the CLI version and exit immediately--verbose: Print extra diagnostic information during execution--debug: Enable debug-level logging and include stack traces on failure
Session and Directory Management
Manage working context and session persistence using these configuration flags:
--work-diror-w <PATH>: Set the working directory for the agent (directory must exist)--add-dir <PATH>: Add extra directories to the workspace scope (repeatable)--session <ID>or--resumeor-Sor-r <ID>: Resume a specific session or invoke an interactive picker when no ID is supplied--continueor-C: Resume the most recent session for the current working directory
Note: The CLI validates that --continue and --session are mutually exclusive, raising an error if both are supplied, as implemented in the validation logic at lines 354-561.
Model and Behavior Configuration
Override default settings and configure the LLM interaction:
--config <STRING>: Provide a TOML or JSON configuration string inline--config-file <PATH>: Load a configuration file (defaults to~/.kimi/config.toml)--modelor-m <NAME>: Specify the LLM model to use, overriding config file settings--thinkingor--no-thinking: Toggle "thinking" mode (defaults to config file value)
Run Modes and Execution Control
The CLI provides multiple execution modes that determine how the agent interacts with tools and user prompts.
Interactive and Non-Interactive Modes
Control the UI behavior and automation level:
--promptor-por--commandor-c <TEXT>: Supply a one-off prompt directly (otherwise prompts interactively)--print: Run in non-interactive "print" mode that auto-dismisses questions and auto-approves tools--final-message-only: Emit only the final assistant message (requires--print)--quiet: Shortcut combining--print --output-format text --final-message-only
Run a new session printing only the final response:
kimi --print --final-message-only "Explain quantum entanglement in one paragraph."
Automation and Safety Flags
Configure automatic approval and unattended operation:
--yoloor--yesor-yor--auto-approve: Auto-approve every tool call without confirmation--afk: Run in "away-from-keyboard" mode, auto-dismissing questions and auto-approving tools--plan: Start the CLI in plan mode for structured task breakdown
Continue the most recent session with automatic tool approval:
kimi --continue --yolo
Input/Output Format Control
When using --print mode with piped stdin, specify data formats:
--input-format <FORMAT>: Specify input format for--printmode--output-format <FORMAT>: Specify output format for--printmode
Agent Customization and Skills
Customize the AI agent behavior and extend capabilities through agent specifications and skill directories.
Agent Selection Options
Choose between built-in or custom agent configurations provided by src/kimi_cli/agentspec.py:
--agent <default|okabe>: Select a built-in agent specification (DEFAULT_AGENT_FILEorOKABE_AGENT_FILE)--agent-file <PATH>: Load a custom agent YAML file instead of built-in options
Note: --agent and --agent-file are mutually exclusive options validated by the CLI logic.
MCP and Skills Configuration
Extend agent capabilities with Model Context Protocol (MCP) configurations:
--mcp-config-file <PATH>: Load MCP configuration files in JSON format (repeatable)--mcp-config <JSON>: Provide MCP configuration inline as JSON strings (repeatable)--skills-dir <PATH>: Add custom skills directories, overriding automatic discovery (repeatable)
Use a custom specification with additional workspace directories:
kimi --agent-file ./my_custom_agent.yaml --add-dir /opt/project/lib
Execution Limits
Control resource usage and iteration limits:
--max-steps-per-turn <INT>: Limit steps per turn (defaults to config)--max-retries-per-step <INT>: Limit retries per step (defaults to config)--max-ralph-iterations <INT>: Extra iterations after first turn in Ralph mode (-1for unlimited)
Core Sub-commands
Beyond global options, kimi-cli provides several distinct sub-commands for specific operations.
Authentication Commands
Manage Kimi account credentials:
kimi login: Authenticate with a Kimi account and store credentialskimi logout: Clear stored authentication data from the local system
Interactive Terminal
Launch the Toad Terminal User Interface (TUI):
kimi term: Start the interactive Toad TUI for enhanced visual interaction
Server Operations
Run specialized server modes (mutually exclusive with --print):
kimi acp: Start the ACP server (preferred method over the deprecated--acpflag)kimi --wire: Run the experimental Wire server (via global flag)kimi __background-task-worker: Internal hidden worker used by the runtimekimi __web-worker: Internal hidden web worker process
Session Management Examples
Practical examples for resuming and managing persistent sessions:
Resume a specific previous session with verbose logging:
kimi --session abc123 --verbose
Resume the most recent session for the current working directory:
kimi --continue --yolo
Summary
kimi-cliprovides a Typer-based interface with extensive global options defined insrc/kimi_cli/cli/__init__.py(lines 79-200) and entry point handling insrc/kimi_cli/cli/__main__.py- Configuration is controlled via
--config-file,--work-dir, and--modelflags, with validation ensuring mutually exclusive options are not combined (lines 354-561) - Session persistence uses
--sessionfor specific IDs or--continuefor the most recent workspace session - Run modes range from interactive TUI to non-interactive
--printand--quietmodes for automation - Sub-commands include
login,logout,term, andacpfor authentication, TUI access, and server operations - Customization is available through
--agent-file,--mcp-config, and--skills-diroptions processed bysrc/kimi_cli/config.pyandsrc/kimi_cli/agentspec.py
Frequently Asked Questions
What is the difference between --session and --continue in kimi-cli?
The --session flag requires a specific session ID to resume that exact conversation state, while --continue automatically resumes the most recent session associated with the current working directory. According to the source code at lines 354-561, these flags are mutually exclusive and cannot be used together in the same command.
How do I run kimi-cli in non-interactive mode for scripts?
Use the --print flag to enable non-interactive "print" mode, which auto-dismisses questions and auto-approves tools. Combine with --final-message-only to output just the assistant's response, or use --quiet as a shortcut for --print --output-format text --final-message-only. For full automation, add --yolo to auto-approve every tool call.
What are the authentication commands available in kimi-cli?
The CLI provides two primary authentication sub-commands: kimi login to authenticate with your Kimi account and store credentials locally, and kimi logout to clear stored authentication data. These commands manage the authentication state used by the runtime initialized in src/kimi_cli/app.py.
How do I use a custom agent configuration in kimi-cli?
Specify a custom agent YAML file using the --agent-file <PATH> flag, which overrides the built-in default and okabe agents provided in src/kimi_cli/agentspec.py. This flag is mutually exclusive with --agent, so you must choose either a built-in agent name or a custom file path, not both.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →