4c14966ae3
The Pi Agent dockerfile templates created ~/.tmux.conf with a literal \n because the RUN command used single-quoted echo. Tmux never parsed the malformed line, so mouse mode stayed off. Without tmux mouse mode, mouse-wheel events in xterm.js fell back to Up/Down arrow keys and cycled shell command history instead of scrolling the terminal buffer. - Use printf '%s\n' to write real newlines in .tmux.conf. - Apply the same fix to the ranger rc.conf where the same bug existed. - Update tool-images/pi-agent.dockerfile and both affected alembic migration dockerfile strings. Quality gates: npm run typecheck, npm run lint, npm test -- --run (87 passed), py_compile on changed migrations. Refs: openspec/changes/fix-tmux-mouse-config
Tool Images
This directory contains Dockerfile templates for the base tool types used in Headquarter.
Available Images
| File | Tool | Description |
|---|---|---|
base.dockerfile |
- | Common base with git, nvim, ranger, tmux, node |
code-server.dockerfile |
VS Code | Browser-based VS Code with extra tools |
jupyter.dockerfile |
Jupyter | Jupyter Lab/Notebook with extra tools |
opencode.dockerfile |
OpenCode | OpenCode agent server |
pi-agent.dockerfile |
Pi Agent | Pi coding agent with full terminal setup |
Usage
When creating a tool type in the Tool Workshop, you can reference these Dockerfiles:
- Copy the contents of the desired
.dockerfile - Paste into the "Dockerfile Template" field
- Set
definition_typetodockerfile
Building Locally
To test an image locally:
cd tool-images
docker build -f pi-agent.dockerfile -t pi-agent:latest .
docker run -it pi-agent:latest
Customizing
All images include:
- git - Version control
- neovim - Terminal editor
- ranger - Terminal file manager
- tmux - Terminal multiplexer
- htop - Process viewer
- tree - Directory tree
- jq - JSON processor
- Node.js 20 - For npm-based tools
The pi-agent image additionally includes the Pi Coding Agent for AI-assisted development.
Adding New Images
- Create a new
.dockerfilein this directory - Use
base.dockerfileas a starting point if applicable - Document it in the table above
- Update the tool type in the database via the Tool Workshop