Skip to content
This repository was archived by the owner on Jul 29, 2025. It is now read-only.

feat(models): add OpenRouter Kimi K2 model support #315

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

imsaar
Copy link

@imsaar imsaar commented Jul 13, 2025

Add support for Moonshot AI's Kimi K2 model via OpenRouter with:

  • 131K token context window
  • $0.57/million input tokens
  • $2.30/million output tokens
  • API model name: moonshotai/kimi-k2

Also added support for Kimi K2 free via OpenRouter

ali-avvo added 2 commits July 13, 2025 09:36
Add support for Moonshot AI's Kimi K2 model via OpenRouter with:
- 131K token context window
- $0.57/million input tokens
- $2.30/million output tokens
- API model name: moonshotai/kimi-k2
Add missing Kimi K2 model ID to opencode-schema.json enum arrays
@Tikaanyrl
Copy link

could you do kimi-k2:free as well?

@tavoli
Copy link

tavoli commented Jul 14, 2025

i need it

- Add openrouter.kimi-k2-free to model enum lists in schema
- Add OpenRouterKimiK2Free constant and configuration
- Set zero costs for free tier with same context window (131k) as paid version
@imsaar
Copy link
Author

imsaar commented Jul 14, 2025

could you do kimi-k2:free as well?

Done!

@vladaman
Copy link

Could you please provide an example configuration with OpenRouter and KIMI K2? I'm having trouble getting it to work. I'm unsure what to set.

Why am I seeing Copilot models?
image

{
  "data": {},
  "mcpServers": {
    "example": {
      "command": "path/to/mcp-server",
      "env": [],
      "args": [],
      "type": "stdio",
      "url": "",
      "headers": null
    }
  },
  "providers": {
    "anthropic": {
      "apiKey": "sk-ant-api03-xxxxx",
      "disabled": false
    },
    "gemini": {
      "apiKey": "AIzaSyDxJ-xxxxx",
      "disabled": false
    },
    "groq": {
      "apiKey": "xxxxx",
      "disabled": false
    },
    "ollama": {
      "apiKey": "KEY",
      "disabled": false
    },
    "openai": {
      "apiKey": "sk-xxxxx",
      "disabled": false
    },
    "openrouter": {
      "apiKey": "sk-or-v1-xxxxx",
      "disabled": false
    }
  },
  "lsp": {
    "go": {
      "enabled": false,
      "command": "gopls",
      "args": null,
      "options": null
    },
    "typescript": {
      "enabled": false,
      "command": "typescript-language-server",
      "args": [
        "--stdio"
      ],
      "options": null
    }
  },
  "agents": {
    "coder": {
      "model": "openrouter.kimi-k2",
      "maxTokens": 20000,
      "reasoningEffort": ""
    },
    "summarizer": {
      "model": "openrouter.kimi-k2",
      "maxTokens": 80,
      "reasoningEffort": "medium"
    },
    "task": {
      "model": "openrouter.kimi-k2",
      "maxTokens": 5000,
      "reasoningEffort": "high"
    },
    "title": {
      "model": "openrouter.kimi-k2",
      "maxTokens": 4096,
      "reasoningEffort": "high"
    }
  },
  "tui": {
    "theme": "opencode"
  },
  "shell": {
    "path": "/bin/bash",
    "args": [
      "-l"
    ]
  },
  "autoCompact": true
}

@imsaar
Copy link
Author

imsaar commented Jul 15, 2025

Could you please provide an example configuration with OpenRouter and KIMI K2? I'm having trouble getting it to work. I'm unsure what to set.

Why am I seeing Copilot models? image

{
  "data": {},
  "mcpServers": {
    "example": {
      "command": "path/to/mcp-server",
      "env": [],
      "args": [],
      "type": "stdio",
      "url": "",
      "headers": null
    }
  },
  "providers": {
    "anthropic": {
      "apiKey": "sk-ant-api03-xxxxx",
      "disabled": false
    },
    "gemini": {
      "apiKey": "AIzaSyDxJ-xxxxx",
      "disabled": false
    },
    "groq": {
      "apiKey": "xxxxx",
      "disabled": false
    },
    "ollama": {
      "apiKey": "KEY",
      "disabled": false
    },
    "openai": {
      "apiKey": "sk-xxxxx",
      "disabled": false
    },
    "openrouter": {
      "apiKey": "sk-or-v1-xxxxx",
      "disabled": false
    }
  },
  "lsp": {
    "go": {
      "enabled": false,
      "command": "gopls",
      "args": null,
      "options": null
    },
    "typescript": {
      "enabled": false,
      "command": "typescript-language-server",
      "args": [
        "--stdio"
      ],
      "options": null
    }
  },
  "agents": {
    "coder": {
      "model": "openrouter.kimi-k2",
      "maxTokens": 20000,
      "reasoningEffort": ""
    },
    "summarizer": {
      "model": "openrouter.kimi-k2",
      "maxTokens": 80,
      "reasoningEffort": "medium"
    },
    "task": {
      "model": "openrouter.kimi-k2",
      "maxTokens": 5000,
      "reasoningEffort": "high"
    },
    "title": {
      "model": "openrouter.kimi-k2",
      "maxTokens": 4096,
      "reasoningEffort": "high"
    }
  },
  "tui": {
    "theme": "opencode"
  },
  "shell": {
    "path": "/bin/bash",
    "args": [
      "-l"
    ]
  },
  "autoCompact": true
}

I believe the copilot you pointed out has nothing to do with this change.

@kujtimiihoxha
Copy link
Collaborator

Hi! Thanks so much for taking the time to contribute.

I wanted to let you know that this project is no longer maintained here. I've continued working on it with the team at Charm, where it's now called Crush.

This repo will be archived soon to help people find the active version, so I’d love for you to check out Crush and continue development there.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants