I built memduck because useful context keeps disappearing across links, copied text, screenshots, and chat messages.
Most of my actual working memory is not in one clean notes app. It is spread across browser tabs, saved links, snippets, screenshots, Telegram messages, and random text I copied while researching something. Later, when I want to ask a question about that material, I usually have to reconstruct the context manually.
memduck is my attempt at a small, self-hosted workspace for that problem.
GitHub: https://github.com/tageecc/memduck
What it does
memduck lets you save material from browser pages, pasted text, screenshots, and chat channels into a local memory workspace. Then you can ask questions against the saved material and trace answers back to the original sources.
The current version includes:
- a Next.js workspace for asking and managing saved memory
- local SQLite storage and local file assets
- browser extension capture
- channel configuration for browser, Telegram, DingTalk, Slack, Discord, Feishu, WhatsApp, and webhook-style inputs
- model/provider configuration in the UI
- background compilation for summaries, topics, embeddings, and retrieval data
Why self-hosted
I wanted this to be closer to a personal memory engine than another hosted knowledge app. The goal is to keep the runtime simple enough to inspect and run locally, while still making AI retrieval useful.
It is still early, but it is already useful for the workflow I care about: save context first, ask later, and keep the source trail visible.
Try it
npm install -g memduck@latest
memduck
Or from source:
git clone https://github.com/tageecc/memduck.git
cd memduck
pnpm install
pnpm memduck dev
If you care about local-first tools, personal knowledge workflows, or AI memory with source-backed answers, I would like feedback.

Top comments (0)