Skip to main content

deepseek-harness-studio/packages/examples/ff-llm-wiki-plugin

403Stars43Forks2Issues2Watchers

Add an entry point to the DSH sidebar to launch the complete LLM Wiki knowledge base product (data import, compiled Wiki, knowledge graph, traceable Q&A) as a standalone application in a new window, without affecting the DSH homepage.

Evidence5/5methodologySourceInstallMaintenanceDSH versionSecurity scan
Machine-auditedInstall commandRepo verifieddsh-plugin topicLicenseREADMEAI wiki

ⓘ This plugin is a sub-package of the fufankeji/deepseek-harness-studio monorepo — stars and activity count the whole repository.

Language
TypeScript
License
MIT
Branch
main
ai-agentdeepseekdeepseek-harnessdeepseek-harness-studiodesktop-appdeveloper-toolsdshdsh-plugin

Install

cmdweb profile
$ dsh plugin --profile web add github:fufankeji/deepseek-harness-studio#path:packages/examples/ff-llm-wiki-plugin

Run the command above in your terminal to install this plugin via the dsh CLI. You can switch Profile in the top-right corner. New to dsh? Read the beginner tutorial

Install via your agent

Install the DeepSeek Harness plugin fufankeji/deepseek-harness-studio/packages/examples/ff-llm-wiki-plugin for me: review the repository at https://github.com/fufankeji/deepseek-harness-studio first, then run the install command and verify the plugin loads successfully.

Paste this instruction to the DSH Web GUI assistant — it will install and verify for you.

One-Line Positioning

This plugin adds an FF-LLM Wiki entry point in the DSH sidebar. Clicking it opens a complete standalone "Industrial Knowledge Base" application in a new system browser window—supporting document import, deterministic-compiled Wiki, knowledge graph, and traceable Q&A based on DeepSeek. The DSH main page, navigation, theme, and workspace remain unchanged.

Core Features

  • Adds an "FF-LLM Wiki" launch button in the DSH sidebar to open the standalone knowledge base application with one click
  • Launches a complete Next.js knowledge workstation in a new window (six modules: Documents, Wiki, Knowledge Graph, Q&A, Evaluation, Settings)
  • Spawns a sandboxed API subprocess in the background for Q&A, document processing, and evaluation; DSH main process only handles reverse proxying
  • Reads the DeepSeek API Key from the DSH credential center to avoid duplicate configuration
  • Application data (documents, Wiki, SQLite) is stored in a plugin-specific directory under DSH Home, allowing unified cleanup during uninstallation
  • Returns 503 on startup failure with recent subprocess logs for troubleshooting

Technical Implementation

  • Language: TypeScript (Host) + embedded Next.js 16 / React 19 application
  • Key Dependencies: better-sqlite3 (native SQLite), @fastify/multipart (document upload), fastify (application API), mammoth + pdf-parse (in-app parsing)
  • Architecture Pattern: Dual-sided plugin—Host side exposes /api/ff-llm-wiki/{open,status} routes via ctx.webServer.register, spawns a separate Node process for application API using node:child_process.spawn, and starts a static reverse proxy using node:http; Client side injects a button via ctx.slots.inject('sidebar.primary.action'), clicking window.open('/api/ff-llm-wiki/open') triggers Host to start the subprocess and then redirects to local port 127.0.0.1
  • Entry Files: src/index.ts (Host launcher), src/client/Plugin.tsx (sidebar entry)

Use Cases

Users who want to use DSH as a unified entry point, leveraging both DSH's main capabilities and an enterprise-grade knowledge base demo/production system; especially teams wanting to showcase a ready-made solution for the complete pipeline of "Document Import → Compiled Wiki → Knowledge Graph → Traceable Q&A → Evaluation" without maintaining a second UI.

Prerequisites & Compatibility

DependencyMinimum VersionDescription
Node.js>=24Enforced via package.json#engines
DSHNot declaredPlugin doesn't explicitly declare minimum DSH version, but only injects as web platform and requires DSH Web/Desktop Bundle
DeepSeek API KeyNo version requirementConfigure DEEPSEEK_API_KEY in DSH credential center; key managed by DSH credential center
Native modulebetter-sqlite3Used by embedded application at runtime, requires platform-specific pre-compiled binaries

Installation

dsh plugin --profile web add github:fufankeji/deepseek-harness-studio/packages/examples/ff-llm-wiki-plugin

Configuration

This plugin requires no additional configuration.

The plugin itself doesn't expose Config fields. All dependencies are provided via DSH credential center or the embedded application's own environment variables:

Indirect ConfigurationSourceDescription
DEEPSEEK_API_KEYDSH Credential CenterResolved by Host and injected into subprocess at application startup
DEEPSEEK_BASE_URLEmbedded App DefaultDefaults to https://api.deepseek.com, overridable via embedded app environment variables
DEEPSEEK_MODELEmbedded App DefaultDefaults to deepseek-v4-flash, can be set to deepseek-v4-pro
PORT / DATABASE_PATHEmbedded App RuntimeApplication's own environment variables, DSH doesn't need to manage

FAQ

Q: Will this plugin replace the DSH main interface?

A: No. Clicking the sidebar entry only opens the standalone application in a new system browser window. The original DSH page, navigation, theme, and workspace remain unchanged.

Q: Do I need to configure a separate DeepSeek API Key?

A: No. The plugin reads DEEPSEEK_API_KEY from the DSH credential center. After configuring it in the credential center and restarting Host, the sidebar status will show it's configured.

Q: Will data be cleaned up on uninstall?

A: Yes. Documents, Wiki, graphs, and SQLite data are all written to the ff-llm-wiki dedicated directory under DSH Home, and cleaned up uniformly by the plugin center during uninstallation.

Q: Will it occupy a fixed port?

A: No. The plugin automatically selects an idle port through node:net's port probing. Host simultaneously starts an API subprocess and a static reverse proxy, so there are no conflicts.

Q: Which models are supported?

A: The application has built-in deepseek-v4-flash (default) and deepseek-v4-pro options. You can switch and perform minimal inference validation in the application's settings page.

Q: What if startup fails?

A: On startup failure, the route returns 503 with the last 4KB of subprocess logs attached to the error message. First confirm DEEPSEEK_API_KEY is configured, then check the console errors.

Getting Started Difficulty

Beginner — After installation, the entry point appears in the sidebar. The first click copies seed data and starts the subprocess. The complete pipeline can be run on demo data without any configuration changes.

Known Issues & Limitations

  • The in-app search still uses field-weighted algorithms without Embedding vector indexing; knowledge graph also uses local rule extraction, not model entity extraction (see application/README.md:169)
  • The embedded application lacks production-grade multi-tenant permissions, authentication, disaster recovery, and high availability; it's positioned for single-machine demo/small-scale internal use
  • The embedded application frontend has no unit test framework; quality assurance relies on API interface testing and real-browser acceptance
  • The plugin requires Node.js >= 24; using lower Node versions fails at package.json#engines
  • better-sqlite3 is a native module; if the host environment lacks matching pre-compiled binaries, first installation may require a local compilation toolchain

Read the usage guide →

Install steps, key points, FAQ and compatibility for this plugin — auto-derived from indexed fields.

Listing badge

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/fufankeji/deepseek-harness-studio/packages/examples/ff-llm-wiki-plugin)

Paste this markdown into your GitHub README to link back to this listing. The badge only states the listing — not a security endorsement.

← Back to plugin directory