> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mka1.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Extensión de VS Code

> Instale MKA1 Code en VS Code y trabaje con el agente junto a sus archivos.

export const ScreenshotCrop = ({src, alt, width, height, x = 0, y = 0, cropWidth = width, cropHeight = height, maxWidth = "100%"}) => <div className="not-prose" style={{
  position: "relative",
  overflow: "hidden",
  width: "100%",
  maxWidth,
  margin: "0 auto",
  aspectRatio: `${cropWidth} / ${cropHeight}`
}}>
    <img src={src} alt={alt} width={width} height={height} style={{
  position: "absolute",
  display: "block",
  margin: 0,
  maxWidth: "none",
  width: `${width / cropWidth * 100}%`,
  height: "auto",
  left: `${-x / cropWidth * 100}%`,
  top: `${-y / cropHeight * 100}%`
}} />
  </div>;

export const Mka1CodeDownloads = ({surface, os = "all", locale = "en", variant = "table"}) => {
  const manifestUrl = "https://downloads.mka1.com/code/latest/manifest.json";
  const messages = {
    en: {
      platform: "Platform",
      download: "Download",
      loading: "Loading latest downloads…",
      error: "Could not load the latest downloads.",
      empty: "No download is available for this platform.",
      retry: "Try again",
      manifest: "Open the release manifest for package URLs and checksums."
    },
    es: {
      platform: "Plataforma",
      download: "Descargar",
      loading: "Cargando las descargas más recientes…",
      error: "No se pudieron cargar las descargas más recientes.",
      empty: "No hay descargas disponibles para esta plataforma.",
      retry: "Reintentar",
      manifest: "Abra el manifiesto de la versión para ver las URL y sumas de verificación de los paquetes."
    },
    pt: {
      platform: "Plataforma",
      download: "Baixar",
      loading: "Carregando os downloads mais recentes…",
      error: "Não foi possível carregar os downloads mais recentes.",
      empty: "Nenhum download disponível para esta plataforma.",
      retry: "Tentar novamente",
      manifest: "Abra o manifesto da versão para consultar as URLs e somas de verificação dos pacotes."
    }
  };
  const text = messages[locale] || messages.en;
  const [release, setRelease] = useState({
    status: "loading",
    assets: []
  });
  const [attempt, setAttempt] = useState(0);
  useEffect(() => {
    const controller = new AbortController();
    let active = true;
    const timeout = setTimeout(() => controller.abort(), 10000);
    setRelease({
      status: "loading",
      assets: []
    });
    fetch(manifestUrl, {
      signal: controller.signal
    }).then(response => {
      if (!response.ok) throw new Error("Release manifest unavailable");
      return response.json();
    }).then(manifest => {
      if (manifest.schemaVersion !== 1 || !Array.isArray(manifest.assets)) {
        throw new Error("Invalid release manifest");
      }
      const assets = manifest.assets.filter(asset => {
        if (!asset || !["desktop", "vscode", "cli"].includes(asset.surface)) return false;
        if (![asset.os, asset.arch, asset.format, asset.url].every(value => typeof value === "string" && value.length > 0)) return false;
        try {
          const url = new URL(asset.url);
          return url.origin === "https://downloads.mka1.com" && url.pathname.startsWith("/code/") && !url.username && !url.password;
        } catch {
          return false;
        }
      });
      if (!assets.length) throw new Error("Release manifest has no downloads");
      if (active) setRelease({
        status: "ready",
        assets
      });
    }).catch(() => {
      if (active) setRelease({
        status: "error",
        assets: []
      });
    }).finally(() => clearTimeout(timeout));
    return () => {
      active = false;
      clearTimeout(timeout);
      controller.abort();
    };
  }, [attempt]);
  const assets = release.assets.filter(asset => asset.surface === surface && (os === "all" || asset.os === os));
  const platform = asset => {
    const system = ({
      darwin: "macOS",
      windows: "Windows",
      linux: "Linux"
    })[asset.os] || asset.os;
    const processor = asset.os === "darwin" ? ({
      arm64: "Apple silicon",
      x64: "Intel"
    })[asset.arch] || asset.arch : ({
      arm64: "ARM64",
      x64: "x64"
    })[asset.arch] || asset.arch;
    return `${system} · ${processor}`;
  };
  const label = asset => `${text.download} ${asset.surface === "cli" ? "CLI" : ({
    dmg: "DMG",
    exe: "EXE",
    appimage: "AppImage",
    vsix: "VSIX"
  })[asset.format] || asset.format}`;
  return <div aria-live="polite" aria-busy={release.status === "loading"}>
      {release.status === "loading" && <p role="status">{text.loading}</p>}
      {release.status === "error" && <p role="status">{text.error} <button type="button" onClick={() => setAttempt(value => value + 1)} style={{
    textDecoration: "underline"
  }}>{text.retry}</button></p>}
      {release.status === "ready" && (assets.length === 0 ? <p>{text.empty}</p> : variant === "list" ? <ul className="download-list">
          {assets.map(asset => <li key={asset.url}><a href={asset.url}><div>{platform(asset)}<small>{label(asset)}</small></div><span className="arrow" aria-hidden="true">↓</span></a></li>)}
        </ul> : <table>
          <thead><tr><th scope="col">{text.platform}</th><th scope="col">{text.download}</th></tr></thead>
          <tbody>{assets.map(asset => <tr key={asset.url}><td>{platform(asset)}</td><td><a href={asset.url}>{label(asset)}</a></td></tr>)}</tbody>
        </table>)}
      <p className={variant === "list" ? "download-note" : undefined}><a href={manifestUrl} style={{
    textDecoration: "underline"
  }}>{text.manifest}</a></p>
    </div>;
};

