From PyPI
# Python 3.12+
pip install drydock-cli
drydock
Local-first • Terminal-native • Open-source
____ ____ _
| _ \ _ __ _ _| _ \ ___ ___| | __
| | | | '__| | | | | | |/ _ \ / __| |/ /
| |_| | | | |_| | |_| | (_) | (__| <
|____/|_| \__, |____/ \___/ \___|_|\_\
|___/
Chart your course. Execute with precision. DryDock gives you a focused TUI for exploring, modifying, building, and testing code with local LLMs.
$ drydock
Loading local model route...
GraphRAG context: synced
Tools online: 14
Ready to execute.
What it is
DryDock is a TUI coding assistant designed to work with local LLMs. It gives you a conversational interface to your codebase — explore, modify, build, and test projects through natural language and a focused set of tools.
No data leaves your machine. No API keys. No per-token billing. Just your laptop, your model, and your code.
Install
# Python 3.12+
pip install drydock-cli
drydock
docker run -it --rm \
-e LLAMACPP_URL=http://host.docker.internal:8001/v1 \
-e LLAMACPP_MODEL=gemma4 \
--add-host=host.docker.internal:host-gateway \
-v "$HOME/.drydock:/root/.drydock" \
-v "$(pwd):/work" \
fbobe3/drydock:latest
git clone https://github.com/fbobe321/drydock.git
cd drydock
pip install -e .
Recommended serving stack
DryDock is tested and optimized for Gemma 4 26B-A4B served by llama.cpp with --jinja, the chat-template fix that prevents tool-call loops. Other OpenAI-compatible providers such as Ollama, LM Studio, Mistral, OpenAI, and Anthropic can work, but are not as thoroughly tested.
One command from a fresh box with Docker + an NVIDIA GPU. Downloads the GGUF (~13 GB, one-time, resumable) into ~/.cache/drydock/models/, starts the official ghcr.io/ggml-org/llama.cpp:server-cuda container on port 8000 with all the load-bearing flags baked in.
# Docker + nvidia-container-toolkit required.
curl -sSL https://drydock.pages.dev/setup-llm.sh | bash
# Then point drydock at it:
export DRYDOCK_LOCAL_URL=http://localhost:8000/v1
export DRYDOCK_LOCAL_MODEL=gemma4
drydock
Knobs: QUANT=Q4_K_M for higher quality, VISION=1 for image input, PORT=8001, CONTEXT=16384 if <16 GB VRAM.
Context that moves with the work
DryDock combines an AST symbol indexer with retrieval so the model can work with the right code context instead of guessing from a narrow window.
What's in the box
Textual-powered terminal UI with slash commands, plan/edit modes, session history, undo, back, and goal controls.
Includes read_file, write_file, search_replace, bash, grep, glob, mechanical_rename, retrieve, and more.
OpenAI-compatible endpoint support for llama.cpp, Ollama, and LM Studio. No cloud required.
AST symbol indexing plus TF-IDF retrieval. Auto-prefetches relevant code on every turn.
Per-turn thinking budget: HIGH for planning, OFF for routine writes, and LOW for recovery.
Optional mmproj-F16.gguf projector enables OpenAI-style image inputs with Gemma 4.
Architecture
Tested hardware
GPU: 2× NVIDIA RTX 4060 Ti 16GB, 32GB total VRAM
RAM: 64GB recommended, 32GB minimum
Model: Gemma 4 26B-A4B, 26B MoE, 4B active params per token
Performance: ~15–17 tok/s decode with llama.cpp Q3_K_M
OS: Ubuntu 22.04 / 24.04, kernel 6.8+
Minimum: single 24GB VRAM card with reduced context