Skip to content

Commit 4214064

Browse files
committed
replace tmux with codewire for claude sessions
Delete claude-session and claude-attach scripts — cw handles everything natively (list, attach, logs, kill). Launch claude inline in main.tf via `cw launch` instead of shelling out to a script. Install cw v0.1.1 binary in the Dockerfile.
1 parent 72d4a25 commit 4214064

5 files changed

Lines changed: 15 additions & 159 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ templates/
7979
│ ├── Dockerfile # FROM base, adds Docker
8080
│ ├── module/ # Terraform module
8181
│ │ └── main.tf
82-
│ └── scripts/ # claude-session, claude-attach, etc.
82+
│ └── scripts/ # setup-docker, start-vnc, etc.
8383
├── desktop/ # XFCE desktop environment
8484
│ ├── Dockerfile # FROM dind, adds XFCE + VNC
8585
│ └── scripts/

dind/Dockerfile

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,11 @@ RUN apt-get update && \
4545
libx11-xcb1 \
4646
&& rm -rf /var/lib/apt/lists/*
4747

48+
# Install codewire (persistent PTY session manager)
49+
RUN curl -fsSL -o /usr/local/bin/cw \
50+
https://github.com/codespacesh/codewire/releases/download/v0.1.1/cw-v0.1.1-x86_64-unknown-linux-musl \
51+
&& chmod +x /usr/local/bin/cw
52+
4853
# Enable Docker with systemd
4954
RUN systemctl enable docker
5055

dind/module/main.tf

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -367,15 +367,16 @@ resource "coder_agent" "main" {
367367
bash /opt/coder-scripts/setup-openclaw.sh
368368
fi
369369
370-
# Start Claude in tmux session (non-blocking)
371-
if [ -f /opt/coder-scripts/claude-session ]; then
372-
setsid /opt/coder-scripts/claude-session --wait-for-claude </dev/null >/dev/null 2>&1 &
373-
fi
370+
# Launch Claude in a codewire session (non-blocking)
371+
# Wait for claude CLI (installed by claude-code module)
372+
for i in {1..30}; do
373+
command -v claude &>/dev/null && break
374+
sleep 2
375+
done
374376
375-
# Make claude scripts available as commands
376-
mkdir -p /home/coder/.local/bin
377-
ln -sf /opt/coder-scripts/claude-attach /home/coder/.local/bin/claude-attach
378-
ln -sf /opt/coder-scripts/claude-session /home/coder/.local/bin/claude-session
377+
if command -v claude &>/dev/null && [ -n "$ISSUE_NUMBER" ]; then
378+
cw launch --dir "/home/coder/${var.project_name}" -- claude -p "$CODER_MCP_CLAUDE_TASK_PROMPT"
379+
fi
379380
380381
echo "=== ${var.project_name} workspace ready ==="
381382
if [ -f docker-compose.yml ] || [ -f docker-compose.yaml ] || [ -f compose.yml ] || [ -f compose.yaml ]; then

dind/scripts/claude-attach

Lines changed: 0 additions & 48 deletions
This file was deleted.

dind/scripts/claude-session

Lines changed: 0 additions & 102 deletions
This file was deleted.

0 commit comments

Comments
 (0)