### Local Development Setup Source: https://github.com/hmbown/codewhale/blob/main/web/README.md Steps to set up the project locally, including installing dependencies, copying environment variables, and starting the development server. ```bash cd web npm install cp .env.example .env.local # fill in the keys you have npm run dev # http://localhost:3000 ``` -------------------------------- ### Manual Download and Install Binaries (Linux ARM64 Example) Source: https://github.com/hmbown/codewhale/blob/main/docs/INSTALL.md Download the CodeWhale and codewhale-tui binaries directly from GitHub releases for Linux ARM64. Ensure the directory is in your PATH and make the binaries executable. ```bash # Linux ARM64 example mkdir -p ~/.local/bin curl -L -o ~/.local/bin/codewhale \ https://github.com/Hmbown/CodeWhale/releases/latest/download/codewhale-linux-arm64 curl -L -o ~/.local/bin/codewhale-tui \ https://github.com/Hmbown/CodeWhale/releases/latest/download/codewhale-tui-linux-arm64 chmod +x ~/.local/bin/codewhale ~/.local/bin/codewhale-tui codewhale --version ``` -------------------------------- ### Install and Run Feishu/Lark Bridge Source: https://github.com/hmbown/codewhale/blob/main/integrations/feishu-bridge/README.md Steps to install dependencies, copy and edit the environment file, and start the bridge service. ```bash cd /opt/codewhale/bridge npm install --omit=dev cp .env.example /etc/deepseek/feishu-bridge.env sudoedit /etc/deepseek/feishu-bridge.env node src/index.mjs ``` -------------------------------- ### Install CodeWhale using npm Source: https://github.com/hmbown/codewhale/blob/main/README.md Easiest installation method if you use Node.js. This command installs the CodeWhale CLI globally. ```bash npm install -g codewhale ``` -------------------------------- ### Install and Check Version Source: https://github.com/hmbown/codewhale/blob/main/README.md Install CodeWhale globally using npm and verify the installation by checking the version. ```bash npm install -g codewhale codewhale --version ``` -------------------------------- ### Scaffold and Install New Skills Source: https://github.com/hmbown/codewhale/blob/main/README.md Commands for creating a new skill or installing one from a GitHub repository. ```bash /skill new (scaffold), /skill install github:/ (community) ``` -------------------------------- ### Basic SKILL.md Example Source: https://github.com/hmbown/codewhale/blob/main/crates/tui/assets/skills/skill-creator/SKILL.md Provides a minimal example of a SKILL.md file, including frontmatter (name and description) and a basic skill body. ```markdown --- name: my-skill description: Use when DeepSeek should follow this specific workflow. --- # My Skill Instructions for the agent. ``` -------------------------------- ### Installing from CNB Mirror using Cargo Source: https://github.com/hmbown/codewhale/blob/main/docs/INSTALL.md Install `codewhale-cli` and `codewhale-tui` from a CNB mirror using Cargo, specifying the Git repository and tag. Use `--force` to overwrite existing installations. ```bash cargo install --git https://cnb.cool/codewhale.net/codewhale --tag vX.Y.Z codewhale-cli --locked --force cargo install --git https://cnb.cool/codewhale.net/codewhale --tag vX.Y.Z codewhale-tui --locked --force ``` -------------------------------- ### Install Rust via TUNA Mirror (Linux/macOS) Source: https://github.com/hmbown/codewhale/blob/main/docs/INSTALL.md Installs Rust using TUNA mirrors for rustup on Linux or macOS. ```bash # Linux / macOS export RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup export RUSTUP_UPDATE_ROOT=https://mirrors.tuna.tsinghua.edu.cn/rustup/rustup curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain stable ``` -------------------------------- ### Project-Local Installation and Usage Source: https://github.com/hmbown/codewhale/blob/main/npm/codewhale/README.md Install CodeWhale locally within a project and use it via npx. ```bash npm install codewhale npx codewhale --help ``` -------------------------------- ### Install CodeWhale CLI with Cargo Source: https://github.com/hmbown/codewhale/blob/main/README.md Install the `codewhale` CLI binary using Cargo, the Rust package manager. This is an alternative to npm installation. ```bash cargo install codewhale-cli --locked ``` -------------------------------- ### First Run and Login Source: https://github.com/hmbown/codewhale/blob/main/npm/codewhale/README.md Perform the initial setup by logging in with your DeepSeek API key and running a doctor check. ```bash codewhale login --api-key "YOUR_DEEPSEEK_API_KEY" codewhale doctor codewhale ``` -------------------------------- ### Initialize MCP Server Source: https://github.com/hmbown/codewhale/blob/main/crates/tui/assets/skills/mcp-builder/SKILL.md Use this command to start a new MCP server project. ```bash deepseek mcp init ``` -------------------------------- ### Install Rust and Build Binaries Source: https://github.com/hmbown/codewhale/blob/main/docs/TENCENT_LIGHTHOUSE_HK.md Installs Rust using rustup for the 'codewhale' user and builds the 'codewhale' CLI and TUI binaries. This process involves downloading rustup, setting the default toolchain to stable, and then using cargo to install the specified crates. ```bash sudo -iu codewhale curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs -o /tmp/rustup-init.sh sed -n '1,120p' /tmp/rustup-init.sh sh /tmp/rustup-init.sh -y --profile minimal . "$HOME/.cargo/env" rustup default stable cd /opt/whalebro/codewhale cargo install --path crates/cli --locked --force cargo install --path crates/tui --locked --force exit ``` -------------------------------- ### Install Rust via TUNA Mirror (git-bash/msys2) Source: https://github.com/hmbown/codewhale/blob/main/docs/INSTALL.md Installs Rust using TUNA mirrors for rustup on Windows via git-bash or msys2. ```bash # git-bash / msys2 export RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup export RUSTUP_UPDATE_ROOT=https://mirrors.tuna.tsinghua.edu.cn/rustup/rustup ./rustup-init.exe -y --default-toolchain stable ``` -------------------------------- ### Enable Services on Boot Source: https://github.com/hmbown/codewhale/blob/main/docs/TENCENT_LIGHTHOUSE_HK.md Enable the Codewhale runtime and Feishu bridge services to start automatically on system boot. ```bash sudo systemctl enable codewhale-runtime codewhale-feishu-bridge ``` -------------------------------- ### Global Installation Source: https://github.com/hmbown/codewhale/blob/main/npm/codewhale/README.md Install CodeWhale globally using npm or pnpm for command-line access. ```bash npm install -g codewhale # or pnpm add -g codewhale ``` -------------------------------- ### Run Setup Verification Source: https://github.com/hmbown/codewhale/blob/main/README.md Use the `codewhale doctor` command to verify that the CodeWhale setup, including API key configuration, is correct. ```bash codewhale doctor ``` -------------------------------- ### Install Rust via TUNA Mirror (PowerShell) Source: https://github.com/hmbown/codewhale/blob/main/docs/INSTALL.md Installs Rust using a TUNA mirror for rustup on Windows via PowerShell, ensuring TLS 1.2 is used. ```powershell # PowerShell [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 (New-Object Net.WebClient).DownloadFile('https://win.rustup.rs/x86_64', 'rustup-init.exe') ``` -------------------------------- ### Install Rust via rsproxy Mirror (Linux/macOS) Source: https://github.com/hmbown/codewhale/blob/main/docs/INSTALL.md Installs Rust using rsproxy.cn mirrors for rustup on Linux or macOS as an alternative to TUNA. ```bash export RUSTUP_DIST_SERVER=https://rsproxy.cn export RUSTUP_UPDATE_ROOT=https://rsproxy.cn/rustup curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain stable ``` -------------------------------- ### Install Linux Build-Time Dependencies Source: https://github.com/hmbown/codewhale/blob/main/docs/INSTALL.md Install necessary build tools and libraries for compiling CodeWhale on Debian/Ubuntu or RHEL-based systems. Ensure you have Rust 1.88 or later installed via rustup. ```bash sudo apt-get install -y build-essential pkg-config libdbus-1-dev # openEuler / RHEL family: # sudo dnf install -y gcc make pkgconf-pkg-config dbus-devel ``` -------------------------------- ### Install Rust and Codewhale CLI/TUI on Debian/Ubuntu Source: https://github.com/hmbown/codewhale/blob/main/docs/INSTALL.md Use this command sequence to install the latest stable Rust via rustup and then install the codewhale CLI and TUI. This is recommended when the system's Cargo version is too old. ```bash export RUSTUP_DIST_SERVER=https://rsproxy.cn export RUSTUP_UPDATE_ROOT=https://rsproxy.cn/rustup curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y source "$HOME/.cargo/env" rustup default stable cargo install codewhale-cli --locked cargo install codewhale-tui --locked ``` -------------------------------- ### Copy CNB Deploy Configuration Source: https://github.com/hmbown/codewhale/blob/main/deploy/tencent-lighthouse/cnb/README.md Copy the example tag_deploy.yml file to .cnb/tag_deploy.yml to set up the CNB deploy environment for Lighthouse. ```bash mkdir -p .cnb cp deploy/tencent- lighthouse/cnb/tag_deploy.yml.example .cnb/tag_deploy.yml ``` -------------------------------- ### Install Service Files Source: https://github.com/hmbown/codewhale/blob/main/docs/TENCENT_LIGHTHOUSE_HK.md Copies and installs the bridge and service files for the codewhale system. This script should be run from the codewhale source directory. ```bash cd /opt/whalebro/codewhale sudo bash scripts/tencent-lighthouse/install-services.sh ``` -------------------------------- ### Basic Phone Command Example Source: https://github.com/hmbown/codewhale/blob/main/docs/TENCENT_LIGHTHOUSE_HK.md An example of a plain text DM command to the bot for checking git status. ```text check git status and summarize what needs attention ``` -------------------------------- ### Install CodeWhale using Homebrew Source: https://github.com/hmbown/codewhale/blob/main/README.md Installs CodeWhale using the macOS package manager Homebrew. ```bash brew tap Hmbown/deepseek-tui brew install deepseek-tui ``` -------------------------------- ### Build and Install CodeWhale from Source Source: https://github.com/hmbown/codewhale/blob/main/docs/INSTALL.md Clone the CodeWhale repository and use Cargo to build and install the `codewhale` and `codewhale-tui` binaries. The binaries will be placed in `~/.cargo/bin/`. ```bash git clone https://github.com/Hmbown/CodeWhale.git cd CodeWhale cargo install --path crates/cli --locked # provides `codewhale` cargo install --path crates/tui --locked # provides `codewhale-tui` codewhale --version ``` -------------------------------- ### Minimal MCP Configuration Example Source: https://github.com/hmbown/codewhale/blob/main/docs/MCP.md A basic JSON configuration for MCP servers, defining timeouts and an example server with command and arguments. This structure can also use 'mcpServers' instead of 'servers'. ```json { "timeouts": { "connect_timeout": 10, "execute_timeout": 60, "read_timeout": 120 }, "servers": { "example": { "command": "node", "args": ["./path/to/your-mcp-server.js"], "env": {}, "disabled": false } } } ``` -------------------------------- ### Start Codewhale HTTP Server Source: https://github.com/hmbown/codewhale/blob/main/docs/RUNTIME_API.md Configure and start the Codewhale HTTP server with optional host, port, worker count, and authentication token. ```bash codewhale serve --http [--host 127.0.0.1] [--port 7878] [--workers 2] [--auth-token TOKEN] ``` -------------------------------- ### Displaying Setup Status Source: https://github.com/hmbown/codewhale/blob/main/docs/CONFIGURATION.md Prints a compact status of the codewhale setup, including API key, base URL, model, counts of MCP/skills/tools/plugins, sandbox, and `.env` presence. This is a read-only and network-free command safe for CI. ```bash codewhale-tui setup --status ``` -------------------------------- ### Strong Delegation Prompt Example Source: https://github.com/hmbown/codewhale/blob/main/crates/tui/assets/skills/delegate/SKILL.md An example of a well-defined prompt for delegating a task to a sub-agent. It specifies ownership, constraints, and expected output. ```text Own only crates/tui/src/settings.rs and its tests. Preserve existing config key names. Add a regression test showing that provider-specific API key changes do not restart DeepSeek onboarding. Return the changed paths and test command output. ``` -------------------------------- ### Install CodeWhale via npm Source: https://github.com/hmbown/codewhale/blob/main/docs/INSTALL.md Installs the codewhale package globally using npm. The postinstall script automatically downloads and verifies binaries. ```bash npm install -g codewhale codewhale ``` -------------------------------- ### Installing Codewhale CLI and TUI from CNB Mirror Source: https://github.com/hmbown/codewhale/blob/main/docs/CNB_MIRROR.md Install the codewhale CLI and TUI binaries using Cargo, pointing to the CNB mirror for the source code and a specific tag. Both binaries are required. ```bash cargo install --git https://cnb.cool/codewhale.net/codewhale --tag vX.Y.Z codewhale-cli cargo install --git https://cnb.cool/codewhale.net/codewhale --tag vX.Y.Z codewhale-tui ``` -------------------------------- ### Install CodeWhale using Cargo Source: https://github.com/hmbown/codewhale/blob/main/README.md Installs the CodeWhale entry point and TUI binary using Cargo. Requires Rust 1.88+. ```bash cargo install codewhale-cli --locked cargo install codewhale-tui --locked ``` -------------------------------- ### Start Codewhale Runtime Service Source: https://github.com/hmbown/codewhale/blob/main/docs/TENCENT_LIGHTHOUSE_HK.md Start the Codewhale runtime service and check its status. Also, verify its health endpoint. ```bash sudo systemctl start codewhale-runtime sudo systemctl status codewhale-runtime --no-pager curl -s http://127.0.0.1:7878/health ``` -------------------------------- ### Install codewhale CLI and TUI Source: https://github.com/hmbown/codewhale/blob/main/AGENTS.md Installs both the codewhale CLI dispatcher and the codewhale-tui runtime. This is necessary when changing code under `crates/tui/` to ensure both components are up-to-date. ```bash cargo install --path crates/cli --locked --force ``` ```bash cargo install --path crates/tui --locked --force ``` -------------------------------- ### Install C Toolchain on Debian/Ubuntu Source: https://github.com/hmbown/codewhale/blob/main/docs/INSTALL.md Install the necessary C build tools and libraries required for building Rust projects on Debian/Ubuntu systems. ```bash sudo apt-get install -y build-essential pkg-config libdbus-1-dev ``` -------------------------------- ### Verify CodeWhale Installation Source: https://github.com/hmbown/codewhale/blob/main/docs/INSTALL.md Run these commands to check if CodeWhale is installed correctly and to diagnose potential issues with API keys, providers, runtime, or PATH. ```bash codewhale --version ``` ```bash codewhale doctor # checks API key, provider, runtime, and PATH integrity ``` ```bash codewhale doctor --json ``` -------------------------------- ### Skill Directory Structure Source: https://github.com/hmbown/codewhale/blob/main/README.md Example of a custom skill directory structure, including the required SKILL.md file. ```text ~/.agents/skills/my-skill/ └── SKILL.md ``` -------------------------------- ### Cargo Migration from Local Checkout Source: https://github.com/hmbown/codewhale/blob/main/docs/REBRAND.md Instructions for installing CodeWhale CLI and TUI from a local checkout using Cargo. ```bash cargo install --path crates/cli --locked --force cargo install --path crates/tui --locked --force ``` -------------------------------- ### npm Migration Steps Source: https://github.com/hmbown/codewhale/blob/main/docs/REBRAND.md Simple commands to uninstall the old npm package and install the new CodeWhale package. ```bash npm uninstall -g deepseek-tui npm install -g codewhale ``` -------------------------------- ### SKILL.md Frontmatter Example Source: https://github.com/hmbown/codewhale/blob/main/README.md Required frontmatter for a SKILL.md file, specifying the skill's name and description. ```markdown --- name: my-skill description: Use this when DeepSeek should follow my custom workflow. --- ``` -------------------------------- ### Example Health Response Source: https://github.com/hmbown/codewhale/blob/main/docs/RUNTIME_API.md This is an example JSON response from the `codewhale doctor --json` command, detailing the health and capabilities of the codewhale installation. ```json { "version": "0.8.9", "config_path": "/Users/you/.deepseek/config.toml", "config_present": true, "workspace": "/Users/you/projects/codewhale-tui", "api_key": { "source": "env" }, "base_url": "https://api.deepseek.com/beta", "default_text_model": "deepseek-v4-pro", "memory": { "enabled": false, "path": "/Users/you/.deepseek/memory.md", "file_present": true }, "mcp": { "config_path": "/Users/you/.deepseek/mcp.json", "present": true, "servers": [ {"name": "filesystem", "enabled": true, "status": "ok", "detail": "ready"} ] }, "sandbox": { "available": true, "kind": "macos_seatbelt" } } ``` -------------------------------- ### Group Chat Command Prefix Source: https://github.com/hmbown/codewhale/blob/main/integrations/feishu-bridge/README.md Example of how to prefix a command when group control is enabled, requiring messages to start with `/ds`. ```text /ds check git status and tell me what is dirty ``` -------------------------------- ### Check codewhale Health Source: https://github.com/hmbown/codewhale/blob/main/docs/RUNTIME_API.md Use `codewhale doctor --json` to get a machine-readable JSON object describing the current installation's readiness state. This is suitable for health-check polling from a macOS workbench. ```bash codewhale doctor --json ``` -------------------------------- ### Cross-Compile CodeWhale for ARM64 Linux with Direct Linker Setup Source: https://github.com/hmbown/codewhale/blob/main/docs/INSTALL.md Configure the Rust toolchain and system linker for cross-compiling CodeWhale to ARM64 Linux without using Docker. This involves installing the cross-linker and setting up Cargo configuration. ```bash sudo apt-get install -y gcc-aarch64-linux-gnu rustup target add aarch64-unknown-linux-gnu cat >> ~/.cargo/config.toml <<'EOF' [target.aarch64-unknown-linux-gnu] linker = "aarch64-gnu-gcc" EOF cargo build --release --target aarch64-unknown-linux-gnu -p codewhale-cli cargo build --release --target aarch64-unknown-linux-gnu -p codewhale-tui ``` -------------------------------- ### Run Development Build Source: https://github.com/hmbown/codewhale/blob/main/CONTRIBUTING.md Run the CodeWhale binary with development settings. ```bash cargo run --bin codewhale ``` -------------------------------- ### Install and Update CodeWhale via Scoop Source: https://github.com/hmbown/codewhale/blob/main/README.md Use Scoop to update the package manager and install the deepseek-tui package. Verify the installed version of codewhale. ```bash scoop update scoop install deepseek-tui codewhale --version ``` -------------------------------- ### Building CodeWhale from Source on Windows Source: https://github.com/hmbown/codewhale/blob/main/docs/INSTALL.md Clone the repository, navigate to the directory, set a Cargo HTTP check environment variable if needed, and build the release version. ```bash git clone https://github.com/Hmbown/CodeWhale.git cd CodeWhale set CARGO_HTTP_CHECK_REVOKE=false # may be needed behind some Chinese ISPs cargo build --release ``` -------------------------------- ### Manage Installed Skills Source: https://github.com/hmbown/codewhale/blob/main/README.md Commands for updating, uninstalling, or trusting installed skills. ```bash /skill update / uninstall / trust ``` -------------------------------- ### Commit Message Example Source: https://github.com/hmbown/codewhale/blob/main/CONTRIBUTING.md Example of a conventional commit message for a new feature. ```git feat: add doctor subcommand for system diagnostics ``` -------------------------------- ### Quick Setup for DeepSeek as MCP Server Source: https://github.com/hmbown/codewhale/blob/main/docs/MCP.md Adds the current DeepSeek binary as an MCP server with default settings. This command automatically resolves the binary path and configures it to run 'codewhale-tui serve --mcp'. ```bash codewhale-tui mcp add-self ``` -------------------------------- ### Install DeepSeek-TUI Source: https://github.com/hmbown/codewhale/blob/main/website/index.html Install the DeepSeek-TUI package globally using npm. This command is compatible with bash and zsh shells. ```bash $ npm i -g deepseek-tui Copy ``` -------------------------------- ### Start Codewhale Feishu Bridge Service Source: https://github.com/hmbown/codewhale/blob/main/docs/TENCENT_LIGHTHOUSE_HK.md Start the Codewhale Feishu bridge service and monitor its logs in real-time. ```bash sudo systemctl start codewhale-feishu-bridge sudo journalctl -u codewhale-feishu-bridge -f ``` -------------------------------- ### Initial Deployment: Verification and Deployment Source: https://github.com/hmbown/codewhale/blob/main/web/AGENT.md Commands to run pre-deployment checks and then build and deploy the worker. ```bash npm run predeploy # checks KV ID is set npm run deploy # builds + deploys ``` -------------------------------- ### Bootstrap MCP Configuration Source: https://github.com/hmbown/codewhale/blob/main/docs/MCP.md Initializes a starter MCP configuration file. This command sets up the basic structure for managing external tool servers. ```bash codewhale-tui mcp init ``` -------------------------------- ### CNB Deploy Configuration Steps Source: https://github.com/hmbown/codewhale/blob/main/docs/TENCENT_LIGHTHOUSE_HK.md Steps to configure Cloud Native Buildpacks (CNB) for deployment, including copying example files and setting up secrets. ```bash cp deploy/tencent-lighthouse/cnb/cnb.yml.example .cnb.yml cp deploy/tencent-lighthouse/cnb/tag_deploy.yml.example .cnb/tag_deploy.yml ``` -------------------------------- ### Install CodeWhale TUI with Cargo Source: https://github.com/hmbown/codewhale/blob/main/README.md Install the `codewhale-tui` binary using Cargo. This provides the terminal user interface for CodeWhale. ```bash cargo install codewhale-tui --locked ``` -------------------------------- ### Scaffolding Tools Directory Source: https://github.com/hmbown/codewhale/blob/main/docs/CONFIGURATION.md Creates the `~/.deepseek/tools/` directory with a README and an example script. This directory is not auto-loaded; individual scripts must be wired into the agent. ```bash codewhale-tui setup --tools ``` -------------------------------- ### Install CodeWhale using Docker Source: https://github.com/hmbown/codewhale/blob/main/README.md Runs CodeWhale using a prebuilt release image. Mounts a volume for persistent home directory and the current directory as workspace. ```bash docker volume create codewhale-home docker run --rm -it \ -e DEEPSEEK_API_KEY="$DEEPSEEK_API_KEY" \ -v codewhale-home:/home/codewhale/.deepseek \ -v "$PWD:/workspace" \ -w /workspace \ ghcr.io/hmbown/codewhale:latest ``` -------------------------------- ### Build Project Source: https://github.com/hmbown/codewhale/blob/main/CONTRIBUTING.md Build the entire project using Cargo. ```bash cargo build ``` -------------------------------- ### TOML Configuration for Instruction Sources Source: https://github.com/hmbown/codewhale/blob/main/docs/CONFIGURATION.md Define additional system-prompt sources by listing their paths in the `instructions` array. Paths are expanded, and files are capped at 100 KiB. Missing files are skipped with a warning. ```toml instructions = [ "./AGENTS.md", "~/.deepseek/global.md", "~/team/agents-shared.md", ] ``` -------------------------------- ### List and Activate Skills Source: https://github.com/hmbown/codewhale/blob/main/README.md Use these commands to view available skills and activate a specific one. ```bash Commands: /skills (list), /skill (activate) ``` -------------------------------- ### Installing Latest Version via npm or Cargo Source: https://github.com/hmbown/codewhale/blob/main/docs/INSTALL.md Workaround for v0.8.7's self-updater issue by installing the latest version via npm or using Cargo. ```bash npm i -g codewhale@latest # or cargo install codewhale-cli --locked ``` -------------------------------- ### Scaffolding Plugins Directory Source: https://github.com/hmbown/codewhale/blob/main/docs/CONFIGURATION.md Creates the `~/.deepseek/plugins/` directory with a README and a placeholder plugin file. Plugins are not loaded automatically and must be referenced from a skill, hook, or MCP wrapper. ```bash codewhale-tui setup --plugins ``` -------------------------------- ### Install deepseek-tui with npm via Taobao Mirror Source: https://github.com/hmbown/codewhale/blob/main/website/index.html Configure npm to use the Taobao mirror for faster package downloads. This command installs the deepseek-tui package globally. ```bash npm config set registry https://registry.npmmirror.com npm install -g deepseek-tui ```