Conversation
chphch
force-pushed
the
feat/bash-input-mode
branch
from
July 5, 2026 13:15
3de11ab to
9407dbe
Compare
Contributor
Author
|
Flagging an overlap so you don't have to work it out: #597 (@hztBUAA, opened 2026-02-13) answers the same request (#568) from the other side of the wire, and both PRs are sitting open. Here is the difference as I read it — I have no stake in which one lands.
Two honest notes, one each way:
The sharpest user-visible difference is the last row of the table: my output never leaves the device, which is what keeps it cheap, but it also means the command you ran isn't there when you pick the session up somewhere else. #597 doesn't have that gap. Say the word and I'll close this in favour of #597 — no explanation needed. |
chphch
force-pushed
the
feat/bash-input-mode
branch
from
August 6, 2026 06:26
4cf9f10 to
1397478
Compare
chphch
force-pushed
the
feat/bash-input-mode
branch
5 times, most recently
from
August 28, 2026 00:25
1aa8809 to
4140900
Compare
Type a message starting with `!` to run it as a one-off shell command in the session's working directory instead of sending it to the agent — mirrors the Claude Code CLI's `!` bash mode. Per-message only, no persistent toggle. The command runs via the session-scoped `bash` RPC (the same handler that powers directory autocomplete), so it executes in and is sandboxed to the session cwd. The echoed command and its output are injected as local-only messages (no server round-trip), rendering the output in a fenced code block. Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
chphch
force-pushed
the
feat/bash-input-mode
branch
from
September 22, 2026 01:22
4140900 to
799abe6
Compare
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a
!-prefix bash command mode to the chat input, mirroring the Claude Code CLI: a message that starts with!runs as a one-off shell command in the session's working directory instead of being sent to the agent, and its output renders inline. It's per-message only — there's no persistent mode toggle. The command runs over the existing session-scopedbashRPC (the same handler that powers directory autocomplete and Windowscmdsupport), so it executes in and is sandboxed to the session cwd; the echoed command and its output are injected as local-only messages (no server round-trip, the agent is never involved), with output shown in a fenced code block.Proof
Captured locally via a standalone
happy-server(PGlite) + Expo web + a pairedhappy-clidaemon, authenticated through thegetDevWebQueryCredentials()dev URL bypass and driven headlessly with Playwright (live e2e — real daemon, real session). Typing!pwdand!echo BASHMODE_OK_4242runs each as a shell command and renders the output in ashcode block; the agent is never invoked.Verification:
tsc --noEmitclean, and the new strings are added to all 10 locale files. No new message kind and no reducer changes — the output reuses the existing agent-text markdown rendering.Related: addresses #568 (run shell commands from mobile without burning tokens). #597 proposes the same capability with a
$prefix; this uses!to mirror the Claude Code CLI's bash mode.