You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- agents/grok.sh: oauth default (mount ~/.grok; in-container login via
grok login --device-auth) and api-key (XAI_API_KEY); appends
--always-approve since the container is the sandbox
- deva.sh: .grok canonical entry, autolink, XAI_API_KEY env filtering,
blank auth.json overlay for api-key mode (grok prefers the session
token over the env key; the overlay makes the key actually win)
- install tooling: grok's npm bin is a trampoline that resolves
~/.grok/bin/grok first, and postinstall parks the ~125MB real binary
there (self-update dir); move it to ~/.local/bin and drop ~/.grok/bin
so a host-mounted ~/.grok (possibly a macOS binary) can never shadow
the image CLI
- pin GROK_CLI_VERSION=0.2.93 through versions.env, Makefile,
Dockerfile(+rust), version scripts, ci/nightly/release workflows,
install.sh agent list
- tests: registry, version-upgrade, install-tooling, version-targets
- docs: README, authentication, quick-start, how-it-works, changelog
Close#403
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Why: xAI shipped an official coding-agent CLI (x.ai/cli, npm @xai-official/grok); deva should launch it like claude/codex/gemini. Not to be confused with community superagent-ai/grok-cli (npm grok-dev) — different product, same bin name.
18
+
- What:
19
+
- agents/grok.sh: oauth default (mount ~/.grok) + api-key (XAI_API_KEY); appends --always-approve (grok's bypassPermissions alias) since the container is the sandbox
20
+
- deva.sh: canonical entry .grok, autolink ~/.grok, XAI_API_KEY env handling, blank-overlay /home/deva/.grok/auth.json for api-key mode (grok prefers session token over env key — overlay makes the key actually win)
21
+
- install-agent-tooling.sh pin_grok_platform_binary: grok's npm bin is a trampoline that resolves ~/.grok/bin/grok FIRST, and postinstall parks the ~125MB real binary there (self-update dir); a host mount would shadow it (macOS binary -> exec format error). Move the binary to ~/.local/bin, repoint the npm bin, rm ~/.grok/bin
- Result: deva.sh grok works with both auth modes (dry-run verified: mount + env + overlay wiring); grok pinned at 0.2.93; make versions-up picks up new upstream releases
24
+
16
25
# [2026-07-07] Dev Log: switch --trace default from claude-trace to cctrace
17
26
- Why: claude-trace's node --require fetch hook only sees /v1/messages and dies on native Claude binaries; cctrace (thevibeworks/cctrace) MITM-captures everything (OAuth, usage/credits, MCP) and auto-detects npm vs native installs
Run Codex, Claude Code, and Gemini inside Docker without pretending the agent's own sandbox is the thing keeping you safe.
11
+
Run Codex, Claude Code, Gemini, and Grok inside Docker without pretending the agent's own sandbox is the thing keeping you safe.
12
12
13
13
The container is the sandbox. Explicit mounts are the contract. Persistent project containers keep the workflow fast instead of rebuilding the same state every run.
14
14
15
15
This repo is the source of truth for `deva.sh`.
16
16
17
17
## What This Is
18
18
19
-
- a Docker-based launcher for Codex, Claude, and Gemini
19
+
- a Docker-based launcher for Codex, Claude, Gemini, and Grok
20
20
- one warm default container shape per project by default
21
21
- explicit mount and env wiring instead of mystery behavior
22
22
- per-agent config homes under `~/.config/deva/`
@@ -54,7 +54,7 @@ deva.sh ps
54
54
deva.sh stop
55
55
```
56
56
57
-
If you already use Codex, Claude, or Gemini locally, deva will auto-link those auth homes into `~/.config/deva/` by default. If not, first run will ask you to authenticate inside the container.
57
+
If you already use Codex, Claude, Gemini, or Grok locally, deva will auto-link those auth homes into `~/.config/deva/` by default. If not, first run will ask you to authenticate inside the container.
0 commit comments