설치
npx -y @deepseek-ai/dsh plugin --profile web add github:franksong2702/dsh-daybook이 설치 명령은 GitHub 저장소 주소에서 생성된 확인되지 않은 시작점입니다.
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
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, callsdaybook_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.
프로젝트 파일 및 신호
표시된 항목은 디렉터리 스냅샷에서 감지된 공개 저장소 신호입니다.
저장소 정보
- 언어
- TypeScript
- 라이선스
- Apache-2.0
- 마지막 업데이트
- 2026. 8. 15. 오후 12:16
신중하게 설치하기
소스 코드, 권한, 수명 주기 스크립트, 의존성 및 네트워크 접근을 검토하고 신뢰하지 않는 플러그인은 격리 환경에서 테스트하세요.