Repository navigation
Replies: 17 comments 4 replies
|
This would be very helpful. I wish this existed. |
|
Linking #8524, which was closed with two concerns: durable shared state, and no user control. I'd like to propose a smaller design that answers both, and I'm happy to implement it if you approve the direction. 1. Ephemeral state.
2. Explicit control.
3. Scope.
Questions
I'd follow the one-problem rule and send the PR only after a maintainer approves the direction. |
|
+1 from a daily T3 user (macOS desktop, Claude provider). This is the Claude Code feature I miss most since switching. On @thedrowsywinger's questions, from a user's point of view:
The ephemeral design also matches how I'd use it. The suggestion only matters right after a turn finishes, so I wouldn't expect it to survive a restart or show up on another device. @thedrowsywinger if the direction gets approved, I'm happy to help test on macOS or take a part of the implementation. |
|
I built the smaller design from @thedrowsywinger's comment on a fork to check that it holds up: tobymarks/t3code@feat/claude-prompt-suggestions
I tested it in a dev build with Claude Sonnet 5.5 and added focused tests for the adapter and the store. One finding: the CLI did emit a suggestion after the first turn, even though the SDK typings say it is suppressed there.
@thedrowsywinger this isn't meant to take over your proposal. If the direction is approved, feel free to use any of it, or I can open the PR, whichever you and the maintainers prefer. |
|
I opened a PR for this: #17618. It builds on @tobymarks' fork. Suggestions appear as placeholder ghost text: Tab fills the draft and Esc hides it. The toggle lives under Settings → Providers → Claude and is off by default. It also follows the close note on #8524:
Feedback on the product behavior is very welcome. I'm happy to adjust it. |
|
#17618 was closed because upstream isn't taking feature PRs right now, which is fair. Until it lands upstream, I'm publishing a patched nightly on my fork for anyone who wants Claude prompt suggestions now: It's the official nightly with only the #17618 patch added. An hourly workflow picks up each new upstream nightly, applies the patch and builds macOS, Windows and Linux (x64 and arm64). A patched build usually follows the official one within an hour or two, with the same version number, and the app updates itself from my fork's releases. To use it, install it over your existing T3 Code (Nightly), then turn on Settings → Providers → Claude → Prompt suggestions. Claude Code itself decides when to offer a suggestion. It never offers one on the first turn of a new session, in plan mode, after an API error, or when your usage limit is reached, and close to the limit it holds them back unless you opt in. To keep them on as much as Claude allows, add this to {
"promptSuggestionEnabled": true,
"env": {
"CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION": "true"
}
}The main limitations: it's unofficial (please report problems on my fork, not upstream), it only works for Claude in the desktop app, and it replaces the official Nightly instead of installing next to it. The full list, including notes for macOS, Windows and Linux, is in the README. Going back to the official nightly: download the newest |
|
+1 from another daily T3 user (macOS desktop, Claude provider). Ghost-text prompt suggestions are the Claude Code feature I miss most when working in T3. I often keep a terminal open just to get them. The off-by-default toggle under Settings → Providers → Claude described above (as in #17618) would fully cover my use case. It would be great to get a maintainer decision on direction and scope here, since the implementation work already seems to be done. |
|
I'd like this for the Codex provider too. Codex's desktop app calls it Composer Predictions: after a response, it suggests the next message in the empty composer. Tab accepts it as an editable draft, without sending. I saw #17618 was closed pending agreement on feature direction and scope. Would maintainers accept prompt suggestions as a shared composer feature, with provider support added incrementally? The behavior I'd like is:
The existing Claude work looks like a useful starting point. For Codex, the open question is whether its integration exposes native predictions; if it doesn't, would an explicitly opt-in lightweight prediction request be acceptable, given the extra usage and latency? A Claude-only first step is useful, but Codex support is what would cover my workflow. It would help to get agreement on that direction before anyone invests in another implementation. |
|
+1 - really need this (for codex too) |
|
+1 for this. I'm coming from the Claude and Codex desktop apps, and the suggested next prompt (ghost text, Tab to accept) is one of the things I miss most in T3 Code. An off-by-default toggle like the one in #17618 would be perfect for me. |
|
Note 🤖 GPT-6.1 Sol (Codex) responding on behalf of m4rk2077 Following the Codex support question above, would maintainers approve an opt-in Codex implementation of next-prompt suggestions? We have a local prototype, but are seeking agreement on direction and scope before opening a PR. Proposed behavior:
What works today: with Codex CLI This is not proven equivalent to the official app's Composer Predictions. We use our own prediction instruction and cannot claim its quality or usage exemption. The dedicated Local validation: 83 focused tests passed across the affected server, settings, permissions, and browser areas, plus web/server typechecks and targeted lint. An integrated web pass verified settings persistence, generation after a new reply, and Tab acceptance without submission. Small synthetic smoke checks worked with Sol, Terra, and Luna; these are not a quality benchmark. Packaged desktop, native mobile, relay, older CLI compatibility, and simultaneous clients remain unvalidated. Server-side request deduplication also needs attention before a PR. Could maintainers clarify:
An explicit direction/scope decision here would let us prepare a focused PR with the remaining checks, before/after screenshots, and an interaction recording. We are not treating the local tests or this discussion as approval. |
|
+1 from a daily T3 Code user on macOS who mostly runs Codex. Composer Predictions in the Codex desktop app is the feature I miss most after switching. I'd prefer one provider-neutral composer surface, so Claude |
|
Note Written by Claude on behalf of @bennytsai1234 +1 from a daily T3 Code desktop user on Windows who mostly runs Claude. The suggested next prompt (ghost text, Tab to accept) is what I miss most from Claude Code. A Claude-only first step in the shape of #17618 (kept in memory, off-by-default setting, Tab fills the draft and never sends) would already cover my workflow. A provider-neutral composer surface that Codex can plug into later sounds like the right direction, and I'd be glad to see maintainers approve that scope here. |
|
This was picked up separately by Theo in #28047, which is now merged. It adds a Suggest next prompt option under Settings → Labs, off by default, for both Claude and Codex. Tab fills in the suggestion and Escape dismisses it. Mobile is listed as a follow-up. |
|
I'd like to request mobile support as the follow-up to #28047. I updated to the nightly build and next-prompt suggestions now work on desktop, but I'd also like to use them from my phone. The merged PR explicitly leaves mobile out because accepting a suggestion currently requires Tab. Could the mobile composer support the same Claude and Codex suggestions with touch controls? Suggested behavior:
The mobile chip proposed earlier in this discussion looks like a good fit. This would let me keep the same follow-up workflow when switching between desktop and phone. Posted with Codex assistance on behalf of @overkamperic. |
|
Note Written with Codex assistance on behalf of @ackkerman. Extend next-prompt suggestions to providers without native suggestion supportT3 already offers next-prompt suggestions for Claude and Codex through the opt-in Labs setting introduced in #28047. Threads using other providers, including DSH through ACP, do not have an equivalent suggestion source. I'd like approval for a small extension that reuses the existing suggestion transport and composer UI, rather than adding a second UI or requiring an ACP extension. Proposed scope
Reuse
Questions for maintainers
Implementation has not started; I am seeking approval of the direction and scope first. |








Uh oh!
There was an error while loading. Please reload this page.
Claude Code's SDK emits a predicted next prompt after each turn. T3 already receives it and throws it away:
That line came from
6f34ad3e8(#4244), which enumerated every SDK message type to satisfy themessage satisfies neverguard. It reads like a placeholder, not a decision against the feature.I built it on a fork to find out what it actually costs. Posting here instead of opening a PR because CONTRIBUTING.md routes proposals to Ideas and says to discuss non-trivial changes first.
What it does
Web/desktop: dim ghost placeholder text in the empty composer.
Tabaccepts,Escdismisses.Shift+Tabstill toggles plan mode, andTabstill reaches the mention/slash menu when that popover is open.Mobile: a dismissible chip above the input. Tap accepts, X dismisses.
Claude-only. The other adapters never emit the event, the shell field stays
null, nothing renders. No per-adapter work.Design
The value lives in an in-memory
ThreadPromptSuggestionservice, matchingThreadPlanProgressandThreadBackgroundLiveness— no migration, no column, empty after restart. A minimal persisted event exists only to trigger the shell refetch, becausews.tsonly pushes off persisted thread-aggregate events and the suggestion arrives afterturn.completed, so nothing else follows it.Cleared on
turn.startedandsession.exited, never on turn completion. Clearing on completion wipes the suggestion the moment it lands.The suggestion is stamped with the completed turn id, and ingestion drops it if a different turn is already running by the time it arrives. The CLI generates it in a fire-and-forget background query, so it can land after the user has already sent the next prompt.
Size
35 files, +2118/-95. Roughly half is tests and docs. That is past what CONTRIBUTING.md says you want, which is the other reason this is a discussion and not a PR.
Branch: https://github.com/goncharik/t3code/tree/claude-prompt-suggestions
Caveats
Always on, no T3 setting. The only off switch is
CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION=false. I disassembled the CLI to check:promptSuggestionEnabledin settings.json gates the interactive REPL's own ghost text, not the SDK stream. The emit site is gated onC.promptSuggestions && ot.shouldQuery!==false && !Vi() && a.CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION!==false— the settings key is not consulted. Adding aClaudeSettingstoggle is contained if you'd want one.While ghost text is showing,
Tabis consumed to accept it, so you can't tab out of an empty composer without dismissing first. Matches other ghost-text editors, but it is a behavior change.Suppressed on the first turn, in plan mode, and after API errors. Absence is the normal case, which the docs say explicitly so it doesn't read as a bug.
Screenshots for web/desktop, Android, and iOS in a comment below.
Happy to shrink it, split it, or drop it.
All reactions