dsh-learn-everything: A Feynman Learning DSH plugin for DeepSeek Harness
cendaifeng/dsh-learn-everything
DSH plugin turns the model into a Feynman tutor: explain, quiz, and re-teach, rendered as rich HTML cards.
Turn DeepSeek Harness into a learn-while-doing environment: with learning mode on, the model explains concepts in four Feynman steps, quizzes you with cards, and re-explains gaps.
dsh plugin --profile web add github:cendaifeng/dsh-learn-everything- Category
- Data & Knowledge
- Platform
- DSH-Plugin
- Author
- cendaifeng
- Distribution
- Plugin
dsh-learn-everything Key Features
dsh-learn-everything Repository

dsh-learn-everything Repo Summary
dsh-learn-everything is a Feynman learning method plugin (DSH plugin) for DeepSeek Harness, developed by cendaifeng in TypeScript under the MIT license, last updated in 2026-08. It solves the problem of receiving only fragmented answers when learning new concepts in a work session, lacking structured explanation, practice, and feedback. Core capabilities include session-level /learn on|off toggling, a teach tool producing structured Lessons, rich HTML card visualization (code highlighting, mermaid diagrams), Q&A repetition, and gap-focused re-explanation, all with zero mainline core changes.
What core features does the dsh-learn-everything DSH plugin support?
When learning mode is enabled, the model guides teaching in four Feynman steps (explain → restate → judge → re-explain), generating Lessons with a title, one-sentence summary, and sections (text/code/mermaid/analogy) via the teach tool. The web client renders these as rich HTML cards using tool.call.toolview: code is highlighted via shell shiki (with language banner and copy button), and mermaid sources render as SVG diagrams (falling back to source blocks on pending/error). Q&A reuses the existing ask_user_question, and the model judges correctness and explains in the next step. Mode state is recorded as a log-only learning/mode session event, supporting resume/fork/compaction recovery, and each session is independent with no cross-session memory.
How do I install dsh-learn-everything?
Use the following installation command:
dsh plugin --profile web add github:cendaifeng/dsh-learn-everything
After installation, merge the plugin lines from the repository's cordis.patch.yml into your profile patch and declare the client line in the web bundle (see SPEC.md). For local development, the repository does not resolve private DSH packages from npm; you need a pre-built DSH source directory and then run pnpm install, pnpm run build, etc.
Which DeepSeek Harness versions and platforms does dsh-learn-everything support?
The plugin depends on several official DSH packages (e.g., @deepseek-ai/dsh-agent-loop, @deepseek-ai/dsh-llm-deepseek), and runtime peers are linked from the DSH source tree, not resolved via npm. It supports keyless combined smoke tests (Loader subprocess assembly) and real-model e2e (requires DEEPSEEK_API_KEY), and has passed M1–M4 milestones, including Playwright + aria golden web snapshot tests.
How do I develop and test dsh-learn-everything locally?
Set DSH_SOURCE_DIR to point to the DSH source directory (optional; falls back to ~/.dsh/source/current), then run sequentially:
DSH_SOURCE_DIR=/absolute/path/to/dsh pnpm install
DSH_SOURCE_DIR=/absolute/path/to/dsh pnpm run dsh:link:check
DSH_SOURCE_DIR=/absolute/path/to/dsh pnpm run build
DSH_SOURCE_DIR=/absolute/path/to/dsh pnpm test
DSH_SOURCE_DIR=/absolute/path/to/dsh pnpm run test:smoke
DSH_SOURCE_DIR=/absolute/path/to/dsh pnpm run test:web
DSH_SOURCE_DIR=/absolute/path/to/dsh pnpm run test:e2e
The e2e uses the real DeepSeek adapter and simulates user answers; the key is read from the process environment, falling back to $DSH_HOME/.env if absent.
What is the repository structure of dsh-learn-everything?
The repository includes src/ (host plugin entry, controller, config, guidance text, fold logic, teach tool, client components), scripts/ (clean, setup-dsh-links, build-client), tests/ (unit tests, smoke fixtures, web snapshots), docs/ACCEPTANCE.md (acceptance matrix), and SPEC.md (design decisions). Client components include LessonToolView.tsx (rich HTML card), Diagram.tsx (mermaid diagram), mermaid.ts (lazy rendering queue), project.ts (pure function projection), and sanitize.ts (DOMPurify sanitization).