Skip to main content

dsh/packages/dsh

12Stars1Forks0Issues0Watchers

An open-source office collaboration and team management plugin for DeepSeek Harness, providing project Kanban boards, task lists, AI meeting transcription, and intent database functionality.

Evidence5/5methodologySourceInstallMaintenanceDSH versionSecurity scan
Machine-auditedInstall commandRepo verifieddsh-plugin topicLicenseREADMEAI wiki
Language
TypeScript
License
MIT
Branch
main
ai-assistantsdsh-pluginknowledge-managementmeeting-assistantproject-managementproject-management-systemtask-managementteam-collaboration

Install

cmdweb profile
$ dsh plugin --profile web add github:juntaoding/Flowboard#path:packages/dsh

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 juntaoding/Flowboard/packages/dsh for me: review the repository at https://github.com/juntaoding/Flowboard 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 Pitch

Adds office collaboration and team management capabilities to DeepSeek Harness: brings projects, tasks, meetings, transcripts, and documents into a shared workspace, enabling DSH Agents to read, edit, and follow up on these works like team members.

Core Capabilities

  • Jira-style Project Board: Each project comes with a three-column workflow (To Do / In Progress / Done), supporting drag-and-drop, assignees, priority, progress, and due dates
  • Multi-dimensional Task Table: Supports custom fields including text, numbers, dates, single-select, multi-select, and person fields, with in-place editing saved to the project's shared view
  • Personal & Team Views: My Tasks, Personal Board, Personal Calendar, and cross-project aggregation all display on the same business data without copying
  • In-browser AI Meeting: Browser VAD auto-slices → local Whisper transcription → meeting Supervisor identifies action items, decisions, and risks in real-time
  • Traceable Work Relationships: Projects, meetings, tasks, and Markdown documents are interconnected through fields like intent_key and evidenceFromSequence, allowing you to find meetings and documents by following tasks
  • Shared Write Channel: Agent tools and browser Remote both go through the same FlowboardService, with writes unified through authorization, validation, idempotency, optimistic locking, transactions, and auditing

