Skip to content

Instantly share code, notes, and snippets.

@gusdelact
Created April 20, 2026 06:54
Show Gist options
  • Select an option

  • Save gusdelact/b4852011f8007aceb0e7bbb164e06aef to your computer and use it in GitHub Desktop.

Select an option

Save gusdelact/b4852011f8007aceb0e7bbb164e06aef to your computer and use it in GitHub Desktop.

Guía de Instalación para Windows — Kiro + Data Science Assistant

Guía paso a paso para alumnos que trabajan en Windows 10 / 11 y no tienen formación fuerte en línea de comandos. Cubre el setup completo que necesitan los ejercicios basico.md, mcp-server-kiro.md y avanzado.md.

Kiro se fundamenta en la terminal. Si nunca has abierto una consola, no te preocupes: seguirás comandos copiados literalmente. Cuando veas un bloque con fondo oscuro, copia la línea completa y pégala en tu terminal con clic derecho (no Ctrl+V).


Tabla de contenido

  1. Elegir tu terminal
  2. Instalar Git
  3. Instalar Python
  4. Instalar uv (gestor de entornos)
  5. Instalar Node.js (necesario para MCP)
  6. Instalar Kiro IDE
  7. Crear cuentas y obtener tokens
  8. Configurar Kaggle CLI
  9. Configurar Hugging Face
  10. Instalar el Kiro Power Data Science Assistant
  11. Verificación final
  12. Referencia completa de comandos CLI del curso
  13. Problemas comunes en Windows

1. Elegir tu terminal

En Windows hay varias terminales. Para este curso usarás PowerShell (viene preinstalado). Abrirla así:

  1. Presiona la tecla Windows.
  2. Escribe: PowerShell.
  3. Clic derecho en Windows PowerShellEjecutar como administrador (solo la primera vez, para instalar cosas).

Consejo: ancla PowerShell a la barra de tareas. La vas a usar mucho.

Alternativa recomendada: Windows Terminal

Desde la Microsoft Store instala Windows Terminal. Es más moderna, permite pestañas y soporta pegar con Ctrl+Shift+V.

Verificar que PowerShell funciona

Escribe y presiona Enter:

$PSVersionTable.PSVersion

Debe mostrar una versión 5.x o 7.x. Cualquiera sirve.

Permitir ejecución de scripts (solo una vez)

Por defecto Windows bloquea scripts. Ejecuta esto una sola vez en una PowerShell abierta como administrador:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

Cuando pregunte, responde S (sí).


2. Instalar Git

Git es necesario para clonar repositorios (incluido el Kiro Power).

  1. Descarga desde https://git-scm.com/download/win
  2. Ejecuta el instalador y deja todas las opciones por defecto. Punto importante: deja marcada la opción "Git from the command line and also from 3rd-party software".
  3. Verifica abriendo una nueva PowerShell:
git --version

Debe mostrar algo como git version 2.45.0.windows.1.

Configurar tu identidad de Git

Reemplaza con tus datos reales:

git config --global user.name "Tu Nombre"
git config --global user.email "tu.email@universidad.edu"

3. Instalar Python

Los proyectos del curso requieren Python 3.12 o superior (el Power recomienda 3.12+).

Opción recomendada: instalador oficial

  1. Descarga desde https://www.python.org/downloads/windows/
  2. Elige la versión 3.12.x o 3.13.x (64-bit).
  3. Al ejecutar el instalador, MARCA la casilla "Add python.exe to PATH" antes de hacer clic en Install. Este es el error #1 de los alumnos de Windows.
  4. Elige Install Now.

Verificar

Abre una nueva PowerShell (cerrar y abrir de nuevo es importante para que reconozca el PATH):

python --version
pip --version

Si python --version muestra Python 3.12.x o superior, vas bien.

⚠️ Si python abre la tienda de Microsoft, significa que NO marcaste "Add to PATH". Desinstala desde Configuración → Aplicaciones y reinstala marcando la casilla.


4. Instalar uv (gestor de entornos)

uv es la herramienta estrella del curso. Sustituye a pip, virtualenv y pip-tools. NUNCA uses pip install directo en los ejercicios del curso.

Instalación en PowerShell

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

Cierra y abre una nueva PowerShell (obligatorio para que reconozca uv).

Verificar

uv --version

Debe mostrar uv 0.x.x.

Comandos de uv que vas a usar

Comando Para qué sirve
uv init nombre-proyecto Crear un proyecto nuevo con pyproject.toml
uv add pandas numpy Agregar dependencias al proyecto
uv add xgboost Agregar XGBoost (clasificación/regresión boosted)
uv add tensorflow Agregar TensorFlow (deep learning)
uv add torch torchvision Agregar PyTorch
uv add gradio Agregar Gradio (UIs para ML)
uv add "gradio[mcp]" Gradio con soporte de MCP Server
uv add huggingface-hub kaggle CLIs para publicar a HF y Kaggle
uv add fastmcp FastMCP (para MCP servers con las 3 primitivas)
uv remove pandas Quitar una dependencia
uv sync Instalar lo que pide pyproject.toml (útil al clonar un repo existente)
uv lock Regenerar el uv.lock
uv run python script.py Ejecutar un script dentro del entorno del proyecto
uv run python -c "import gradio; print(gradio.__version__)" Ejecutar código corto (útil para verificar versiones)
uv run python app.py Levantar una app Gradio del proyecto
uv run python server.py Levantar un MCP server FastMCP
uvx kaggle ... Ejecutar el CLI de Kaggle sin instalarlo global
uvx huggingface-cli login Login al CLI de Hugging Face

Regla de oro: cada proyecto tiene su propio entorno virtual gestionado por uv. Nunca instales librerías "globales".


5. Instalar Node.js (necesario para MCP)

Varios MCP Servers del curso (Tavily, Kaggle MCP) se ejecutan con npx, que viene con Node.js.

  1. Descarga el instalador LTS desde https://nodejs.org/
  2. Ejecuta el instalador con opciones por defecto. La casilla "Automatically install the necessary tools..." puedes dejarla desmarcada (no la necesitas).
  3. Cierra y abre una nueva PowerShell.

Verificar

node --version
npx --version

Ambos deben mostrar una versión. Si npx funciona, los MCPs remotos de Tavily y Kaggle funcionarán.


6. Instalar Kiro IDE

  1. Descarga desde https://kiro.dev
  2. Instala con opciones por defecto.
  3. Al abrir por primera vez, inicia sesión con tu cuenta (sigue las instrucciones de Kiro).

Abrir un workspace

File → Open Folder → selecciona la carpeta donde harás tus ejercicios (por ejemplo C:\Users\TuUsuario\ml-curso).

Abrir la terminal integrada de Kiro

Ctrl + ñ (o menú Terminal → New Terminal). Esta terminal es la que usarás para ejecutar uv run. Es una PowerShell dentro de Kiro.


7. Crear cuentas y obtener tokens

Necesitas tres cuentas gratuitas y cuatro tokens distintos (Kaggle tiene dos).

7.1 Tavily (para MCP de búsqueda y docs)

  1. Ve a https://app.tavily.com
  2. Crea cuenta con tu correo.
  3. En el dashboard, copia tu API Key. Es algo como tvly-xxxxxxxxxxxxxxxxxx.
  4. Guárdala en un archivo de texto temporal. La usarás más adelante.

7.2 Kaggle — Token #1: KGAT (para el MCP)

  1. Ve a https://www.kaggle.com y crea cuenta si no tienes.
  2. Entra a https://www.kaggle.com/settings
  3. Busca la sección API.
  4. Clic en "Generate New Token" (arriba, junto al avatar). Este es el token KGAT, empieza con KGAT_.
  5. Cópialo y guárdalo. Este token NO sirve para el CLI, solo para el MCP.

7.3 Kaggle — Token #2: API Key (para el CLI)

En la misma página de https://www.kaggle.com/settings:

  1. Sección API → clic en "Create New API Token" (el de abajo).
  2. Se descarga un archivo kaggle.json con formato {"username":"...","key":"..."}.
  3. Guárdalo en tu carpeta Descargas por ahora. Lo moveremos en el paso 8.

Importante: son dos tokens distintos aunque se parecen en la UI. Necesitas ambos. El KGAT va en mcp.json, el kaggle.json va en ~/.kaggle/.

