Repository navigation
Launcher: Claude Code on Linux and WSL - #143
Merged
pmoses-s1 merged 2 commits intoOct 30, 2026
Merged
Conversation
nate-smalls-s1
approved these changes
Oct 30, 2026
nate-smalls-s1
left a comment
Contributor
There was a problem hiding this comment.
Approving. The dd relay fix is correct for pipes and sockets, secrets only travel on stdin/stdout, the Credential Manager read is bounded, and CI is green. Please add the doc updates below before merging.
Docs to update before merge
plugins/s1-secops-skills/docs/upgrading.md: add a note that existing users must re-runinstallto refresh the installed launcher copy. Without it theddfix never reaches~/.local/bin.plugins/s1-secops-skills/docs/docker.md: line 52 still says setup usessecurityorsecret-tool, and the option list on line 59 omits--claude-code. The troubleshooting rows don't cover WSL / Docker Desktop integration.plugins/s1-secops-skills/README.mdline 515: theinstall/configoptions paragraph omits--claude-code(line 140 mentions it).plugins/s1-secops-skills/docs/credentials.md: the platform table has no WSL row for Windows Credential Manager viapowershell.exe.plugins/s1-secops-skills/docs/testing.mdline 218: the launcher-test coverage list doesn't mention the new socket check.
Non-blocking, fine as follow-ups
install --claude-coderunsclaude mcp remove --scope userforvirustotal-mcpandsentinelone-mcp. That deletes a user's own entry if they use either name.- Inside Claude Code with no
--config-path,installsilently skips the Claude Desktop config. A--desktopopt-out would help. - The
~/.claude/settings.jsonwrite uses temp file +os.replace, which replaces a symlinked settings file with a plain one. python3is now required on the--claude-codepath with no fallback.- If
sleep 0.1is unsupported, the fallbacksleep 1makes the credential timeout about 10x longer than set. - CI doesn't run
launcher-test.shor shellcheck, and there is no committed test for--claude-code(stubclaude) or the WSL credential path.
- Remove older Claude Code entry names only when they run this launcher - State when install selects --claude-code inside Claude Code; Desktop config unchanged - Update ~/.claude/settings.json through its resolved path; document MCP_TIMEOUT scope - Wall-clock timeout on Windows Credential Manager reads - Tests for --claude-code and the WSL credential path; new launcher-tests workflow - Docs: upgrading, docker, README, credentials, installation, testing
Contributor
Author
|
Thanks for the review. All items are addressed in the latest push. Docs
Code
Tests and CI
|
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
The Mac/Linux launcher now works with Claude Code on Linux and WSL:
The image, MCP and plugin are unchanged at 1.5.7.
Changes
mcp/docker/s1-secops-mcp-launch.shddinstead ofcat.catshipped by recent Ubuntu releases does not forward socket input, so the server never receivedinitialize.ddhandles pipes and sockets alike, and works with both GNU and BSDdd.install --claude-code:s1-secops-mcp,purple-mcpandvirustotalwithclaude mcp add-json --scope user, carrying the read-only or read-write setting.virustotal-mcpandsentinelone-mcponly whenclaude mcp getshows they run this launcher.MCP_TIMEOUTto at least 120 s in~/.claude/settings.json:installruns inside Claude Code. The launcher says so and states that the Claude Desktop config is unchanged.claudeCLI is not on PATH, the launcher prints the registration commands instead.powershell.exe. These are the same items thats1-secops-mcp-launch.ps1and Cowork on Windows use.S1_KEYCHAIN_TIMEOUT), so an unresponsivepowershell.execannot hang the start.installandsetupprompt through the terminal when stdin is a pipe.setupcommand instead of prompting.S1_LAUNCH_TRACE=<file>logs launcher stages with timestamps. Only stage names and durations are logged, never values.Tests and CI
mcp/docker/launcher-test.shnow covers:initializehandshake over a Unix socketpair (the way Claude Code connects), alongside the pipe check;--claude-codeagainst a stubclaude:powershell.exe: the timeout on a hung call, concurrent reads, and thesetupwrite and read-back.The new workflow
.github/workflows/launcher-tests.ymlruns shellcheck on the launcher and thenlauncher-test.sh, with the image pulled.Docs
docs/upgrading.md: re-runinstallto pick up the new launcher, with the Claude Code and WSL notes.docs/docker.md:--claude-codeand Windows Credential Manager added to the commands and options.docker.sockpermission andpowershell.exeinterop.docs/installation.md: a Claude Code (CLI) section for macOS, Linux and WSL.README.md,docs/credentials.mdanddocs/testing.mdupdated to match.CHANGELOG.mdandmcp/s1-secops-mcp/CHANGELOG.md.Verification
install --claude-coderegistered the servers and read the existing credentials from Windows Credential Manager./mcpconnecteds1-secops-mcp,purple-mcpandvirustotal.launcher-test.sh:mcp/docker/layout: 65 passed, 0 failed.launcher-testson ubuntu-latest: 93 passed, 0 failed.