Bundle
dsh-daybook
Intelligent, local-first Markdown journal writing assistant for DeepSeek Harness.
- Source
- franksong2702
- License
- Apache-2.0
- Updated
- Updated 3 days ago
Readme
# 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
```text
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.
```bash
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](docs/ALPHA-SPEC.md) and [design notes](docs/DESIGN.md).
## License
Apache-2.0 © 2026 Frank Song.
Install
dsh plugin --profile web add github:franksong2702/dsh-daybook#e654203009a98e7917ddc1c130580a17cff3069e
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-daybook from the hub
- This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.