{
  "schemaVersion": 1,
  "catalogVersion": "0.3.0",
  "defaultLocalModelId": "qwen2.5-coder-3b",
  "defaultInlineModelId": "llama-3.2-1b",
  "defaultCloudProviderId": "anthropic",
  "localModels": [
    {
      "id": "qwen2.5-coder-3b",
      "name": "Qwen2.5 Coder 3B",
      "description": "Code- and LaTeX-tuned. Best structured tool-calling in the 3B class - the strongest fit for an in-editor agent.",
      "params": "3B",
      "downloadSize": "~2.0 GB",
      "ramEstimate": "~3.3 GB",
      "minSystemRamGb": 8,
      "tier": "recommended",
      "quant": "Q4_K_M",
      "downloadUrl": "https://huggingface.co/bartowski/Qwen2.5-Coder-3B-Instruct-GGUF/resolve/main/Qwen2.5-Coder-3B-Instruct-Q4_K_M.gguf",
      "fileName": "qwen2.5-coder-3b-instruct-q4_k_m.gguf",
      "supportsTools": true,
      "strengths": ["LaTeX", "Tool use", "Error fixing"]
    },
    {
      "id": "qwen3-4b",
      "name": "Qwen3 4B",
      "description": "Strongest reasoning at the top of the budget, with an optional think mode. Best answers if your machine has the headroom.",
      "params": "4B",
      "downloadSize": "~2.5 GB",
      "ramEstimate": "~3.9 GB",
      "minSystemRamGb": 12,
      "tier": "balanced",
      "quant": "Q4_K_M",
      "downloadUrl": "https://huggingface.co/bartowski/Qwen_Qwen3-4B-GGUF/resolve/main/Qwen_Qwen3-4B-Q4_K_M.gguf",
      "fileName": "qwen3-4b-q4_k_m.gguf",
      "supportsTools": true,
      "strengths": ["Reasoning", "Tool use", "Math"]
    },
    {
      "id": "llama-3.2-3b",
      "name": "Llama 3.2 3B",
      "description": "Best pure prose and rewriting. Slightly weaker at structured tool calls, ideal if you mostly want writing help.",
      "params": "3B",
      "downloadSize": "~2.0 GB",
      "ramEstimate": "~3.3 GB",
      "minSystemRamGb": 8,
      "tier": "balanced",
      "quant": "Q4_K_M",
      "downloadUrl": "https://huggingface.co/bartowski/Llama-3.2-3B-Instruct-GGUF/resolve/main/Llama-3.2-3B-Instruct-Q4_K_M.gguf",
      "fileName": "llama-3.2-3b-instruct-q4_k_m.gguf",
      "supportsTools": true,
      "strengths": ["Prose", "Rewriting", "Summaries"]
    },
    {
      "id": "phi-4-mini",
      "name": "Phi-4 Mini",
      "description": "Strong math and structured output. A good pick for theorem-heavy or equation-heavy documents.",
      "params": "3.8B",
      "downloadSize": "~2.4 GB",
      "ramEstimate": "~3.7 GB",
      "minSystemRamGb": 10,
      "tier": "balanced",
      "quant": "Q4_K_M",
      "downloadUrl": "https://huggingface.co/bartowski/microsoft_Phi-4-mini-instruct-GGUF/resolve/main/microsoft_Phi-4-mini-instruct-Q4_K_M.gguf",
      "fileName": "phi-4-mini-instruct-q4_k_m.gguf",
      "supportsTools": true,
      "strengths": ["Math", "Structure", "Reasoning"]
    },
    {
      "id": "qwen2.5-coder-1.5b",
      "name": "Qwen2.5 Coder 1.5B",
      "description": "Half the size of the 3B Coder with most of its structured-output skill. The best small pick for the in-editor agent on low-RAM machines.",
      "params": "1.5B",
      "downloadSize": "~1.0 GB",
      "ramEstimate": "~1.9 GB",
      "minSystemRamGb": 4,
      "tier": "light",
      "quant": "Q4_K_M",
      "downloadUrl": "https://huggingface.co/bartowski/Qwen2.5-Coder-1.5B-Instruct-GGUF/resolve/main/Qwen2.5-Coder-1.5B-Instruct-Q4_K_M.gguf",
      "fileName": "qwen2.5-coder-1.5b-instruct-q4_k_m.gguf",
      "supportsTools": true,
      "strengths": ["LaTeX", "Low RAM", "Fast"]
    },
    {
      "id": "qwen3-1.7b",
      "name": "Qwen3 1.7B",
      "description": "Newest small generalist - the strongest reasoning under 2B, with tool-call training. Great quality-per-GB.",
      "params": "1.7B",
      "downloadSize": "~1.3 GB",
      "ramEstimate": "~2.2 GB",
      "minSystemRamGb": 4,
      "tier": "light",
      "quant": "Q4_K_M",
      "downloadUrl": "https://huggingface.co/bartowski/Qwen_Qwen3-1.7B-GGUF/resolve/main/Qwen_Qwen3-1.7B-Q4_K_M.gguf",
      "fileName": "qwen3-1.7b-q4_k_m.gguf",
      "supportsTools": true,
      "strengths": ["Reasoning", "Low RAM", "Tool use"]
    },
    {
      "id": "gemma-3-1b",
      "name": "Gemma 3 1B",
      "description": "Smallest chat-capable pick. Clean prose and summaries in under a gigabyte; not suited to tool calling.",
      "params": "1B",
      "downloadSize": "~0.8 GB",
      "ramEstimate": "~1.5 GB",
      "minSystemRamGb": 4,
      "tier": "light",
      "quant": "Q4_K_M",
      "downloadUrl": "https://huggingface.co/bartowski/google_gemma-3-1b-it-GGUF/resolve/main/google_gemma-3-1b-it-Q4_K_M.gguf",
      "fileName": "gemma-3-1b-it-q4_k_m.gguf",
      "supportsTools": false,
      "strengths": ["Prose", "Summaries", "Under 1 GB"]
    },
    {
      "id": "smollm2-1.7b",
      "name": "SmolLM2 1.7B",
      "description": "Lightweight fallback for older or low-RAM machines. Fast, capable of basic edits and Q&A.",
      "params": "1.7B",
      "downloadSize": "~1.1 GB",
      "ramEstimate": "~2.0 GB",
      "minSystemRamGb": 4,
      "tier": "light",
      "quant": "Q4_K_M",
      "downloadUrl": "https://huggingface.co/bartowski/SmolLM2-1.7B-Instruct-GGUF/resolve/main/SmolLM2-1.7B-Instruct-Q4_K_M.gguf",
      "fileName": "smollm2-1.7b-instruct-q4_k_m.gguf",
      "supportsTools": false,
      "strengths": ["Low RAM", "Fast", "Q&A"]
    },
    {
      "id": "llama-3.2-1b",
      "name": "Llama 3.2 1B (inline)",
      "description": "Tiny, latency-optimized model for inline ghost-text completion. Not intended as the main chat agent.",
      "params": "1B",
      "downloadSize": "~0.8 GB",
      "ramEstimate": "~1.5 GB",
      "minSystemRamGb": 4,
      "tier": "inline",
      "quant": "Q4_K_M",
      "downloadUrl": "https://huggingface.co/bartowski/Llama-3.2-1B-Instruct-GGUF/resolve/main/Llama-3.2-1B-Instruct-Q4_K_M.gguf",
      "fileName": "llama-3.2-1b-instruct-q4_k_m.gguf",
      "supportsTools": false,
      "strengths": ["Autocomplete", "Very fast"]
    }
  ],
  "cloudProviders": [
    {
      "id": "anthropic",
      "label": "Claude (Anthropic)",
      "apiShape": "anthropic",
      "baseUrl": "",
      "models": ["claude-haiku-4-5", "claude-sonnet-5", "claude-opus-4-8"],
      "defaultModel": "claude-haiku-4-5",
      "apiKeyUrl": "https://console.anthropic.com/settings/keys"
    },
    {
      "id": "openai",
      "label": "ChatGPT (OpenAI)",
      "apiShape": "openai",
      "baseUrl": "",
      "models": ["gpt-4o-mini", "gpt-4o", "o4-mini"],
      "defaultModel": "gpt-4o-mini",
      "apiKeyUrl": "https://platform.openai.com/api-keys"
    },
    {
      "id": "gemini",
      "label": "Gemini (Google)",
      "apiShape": "openai",
      "baseUrl": "https://generativelanguage.googleapis.com/v1beta/openai",
      "models": ["gemini-2.0-flash", "gemini-1.5-pro", "gemini-1.5-flash"],
      "defaultModel": "gemini-2.0-flash",
      "apiKeyUrl": "https://aistudio.google.com/apikey"
    },
    {
      "id": "groq",
      "label": "Groq",
      "apiShape": "openai",
      "baseUrl": "https://api.groq.com/openai/v1",
      "models": ["llama-3.3-70b-versatile", "llama-3.1-8b-instant"],
      "defaultModel": "llama-3.3-70b-versatile",
      "apiKeyUrl": "https://console.groq.com/keys"
    },
    {
      "id": "deepseek",
      "label": "DeepSeek",
      "apiShape": "openai",
      "baseUrl": "https://api.deepseek.com/v1",
      "models": ["deepseek-chat", "deepseek-reasoner"],
      "defaultModel": "deepseek-chat",
      "apiKeyUrl": "https://platform.deepseek.com/api_keys"
    },
    {
      "id": "mistral",
      "label": "Mistral",
      "apiShape": "openai",
      "baseUrl": "https://api.mistral.ai/v1",
      "models": ["mistral-large-latest", "mistral-small-latest"],
      "defaultModel": "mistral-large-latest",
      "apiKeyUrl": "https://console.mistral.ai/api-keys"
    },
    {
      "id": "openrouter",
      "label": "OpenRouter (many models)",
      "apiShape": "openai",
      "baseUrl": "https://openrouter.ai/api/v1",
      "models": [
        "anthropic/claude-sonnet-5",
        "openai/gpt-4o-mini",
        "google/gemini-2.0-flash-001"
      ],
      "defaultModel": "openai/gpt-4o-mini",
      "apiKeyUrl": "https://openrouter.ai/keys"
    },
    {
      "id": "custom",
      "label": "Custom (OpenAI-compatible)",
      "apiShape": "openai",
      "baseUrl": "",
      "models": [],
      "defaultModel": "",
      "apiKeyUrl": "",
      "custom": true
    }
  ]
}