7.4 Hugging Face

  1. Ve a https://huggingface.co y crea cuenta.
  2. Entra a https://huggingface.co/settings/tokens
  3. Clic en "New token".
  4. Nombre: kiro-curso. Tipo: Read (lectura es suficiente para empezar; si vas a desplegar Spaces, elige Write).
  5. Copia el token (empieza con hf_). Guárdalo.

8. Configurar Kaggle CLI

El CLI de Kaggle es lo que usa el Power para publicar datasets y modelos (el MCP solo lee/descarga).

8.1 Crear la carpeta .kaggle en Windows

PowerShell no entiende ~/.kaggle/ igual que Linux. En Windows la ruta es C:\Users\TuUsuario\.kaggle\.

Ejecuta en PowerShell:

mkdir $HOME\.kaggle

Si te dice que ya existe, perfecto.

8.2 Mover kaggle.json a la carpeta correcta

Move-Item -Path "$HOME\Downloads\kaggle.json" -Destination "$HOME\.kaggle\kaggle.json"

8.3 Verificar el archivo

Get-Content $HOME\.kaggle\kaggle.json

Debe mostrar algo como {"username":"tu_user","key":"abc123..."}.

8.4 Verificar que el CLI funciona

Desde Kiro (o desde una terminal con un proyecto uv cualquiera):

uvx kaggle datasets list -s "iris" --max-size 1

Si ves una tabla con datasets, todo está bien. Si dice 401 Unauthorized, tu kaggle.json no está donde debe o tiene datos incorrectos.

En Windows no aplica chmod 600. Windows maneja permisos distinto y el CLI no se queja.


9. Configurar Hugging Face

Para desplegar a HF Spaces, conviene guardar tu token como variable de entorno del usuario.

9.1 Login interactivo (opcional, recomendado)

uvx huggingface-hub login

Pega tu token cuando lo pida. Con esto quedas autenticado para comandos CLI.

9.2 Variable de entorno permanente

Configura HF_TOKEN como variable de entorno del usuario (sobrevive reinicios):

[System.Environment]::SetEnvironmentVariable("HF_TOKEN", "hf_xxxxxxxxxxxxxxxxxx", "User")

Reemplaza hf_xxxxxxxxxxxxxxxxxx con tu token real. Cierra y abre una nueva PowerShell para que tome efecto.

Verificar

echo $env:HF_TOKEN

Debe mostrar tu token.


10. Instalar el Kiro Power Data Science Assistant

10.1 Clonar el repo del Power

Los Powers van en C:\Users\TuUsuario\.kiro\powers\. En PowerShell:

mkdir $HOME\.kiro\powers -ErrorAction SilentlyContinue
git clone https://github.com/gusdelact/kiropowerdatascienceassistant.git $HOME\.kiro\powers\data-science-assistant

10.2 Configurar tokens en mcp.json

Abre con Kiro el archivo:

C:\Users\TuUsuario\.kiro\powers\data-science-assistant\mcp.json

Reemplaza los tres placeholders con tus tokens reales:

  • YOUR_TAVILY_API_KEY → tu tvly-...
  • YOUR_KAGGLE_TOKEN → tu KGAT_... (el token del paso 7.2, no el API Key)
  • YOUR_HF_TOKEN → tu hf_...

Guarda el archivo.

10.3 Activar el Power en Kiro

Abre Kiro → panel de Powers → busca Data Science Assistant → actívalo.

En el chat de Kiro, escribe:

"Lista los powers instalados"

Debe aparecer data-science-assistant con sus 4 MCP servers.


11. Verificación final

Ejecuta esta lista uno por uno en una PowerShell nueva. Si todos pasan, estás listo.

git --version
python --version
uv --version
node --version
npx --version

Y desde cualquier carpeta con un pyproject.toml:

uvx kaggle --version
uvx huggingface-hub --version

En Kiro, prueba el Power con este prompt:

"Activa el power data-science-assistant y lista los MCP servers disponibles"

Kiro debe responder mencionando tavily-mcp, kaggle, huggingface y gradio-docs.

Para una prueba real end-to-end, pide:

"Busca 3 datasets en Kaggle sobre predicción de churn"

Si Kiro devuelve resultados con títulos y URLs de Kaggle, el MCP de Kaggle funciona.


Referencia completa de comandos CLI del curso

