Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Themes
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

keep-writing

suffernamesuffername1k downloads

Asks you one question a day, inside your own notes. You answer in your words and get asked a followup question. Later it builds new questions out of writing you already did. You keep writing.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates13

A vault that interviews you, so that you keep writing.

A blank page stops you; a question doesn't. keep-writing puts one into your daily note in Obsidian, you answer it in your own words, and the next questions come out of what you already wrote — so it never runs out.

In a daily note, an answer is written under a question; "Mark this answer done, and follow up" is chosen from the right-click menu; the answer gains a block id and a link to the question it answers; the model offers three follow-up questions from what was written, and the chosen one lands below the answer.

In the community store, and early. Search community plugins for keep-writing. Needs Obsidian 1.13 or newer. Questions built from your own writing need a model endpoint; everything else works without one.

What it does

  • Starts the day for you. Adds an opening question to a new daily note when a bank has unanswered questions. Works without AI.
  • Draws a question into today's note. Three to choose from — pick one, or press Escape and nothing is written.
  • Asks your own. Under the three is Ask my own…: search every bank, answered questions included, or type a new question. A new one is kept in Bank/Custom.md, where any line you type, on any device, is a question.
  • Turns your old writing into new questions. Highlight a paragraph and you are asked about that paragraph. Let the draw find one and you get a question about your life now — most of what it can reach is years old, and a question about 2020 is a question for whoever you were then. Any paragraph in the folders you choose counts, as it is; nothing is added to it.
  • Lets you rewrite how it asks. The AI's instructions are in settings: who is asking, and where it looks for each kind of question. The reply format stays fixed, so no edit can stop the questions, and every box has a way back to its default.
  • Follows up. Mark an answer done and the model reads it, then offers the next question. Run it again next week and it writes fresh ones.
  • Opens where you stopped. Leave a note about where to pick up, and tomorrow's first question comes from what you wrote, with your own words under it.
  • Links every answer to the question that caused it, which is what stops a question coming back once you have answered it.
  • Grows pieces out of days. A question and its follow-ups can leave the daily note and become a piece of its own, with every link following the words.
  • Never writes your prose. It adds frontmatter, a block id on your answer, and the question itself, with the words it asks about quoted under it. The only other writes are ones you start: a question you typed, added to Bank/Custom.md, and ids the bank check adds to bank lines. No sentence of yours is ever edited or reworded.

Getting started

On first run, Set up keep-writing finds your daily notes, lists the folders that hold your writing and how much each holds, offers the question banks — 3,576 questions across five plain Markdown notes you can edit or delete — and checks for an AI server. Nothing changes until you start, and it ends by drawing your first question.

  1. Open today's daily note.
  2. Run Draw a question — ribbon icon, command palette, or right-click.
  3. Pick one. It lands in your note and the cursor goes where your answer starts:
## Asked

