Run Codex, Claude Code, and OpenCode in Docker — sandboxed, with your project and subscription login mounted. No clone required.
Published images: sayem314/ai-agents
- Install Docker.
- Sign in to each tool on your host once (
~/.codex,~/.claude, etc.). - Add aliases to
~/.zshrcor~/.bashrc(pick one or more tools):
# Codex
alias codex='docker run -it --rm -w /workspace \
-v "$PWD:/workspace" \
-v "$HOME/.codex:/root/.codex" \
-v "$HOME/.config/codex:/root/.config/codex" \
sayem314/ai-agents:codex --sandbox danger-full-access'
# Claude Code
alias claude-code='docker run -it --rm -w /workspace \
-v "$PWD:/workspace" \
-v "$HOME/.claude:/root/.claude" \
-v "$HOME/.config/claude:/root/.config/claude" \
sayem314/ai-agents:claude-code --dangerously-skip-permissions'
alias claude='claude-code'
# OpenCode
alias opencode='docker run -it --rm -w /workspace \
-v "$PWD:/workspace" \
-v "$HOME/.config/opencode:/root/.config/opencode" \
-v "$HOME/.local/share/opencode:/root/.local/share/opencode" \
sayem314/ai-agents:opencode'- Run from any project:
cd ~/my-app && codex # or: claude-code / opencodeMore aliases, language variants, and options → Documentation
| Codex | Aliases, sandbox flags, -node / -python / … variants |
| Claude Code | Aliases, permission flags, language variants |
| OpenCode | Aliases, language variants |
| Images | All 15 tags, language stacks, which variant to pick |
| Authentication | Subscription login, API keys, git/SSH |
| Security | What Docker protects (and what it does not) |
| Troubleshooting | Pull, login, permissions, macOS mounts |
| Maintainers | Build, publish, repo layout |
| Command | Image tag |
|---|---|
codex |
sayem314/ai-agents:codex |
claude-code |
sayem314/ai-agents:claude-code |
opencode |
sayem314/ai-agents:opencode |
codex-node, claude-python, … |
sayem314/ai-agents:<tool>-<lang> |
Default tags use the full language stack. Use -node, -python, -go, or -rust for smaller images.