{"slug": "show-hn-what-s-next-end-a-claude-code-turn-with-a-choice-not-prose", "title": "Show HN: What's Next – end a Claude Code turn with a choice, not prose", "summary": "Developer kvit released What's Next, a free MIT-licensed Claude Code plugin that ends an agent turn with a keyboard-selectable card of two to four options instead of a prose report, built on Claude Code's AskUserQuestion tool. The plugin installs via `/plugin install whats-next@kvit`, ships with environment controls including REPORT_GATE=off and REPORT_GATE_MAX_BLOCKS (default 2), and its reorder logic in internal/order passes 14/14 tests.", "body_md": "A Claude Code plugin. It changes how a turn ends: instead of a long end of turn report it finishes with a short report and a question/suggestion you respond to by selecting one of two to four options.\n\n*By [kvit](https://kvit.app). Free and MIT licensed — read [why a turn should end with a choice](https://blog.kvit.app/posts/ending-a-turn-with-a-choice/).*\n\nWhen Claude finishes a piece of work, the thing you have to act on — do this next, or answer that, or it stopped because of this — sits inside prose. You read the paragraph, then type \"what's next\" or \"continue\", and pay for another round trip to get back to where the work was already pointing.\n\nClaude Code already has the right widget for this: the `AskUserQuestion` tool\ndraws a card of labelled options, keyboard-selectable, with free text always\navailable. This plugin makes that call the way a working turn\nends, and checks that it happened.\n\n```\n/plugin marketplace add https://github.com/kvitapp/kvit-plugins.git\n/plugin install whats-next@kvit\n```\n\nThat is all. The next session starts with the convention in force, and removing the plugin removes it.\n\nInstalling copies the plugin's files into\n`~/.claude/plugins/cache/<marketplace>/whats-next/<version>/`, and that\ncopy stays at the commit it was taken from until it is updated. On a machine\nwhere the plugin is already installed, two commands bring it up to date:\n\n```\nclaude plugin marketplace update kvit\nclaude plugin update whats-next@kvit\n```\n\nReordering works and survives a restart.\n\n- Moved the reorder logic into\n`internal/order`, hidden rows keep their slots.- Tests:\n`go test ./internal/order` — 14/14 pass.\n\nfollowed by a card:\n\n``` php\n  Reordering works, 14/14 tests pass. How to proceed?          [Next]\n  -> Commit (Recommended)   Commit the reorder implementation now.\n     Changelog too          Add the changelog entry, then commit.\n     Stop here              Leave it uncommitted; nothing more runs.\n```\n\nPicking an option resumes the session.\n\n| Variable | Effect | \n|---|---|\n| `REPORT_GATE=off` | The convention is not sent and the Stop hook does nothing. | \n| `REPORT_CARD_DISPLAY=off` | No screen markers. | \n| `REPORT_GATE_MAX_BLOCKS` | How many times one prompt may be blocked before the hook gives up. Default 2. | \n| `REPORT_GATE_MUTATING_TOOLS` | Extra tool names to count as work done, space or comma separated. | \n\nEach of these can be set in the environment, in an `env` block in a project's\n`.claude/settings.json`, or in `~/.whats-next/config.json` for a machine-wide\nanswer that does not belong to any one agent:\n\n```\n{ \"REPORT_GATE\": \"off\" }\n```\n\nMIT. See [LICENSE](https://github.com/kvitapp/kvit-plugins/blob/main/LICENSE).", "url": "https://wpnews.pro/news/show-hn-what-s-next-end-a-claude-code-turn-with-a-choice-not-prose", "canonical_source": "https://github.com/kvitapp/kvit-plugins", "published_at": "2026-09-22 16:35:49+00:00", "updated_at": "2026-09-22 16:54:39.217351+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "developer-tools", "ai-products"], "entities": ["Claude Code", "What's Next", "kvit", "AskUserQuestion", "kvit-plugins"], "alternates": {"html": "https://wpnews.pro/news/show-hn-what-s-next-end-a-claude-code-turn-with-a-choice-not-prose", "markdown": "https://wpnews.pro/news/show-hn-what-s-next-end-a-claude-code-turn-with-a-choice-not-prose.md", "text": "https://wpnews.pro/news/show-hn-what-s-next-end-a-claude-code-turn-with-a-choice-not-prose.txt", "jsonld": "https://wpnews.pro/news/show-hn-what-s-next-end-a-claude-code-turn-with-a-choice-not-prose.jsonld"}}