This commit is contained in:
Jaroslaw Konik 2026-05-12 11:19:40 +02:00
parent a6b06a67b9
commit 94d60bb3da
4 changed files with 73 additions and 43 deletions

View file

@ -13,6 +13,7 @@ alias export_esp='. ~/bin/export-esp.sh'
alias irb='irb -r $HOME/src/dotfiles/helpers.rb'
alias mirb='mirb -r $HOME/src/dotfiles/helpers.rb'
alias docker_wayland='docker run -e XDG_RUNTIME_DIR=/tmp -e WAYLAND_DISPLAY=$WAYLAND_DISPLAY -v $XDG_RUNTIME_DIR/$WAYLAND_DISPLAY:/tmp/$WAYLAND_DISPLAY'
alias aichat="aichat -s"
export SSH_ASKPASS=/usr/bin/ksshaskpass
export SSH_ASKPASS_REQUIRE=prefer

71
agent Executable file
View file

@ -0,0 +1,71 @@
#!/usr/bin/env bash
workspace="$HOME/ai_workspace"
app="opencode"
rebuild=false
while [[ $# -gt 0 ]]; do
case "$1" in
-p|--path)
workspace="$(readlink -f "$2")"
shift 2
;;
-a|--app)
app="$2"
shift 2
;;
--rebuild)
rebuild=true
shift
;;
*)
echo "Usage: $0 [-p /path/to/workspace] [-a claude|opencode] [--rebuild]" >&2
exit 1
;;
esac
done
case "$app" in
claude)
image_name="claude-code-local"
npm_pkg="@anthropic-ai/claude-code"
cmd="claude"
extra_volumes=(
-v "$HOME/.claude:/root/.claude"
-v "$HOME/.claude.json:/root/.claude.json"
)
;;
opencode)
image_name="opencode-local"
npm_pkg="opencode-ai"
cmd="opencode"
extra_volumes=(
-v "$HOME/.config/opencode:/root/.config/opencode"
-v "$HOME/.local/share/opencode:/root/.local/share/opencode"
-v "$HOME/.local/state/opencode:/root/.local/state/opencode"
)
;;
*)
echo "Unknown app '$app'. Choose 'claude' or 'opencode'." >&2
exit 1
;;
esac
if $rebuild || ! docker image inspect "$image_name" &>/dev/null; then
echo "Building $image_name..."
docker build --pull -t "$image_name" - <<EOF
FROM node:24-bullseye
RUN npm install -g $npm_pkg
WORKDIR /workspace
CMD ["$cmd"]
EOF
fi
clear
docker run -it --rm \
--name "${app}-chat" \
-v "$workspace:/workspace" \
"${extra_volumes[@]}" \
-w /workspace \
"$image_name"

42
claude
View file

@ -1,42 +0,0 @@
#!/usr/bin/env bash
workspace="$HOME/ai_workspace"
image_name="claude-code-local"
rebuild=false
while [[ $# -gt 0 ]]; do
case "$1" in
-p|--path)
workspace="$(readlink -f "$2")"
shift 2
;;
--rebuild)
rebuild=true
shift
;;
*)
echo "Usage: $0 [-p /path/to/workspace] [--rebuild]" >&2
exit 1
;;
esac
done
if $rebuild || ! docker image inspect "$image_name" &>/dev/null; then
echo "Building $image_name..."
docker build --pull -t "$image_name" - <<'EOF'
FROM node:24-bullseye
RUN npm install -g @anthropic-ai/claude-code
WORKDIR /workspace
CMD ["claude"]
EOF
fi
clear
docker run -it --rm \
--name claude-chat \
-v "$workspace:/workspace" \
-v "$HOME/.claude:/root/.claude" \
-v "$HOME/.claude.json:/root/.claude.json" \
-w /workspace \
"$image_name"