An isolated workspace for coding agents on Linux with Docker Engine, natively (e.g. Ubuntu) or in WSL2 on Windows. The agent works in a Linux container with a desktop, browser and normal internet access. It can change project files but can't commit or push.
foxden doesn't ship a coding agent. You add the harnesses, IDEs and services you want as your own Dockerfile layers on top of the base image.
Prototype for local development.
- Linux with Docker Engine (without Docker Desktop): native, e.g. Ubuntu, or WSL2 on Windows
- a VNC viewer, e.g. TigerVNC
- a Git repository or a folder with several repositories
Details: Prerequisites
Put foxden outside your projects:
git clone https://github.com/Foxfire1st/foxden.git \
~/.local/share/foxden
S=~/.local/share/foxden/foxden.shStart the container and desktop. The first build takes a few minutes:
$S ~/projects/my-repo --desktopConnect the VNC viewer to localhost:5900. The desktop has
a bar with a start menu at the top. On WSL2 you can paste
images from the Windows clipboard there with Ctrl+V.
Add your harness as a layer, for example the Cursor CLI (more examples in Layers):
mkdir -p ~/.config/foxden/my-tools
cat > ~/.config/foxden/my-tools/Dockerfile <<'EOF'
ARG BASE=foxden-base:local
FROM ${BASE}
USER root
RUN HOME=/opt/cursor-agent bash -c 'curl -fsSL https://cursor.com/install | bash' \
&& ln -s /opt/cursor-agent/.local/bin/agent /usr/local/bin/agent
USER node
EOF
echo ~/.config/foxden/my-tools > ~/.config/foxden/layersThe next start builds the layer. Sign in once and open the link it shows in your normal browser outside the container (on WSL2: the Windows browser):
$S ~/projects/my-repo env NO_OPEN_BROWSER=1 agent loginStart the agent:
$S ~/projects/my-repo agentWithout a command, $S ~/projects/my-repo opens a shell in
the container.
Several repositories together: pass the parent folder
instead of the repository, e.g. $S ~/projects/my-product.
| What | How |
|---|---|
| Shell in the container | $S ~/projects/my-repo |
| Harnesses, IDEs, services | your layers, see Layers |
| End a session | $S ~/projects/my-repo --stop, reports uncommitted changes |
| Remove the container | $S ~/projects/my-repo --down |
| Logs of local Docker stacks | foxden-logs.sh follow, see Container logs |
| Turn on the GPU | echo NVIDIA > ~/.config/foxden/gpu, see GPU |
You review, commit and push the agent's changes on the host.
- No Git credentials in the container, not even in an IDE in the container.
- Don't attach the host IDE to the container with Dev Containers.
- Review the agent's changes before the host runs them:
Git hooks,
compose.yaml, build scripts. - Only test accounts in the container's browser, no SSO. Open sign-in links in your normal browser.
- End sessions with
--stopand review the changes it reports. - Turn off "Send clipboard to server" in TigerVNC.
- Keep your layers outside every folder you share with the agent.
Reasons: Security model
- Architecture
- Security model
- Prerequisites
- Project files
- First start
- Graphical desktop
- Browser and screenshots
- Layers: harnesses, IDEs and services
- GPU
- Development tools
- Filesystem and persistence
- Internet access
- Managing containers
- Tests
- Troubleshooting
- Roadmap
- Further reading
Test reports: test-reports/