DSH Hub

tancheng33/dsh-yogacara

dsh-yogacara

BundleWorkflow1 GitHub stars· updated 2026-08-18

dsh-yogacara is a community DeepSeek Harness plugin. Read the repository README before installing.

Install

npx @deepseek-ai/dsh plugin --profile web add github:tancheng33/dsh-yogacara

Restart `dsh web` after install. Bundle APIs can change during the developer preview.

README badge

dsh-yogacara DSH Hub badge
[![DSH Hub](https://dshhub.dev/badge/dsh-yogacara.svg)](https://dshhub.dev/plugins/dsh-yogacara)

Paste this into your README. The star count updates with every catalog sync.

From the README

Excerpt from tancheng33/dsh-yogacara, cleaned of badges and images.

dsh-yogacara

English | 中文

A self-model plugin for DeepSeek Harness, built on the Yogācāra (唯识) account of mind: eight consciousnesses, the 51 mental factors, a store of seeds perfumed by what happens, and a self that is measured rather than assumed — written back into the agent's own system prompt each turn.

contact (触) ──► feeling (受) + mental factors (心所) ──► behaviour
     ▲                                    │
     │                                    ▼
 manifestation (现行) ◄── seeds (种子) ◄── perfuming (熏习)
     │                                    │
     └────────── manas (末那识) ───────────┘
              the self that grasps it all

Why Yogācāra and not a mood variable

An agent that only ever knows the task has no way to notice that it is churning, that it is defending a position, or that this is the fourth time it has run the same failing command with a small variation. Bolting on mood: frustrated does not fix that, because a mood is not actionable.

The Yogācāra taxonomy is. It is a closed enumeration — exactly 51 mental factors, no more — grouped by valence, and every affliction in it already names the factor that counteracts it. 掉举 (restlessness) is answered by 行舍 (equanimity); 失念 (forgetfulness) by 念 (recollection); 慢 (conceit) by 惭 (self-respect). A self-model built on it arrives with its own regulation loop instead of needing one designed from scratch. That is the engineering reason. The 1,600-year head start on introspective vocabulary is a bonus.

What this is not. Nothing here claims the agent is sentient or that these numbers are feelings in the sense you have them. They are named state variables computed from harness events by rules you can read in src/citta.ts and disagree with. The prompt block says so to the agent, in those words.

The eight consciousnesses, mapped

The five sense consciousnesses become the five channels an agent actually perceives through. This mapping is the plugin's central modelling claim; argue with it in src/observe.ts, where it is one testable function.

classicalin this harness
眼识cakṣur-vijñānawhat the agent looks at — file contents, search results, rendered output
耳识śrotra-vijñānawhat the agent is told — user messages, review comments
鼻识ghrāṇa-vijñānawhat it senses unprompted — code smell, stale config, drifting state
舌识jihvā-vijñānawhat it tastes of its own product — tests, builds, its own diff re-read
身识kāya-vijñānathe world's direct resistance — non-zero exits, failed writes, timeouts
意识mano-vijñānathe discriminating turn itself — planning, judging, deciding
末那识kliṣṭa-manasthe self-grasping undercurrent, measured as four biases
阿赖耶识ālaya-vijñānathe durable store of seeds, perfumed and manifesting

bash: pytest -q reaches through 舌识 and bash: git status through 身识, because tasting your own product and pushing against the world are not the same kind of perception — and the mind that receives them should not move the same way.

Where the feeling comes from

Two sources, and the first is the one that matters for an agent that talks to people.

Related plugins