Back to home

franksong2702

dsh-daybook

Intelligent, local-first Markdown journal writing assistant for DeepSeek Harness.

Stars
0
Language
TypeScript
Created
Aug 15, 2026
Updated
Aug 15, 2026

Introduction

Daybook

Daybook is a local-first intelligent journal writing assistant for DeepSeek Harness. You choose one ordinary folder; Daybook uses the model and your Writing Instruction to lightly polish explicit journal requests, writes only the new entry, organizes today's entry behind a confirmation preview, copies current-message images, and keeps guarded undo receipts in Harness's private data directory.

Alpha status: the source is public for testing. The package is not published to npm or the DSH Plugin marketplace.

What it writes

your-journal/
├── 2026-08-14.md
└── images/
    └── 2026-08-14/
        └── 221530-a1b2c3d4e5f6.jpg

There is no hidden Daybook folder in your journal. Preview and undo data live under $DSH_HOME/daybook/v1/.

Daybook uses standard Markdown image links and does not require Obsidian. If the selected folder is inside an Obsidian vault, Obsidian simply becomes one optional viewer.

Alpha behavior

  • Smart capture: ask “记到日志里” (or another explicit journal request), or enter /daybook <text>. The normal model turn applies the active Writing Instruction to clean up punctuation, obvious grammar, speech fillers, and accidental repetition in only the new material, calls daybook_capture, and reports the actual saved text and receipt. Earlier text is never rewritten.
  • Raw fallback: /daybook-raw <text> is an explicit no-model, text-only path that trims and saves the text as-is. It never saves images and is not the normal Daybook workflow.
  • Organize today: ask to organize today's journal. Daybook reads the complete daily file, presents a read-only rewrite preview, and asks for explicit confirmation in the conversation. Only after the user confirms does the model call daybook_apply_organize.
  • Images: images can only come from the latest direct user message. They are copied, never moved. Privacy protection is on by default.
  • Undo: each applied mutation has an id. Undo succeeds only if the file still matches that operation; otherwise it safely refuses.
  • External edits: a preview never overwrites a file changed after the preview was created.

The browser slash menu offers daybook as a plain-text insertion source. It deliberately does not claim submit, so /daybook <text> remains a normal model prompt. Only the explicit /daybook-raw fallback is registered as a direct content-bearing command; use a Harness build that supports CommandDefinition.engagesSession so its durable input and receipt retain the current Session and New Session creates a different conversation.

Local development install

Requirements: Node.js 22.19+ and pnpm.

The current Alpha is tested against DeepSeek Harness 0.1.0-rc.6; its DSH peer packages are supplied by the active Harness profile.

git clone https://github.com/franksong2702/dsh-daybook.git
cd dsh-daybook
pnpm install --config.minimum-release-age=0
pnpm run check
pnpm pack
dsh plugin --profile web add ./dsh-daybook-0.1.0-alpha.1.tgz

Then open Settings → Plugins → Plugin configuration → Daybook, choose a journal folder, and save.

The bundle patch only adds Daybook with an empty folder setting. It does not change the active model, web-search provider, workspace, or any existing journal.

Security boundary

  • The selected folder is the plugin's explicit standing filesystem capability.
  • Daily filenames and image subpaths are generated by Daybook, not accepted from the model.
  • Symlinked daily files and image directories are rejected.
  • Mutations are atomic and serialized across plugin processes.
  • Card actions accept only local same-origin Web requests.
  • Remote image URLs are never fetched.
  • Custom instructions and private receipts stay local and contain no account credentials.

See the Alpha contract and design notes.

License

Apache-2.0 © 2026 Frank Song.