Offline/air-gapped aider AI coding-assistant CLI (Python 3.12) with a full dev toolbelt
1.7K
A self-contained, offline-friendly aider coding-assistant image with a batteries-included CLI toolbelt.
This image bundles aider-chat alongside a full developer environment (git, ripgrep, fzf, node/npm, and CLI agents like Claude Code and Codex). It is pre-configured for air-gapped / on-prem model serving: telemetry and update checks are disabled, TLS verification is turned off for use behind intercepting proxies, and aider's model-info cache is pre-seeded so it never phones home to GitHub or Hugging Face.
docker pull n8500x/aider-chat
Run aider against a local repo, pointing it at an on-prem model endpoint:
docker run -it --rm \
-v "$PWD":/workspace \
-e OPENAI_API_BASE=http://your-vllm-host:8000/v1 \
-e OPENAI_API_KEY=dummy \
n8500x/aider-chat --model openai/your-model-name
The default CMD is --help, so docker run --rm n8500x/aider-chat prints aider's usage. The working directory inside the container is /workspace — mount your project there.
python:3.12-slimaider-chat (installed via pip; no [browser] extra — Playwright is intentionally excluded)aider (uid/gid 1000) with HOME=/home/aiderpre-commit, ipython, httpie, yq@anthropic-ai/claude-code, @openai/codexgit, git-lfs, openssh-client, curl, wget, jq, ripgrep, fd-find, fzf, bat, tree, tmux, make, build-essential, shellcheck, vim, nano, nodejs, npm~/.aider.model.settings.yml is written for hosted_vllm/ and openai/ models (edit format whole, repo-map disabled) to keep prompts simple for local LLMs.aider-entrypoint) sets up $HOME, refreshes cache timestamps, disables the Hugging Face tokenizer download, and then execs aider.| Variable | Value | Purpose |
|---|---|---|
AIDER_AUTO_COMMITS | false | Disable automatic git commits |
AIDER_DARK_MODE | true | Dark terminal theme |
AIDER_CHECK_UPDATE | false | No update checks |
AIDER_SHOW_RELEASE_NOTES | false | Suppress release notes |
AIDER_ANALYTICS / AIDER_ANALYTICS_DISABLE | false / true | Disable analytics / phone-home |
AIDER_DISABLE_PLAYWRIGHT | true | No headless-browser scraping |
AIDER_EDIT_FORMAT | whole | Whole-file edits (better for local LLMs) |
AIDER_MAP_TOKENS | 0 | Disable repo map |
AIDER_CHAT_HISTORY_FILE | /home/aider/.aider/chat-history.md | Chat history location |
AIDER_INPUT_HISTORY_FILE | /home/aider/.aider/input-history.md | Input history location |
AIDER_DOCKER_IMAGE | n8500x/aider-chat | Image self-identifier |
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC | 1 | Disable Claude Code telemetry |
NO_UPDATE_NOTIFIER / NPM_CONFIG_UPDATE_NOTIFIER | 1 / false | No node/npm update checks |
LITELLM_LOCAL_MODEL_COST_MAP | true | Use bundled cost map, no download |
HF_HUB_OFFLINE / TRANSFORMERS_OFFLINE | 1 | Skip Hugging Face downloads |
EDITOR | vim | Default editor |
For use behind intercepting corporate proxies, certificate verification is turned off across the toolchain via: PYTHONHTTPSVERIFY=0, CURL_CA_BUNDLE="", GIT_SSL_NO_VERIFY=true, NODE_TLS_REJECT_UNAUTHORIZED=0, NPM_CONFIG_STRICT_SSL=false, REQUESTS_CA_BUNDLE="", SSL_CERT_FILE="", SSL_VERIFY=false, AIDER_NO_VERIFY_SSL=true, OPENAI_API_SSL_VERIFY=false, plus PIP_TRUSTED_HOST for the PyPI hosts.
EXPOSE 8501 is declared./workspace (the container's WORKDIR).| Arg | Default | Purpose |
|---|---|---|
USERNAME | aider | Non-root user name |
USER_UID | 1000 | User id |
USER_GID | 1000 | Group id |
HTTP_PROXY / HTTPS_PROXY / NO_PROXY | (unset) | Build-time proxy support |
DEBIAN_FRONTEND | noninteractive | apt non-interactive install |
docker build -t n8500x/aider-chat aider-chat/
Behind a proxy, pass proxy build args:
docker build \
--build-arg HTTP_PROXY=http://proxy:8080 \
--build-arg HTTPS_PROXY=http://proxy:8080 \
--build-arg NO_PROXY=localhost,127.0.0.1 \
-t n8500x/aider-chat aider-chat/
model_prices_and_context_window_backup.json, HF_HUB_OFFLINE/TRANSFORMERS_OFFLINE are set, and the entrypoint disables the litellm Hugging Face tokenizer download — so aider never fetches model data from GitHub or Hugging Face at runtime.hosted_vllm/ and openai/ model prefixes with whole-file edits and no repo map, tuned for smaller local LLMs.[browser] extra); aider's web-scraping features that require a headless browser are unavailable.Content type
Image
Digest
sha256:a5e93ac3d…
Size
653 MB
Last updated
5 months ago
docker pull n8500x/aider-chat