The core design philosophy of DeepSeek Harness (DSH) is “Everything Is a Plugin”. In agent development, developers often need to combine DSH’s task scheduling capabilities with FlowText’s local execution environment to take advantage of its vault management and tool-calling capabilities. The dsh-flowtext plugin was created to address this need. It provides a bridging layer that allows DSH to run tasks directly within the FlowText Agent UI.

Plugin Positioning

The plugin is maintained by ytmaps and belongs to the “networked tools” category. It registers a DeepSeek Harness route named flowtext-direct and forwards DSH requests to the FlowText Agent Gateway. FlowText is responsible for performing specific classification, planning, tool calling, and file reading/writing, while DSH is only responsible for receiving and displaying the processed execution trajectory and final answer.

Core Features

The plugin mainly provides the following capabilities:

  1. Route Registration: Registers a route named flowtext-direct in DSH.
  2. Vault Auto-Discovery: Automatically discovers and selects an opened FlowText vault.
  3. Credential Pairing: Requests local authorization on the first task, then automatically pairs and reuses the credentials.
  4. Security Isolation: The Gateway accepts only Loopback endpoints; DSH context such as system prompts and tool directories is not forwarded to FlowText; credentials are stored in a DSH-specific directory and do not enter the Obsidian vault or model context.
  5. Progress Mode: Supports configuring the progress display mode to control whether intermediate reasoning is returned.

Installation and Enablement

Before installing, ensure that the environment meets the requirements: DeepSeek Harness is installed, FlowText Agent Gateway is enabled in Obsidian Desktop, and the Node.js version is ^22.19.0 or >=24.

Run the following command to install the plugin:

dsh plugin --profile web add github:ytmaps/dsh-flowtext

After installation, DSH will automatically register the route. FlowText will automatically list all opened vaults on startup. When DSH sends a task, if multiple vaults exist, the user needs to select the target in the UI (displayed as FlowText Agent · Vault name).

Configuration Options

The plugin supports adjusting behavior through configuration files. The following table describes the key configuration options:

Field Default Meaning
baseUrl unset Automatically discovers all vaults by default; set a Loopback Gateway URL if compatibility with older FlowText versions is required
registryDir ~/.flowtext/agent-gateways Optional advanced override for the discovery directory
autoPair true Automatically requests local authorization when no credentials exist
clientName DeepSeek Harness Name displayed in the FlowText pairing prompt
clientId deepseek-harness Stable client identity identifier
progressMode summary summary streams cleaned trajectories; off returns only the final answer
requestTimeoutMs 30000 Normal HTTP timeout duration
longPollMs 25000 Gateway event long-polling duration
maxResponseBytes 2097152 Gateway response size limit

Upgrade and Notes

If upgrading from the older dsh-subagent-flowtext package, the old package must be removed first, and then the new package should be installed. Credentials for existing vaults are migrated automatically, so there is no need to manually copy tokens.

Please note the following points:
* No SubagentProvider Registration: The plugin does not register a SubagentProvider, nor does it install tool-subagent-flowtext.
* Feature Limitations: Image input and structured output are not currently supported.
* Gateway Limitation: The Gateway accepts only Loopback endpoints, which limits cross-machine usage.
* Execution Control: In the FlowText UI, interaction controls owned by DSH are read-only to prevent conflicts; DSH disables model retries to prevent duplicate task writes.

Summary

The dsh-flowtext plugin combines DSH’s task orchestration capabilities with FlowText’s local execution capabilities through the flowtext-direct route. It provides secure credential management and automatic vault discovery, making it suitable for developers who need to use FlowText in an Obsidian environment for local file operations.