# flowix

> A zero-code configuration bundle that enables any DeepSeek Harness instance to read/write Flowix notes and generate mind maps via a local flowix-cli MCP server.

## Metadata

- Author: [@text2future](https://github.com/text2future)
- Repo: <https://github.com/text2future/flowix.git>
- GitHub: [text2future/flowix](https://github.com/text2future/flowix)
- Stars: 331
- Language: TypeScript
- License: [MIT](https://spdx.org/licenses/MIT.html)
- Homepage: <https://www.flowix-memo.com/>
- Topics: `agent-memory`, `claude-code`, `codex-cli`, `desktop`, `dsh`, `dsh-plugin`, `dsh-plugin-desktop`, `hermes-agent`, `markdown-editor`, `memory-system`, `note-taking`, `open-code`
- Forks: 42
- Open Issues: 23
- Last push: 2026-08-19T17:44:52.000Z
- Added: 2026-08-20T00:00:00.000Z

## Install

```bash
dsh plugin --profile web add github:text2future/flowix/app/flowix-dsh-host/bundles/dsh-flowix-memory
```

## Wiki

## 一句话定位
dsh-flowix-memory 是一个零代码的配置型 bundle，把本地 flowix-cli 的 MCP stdio 服务注册到任意 DeepSeek Harness 实例，让智能体在对话里直接读写 Flowix 笔记本并生成脑图等工件。

## 核心能力
- 在 DeepSeek Harness 中注册名为 `mcp__dsh-flowix-memory__flowix_memo` 的工具，统一管理 Flowix 笔记本
- 通过 `notebooks` / `list` / `show` / `search` 子命令浏览和检索 Flowix 笔记本及 Markdown 笔记
- 通过 `create` / `edit` / `write` / `delete` 子命令对笔记进行创建、精确编辑、全量重写和删除
- 通过 `plugin list` / `plugin describe` / `plugin create mindmap` 子命令查看声明的插件工件并把 Markmap Markdown 落地为脑图
- 严格禁止 shell 语法（管道、重定向、`&&`、命令替换、环境变量展开都会被拒），命令只解析为 argv 后直接派发到类型化的存储层

## 技术实现
- **语言**: YAML 配置（不包含代码；底层 `flowix-cli` 由 Rust 实现）
- **关键依赖**: `@deepseek-ai/dsh-mcp-client`（Harness 内置的 MCP 客户端）+ 本地 `flowix` CLI（`flowix mcp` 子命令提供 stdio JSON-RPC 前端）
- **架构模式**: 通过 `cordis.patch.yml` 向宿主 Cordis 组合插入一个 MCP 客户端节点，使用 stdio transport 派生 `flowix mcp` 子进程；所有 `flowix_memo` 调用通过 JSON-RPC 2.0 行分隔协议回传结果
- **入口文件**: `app/flowix-dsh-host/bundles/dsh-flowix-memory/cordis.patch.yml`（bundle 自身）；MCP 服务实际入口为 `app/flowix-cli/src/mcp.rs`

## 适用场景
已经习惯使用 Flowix 笔记、又希望让 DSH 智能体在同一会话里检索、摘抄或更新笔记内容的用户；以及不想自建 MCP 服务器、只希望复用现成本地 CLI 的第三方 Harness 部署者。装上后智能体可以把 Markdown 内容、读书摘录、脑图草稿直接落到 Flowix 的笔记本里。

## 前置依赖与兼容性
| 依赖 | 最低版本 | 说明 |
|---|---|---|
| flowix CLI | 任意可执行二进制 | 必须在 `PATH` 中可解析为 `flowix`，或通过 `FLOWIX_CLI_PATH` 指向绝对路径 |
| Flowix 笔记本数据目录 | 默认 `~/.flowix` | 可用 `FLOWIX_HOME` 或 `FLOWIX_DATA` 覆盖 |
| DeepSeek Harness | 未声明 | bundle 仅声明依赖 Harness 内置的 `@deepseek-ai/dsh-mcp-client` 节点，未在 `package.json` 中固定版本 |
| Node.js | 未声明 | bundle 自身不运行 Node；运行时由 Harness 与 flowix-cli 决定 |

## 安装方式
```bash
dsh plugin --profile web add github:text2future/flowix/app/flowix-dsh-host/bundles/dsh-flowix-memory
```

## 配置项
| 配置 | 类型 | 说明 | 默认值 |
|---|---|---|---|
| `FLOWIX_CLI_PATH` | 字符串 | `flowix-cli` 可执行文件的绝对路径；当 `flowix` 不在 `PATH` 中时显式指定 | `flowix`（按 `PATH` 查找） |
| `FLOWIX_HOME` / `FLOWIX_DATA` | 字符串 | Flowix 笔记本数据目录，覆盖默认 `~/.flowix` | 未设置时使用 `~/.flowix` |

> 插件自身不读 MCP 子进程的环境变量白名单之外的内容；MCP stdio 桥在拉起子进程前会剥离看起来像凭据的环境变量以及所有 `DSH_*` 变量，`HOME`/`PATH` 仍会继承。

## 常见问题

**Q: 这个插件会上传数据到云端吗？**

A: 不会。CLI 通过 stdio 在本地拉起，直接读写用户配置目录下的笔记本文件，整个链路没有任何远程 Flowix 服务参与。

**Q: 装好后智能体多了哪些能力？**

A: 会注册一个名为 `mcp__dsh-flowix-memory__flowix_memo` 的 MCP 工具，覆盖 `notebooks`、`list`、`show`、`search`、`create`、`edit`、`write`、`delete`、`plugin list`、`plugin describe`、`plugin create mindmap` 等子命令。

**Q: 找不到 flowix 命令怎么办？**

A: 插件默认在系统 `PATH` 里查找 `flowix` 可执行文件。如果 CLI 不在 `PATH` 中，可以设置 `FLOWIX_CLI_PATH` 环境变量指向 `flowix-cli` 的绝对路径来显式指定。

**Q: Flowix 笔记本不在默认位置怎么改？**

A: 默认数据目录是 `~/.flowix`。如果笔记本放在别处，可以设置 `FLOWIX_HOME` 或 `FLOWIX_DATA` 环境变量覆盖，CLI 会按新路径读写笔记本。

**Q: 用的是 Flowix Desktop，还需要装这个 bundle 吗？**

A: 不需要。Flowix Desktop 自带的 `flowix-dsh-host` 组合（`config/flowix.cordis.yml`）已经包含同样的 MCP 服务条目。这个独立 bundle 主要面向第三方 Harness 用户；`tests/bundle-sync.test.ts` 会校验两处定义保持一致。

**Q: 智能体能不能借此跑任意 shell？**

A: 不能。MCP 前端会主动拒绝 shell 语法（管道、重定向、分号、`&&`、命令替换、环境变量展开），返回 `INVALID_COMMAND` 错误；所有命令都解析为 argv 后派发到类型化的存储层，不经过系统 shell。

**Q: 删除笔记能恢复吗？**

A: 不能。`delete` 子命令是破坏性的，会直接删除对应笔记文件并返回结构化结果，不会有二次确认；调用方需要自行保证目标正确。

**Q: 怎么彻底卸载？**

A: 执行 `dsh plugin --profile web remove dsh-flowix-memory` 从指定 profile 移除即可，移除后 `flowix_memo` 工具不再注册。

## 上手难度
入门 — bundle 本身只是一个 YAML 补丁，安装后只要本地有 `flowix` CLI 就能直接用，没有需要填写的 GUI 表单或额外配置项。

## 已知问题与限制
- bundle 与 Flowix Desktop 自带的 `dsh-flowix-memory` 条目存在双重维护风险：两者必须保持 `id` / `serverName` / `args` 一致；如未同步，`tests/bundle-sync.test.ts` 会失败
- `flowix_memo` 拒绝 shell 语法，包括 `|`、`;`、`&&`、`>`、`<`、`` ` ``、`$(`、`${` 都会被前置拒绝，因此诸如"读取后管道过滤"的工作流需要拆分成多次调用
- 删除类操作（`delete`、`edit` 的实际写入、`write` 整体覆盖）均为破坏性命令，MCP 服务只返回结构化结果而不二次确认，调用方需要自行校验目标笔记 ID
- MCP stdio 桥在拉起子进程时会剥离形如凭据的环境变量以及所有 `DSH_*` 变量，因此通过环境变量向 `flowix-cli` 注入敏感配置会被静默丢弃
- bundle 自身没有声明对 DeepSeek Harness 的最低版本要求，使用前请确认宿主环境至少包含 `@deepseek-ai/dsh-mcp-client` 节点

---

This document is auto-generated by [deepseek-plugin.org](https://deepseek-plugin.org). HTML page: [flowix](https://deepseek-plugin.org/plugins/text2future/flowix/app/flowix-dsh-host/bundles/dsh-flowix-memory)
Wiki generated by AI (model: `MiniMax-M3`)
