Repository navigation
Conversation
Installing a checkout meant cargo install, then registering the binary with each agent by hand. make install now builds, installs into BINDIR (~/.local/bin by default), and registers the result with Claude Code when its CLI is on PATH, and with Codex when its config exists. make register repeats only the registration. The binary is staged in BINDIR, ad-hoc signed, run once, then renamed over the target: copying over an image macOS has already run leaves a stale code signature, and every later exec dies with SIGKILL. A failed build or smoke run leaves the installed binary as it was. An entry either client already has is left alone, since it may carry env or args the user added. The Codex entry is appended, not written by codex mcp add, because only the file can forward the token by name through env_vars. The merged document is parsed before anything is written, so a config with the table in any spelling is not doubled, and one that is not valid UTF-8 TOML is refused untouched. The installer runs on the Python 3.9 macOS ships, and needs 3.11 only to read a Codex config. tests/install.py exercises it against stubbed cargo and claude, and CI runs it on Linux and macOS.
make install, which installs and registers the server
make install, which installs and registers the server
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.
Installing a checkout meant
cargo install, then registering the binary with each agent by hand.make installnow builds, installs intoBINDIR(~/.local/binby default), and registers the binary with Claude Code and, when a Codex config exists, with Codex.make registerrepeats only the registration. An entry either client already has is left alone, since it may carry env or args the user added, and neither entry holds the token.The binary is staged in
BINDIR, ad-hoc signed, run once, then renamed over the target, because copying over an image macOS has already run gets every later exec killed. The Codex entry is appended rather than written bycodex mcp add, whose--envstores values instead of forwarding the token by name. The installer runs on the Python 3.9 macOS ships and needs 3.11 only to read a Codex config.Verified on macOS (GNU Make 3.81):
python3 tests/install.pypasses; it drivesmake installandmake registeragainst stubbedcargoandclaude(spaces, quotes, a leading dash and~inBINDIR, existing entries in every TOML spelling, invalid configs, failed builds and smoke runs,CODEX_HOME). CI now runs it on Linux and macOS.make installinto a scratchHOMEandBINDIR, with/usr/bin/python3(3.9) and with Homebrew's 3.14: installs, registers once, and a second run leaves both entries as they are.Summary by cubic
Adds
make install, which builds, installs intoBINDIR(default~/.local/bin), and registers the binary with Claude Code when theclaudeCLI is onPATHand, when a Codex config exists, with Codex.make registerrepeats only the registration, replacing manualcargo installand per-agent setup.Details
BINDIR, ad-hoc signed, run once, then renamed over the target; copying over an image macOS has already run leaves a stale codesign blob that kills every later exec. SIGTERM and SIGHUP leave no staged file behind.config.tomlrather than written viacodex mcp add, whose--envstores values instead of forwarding the token by name.PYTHON=...picks the interpreter.python3 tests/install.pyexercises install and register against stubbedcargoandclaudeand needs Python 3.11, and CI now runs it on Linux and macOS.Written for commit 5290820. Summary will update on new commits.