Conversation
Add the official installer, put grok and agent on the guest PATH, and require the binary in the golden image. Marketplace baking comes later.
Parse api_key, env_forward, config_dir, marketplaces, plugins, and Model Context Protocol servers the same way [claude] and [codex] work.
Add coop grok, forward XAI_API_KEY, and copy host allowlisted files without following directory symlinks. Write managed settings and folder trust, drop the host [plugins] table, set a copied auth.json to 0600, and install configured plugins. coop agent update --grok runs grok update.
Add the integration guide and update the command, config, trust-model, and getting-started docs so the third agent is listed with Claude and Codex.
A developer ~/.grok/skills can hold gigabytes of git lore and venvs. Copying that into every VM start filled the Lima disk and left read-only packs that a second scp could not overwrite. The restart remove quoted ~ so it never expanded. Skip hidden and bare-git directories, leave ~/ unquoted in the guest remove, and isolate the integration suite from host ~/.grok.
Growing a disk with truncate left lima.yaml at the old size, so the next start looked like a shrink and Lima refused to boot. Update disk: with the grow, and revert the yaml if truncate fails.
alisaifee
marked this pull request as ready for review
September 11, 2026 15:52
hbrodin
reviewed
Sep 14, 2026
hbrodin
reviewed
Sep 14, 2026
hbrodin
reviewed
Sep 14, 2026
hbrodin
reviewed
Sep 14, 2026
hbrodin
reviewed
Sep 14, 2026
Collaborator
|
Thanks for contributing Grok Build support! The main changes I'd like to see are preserving guest-created config files and Grok plugin activation across restarts, restoring Lima's configuration on every resize failure path, failing the version check when an installed Grok binary cannot run, and reporting curl's actual failure status. I've left the details inline. |
Overlay host Grok config onto the guest file instead of replacing it, keep guest [plugins].enabled across merge, and chmod dest dirs before scp so guest-only files survive restart.
The official installer already links ~/.grok/bin/agent. grok and grok-yolo on the system PATH are enough.
# Conflicts: # docs/commands.md # docs/images-and-profiles.md # src/backend.rs # src/commands/agent.rs # src/guest.rs
Match Claude's overlay contract: restart overwrites host files, guest-only entries and config_dir = false keep prior copies.
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.
Problem
coop can launch Claude Code and Codex in the guest. Grok Build has to be
installed and configured by hand.
Description
coop groklaunches Grok Build in the guest.coop setupinstalls it fromhttps://x.ai/cli/install.sh as the guest user. The image ships home skel
files as root, so setup
chown -Rs the guest home first. The launcherSSHes in with
--always-approve,--trust, and--cwd /workspace.--askadds--permission-mode default.loginandlogoutkeep--trustand--cwd /workspace.Changes
~/.grok/binon PATH,/usr/local/bin/grok,grok-yolo. The guest installers share oneshell; Grok deletes its temp installer after it runs.
[grok]:api_key,env_forward,config_dir, marketplaces,plugins, Model Context Protocol servers.
XAI_API_KEYgoes in over SSHSendEnv. Allowlisted hostfiles overlay into
~/.grok. Restart overwrites files still presenton the host; guest-only files and
config_dir = falsekeep priorcopies. Directory symlinks, hidden directories, and bare git repos
stay on the host. Host
config.tomlis merged except[plugins];guest
[plugins]is kept./workspaceis recorded intrusted_folders.toml. A copiedauth.jsonis mode0600.Configured plugins install on first boot.
coop agent update --grokrunsgrok update. The guest user can rungrok updatedirectly.--checkprints Claude Code, Codex, andGrok Build.
lima.yamldisk:andrestores the original yaml if the grow fails.
docs/grok-integration.md, commands, getting started, trustmodel, changelog.
--no-agentsnames Grok Build.grok-yolo, settings merge afterrestart,
--checknames all three. The suite sets[grok] config_dir = false. The merge phase pointsconfig_dirat afixture directory.
Existing images:
coop setup --rebuild. Existing VMs:coop restore <vm> --image <image> --reprovision(or destroy andrecreate).
Validation