mirror of
https://gh-proxy.org/https://github.com/klinsmaya/multica.git
synced 2026-11-09 09:56:47 +08:00
* feat(agent): run Meta Muse Code as an MSP runtime Muse Code speaks MSP (Muse Session Protocol) over `muse serve`: JSON-RPC 2.0 on stdio, like ACP, but with its own method vocabulary. A session opens with session/start or session/resume, work is submitted with turn/start, and assistant text, reasoning and tool calls arrive as transcript items. The adapter maps those items onto the Backend contract, reads the terminal turn outcome, and reports a notFound resume as ResumeRejected so the daemon retries on a fresh session instead of losing continuity silently. Approval is a session property, not a launch flag: `muse serve` has no --yolo, and the CLI documents --yolo as TUI-only. A fresh session is created with approvalMode=allowAll and a resumed session re-asserts it with session/setApprovalMode, which is what lets a claimed task run without waiting for a human. The container and per-task worktree remain the isolation boundary, as they are for every other backend. commandId must be UUIDv7 — Muse derives a turn id from it and rejects anything else — so the adapter mints time-ordered ids rather than v4. The model catalog comes from the session-free model/list query and the pick is applied through session/start modelId. * feat(runtime-profiles): allow muse as a protocol family A custom runtime profile may only be based on a protocol family the daemon supports, and the database enforces the same list. Widening both keeps the create flow, the server validation and the CHECK constraint in lockstep with agent.SupportedTypes. * fix(muse): complete runtime integration and lifecycle handling (MUL-8057) Co-authored-by: multica-agent <[email protected]> * docs(muse): document runtime setup and support (MUL-8057) Co-authored-by: multica-agent <[email protected]> --------- Co-authored-by: yushen <[email protected]> Co-authored-by: multica-agent <[email protected]>
128 lines
10 KiB
Plaintext
128 lines
10 KiB
Plaintext
---
|
|
title: Install AI coding tools
|
|
description: Install and sign in to a supported AI coding tool so Multica can execute runs on your machine.
|
|
---
|
|
|
|
import { Callout } from "fumadocs-ui/components/callout";
|
|
|
|
A local runtime has two parts: the Multica daemon, and one AI coding tool it can invoke. Install only the tool you intend to use — you do not need all of them.
|
|
|
|
## 1. Choose a tool
|
|
|
|
A tool that is already installed and signed in needs no extra setup. Tools differ in models, MCP, session resumption, and skill support; the details are in [AI coding tools comparison](/providers).
|
|
|
|
Multica currently detects these commands:
|
|
|
|
| Tool | Detected command | Official install guide |
|
|
| --- | --- | --- |
|
|
| Antigravity CLI | `agy` | [Antigravity install and sign-in](https://antigravity.google/docs/cli-install) |
|
|
| Claude Code | `claude` | [Claude Code quickstart](https://code.claude.com/docs/en/quickstart) |
|
|
| CodeBuddy Code | `codebuddy` | [CodeBuddy quickstart](https://www.codebuddy.ai/docs/cli/quickstart) |
|
|
| CodeArts | `codearts` | [CodeArts CLI quickstart](https://support.huaweicloud.com/qs-codeartssnap/codeartsagent_qs_0004.html) |
|
|
| Codex CLI | `codex` | [Codex CLI](https://developers.openai.com/codex/cli/) |
|
|
| GitHub Copilot CLI | `copilot` | [Install Copilot CLI](https://docs.github.com/en/copilot/how-tos/copilot-cli/set-up-copilot-cli/install-copilot-cli) |
|
|
| Cursor Agent | `cursor-agent` | [Install Cursor CLI](https://docs.cursor.com/en/cli/installation) |
|
|
| DeepSeek Harness | `dsh` | [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) |
|
|
| DevEco Code | `deveco` | [DevEco Code](https://gitcode.com/openharmony-sig/deveco-code) |
|
|
| Grok Build | `grok` | [Grok Build quickstart](https://docs.x.ai/build/overview) |
|
|
| Hermes Agent | `hermes` | [Hermes quickstart](https://hermes-agent.nousresearch.com/docs/getting-started/quickstart/) |
|
|
| Kimi CLI | `kimi` | [Kimi CLI](https://github.com/MoonshotAI/kimi-cli) |
|
|
| Kiro CLI | `kiro-cli` | [Install Kiro CLI](https://kiro.dev/docs/cli/installation/) |
|
|
| MiniMax Code | `mcode` | [Install MiniMax Code CLI](https://www.npmjs.com/package/@minimax-ai/code) |
|
|
| Muse Code | `muse` | [Install Muse Code](https://dev.meta.ai/docs/muse-code) |
|
|
| OpenClaw | `openclaw` | [Install OpenClaw](https://docs.openclaw.ai/install) |
|
|
| OpenCode | `opencode` | [OpenCode quickstart](https://opencode.ai/en/docs) |
|
|
| Pi coding agent | `pi` | [Pi coding agent](https://github.com/earendil-works/pi) |
|
|
| Oh-My-Pi | `omp` | [Oh-My-Pi install](https://omp.sh) |
|
|
| Qoder CLI | `qodercli` | [Qoder CLI quickstart](https://docs.qoder.com/en/cli/quick-start) |
|
|
| Qoder CN CLI | `qoderclicn` | [Qoder CN CLI quickstart](https://help.aliyun.com/en/lingma/qodercli-cn/user-guide/qoder-cli-cn-get-started-quickly) |
|
|
| Qwen Code | `qwen` | [Qwen Code](https://github.com/QwenLM/qwen-code) |
|
|
| QwenPaw | `qwenpaw` | [QwenPaw](https://github.com/agentscope-ai/QwenPaw) |
|
|
| Reasonix | `reasonix` | [Reasonix](https://github.com/esengine/DeepSeek-Reasonix) |
|
|
| TRAE CLI | `traecli` | [TRAE official site](https://www.trae.cn/) |
|
|
| Dim | `dim` | [DimCode](https://dimagent.cn/en/docs/cli) |
|
|
|
|
"Supported" means Multica can invoke that CLI. It does not mean Multica provides the tool's account, subscription, or model quota for you.
|
|
|
|
## 2. Sign in on your machine
|
|
|
|
After installing, launch the tool once in a terminal on its own and complete its sign-in or model provider setup. If the tool cannot complete requests in the terminal, the daemon's invocations fail the same way.
|
|
|
|
For CodeArts, verify the non-interactive path with `codearts run --model provider/model "Reply OK"`, not only the TUI. The current CodeArts CLI can let a custom provider work in the TUI while `run`, `models`, and `serve` still require [`CODEARTS_CLI_AK` / `CODEARTS_CLI_SK`](https://support.huaweicloud.com/usermanual-cli/codeartsagent_cli_0026.html). Multica can discover custom models from `~/.codeartsdoer/codearts_cli.json` or `.jsonc`, but agent runs use `codearts run` and therefore follow its authorization requirements.
|
|
|
|
For Reasonix, run `reasonix setup` and configure a default provider and model before starting the daemon.
|
|
|
|
For QwenPaw, choose the provider and model in QwenPaw's own configuration. Multica cannot override a QwenPaw model at run time.
|
|
|
|
For MiniMax Code, install a supported Node.js release (`>=22.19 <23` or `>=24 <27`) and run `npm install --global @minimax-ai/code@latest`. A global npm install places `mcode` on npm's global binary path; if `command -v mcode` or `Get-Command mcode` cannot find it, add that path to `PATH`. Then run `mcode login`. MiniMax Code owns the model selection; Multica cannot override it through ACP.
|
|
|
|
Muse Code requires 1.4.10 or later. Follow the [official installation and sign-in guide](https://dev.meta.ai/docs/muse-code), then confirm `muse` is on `PATH`. Multica discovers its models over MSP and supports continuing sessions.
|
|
|
|
For DeepSeek Harness, install Node.js 20+ and run `npm install -g @deepseek-ai/dsh`, then give it the Multica runtime profile — the bundle that implements the `--stdio` protocol Multica drives, and the reason a bare `dsh` is not usable on its own. Set `MULTICA_DSH_PROFILE_BUNDLE` to the bundle to install and the daemon adds it for you, or add it yourself with `dsh plugin --profile multica add <bundle>`. `<bundle>` is anything `dsh plugin` accepts — an npm package name, a directory, or a packed tarball — and Multica's own bridge lives at [multica-ai/dsh-multica-runtime](https://github.com/multica-ai/dsh-multica-runtime). It is not on a public npm registry yet ([multica#6936](https://github.com/multica-ai/multica/issues/6936)), so today a self-hosted team builds it from that repository and points the variable at the build directory, or at the tarball `npm pack` produces — the latter if the machine running the daemon is not the machine that built it. A package name becomes the simplest option once the bridge is published. Whatever you choose, prefer something your own team publishes or builds: this value is installed into every daemon host's DSH home without further confirmation, so an unvetted third-party package is a supply-chain decision, not a convenience. If you installed DeepSeek Harness Desktop instead of the npm package, the daemon also looks for the CLI shims that app generates, under its own per-user data directory — `~/Library/Application Support/DSH Desktop` on macOS, `%APPDATA%\DSH Desktop` on Windows. On Windows that is roaming application data, not the install directory: the app installs to Program Files or `%LOCALAPPDATA%\Programs`, but the CLI it drives lives beside its other per-user state. The version segment in those paths is a generated id, so the daemon enumerates them and prefers the newest. Nothing else is needed on `PATH` — a generated shim runs the Desktop app's own runtime by absolute path. If DSH Desktop is installed somewhere non-default, point `MULTICA_DSH_PATH` at the shim. The daemon registers DeepSeek Harness only after `dsh --profile multica --probe` succeeds, and reports the missing profile on `/health` when it does not. Set `DEEPSEEK_API_KEY` (or store it in dsh's own settings) before starting the daemon.
|
|
|
|
Those login credentials are stored locally by the tool itself. Multica never receives login tokens from Claude, Codex, Cursor, or any other CLI.
|
|
|
|
<Callout type="info">
|
|
Antigravity requires 1.1.10 or later, Claude Code requires 2.0.0 or later, Codex 0.100.0 or later, Copilot 1.0.0 or later, Grok 0.2.89 or later, Qwen Code 0.20.0 or later, MiniMax Code 0.1.2 or later, and OpenCode 1.1.54 or later. Below the minimum version, the daemon does not register the corresponding runtime.
|
|
</Callout>
|
|
|
|
## 3. Confirm the daemon can find the command
|
|
|
|
On macOS, Linux, or WSL, run:
|
|
|
|
```bash
|
|
command -v <command>
|
|
<command> --version
|
|
```
|
|
|
|
In Windows PowerShell, run:
|
|
|
|
```powershell
|
|
Get-Command <command>
|
|
<command> --version
|
|
```
|
|
|
|
Replace `<command>` with a command from the table, such as `claude`, `codex`, or `cursor-agent`. The first command prints the executable path.
|
|
|
|
If the terminal finds the tool but Desktop or the background daemon does not, the two are usually using different `PATH` values. Restart the app, or set an absolute path through the matching `MULTICA_<PROVIDER>_PATH` environment variable; full configuration is in [Environment variables](/environment-variables#daemon-configuration).
|
|
|
|
## 4. Re-detect and confirm the runtime is online
|
|
|
|
Start the daemon with the CLI:
|
|
|
|
```bash
|
|
multica daemon start
|
|
```
|
|
|
|
If the daemon is already running, restart it after installing a new tool:
|
|
|
|
```bash
|
|
multica daemon restart
|
|
```
|
|
|
|
With Multica Desktop, quit and reopen the app.
|
|
|
|
Then open Multica's **Runtimes** page. The tool appears under the target computer and shows as online. You can now select this runtime when creating or editing an agent.
|
|
|
|
<Callout type="warning">
|
|
The daemon must detect at least one built-in supported CLI before it will start. Custom runtime profiles sync after the daemon is up, so they cannot be the sole startup condition on a blank machine. There is one exception: when the daemon has just begun installing the DSH runtime profile itself (`MULTICA_DSH_PROFILE_BUNDLE`), it starts with no runtimes and registers DeepSeek Harness once that install finishes. Without it, a host whose only tool is a DSH that needs the profile could never complete the install — the daemon would exit before it finished and take it down with it.
|
|
</Callout>
|
|
|
|
## No tools detected
|
|
|
|
Check in order:
|
|
|
|
1. Run the tool itself in a terminal to confirm installation and sign-in are complete.
|
|
2. Check the actual command name and path with `command -v` or `Get-Command`.
|
|
3. Run `multica daemon logs -f` and look for version, path, or authentication errors.
|
|
4. Restart the daemon so it re-reads the current environment.
|
|
5. Return to the **Runtimes** page and confirm the computer and the tool are online.
|
|
|
|
If the tool shows as online but runs still fail, open the issue's run record to see the exact error the CLI returned, or continue with [Troubleshooting](/troubleshooting).
|
|
|
|
## Next steps
|
|
|
|
- [Create and configure an agent](/agents-create) — select the runtime you just connected.
|
|
- [Daemon and runtimes](/daemon-runtimes) — online status, concurrency, and custom runtimes.
|
|
- [AI coding tools comparison](/providers) — compare what each tool can do in Multica.
|