中文EN

martty

ui启动失败npmMIT

面向 DeepSeek Harness 的 Rust/ratatui Agent TUI,支持流式工具调用、子代理、持久会话和可扩展的 Cordis 客户端界面。

下载量 / Downloads
2,091
依赖体积 / node_modules
414.56 MB
测试时间 / Tested
2026-11-06
DSH 版本 / Version
0.2.2-rc.1

安装

dsh plugin --profile web add martty

沙箱测试结果

阶段结果
1 安装✓
2 列装✓
3 挂载✓
4 启动—

四阶段在隔离沙箱里跑:安装(有网)→ 列装 → 挂载 → 启动(后三步断网)。

README

<p align="center">

<img src="https://raw.githubusercontent.com/openma-ai/Martty/main/assets/martty-lockup.svg" width="650" alt="Martty terminal lockup" />

</p>

<h1 align="center">Martty</h1>

<p align="center">

A DSH-first terminal with the same Cordis plugin model, plus support for other ACP agents.

</p>


Native binaries are packaged for macOS arm64, macOS x64, Linux x64, and Windows

x64. Requires Node.js 22.19+.

Rename note: the project and recommended npm package have moved from
DeepSeek Harness TUI / martty to Martty / martty.
Configuration and session data remain compatible. The production profile is
now martty; legacy tui profiles continue to work. The dsh-tui command
is no longer installed by the martty package — see
[Migrating from DeepSeek Harness TUI / the scoped package](#migrating-from-deepseek-harness-tui--the-scoped-package).

Global Agent TUI

npm install --global martty
martty-cli   # the first launch creates `martty`; use `martty` afterwards

Martty directly depends on our @openma/deepseek-harness-acp implementation.

It resolves this built-in ACP from its own dependency graph, connects DSH by

default, and requires no separate ACP installation. For another ACP server,

configure DSH_TUI_AGENT; Cordis embedding can instead provide config.agent

or config.stream. --agent is only the standalone CLI override for the same

connection configuration.

Recommended

npm install --global @deepseek-ai/dsh
dsh plugin --profile martty add martty@latest
dsh --profile martty

The profile command is the recommended install and upgrade path. It creates a

missing profile and installs the TUI plus its ACP dependency; no global

martty installation is required.

dsh installs plugins with pnpm. Martty declares no install lifecycle scripts

(preinstall/install/postinstall), so it installs under pnpm's strict

build-script policy (ERR_PNPM_IGNORED_BUILDS) without --ignore-scripts. A

profile where an install of 0.3.2 or earlier failed (martty is a dependency

but not in dsh.profile.bundles) needs `dsh plugin --profile martty remove

martty and then add` again.

With such a profile in place, the npm entry point attaches to it too:

npx martty --dsh martty     # same as dsh --profile martty, after a version check

Harness resolution and supported dsh

1. Default (martty / npx martty): the bundled @openma/deepseek-harness-acp

and its bundled dsh runtime; ambient installs never override it.

2. --dsh <profile>: the global dsh on PATH with that profile — a profile

carrying martty gets the terminal, one carrying only dsh-acp becomes the

ACP agent. Below the dsh floor Martty falls back to (1) and shows a short

notice (/dismiss hides it).

3. As a dsh plugin (dsh --profile martty): the hosting dsh.

4. An explicit dsh path in a harness recipe (--dsh-path / DSH_PATH).

Supported dsh is a floor, >=0.1.7-rc.2 (engines.dsh, which dsh's own plugin

compatibility check reads), never an exact list. Newer dsh releases are

attempted — API differences are feature-detected, and a dsh newer than the

newest tested one (0.2.1-rc.2) only warns. Below the floor, or when the Host

lacks a required capability, dsh --profile martty still opens the TUI and the

conversation explains the installed version, the floor or missing capability,

and the options (npx martty, or install a supported dsh).

Migrating from DeepSeek Harness TUI / the scoped package

martty is the recommended package name. Starting with 0.2.13, it and the

legacy martty package are published by the same CI run

with identical versions and artifacts. The scoped name is deprecated; switch

package names with:

npm install --global martty

No removal is needed first, whatever state the legacy package is in —

published versions of martty register dsh-tui

(every version) and martty (0.2.14/0.2.20) global commands, and npm linked

legacy checkouts own the same names (a checkout of this repository links as

martty, so it replaces — or is replaced by — an installed martty with no

collision). The martty package declares only martty-cli so npm never

refuses the install over a bin another package owns (EEXIST). It ships no

install scripts: the first launch of martty-cli (or npx martty) retires

the stale martty/dsh-tui/dsb links that verifiably belonged to the

legacy package (a third-party dsh-tui stays untouched), creates the martty

command itself, and detaches the legacy package's bin declarations so a later

npm rm -g can't take martty down with it. Until that first launch a fresh

install has only martty-cli; upgrades from 0.3.2 keep their martty.

Removing martty afterwards is optional

cleanup; martty warns at launch while it remains — on an interactive

terminal the notice prints when the session exits, so the TUI cannot hide

it. And after `npm rm -g

martty, the martty` command left behind is a self-cleaning shim: invoking

it once prints the reinstall hint and removes it — nothing dead is left

in <prefix>/bin.

Inside a dsh profile the same switch is:

dsh plugin --profile tui remove martty
dsh plugin --profile martty add martty@latest

The recommended profile changes from tui to martty; runtime behavior,

config, and session data remain unchanged. Legacy tui profiles remain

compatible.

The martty package no longer installs a dsh-tui command: the name

collided with both the legacy package and an unrelated dsh-tui package on

npm, which blocked npm install --global martty outright. If your fingers

still type dsh-tui, alias it: alias dsh-tui=martty.

The profile Host mounts the ACP plugin on Base, then starts a separate TUI

Client process over standard ACP stdin/stdout. For standalone use, run

martty and use --agent <cmd> plus repeated --agent-arg <arg> for another

ACP server.

Harness CLI quick start

Run these commands in a sys

…(truncated)

以上内容来自 npm 上的 README,我们只做格式化,不改内容。

版本

npm 上共发布:47,最后更新 2026-10-17

链接

GitHub · Homepage · npm

同类插件