Esta es la lista exhaustiva de comandos que aparecen en los ejercicios y en los workflows del Power. Tenla a mano mientras trabajas.

Git

Comando Uso
git --version Verificar instalación
git config --global user.name "Tu Nombre" Configurar nombre
git config --global user.email "tu@correo.com" Configurar email
git clone <url> <carpeta> Clonar un repositorio
git status Ver cambios del repo
git add . Agregar todos los cambios al commit
git commit -m "mensaje" Crear commit
git push Subir cambios al remoto

uv (gestor de entornos y paquetes)

Ver la tabla detallada en la sección 4.

Kaggle CLI (uvx kaggle o uv run kaggle)

Todos los comandos se ejecutan prefijados con uvx para no instalar Kaggle globalmente.

Comando Uso
uvx kaggle --version Verificar instalación
uvx kaggle datasets list -s "iris" Buscar datasets
uvx kaggle datasets list -s "iris" --max-size 1 Buscar limitando tamaño (MB)
uvx kaggle datasets download -d usuario/dataset Descargar dataset
uvx kaggle datasets create -p carpeta/ --dir-mode zip Publicar dataset nuevo (el MCP no puede hacer esto)
uvx kaggle datasets version -p carpeta/ -m "v2: cambios" Publicar nueva versión
uvx kaggle datasets metadata -p carpeta/ Descargar/actualizar metadata
uvx kaggle models create Crear modelo vacío
uvx kaggle models instances create -p carpeta/ Subir archivos del modelo (el MCP no puede hacer esto)
uvx kaggle kernels push Subir/ejecutar un notebook
uvx kaggle kernels list Listar notebooks
uvx kaggle competitions list Listar competencias
uvx kaggle competitions download -c nombre Descargar datos de competencia

Recuerda: el MCP de Kaggle sirve para buscar y descargar. Para publicar datasets/modelos nuevos o subir archivos a un modelo, necesitas el CLI.

Hugging Face CLI (uvx huggingface-cli)

Comando Uso
uvx huggingface-cli login Login interactivo (pega tu token hf_...)
uvx huggingface-cli whoami Ver usuario logueado
uvx huggingface-cli logout Cerrar sesión

El despliegue a Spaces del curso se hace con scripts de Python que usan HfApi (ver salary-predictor/deploy_to_hf.py), no con comandos CLI directos. Solo necesitas el login o la variable de entorno HF_TOKEN configurada.

Node / npx (para MCPs remotos)

No los invocas tú directamente; Kiro los lanza cuando carga el Power. Solo debes tenerlos instalados:

Comando Uso
node --version Verificar Node
npx --version Verificar npx
npx -y mcp-remote <url> (Lo ejecuta Kiro internamente)

Gradio / MCP Server

Comando Uso
uv run python app.py Levantar app Gradio local
uv run python server.py Levantar MCP Server FastMCP
uv run python -c "import gradio; print(gradio.__version__)" Verificar versión exacta de Gradio (crítico para HF Spaces)

Variables de entorno en PowerShell

Comando Uso
$env:HF_TOKEN = "hf_..." Definir variable solo para esta sesión
[System.Environment]::SetEnvironmentVariable("HF_TOKEN","hf_...","User") Definir variable permanente de usuario
echo $env:HF_TOKEN Ver valor actual
$env:TAVILY_API_KEY = "tvly-..." Tavily en sesión actual
$env:KAGGLE_API_TOKEN = "KGAT_..." Token KGAT para deploys (no para el CLI)

PowerShell — comandos básicos que vas a necesitar

Comando Uso
cd C:\dev\mi-proyecto Cambiar de carpeta
ls (alias de Get-ChildItem) Listar archivos
mkdir carpeta Crear carpeta
mkdir carpeta -Force Crear carpeta (sin error si ya existe)
Remove-Item archivo Borrar archivo
Remove-Item -Recurse -Force carpeta Borrar carpeta completa
Copy-Item origen destino Copiar archivo
Move-Item origen destino Mover/renombrar archivo
Get-Content archivo.json Ver contenido de archivo (equivale a cat)
Test-Path $HOME\.kaggle\kaggle.json Verificar si existe un archivo
Set-Location $HOME Ir al home del usuario (equivale a cd ~)

