From source
git clone https://github.com/fbobe321/drydock.git
cd drydock
pip install -e .
drydock
Local-first • Terminal-native • Open-source
____ ____ _
| _ \ _ __ _ _| _ \ ___ ___| | __
| | | | '__| | | | | | |/ _ \ / __| |/ /
| |_| | | | |_| | |_| | (_) | (__| <
|____/|_| \__, |____/ \___/ \___|_|\_\
|___/
Chart your course. Execute with precision. DryDock is a focused TUI for exploring, modifying, building, and testing code with your own local LLM — primary target Gemma 4 26B on llama.cpp. No accounts, no telemetry, no cloud.
$ 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
DryDock is being rebuilt from the ground up as an original, Apache-2.0 codebase we own end to end — no upstream fork. Every release is gated by a credential-exfiltration scanner that refuses to publish anything that reaches off-box. PyPI and Docker images return once the rebuild lands and the account is restored.
git clone https://github.com/fbobe321/drydock.git
cd drydock
pip install -e .
drydock
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