update
This commit is contained in:
parent
a6b06a67b9
commit
94d60bb3da
4 changed files with 73 additions and 43 deletions
1
.bashrc
1
.bashrc
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
{
|
||||
"workspace.checkThirdParty": false
|
||||
"workspace.checkThirdParty": false
|
||||
}
|
||||
|
|
|
|||
71
agent
Executable file
71
agent
Executable 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
42
claude
|
|
@ -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"
|
||||
Loading…
Reference in a new issue