12.1 "python no se reconoce como un comando"

No marcaste "Add to PATH" al instalar Python. Desinstala desde Configuración → Aplicaciones, busca Python, desinstálalo y reinstala marcando la casilla.

12.2 "uv no se reconoce como un comando"

Cerraste PowerShell antes de instalar o abriste una terminal vieja. Cierra todas las terminales de PowerShell (incluyendo las de Kiro) y abre una nueva.

12.3 "No se pueden cargar scripts en este sistema"

La política de ejecución bloquea scripts. Ejecuta una PowerShell como administrador:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

12.4 Rutas con espacios rompen comandos

Si tu usuario de Windows tiene espacios (ej: C:\Users\Juan Perez\), siempre encierra rutas entre comillas:

cd "C:\Users\Juan Perez\Documents\proyecto"

Mejor aún: crea una carpeta sin espacios para todo el curso, como C:\dev\ml-curso.

12.5 kaggle dice "401 Unauthorized"

Tu archivo kaggle.json no está en C:\Users\TuUsuario\.kaggle\. Verifica con:

Test-Path $HOME\.kaggle\kaggle.json

Si devuelve False, vuelve al paso 8.

12.6 kaggle dice "Specify an existing license" al publicar

El nombre de licencia en tu dataset-metadata.json está mal. Debe ser "Apache 2.0" con espacio, NO "Apache-2.0" con guión. Esto es un detalle específico del CLI de Kaggle.

12.7 MCP de Kaggle dice "conexión fallida" o no aparecen tools

  1. Verifica que tu token empieza con KGAT_. Si empieza con otra cosa, generaste el token equivocado (es el "Generate New Token", no el "Create New API Token").
  2. Revisa mcp.json del Power: no debe quedar YOUR_KAGGLE_TOKEN ni comillas mal puestas.
  3. Reinicia Kiro.

12.8 XGBoost no se importa

En Windows no necesitas brew install libomp (eso es solo para macOS). Simplemente uv add xgboost debe bastar. Si falla, asegúrate de usar Python 64-bit (no 32-bit).

12.9 npx tarda muchísimo la primera vez

Normal. npx descarga el paquete MCP en la primera llamada. Las siguientes son rápidas. Si tarda más de 5 minutos, revisa tu conexión o firewall.

12.10 Kiro no muestra el Power instalado

  1. Verifica que clonaste el repo en la ruta exacta: C:\Users\TuUsuario\.kiro\powers\data-science-assistant\.
  2. Debe contener POWER.md y mcp.json.
  3. Reinicia Kiro (no solo recargar la ventana: ciérralo completo y ábrelo de nuevo).

12.11 "OneDrive" movió mi carpeta .kiro

Si tienes OneDrive sincronizando tu carpeta de usuario, a veces mueve o bloquea archivos. Solución: pausar OneDrive mientras trabajas en el curso o mover el workspace a C:\dev\ fuera del área sincronizada.

12.12 Ruta demasiado larga

Windows tiene un límite histórico de 260 caracteres en rutas. Activa rutas largas:

  1. Abre Editor del Registro (regedit).
  2. Navega a HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem.
  3. Cambia LongPathsEnabled a 1.
  4. Reinicia.

Alternativa simple: crea carpetas cortas (C:\dev\) para tus proyectos.


Equivalencias rápidas macOS/Linux → Windows

Si en clase el profesor o la documentación usan comandos de Linux/macOS, aquí la traducción:

macOS / Linux Windows PowerShell
~ o $HOME $HOME
export VAR=valor $env:VAR = "valor" (temporal)
export VAR=valor (permanente) [System.Environment]::SetEnvironmentVariable("VAR","valor","User")
ls -la Get-ChildItem -Force (o ls)
cat archivo Get-Content archivo (o cat)
cp src dst Copy-Item src dst (o cp)
mv src dst Move-Item src dst (o mv)
rm archivo Remove-Item archivo (o rm)
rm -rf carpeta Remove-Item -Recurse -Force carpeta
mkdir -p a/b/c mkdir a\b\c -Force
chmod 600 archivo No aplica (ignora el comando)
source .venv/bin/activate No lo necesitas: uv run activa automáticamente
/ en rutas \ en rutas (aunque / casi siempre funciona también)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment