Development
This section is for developers/contributors of the Harness Like plugin itself — not to be confused with Plugin Development, which teaches Obsidian users how to write their own user plugins.
Repository layout
packages/harness-base/ Pure logic: sandbox / approval / session-log / agent-loop / official llm & tools integration
packages/obsidian-adapter/ The only layer touching the Obsidian API (structured interfaces + services)
packages/plugin-runtime/ User plugin loader (require shim + state machine + command prefixing)
apps/plugin/ Entry / Chat panel / Plugin Manager / settings tabs / modals / tools / i18n
docs/ VitePress user docs (this site)Stack
- Runtime: Cordis (
@deepseek-ai/cordis4.0.1) + official dsh packages (dsh-llm/tools/session/sandbox/workspace/agent/agent-loop), all pinned to 0.1.0-rc.6; - Language/build: TypeScript strict; pnpm workspace; esbuild bundling (readable, not minified);
- Tests: vitest (currently 129,
pnpm testmust stay green) + typecheck.
Getting started
sh
pnpm install
pnpm dev # esbuild watch, syncs artifacts to dev-vault/ automatically
pnpm test # vitest suite
pnpm typecheck # all four packages
pnpm build # build & sync (repo root = the official plugin package)See Workflow, Versioning, Release and Conventions.