CodeForge includes several features that are available but not enabled by default. This guide covers how to enable and configure them.
Adds persistent vector memory to Claude Code via a Qdrant MCP server. Claude can store and retrieve information across sessions.
Add to devcontainer.json under "features":
"./features/mcp-qdrant": {
"collectionName": "my-project-memory",
"embeddingModel": "all-MiniLM-L6-v2"
}| Option | Default | Description |
|---|---|---|
collectionName |
agent-memory |
Qdrant collection name |
embeddingModel |
all-MiniLM-L6-v2 |
Embedding model for vector search |
qdrantUrl |
(empty) | Remote Qdrant server URL. If empty, uses local storage. |
qdrantApiKey |
(empty) | API key for remote Qdrant server |
qdrantLocalPath |
/workspaces/.qdrant/storage |
Local storage path (when no URL set) |
all-MiniLM-L6-v2(default, smallest, fastest)BAAI/bge-small-en-v1.5BAAI/bge-base-en-v1.5sentence-transformers/all-mpnet-base-v2
Already met by default container: Python 3.14 and uv are pre-installed.
- During container build, the embedding model is pre-downloaded from GCS (not HuggingFace, to avoid network issues in containers).
- On container start, a post-start hook registers the Qdrant MCP server in Claude Code's
settings.json. - Claude Code can then use
qdrant-storeandqdrant-findtools to persist and search memories.
uvx mcp-server-qdrant --helpAny feature can be disabled without removing it from devcontainer.json by setting "version": "none":
"./features/hadolint": { "version": "none" },
"./features/shellcheck": { "version": "none" }The feature entry stays in the config for easy re-enabling — just remove "version": "none" or set it to "latest".