<Note>
  La interfaz de MKA1 Code está disponible en inglés y portugués de Brasil. Esta guía conserva los nombres de controles en inglés para que pueda localizarlos en la aplicación.
</Note>

La extensión coloca sesiones de programación, actividad de herramientas, aprobaciones y revisión de diffs junto a sus archivos en VS Code. Las vistas separadas de Chat y Usage están disponibles en la aplicación de escritorio.

Descargue el paquete de VS Code para su sistema operativo y procesador. Estos enlaces corresponden a la versión más reciente de MKA1 Code.

<Mka1CodeDownloads surface="vscode" locale="es" />

Si su organización proporciona su propia distribución, siga los [pasos de descarga de la organización](/es/docs/mka1-code/install#distribuciones-de-organizaciones) y elija el paquete de VS Code.

## Instale la extensión

Descargue el archivo `.vsix` específico de su plataforma. En VS Code, ejecute **Extensions: Install from VSIX…** desde la paleta de comandos y seleccione el archivo. El nombre de este comando depende del idioma de VS Code.

## Inicie una sesión

1. Abra la carpeta del proyecto en VS Code.
2. En la paleta de comandos, ejecute **MKA1 Code: Open**.
3. Si se le solicita, elija **Sign in** y complete la autorización en el navegador, o elija **API key** y valide su clave frente al gateway configurado.
4. Inicie una sesión y elija un modelo. Abra **+ → Draft a plan** para investigar antes de editar. Revise la propuesta y elija **Implement the plan** cuando esté listo.

En el ejemplo, mantenga la prueba o el cálculo abierto junto a la conversación. El panel muestra las respuestas a medida que llegan, la actividad de las herramientas, los diffs y el uso del contexto. Responda allí a las preguntas y aprobaciones; después, ejecute **MKA1 Code: Review changes** para revisar las ediciones antes del commit.

Puede reanudar una sesión o ramificar la conversación desde un mensaje anterior para explorar otro enfoque. La extensión también permite preparar una rama de Git o un worktree para la sesión. Las ramificaciones de conversación conservan historiales diferentes; las ramas y los worktrees de Git gestionan los cambios del repositorio.

En la vista de configuración, **Extensions** permite gestionar conectores MCP y paquetes de plugins compatibles. Estas opciones se comparten con escritorio y CLI cuando utilizan el mismo almacenamiento local.

## Complete un cambio en el editor

Mantenga el archivo de código o prueba abierto junto al panel. Menciónelo e indique el resultado, por ejemplo: «Añada una prueba de regresión para tres artículos, corrija el cálculo y ejecute las pruebas». Expanda la actividad para verificar la salida y use **MKA1 Code: Review changes** para revisar implementación y prueba juntas.

**MKA1 Code: Interrupt run** detiene la ejecución. Para otra tarea, use **MKA1 Code: New session** y compruebe carpeta y rama. Otra conversación no aísla archivos: elija un worktree si necesita una copia independiente.

<Frame caption="El panel MKA1 Code de VS Code muestra la actividad de los comandos y el resultado de las pruebas. Interfaz en inglés.">
  <ScreenshotCrop src="/images/mka1-code/vscode.jpg" alt="Extensión MKA1 Code con dos pruebas del carrito superadas" width={2880} height={1660} x={120} y={85} cropWidth={710} cropHeight={985} maxWidth="420px" />
</Frame>

## Configure y resuelva problemas

Ejecute **MKA1 Code: Settings** o abra los ajustes desde la cabecera. Compruebe acceso, conexión y modelo predeterminado. Guarde los cambios de conexión antes de otra solicitud. Si su distribución tiene otro nombre, los comandos usan ese nombre.

Un conector puede requerir autorización en el navegador. En una sesión remota de VS Code, siga cualquier indicación de completar la conexión en la aplicación de escritorio o terminal local. Los controles exclusivos de escritorio, como las vistas previas de documentos y los seguimientos programados de conversaciones, se explican en esas guías.

Continúe con [Consumo y solución de problemas](/es/docs/mka1-code/troubleshooting).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.