KIMI Workspace Agent para VS Code
Extension de VS Code orientada a convertir KIMI en un asistente de trabajo sobre proyectos reales. Esta base ya quedo alineada con un camino publicable en Marketplace:
- cada usuario conecta su propia API key
- la key se guarda en
SecretStorage de VS Code
- el agente puede trabajar con contexto del proyecto, del archivo activo o de una seleccion
- el chat permite aplicar codigo directo sobre el editor
Lo importante sobre el login
Si quieres publicar una extension de terceros para todo el mundo, el camino correcto hoy no es fingir un "login con cuenta KIMI" dentro de esta extension si KIMI no expone un flujo delegado oficial para terceros.
Por eso este repo quedo preparado para el camino viable y seguro:
- extension publica
- credenciales por usuario
- almacenamiento seguro en VS Code
- uso de la API de KIMI o Moonshot con la cuenta propia del usuario
Cuando Moonshot o KIMI habiliten oficialmente OAuth, device flow o un login delegado para terceros, esta base se puede extender para soportarlo sin rehacer toda la arquitectura.
Que hace esta version
- Chat lateral unico en la Activity Bar
- Conexion y desconexion de API key
- Contexto adjunto de:
- seleccion actual
- archivo activo
- vista resumida del workspace
- Comandos desde VS Code para:
- explicar seleccion
- refactorizar seleccion
- documentar seleccion
- corregir seleccion
- preguntar por una seleccion
- generar codigo
- crear archivos
- analizar workspace
- Aplicar bloques de codigo devueltos por KIMI sobre el editor activo
Que falta para estar mas cerca de Codex
Esta base ya no es solo un chat cosmetico, pero todavia no es paridad completa con Codex. Lo pendiente serio es:
- Loop agente multi-paso con herramientas reales.
- Aprobaciones explicitas para comandos de terminal.
- Vista de diffs antes de escribir archivos.
- Edicion de multiples archivos en una sola tarea.
- Historial persistente por workspace.
- Login delegado con cuenta KIMI si algun dia existe soporte oficial para terceros.
Arquitectura actual
src/authService.ts
- Guarda la API key en
context.secrets
- Migra la vieja
kimi.apiKey si existia en settings
- Borra la key del settings legado despues de migrarla
src/kimiAPI.ts
- Cliente HTTP estable con
axios
- Manejo centralizado de errores
- Construccion del prompt con historial y adjuntos
src/fileManager.ts
- Adjunta seleccion actual
- Adjunta archivo activo
- Genera snapshots controlados del workspace
- Crea archivos nuevos o sobreescribe con confirmacion
src/kimiChatPanel.ts
- Un solo
WebviewViewProvider
- UI segura con CSP
- Estado del chat mantenido en la webview
- Botones para copiar y aplicar codigo
src/extension.ts
- Registra comandos
- Conecta prompts rapidos con el chat
- Ejecuta analisis de workspace y creacion de archivos
Desarrollo
npm install
npm run compile
Luego abre el proyecto en VS Code y presiona F5.
Configuracion
En settings.json:
{
"kimi.baseUrl": "https://api.moonshot.cn/v1",
"kimi.model": "kimi-k2-thinking",
"kimi.temperature": 0.2,
"kimi.maxTokens": 4096
}
La API key ya no se configura en settings.json. Se conecta desde el comando:
Publicacion en Marketplace
Antes de publicar:
- Cambia el campo
publisher en package.json por tu publisher real de VS Marketplace.
- Si vas a mostrar repo, bugs o homepage, agrega tus links reales antes de publicar.
- Ejecuta
npm install.
- Ejecuta
npm run compile.
- Ejecuta
npm run lint.
- Empaqueta con
npm run package.
- Publica con
npm run publish:vsce o vsce publish, usando tu publisher y tu PAT de Azure DevOps.
Recomendacion de producto
Si tu objetivo final es algo "tipo Codex", no sigas agregando features sueltas sobre prompts.
El siguiente paso correcto es este:
- Crear un sistema de acciones del agente.
- Separar propuestas de cambio vs aplicacion real.
- Pedir aprobacion del usuario antes de tocar archivos o correr terminal.
- Guardar sesiones por workspace.
- Implementar una capa de diffs.
Si quieres, el siguiente paso lo hago directamente en este repo: te construyo la base del modo agente con propuestas de archivos, vista previa de cambios y aprobacion antes de aplicar.