> [!ask] what do you get complimented on the most?
> from [[Bank/autobiographical#^b17850831]]

▏

The draw offering three sources: two bank questions with their kind and address underneath, and one paragraph the owner wrote a week earlier, marked as a revisit.

  1. Write. Then, with the cursor still in your answer, run Mark this answer done, and follow up.

Your answer gets an id and a link back to the question, and the model reads what you wrote to offer the next one.

Commands

On the editor's right-click menu under keep-writing, and in the command palette.

Command What happens
Set up keep-writing Daily notes, writing folders, banks and AI server in one place. Runs on first load; run it again any time.
Draw a question Three to choose from, and Ask my own… to search the banks or write a new question. A bank question is written straight in; a paragraph of yours goes to the model first.
Mark this answer done, and follow up Links the answer the cursor is in, then offers what follows from it. Run it again for fresh follow-ups.
Ask about the selection Highlight text in any note and be asked about it. The question lands in today's note.
Choose question banks to install Choose which banks to add. Existing notes keep your edits.
Check and repair the question banks Gives an id to bank lines that have none, so they can be asked, and lists what it cannot fix by itself.
Graduate threads to pieces In a daily note, turns a question and its follow-ups into a piece of writing of its own: your words moved as written, the questions as headings.

Graduating a daily note's thread: "Graduate threads to pieces" from the right-click menu; a form with three lines on what the thread is about, a title typed in, and suggested headings filled in; then the new piece, with its title, date, headings and the answers as they were written.

Obsidian's right-click menu with a keep-writing submenu open, holding Draw a question, Mark this answer done, and Graduate threads to pieces.

On a phone

Where the editor menu opens on a phone, its keep-writing actions are listed flat, because a submenu wants a hover. The quickest way in is the toolbar: in Settings → Toolbar, add keep-writing: Draw a question and keep-writing: Mark this answer done, and follow up.

Settings

Findable from Obsidian's own settings search: type "bank folder" or "server address" anywhere in Settings.

Setting
Daily notes folder Where your daily notes are, chosen from your folders. Default Sittings.
Question bank folder Where the questions are kept, chosen from your folders. Default Bank.
Ask about writing in Choose the folders you want questions about, each shown with how many paragraphs it holds. Your daily notes are included by default.
Use saved questions (%) Default 70%. Choose how often to draw a bank question instead of your writing. If one source has nothing available, the other is used.
Question banks Install selected banks, get authoring instructions for your agent, and open Installed banks to choose how often each appears. Zero pauses it.
Generate questions with AI Off makes it bank-only, with no network call at all.
The AI's instructions Who is asking, and where the AI looks when you mark an answer, point at a paragraph, or draw one. Restore puts the default back.
Server address An OpenAI-compatible server. The default expects one already running on your device. For Ollama: http://localhost:11434/v1
Check the server Lists your server's models so Model name becomes a choice, and finds Ollama or LM Studio on this device.
Model name Must name a model your server has.
Response length limit Maximum AI response size in tokens. Raise it if responses are cut short. Default 2048.
API key Only if your server needs one. Saved in Obsidian secret storage on this device; existing plaintext settings migrate automatically.

Open Installed banks to adjust a frequency, then return to the compact main settings page.

To import a finished bank or get instructions for your agent, see Choose, import, or create a bank.

Nothing you write leaves your computer unless you point the endpoint somewhere else. That is the whole of what changes.

More

The guide covers where questions come from and how the bank is built, spending a day on one note, picking up where you stopped, how the three model jobs differ, how to change how it asks, and how to read your vault in graph view.

Licence

Two licences, because there are two kinds of thing here.

  • The code is MIT.
  • The question bank in starter/ is CC BY-SA 4.0. It is writing, not code. Share and adapt it, as long as you credit the source and license what you build under the same terms.

NOTICE says which is which. Your answers are yours — neither licence reaches anything you write.

Development

npm install
npm run dev     # rebuild on change
npm test        # unit tests, no vault and no model needed
npm run build   # typecheck, then bundle

test/fake-vault.ts stands in for Obsidian's App — reads and the whole write surface — so the interview runs and is tested with no Obsidian and no DOM. Tests needing a live model are skipped unless KW_LIVE=1.

Releases are not cut by hand. Pushing a bare semver tag (0.2.0, never v0.2.0) runs .github/workflows/release.yml, which checks the tag against manifest.json and versions.json, tests, builds, attests the assets and publishes them. Every release is signed against the commit it was built from, which matters here because main.js carries all 2,374 questions and nobody can diff those by eye:

gh attestation verify main.js --repo micahchoo/keep-writing
HealthExcellent
ReviewPassed
About
Writing stops when there is nothing to start from. keep-writing makes sure there always is. Each day it puts one question into your daily note. You answer in your own words. It begins with 2,274 questions written for this, kept as ordinary notes you can edit or delete. Then it starts making its own questions out of writing you have already done: a paragraph from years ago returns as a question about your life now. The more you write, the more it has to ask, which is why it does not run out.
WritingDatesAI
Details
Current version
0.8.0
Last updated
Last month
Created
2 months ago
Updates
13 releases
Downloads
1k
Compatible with
Obsidian 1.13.0+
Platforms
Desktop, Mobile
License
MIT
Report bugRequest featureReport plugin
Sponsor
GitHub Sponsors
Author
suffernamesuffername
khattamicah.xyz
GitHubmicahchoo
  1. Community
  2. Plugins
  3. Writing
  4. keep-writing

Related plugins

ChatGPT MD

A seamless integration of ChatGPT, OpenRouter.ai and local LLMs via Ollama into your notes.

Text Generator

Generate text content using GPT-3 (OpenAI).

Calendarium

Craft mind-bending fantasy and sci-fi calendars.

LanguageTool Integration

Advanced grammar and spell checking, powered by LanguageTool.

Claudian

Embeds Claude Code/Codex and other local Agents as AI collaborators in your vault.

Smart Connections

Find related notes and excerpts while writing. Your AI link building copilot displays relevant content in graph + list view. A local embedding model powers semantic search. Zero setup. No API key.

Fast Note Sync

Real-time sync of your vaults across server, mobile, and web; shareable with anyone; supports REST and MCP integrations to build your personal AI knowledge base.

Thino

Quickly capture memos and display them in the sidebar with a heatmap. (Closed source)

Copilot

Run AI agents such as Claude Code, Codex, and OpenCode inside your vault. Turn your second brain into a smart assistant that gets knowledge work done.

Tasks

Track tasks across your vault. Supports due dates, recurring tasks, done dates, sub-set of checklist items, and filtering. Maintained by Clare Macrae and Ilyas Landikov, created by Martin Schenck.