Technical Implementation

  • Language: TypeScript (ESM), private workspace packages are aggregated into a single plugin tarball at build time
  • Key Dependencies: @flowboard/dsh-service (Host-side Cordis service + Agent tool registration), fastify (embedded HTTP API), node:sqlite (persistence), whisper.cpp (linux-x64 native CLI, shipped with the package), antd + @dnd-kit/* (browser UI), @deepseek-ai/dsh-typert-protocol (Host/Client Remote bridge)
  • Architecture Pattern: DSH Cordis dual-end plugin. Host side mounts @flowboard/dsh via cordis.patch.yml, constructs FlowboardService (extending TypertRemoteService), and starts embedded Fastify, SQLite, Whisper Worker; Client side packages/dsh-client/src/client/index.ts registers conversation.view (FlowboardView) and conversation.input.dock (FlowboardMeetingDock) two slots via ctx.slots.inject
  • Entry Files: packages/dsh/src/index.ts (re-export only), packages/dsh-service/src/index.ts (Host main entry), packages/dsh-client/src/client/index.ts (Browser main entry), packages/server/src/runtime.ts (embedded runtime)

Use Cases

For teams that want their collaborative work to have "structure" without leaving DeepSeek Harness: tasks, decisions, and risks generated verbally in meetings are automatically transcribed and placed on the project board; Agents can directly read and edit these tasks within their own sessions and沉淀 the outputs back into the same task context. Suitable for small to medium-sized teams that need to connect "meeting → task → document", especially those already using DSH Agent for collaboration.

Prerequisites & Compatibility

DependencyMin VersionDescription
DeepSeek Harness0.1.0-rc.6Declared via peerDependencies; DSH Tools / Typert protocol are all ^0.1.0-rc.6
Node.js22.19.0 or 24+`engines.node: ^22.19.0
PlatformLinux x64Built-in Whisper only publishes vendor/whisper/linux-x64; other platforms will throw errors when starting meetings
Native Modulesnode:sqlite, Whisper CLI, ggml-small modelPersistence and transcription both have native dependencies; model shipped with package, ~430 MB
Disk Space~500 MBIncludes complete ggml-small transcription model

Installation

dsh plugin --profile web add github:juntaoding/Flowboard#path:packages/dsh

Configuration Options

The plugin has no runtime visual configuration page; you can adjust mount parameters in cordis.patch.yml in the installation directory.

ConfigTypeDescriptionDefault
embeddedBooleanWhether to start Fastify + SQLite + Whisper Worker inside DSH Host process; when disabled, only acts as remote clienttrue
apiBaseStringAccess address for embedded API; when embedded: false, points to independently deployed serverhttp://127.0.0.1:8787
hostStringOnly effective when embedded: true, network interface to bind for listening127.0.0.1
portNumberOnly effective when embedded: true, Fastify listening port8787
tokenStringOnly effective when embedded: true, can inject a fixed access token; if left empty, a random 32-byte base64url is generated at each startupRandomly generated
dataDirectoryStringOverrides parent directory for SQLite and upload directories$DSH_HOME/flowboard
FLOWBOARD_HOST / FLOWBOARD_PORT / FLOWBOARD_TOKEN / FLOWBOARD_DB / FLOWBOARD_UPLOAD_DIR / FLOWBOARD_PUBLIC_URLEnvironment VariablesUsed when running packages/server/src/cli.ts independently (bypass path other than flowboard-whisper)—
FLOWBOARD_TRANSCRIBE_COMMAND / FLOWBOARD_TRANSCRIBE_ARGS / FLOWBOARD_TRANSCRIBE_LANGUAGEEnvironment VariablesOverride built-in Whisper; can use other ASR commands; ARGS must be a JSON string arraylinux-x64 uses vendor/whisper/linux-x64/bin/whisper-cli, language zh

FAQ

Q: Where is data stored? Will it be lost after uninstall?

A: Default writes to $DSH_HOME/flowboard; if DSH_HOME is not set, it's ~/.dsh/flowboard. dsh plugin --profile web remove @flowboard/dsh does not automatically delete this directory; to clean up, first stop DSH, then manually backup and delete.

Q: Where are browser-side meeting recordings uploaded?

A: Browser VAD encodes PCM into WAV slices, pushes to Host's Fastify upload endpoint via DSH Typert Remote through flowboard_upload_audio, lands in temporary files under $DSH_HOME/flowboard/uploads, read and deleted by the same process's Whisper Worker; no third-party services involved.

Q: Will the browser read my LLM API token?

A: No. FlowboardService only reads its own embedded access token (randomly generated by default); the browser only communicates with Host's Typert Remote; upstream model tokens are managed by DSH Host; browser code cannot access them.

Q: Can I use meeting transcription on macOS or Windows?

A: Built-in Whisper CLI only ships Linux x64 version with the package; packages/server/src/whisper-runtime.ts throws "The bundled Flowboard transcriber does not support …" on other platforms. To support other platforms, either add a validated vendor variant, or use FLOWBOARD_TRANSCRIBE_COMMAND / FLOWBOARD_TRANSCRIBE_ARGS to point to locally available ASR commands.

Q: Will Agent calling flowboard_create_task cause errors?

A: Generally not. The tool first finds the current writable project via client.snapshot; missing fields (like title) will create a revisable entity with "Unnamed Task" first, then let subsequent calls modify it; only irreversible operations like missing writable project / writable team, insufficient permissions, or deletion will actively throw errors and wait for user confirmation.

Q: How do I upgrade the plugin?

A: First download the new version's Alpha tarball and SHA256SUMS and verify, then use dsh plugin --profile web add --force ./flowboard-dsh-*.tgz to overwrite install; current Alpha does not provide database migration chain; when schema version changes, manually backup and clear $DSH_HOME/flowboard before starting.

Q: What data exists by default after first startup?

A: First startup automatically seeds a local Owner account (tenant-local), Default Team, Default Project, three-column default workflow (To Do / In Progress / Done), and two default views (project board and task table); you can rename in DSH settings and create real team members.

Q: Is the plugin open source?

A: Yes. Repository uses MIT License; homepage has CONTRIBUTING.md / SECURITY.md / CODE_OF_CONDUCT.md / THIRD_PARTY_NOTICES.md; Alpha stage only accepts v*-alpha.* tags and publishes via GitHub prerelease.

Learning Curve

Intermediate — ordinary users only need to install, let Agent create the first batch of tasks, and hold a meeting in the browser; however, understanding concepts like tasks, intents (intent_key / evidenceFromSequence / delivered vs analyzed water levels) requires familiarization; customizing transcription or deploying distributed versions requires reading design documents under docs/architecture/.

Known Issues & Limitations

  • Built-in Whisper CLI only provides Linux x64 vendor; macOS / Windows / Linux arm64 will throw platform unsupported error when starting meetings; need to self-provide ASR and connect via environment variables (packages/server/src/whisper-runtime.ts:36)
  • Currently only one local Owner account; no complete registration, invitation, token management UI (README.zh-CN.md:182)
  • Persistence only supports SQLite; no PostgreSQL adapter or distributed deployment plan (README.zh-CN.md:183)
  • Database schema_migrations currently fixed at version 3; Alpha stage does not provide production migration chain; schema evolution requires manually clearing $DSH_HOME/flowboard before rebuilding (packages/server/src/database.ts:6, README.zh-CN.md:185)
  • Default API listens on 127.0.0.1, not directly serving externally; for remote access, need to use reverse proxy or change FLOWBOARD_HOST to 0.0.0.0 and provide valid token (packages/server/src/runtime.ts:29)
  • Browser VAD and Whisper transcription are serially processed; default Worker concurrency is 2, max segment 15 seconds; long meetings won't lose words but real-time performance depends on model speed (packages/server/src/worker.ts:54, packages/dsh-client/src/client/use-audio-recorder.ts:13)
  • Not every DSH Session is automatically bound to tasks; cross-Session execution tracking is still a product evolution direction (README.zh-CN.md:186)
  • Installation package includes complete ggml-small model and Linux shared libraries; Alpha tarball size is ~430 MB, provided via GitHub Release to avoid npm string limit (CHANGELOG.md:11)

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/juntaoding/Flowboard/packages/dsh)

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