Repository navigation
Claude in Chrome: per-device setting, settings toggle + MCP (stacked on #926, #927) - #928
Open
katulevskiy wants to merge 7 commits into
Open
katulevskiy wants to merge 7 commits into
katulevskiy wants to merge 7 commits into
Conversation
Throwaway command and model probes waited out the SIGTERM grace after the answer was already in hand. SIGKILL the process group and reap it so a CLI that ignores SIGTERM does not hold the menu open.
Chats created through the MCP server accept args, passed verbatim to the agent CLI on every turn (claude-code, codex), with a per-harness list of flags Zeron manages. The host applies the chat's stored args to every run and re-validates them before launch.
Repeat menu opens return the last command and skill lists immediately. A background refresh replaces that entry on success. A harness update, disable, or slot replacement drops the cached lists. Errors are not stored.
…feat/claude-chrome-setting
…nce) Zeron runs Claude Code in --print mode, where the CLI ignores claudeInChromeDefaultEnabled; the Chrome tools only load with --chrome. Add a per-device setting, imported once from Claude's config, that launches new Claude Code sessions with --chrome. Exposed over GetHarnessSettings/SetHarnessSettings (relay-forwardable) and the MCP set_harness_settings tool; list_harnesses reports it.
katulevskiy
force-pushed
the
feat/claude-chrome-setting
branch
from
October 16, 2026 06:08
26a501b to
cbcccb0
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.
summary
claude code chats in zeron can't use the claude in chrome extension, even for users who enabled it by default in claude. this adds a per-device zeron setting, claude in chrome, that launches new claude code sessions with
--chrome. it is togglable in settings and over the zeron mcp.why it didn't work
zeron runs claude as
claude --print --input-format stream-json …. in--printmode the cli ignoresclaudeInChromeDefaultEnabledfrom~/.claude.json; the chrome tools only load when--chromeis passed explicitly. measured with claude 2.1.301:claude-in-chromeserver--chromewhat's added
ClaudeHarness::with_chrome_default(Arc<AtomicBool>). ordinary runs add--chromewhile the flag is set. title runs and discovery probes never do. the flag is read at spawn, so a change applies to sessions started afterwards, and running sessions keep their setting.harness-prefs.jsongainsclaude.chrome.$CLAUDE_CONFIG_DIR/.claude.json, else~/.claude.json, keyclaudeInChromeDefaultEnabled). a missing file, bad json or a missing key gives false. it is persisted right away, so later edits to claude's own config don't move it.Arc<AtomicBool>and shares it with the claude factory.GetHarnessSettings→{ claudeChrome }andSetHarnessSettings { claudeChrome }→{ claudeChrome }. both are relay-forwardable withtargetDeviceId, like the title settings.set_harness_settings { device?, claude_chrome }tool, so agents can turn it on or off for a device.list_harnessesreportssettings.claudeChrome, and omits it for older devices.GetHarnessSettings, i.e. older versions.trade-offs
--chrome.args: ["--chrome"]/["--no-chrome"]. the device--chromegoes before the chat's args, so a chat's--no-chromewins (device_chrome_precedes_a_chat_no_chrome).tests
zeron-harness --test claude: 30 passed.--chromeis present only when the flag is set, and never for title runs or probes.zeron-harness --lib claude: 41 passed, includingdevice_chrome_precedes_a_chat_no_chrome.zeron-engine --lib registry: 37 passed. import-once is covered for true, false, a missing file, bad json and a non-bool value, plus the source file changing afterwards, a persistence round-trip and the shared flag updating.zeron-engine --lib rpc: 26 passed.zeron-mcp: 36 passed, includingharness_settings_round_trip_and_older_devices_omit_them.zeron-ui settings::harnesses: 9 passed, 5 of them new. they cover the loaded value, the flipped write, device targeting and refetch, revert on failure, and the hidden row on unsupported devices.cargo check --workspace --all-targetsis clean on the stacked branch.