[FEATURE] Discussion mode: read-only conversational sessions with exportable artifacts
Preflight Checklist
- [x] I have searched existing requests and this feature hasn't been requested yet
- [x] This is a single feature request (not multiple features)
Problem Statement
Claude Code has no way to have a purely exploratory conversation without risking unintended writes to memory files, plan artifacts, project docs, or other persistent state. The existing plan mode is the closest approximation, but it imposes a decision-tree constraint — every turn must end with either ExitPlanMode or AskUserQuestion — which is the wrong mental model for open-ended discussion. It forces resolution when none is intended.
The result: users either accept the risk of side effects in a normal session, or they use plan mode and fight its exit constraints throughout a casual conversation.
Proposed Solution
A dedicated discussion mode — either a slash command (/discuss) or a launch flag (--discuss) — that:
- Allows full read access (Read, Grep, Glob, read-only Bash)
- Blocks all implicit writes (file edits, memory updates, plan artifact mutations)
- Has no turn-resolution constraint — conversation can continue freely without forcing a plan or a clarifying question
- Provides a
/save-discussion [filename]command to export the conversation as a Markdown artifact for use in a future planning session
The saved artifact can then be referenced via the existing @filename syntax when starting a real planning session, restoring context without re-explaining the discussion.
Alternative Solutions
- Remain in "plan mode" and deal with the prompts to exit
- Create a skill which can do most of the work, while not having the "read-only" protection. Loss of full conversation for a generated summarization
- Export the session and maybe the import can make appropriate inferences from it?
Priority
Medium - Would be very helpful
Feature Category
Other
Use Case Example
Having a discussion on how feasible an idea might be, walking through pitfalls, technologies, approaches, etc. The conversation usually spans several topics, technical and non-technical (documentation, user adoption, etc), which don't fit a typical "work on code" approach.
Imagine this as a more informal pre-planning discussion with a co-worker, spawned from a hallway conversation. Ironing out major details and considerations, finding out "do we have something like this already?"
Additional Context
Security Considerations
/save-discussion must not be a general filesystem write:
| Risk | Mitigation |
|---------------------------------------------------|-------------------------------------------------------------------------|
| Path traversal (/save-discussion ../../CLAUDE.md) | Strip path separators and .. components; reject absolute paths |
| Overwriting sensitive files | Blocklist CLAUDE.md, settings.json, and other known-sensitive filenames |
| Silent overwrite of existing file | Block or require explicit confirmation if target exists |
| Escaping designated directory | Write only to an allowlisted location (e.g. .claude/discussions/) |
The key distinction: discussion mode blocks implicit writes (side effects). /save-discussion is an explicit, user-initiated write - categorically different, and permitted by the user invoking it.
Out of Scope
- This is not a general read-only filesystem API
/save-discussionis not a general-purpose file write command — it saves the current conversation transcript only, to a designated directory only- This is not a replacement for plan mode; plan mode's exit constraints are appropriate when implementation planning is the actual goal
- This does not affect tool permissions in normal or plan mode
Related Issues
- #47342 - Ask mode (overlapping intent, different framing)
- #48824 - Read-only session mode for side chats (closed as duplicate of #47342, but captures the persistent-state-pollution concern this also addresses)
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