Feature: Aider and VS Code

Purpose

Defines local-model usage for aider and the VS Code surfaces (llama.vscode, VS Code Chat), so everyday editing, completion, and chat run against the house routers instead of a cloud provider.

Requirements

Behavior

Dependencies

Aider

Aider is the CLI pair-programmer used across the workspace projects. Every project shares the same rule-injection pattern: .aider.conf.yml reads the project’s prompts/01-contract.md, 02-workflow.md, 03-conventions.md, the common/ files, the semantic-sort flavor, and tools/aider-rules.md. Historical sessions used cloud models via OpenRouter (openrouter/openrouter/auto) through the LiteLLM proxy; the local-model path replaces that for private and free work.

Local-model invocation against the beast routers:

# routine edits — GPU-resident coder on the MI25
    aider --openai-api-base http://beast.lan:2001/v1 --openai-api-key sk-local \
          --model coder14 --edit-format whole
    
    # long planning or batch run — 120B on the CPU router
    aider --openai-api-base http://beast.lan:2002/v1 --openai-api-key sk-local \
          --model gpt-oss-120b --edit-format whole

llama.vscode

The official llama.cpp VS Code extension (ggml-org.llama-vscode) provides inline completion, chat, an agent, embeddings, and tool selection, and can use a remote llama.cpp server. It does not need to start llama-server itself: localStartCommand is optional, so the routers serve it directly.

The tiered mapping:

Tier Purpose Endpoint Model
Local GPU inline completion (FIM), small and light tasks http://127.0.0.1:8012 (single-model server started by the extension) coder3 (or coder15 for lowest latency)
MI25 more complex chat and agent work http://beast.lan:2001 coder14 for chat, gpt-oss-20b for the agent
CPU longer-running and heavier work http://beast.lan:2002 gpt-oss-120b
Embeddings RAG and the search_source tool http://athena.lan:2001 nomic-embed

VS Code Chat View

The Chat view is provided by GitHub Copilot Chat, which is installed and authenticated on athena. Local models reach it through the llama-vscode language-model provider that the extension registers, so the env must be selected before any local model appears in the picker. Options for local or OpenAI-compatible providers, in order of preference for this setup:

  1. The llama.vscode provider: select an env, then pick one of its models in the Chat view’s model picker.
  2. GitHub Copilot BYOK (bring your own key): use the customoai provider pointed at a router base URL, since Copilot’s BYOK list has no llama.cpp-router entry.
  3. Third-party gateway extensions that route Copilot Chat to self-hosted models (for example github-copilot-llm-gateway, AgenticProxy on the marketplace).
  4. Skip the Chat view entirely: the llama.vscode chat and agent panels cover chat and agentic editing without Copilot.