{"id":191,"date":"2026-10-07T09:17:26","date_gmt":"2026-10-07T05:17:26","guid":{"rendered":"https:\/\/demensdeum.com\/blog\/2026\/10\/07\/opencode-deepseek\/"},"modified":"2026-10-07T09:17:26","modified_gmt":"2026-10-07T05:17:26","slug":"opencode-deepseek","status":"publish","type":"post","link":"https:\/\/demensdeum.com\/blog\/es\/2026\/10\/07\/opencode-deepseek\/","title":{"rendered":"Instalaci\u00f3n de OpenCode y conexi\u00f3n de DeepSeek"},"content":{"rendered":"<p>OpenCode es un agente de programaci\u00f3n abierto que reside directamente en la terminal. Puede leer archivos de proyecto, editar c\u00f3digo, ejecutar comandos y pruebas, buscar en el repositorio y trabajar con git, casi lo mismo que hacen Claude Code y otros agentes de consola. La principal diferencia es que OpenCode no est\u00e1 vinculado a un solo proveedor modelo: a trav\u00e9s de \u00e9l se pueden conectar docenas de proveedores, incluido DeepSeek. En esta publicaci\u00f3n describir\u00e9 la instalaci\u00f3n del agente y la conexi\u00f3n de DeepSeek a \u00e9l.<\/p>\n<h2>Lo que necesitas<\/h2>\n<p>S\u00f3lo necesitas dos cosas para funcionar:<\/p>\n<ul>\n<li><b>Terminal moderno.<\/b> WezTerm, Alacritty, Ghostty, Kitty o cualquier otro servir\u00e1.<\/li>\n<li><b>Clave API del proveedor.<\/b> En nuestro caso, DeepSeek.<\/li>\n<\/ul>\n<p>No se requiere Node.js si instala el agente con un script de instalaci\u00f3n est\u00e1ndar: el binario llega listo para usar.<\/p>\n<h2>Instalaci\u00f3n<\/h2>\n<p>La forma m\u00e1s sencilla es el script de instalaci\u00f3n oficial:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>curl -fsSL https:\/\/opencode.ai\/install | bash\n<\/code><\/pre>\n<\/div>\n<p>Detectar\u00e1 la plataforma y colocar\u00e1 el archivo ejecutable en PATH. Despu\u00e9s de la instalaci\u00f3n, debes verificar que todo est\u00e9 en su lugar:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>opencode --version\n<\/code><\/pre>\n<\/div>\n<p>Si el comando muestra la versi\u00f3n, la instalaci\u00f3n fue exitosa.<\/p>\n<h2>Instalaci\u00f3n utilizando otros m\u00e9todos<\/h2>\n<p>Si prefiere los administradores de paquetes, existen varias opciones. A trav\u00e9s de Node.js:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>npm install -g opencode-ai\n<\/code><\/pre>\n<\/div>\n<p>Bun, pnpm y Yarn pueden hacer lo mismo:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>bun install -g opencode-ai\npnpm install -g opencode-ai\nyarn global add opencode-ai\n<\/code><\/pre>\n<\/div>\n<p>macOS y Linux tienen Homebrew. Tenga en cuenta: lo que se recomienda es el toque de los desarrolladores, y no la f\u00f3rmula oficial; se actualiza con menos frecuencia:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>brew install anomalyco\/tap\/opencode\n<\/code><\/pre>\n<\/div>\n<p>En ArchLinux:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>sudo pacman -S opencode\nparu -S opencode-bin\n<\/code><\/pre>\n<\/div>\n<p>El primer comando instala la versi\u00f3n estable desde el repositorio, el segundo, la \u00faltima versi\u00f3n de AUR.<\/p>\n<h2>Instalaci\u00f3n en Windows<\/h2>\n<p>En Windows se recomienda trabajar v\u00eda WSL: de esta forma el rendimiento es mayor y la compatibilidad con las capacidades del agente es completa. Pero tambi\u00e9n existen m\u00e9todos nativos. V\u00eda Chocolatey, Scoop o npm:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>choco install opencode\nscoop install opencode\nnpm install -g opencode-ai\n<\/code><\/pre>\n<\/div>\n<p>Tambi\u00e9n hay una opci\u00f3n a trav\u00e9s de Mise, as\u00ed como un contenedor Docker:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>mise use -g github:anomalyco\/opencode\ndocker run -it --rm ghcr.io\/anomalyco\/opencode\n<\/code><\/pre>\n<\/div>\n<p>Finalmente, el binario terminado siempre se puede obtener de la p\u00e1gina de lanzamientos en GitHub.<\/p>\n<h2>Tecla de b\u00fasqueda profunda<\/h2>\n<p>La clave se crea en su cuenta personal de DeepSeek. Vaya a platform.deepseek.com, abra la secci\u00f3n con claves API y haga clic en crear una nueva clave. Es mejor guardar la cadena resultante inmediatamente: se mostrar\u00e1 s\u00f3lo una vez.<\/p>\n<h2>Conexi\u00f3n DeepSeek<\/h2>\n<p>Luego todo se hace dentro del propio agente. Inicie OpenCode en la terminal:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>opencode\n<\/code><\/pre>\n<\/div>\n<p>En la interfaz ejecutamos el comando de conexi\u00f3n:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>\/connect\n<\/code><\/pre>\n<\/div>\n<p>En la lista de proveedores que se abre, busque <b>DeepSeek<\/b>, selecci\u00f3nelo e inserte la clave API. Las claves agregadas de esta manera se guardan en un archivo:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>~\/.local\/share\/opencode\/auth.json\n<\/code><\/pre>\n<\/div>\n<p>Despu\u00e9s de conectarnos, solo queda seleccionar el modelo con el comando:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>\/models\n<\/code><\/pre>\n<\/div>\n<p>Los modelos de DeepSeek estar\u00e1n disponibles en la lista, incluidos <b>deepseek-v4-pro<\/b>, <b>deepseek-flash<\/b> y <b>deepseek-v4-flash<\/b>. Para el trabajo rutinario en el repositorio, la opci\u00f3n flash es suficiente; Para tareas complejas, tiene sentido cambiar a profesional.<\/p>\n<h2>Configuraci\u00f3n mediante config<\/h2>\n<p>Si no desea almacenar la clave a trav\u00e9s de un maestro o necesita configurar su propia direcci\u00f3n API, el proveedor se describe directamente en el archivo de configuraci\u00f3n <b>opencode.json<\/b>:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>{\n  \"$schema\": \"https:\/\/opencode.ai\/config.json\",\n  \"provider\": {\n    \"deepseek\": {\n      \"options\": {\n        \"baseURL\": \"https:\/\/api.deepseek.com\"\n      }\n    }\n  }\n}\n<\/code><\/pre>\n<\/div>\n<p>El campo <b>baseURL<\/b> es \u00fatil si utiliza un proxy o su propia puerta de enlace. En este caso, es conveniente transferir la clave a una variable de entorno:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>export DEEPSEEK_API_KEY=\u0432\u0430\u0448_\u043a\u043b\u044e\u0447_deepseek\nopencode\n<\/code><\/pre>\n<\/div>\n<p>Esta opci\u00f3n es buena para CI y lanzamientos \u00fanicos: la clave no termina en el almacenamiento, sino que vive solo en el entorno del proceso.<\/p>\n<h2>Primer lanzamiento del proyecto<\/h2>\n<p>Vaya al directorio del proyecto e inicie el agente:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>cd \u0432\u0430\u0448_\u043f\u0440\u043e\u0435\u043a\u0442\nopencode\n<\/code><\/pre>\n<\/div>\n<p>El primer paso es inicializarlo:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism undefined-numbers lang-unknown\" data-lang=\"unknown\"><code>\/init\n<\/code><\/pre>\n<\/div>\n<p>OpenCode analizar\u00e1 la estructura del proyecto y crear\u00e1 un archivo <b>AGENTS.md<\/b>, un an\u00e1logo de las instrucciones del agente. Vale la pena comprometer este archivo con git: ayuda al agente a comprender las convenciones y patrones adoptados en el proyecto.<\/p>\n<h2>C\u00f3mo usarlo<\/h2>\n<p>El trabajo se estructura de forma muy parecida a como ocurre con otros agentes. Un par de trucos que debes saber de inmediato:<\/p>\n<ul>\n<li><b>Modo de planificaci\u00f3n.<\/b> La tecla <b>Tab<\/b> cambia el agente entre los modos de planificaci\u00f3n y ensamblaje. En el primero, s\u00f3lo sugiere c\u00f3mo solucionar el problema y no cambia nada; conviene comprobar la idea antes de realizar cambios.<\/li>\n<li><b>Enlaces a archivos.<\/b> La tecla <b>@<\/b> abre una b\u00fasqueda difusa en los archivos del proyecto para transferir un archivo espec\u00edfico al agente en el contexto.<\/li>\n<li><b>Revertir cambios.<\/b> El comando <b>\/undo<\/b> deshace las \u00faltimas ediciones y devuelve la solicitud original, <b>\/redo<\/b> las devuelve. Puedes retroceder varios pasos seguidos.<\/li>\n<li><b>Compartir una conversaci\u00f3n.<\/b> El comando <b>\/share<\/b> crea un enlace a la conversaci\u00f3n actual y lo copia en el portapapeles. De forma predeterminada, las conversaciones no se publican en ning\u00fan lugar.<\/li>\n<\/ul>\n<p>Para cambios simples, no es necesario cambiar al modo de planificaci\u00f3n, sino describir inmediatamente lo que se debe hacer y especificar los archivos mediante @.<\/p>\n<h2>A qu\u00e9 prestar atenci\u00f3n<\/h2>\n<p>Un par de puntos pr\u00e1cticos. OpenCode no requiere suscripci\u00f3n: usted paga al proveedor directamente cuando gasta tokens, por lo que las sesiones largas con DeepSeek son previsiblemente m\u00e1s baratas que los mejores modelos. La clave se almacena localmente en auth.json; vale la pena considerar esto en una m\u00e1quina compartida, pero para entornos de otras personas una variable de entorno es m\u00e1s confiable.<\/p>\n<p>Y una cosa m\u00e1s: la calidad de las respuestas a problemas arquitect\u00f3nicos complejos difiere entre modelos de diferentes clases, por lo que para el dise\u00f1o tiene sentido tomar un modelo m\u00e1s fuerte y dejar la rutina por uno r\u00e1pido y barato.<\/p>\n<h2>Enlaces<\/h2>\n<p><a href=\"https:\/\/opencode.ai\/\" rel=\"noopener\" target=\"_blank\">https:\/\/opencode.ai\/<\/a><br \/>\n<a href=\"https:\/\/opencode.ai\/docs\/\" rel=\"noopener\" target=\"_blank\">https:\/\/opencode.ai\/docs\/<\/a><br \/>\n<a href=\"https:\/\/opencode.ai\/docs\/providers\/\" rel=\"noopener\" target=\"_blank\">https:\/\/opencode.ai\/docs\/providers\/<\/a><br \/>\n<a href=\"https:\/\/github.com\/anomalyco\/opencode\" rel=\"noopener\" target=\"_blank\">https:\/\/github.com\/anomalyco\/opencode<\/a><br \/>\n<a href=\"https:\/\/platform.deepseek.com\/api_keys\" rel=\"noopener\" target=\"_blank\">https:\/\/platform.deepseek.com\/api_keys<\/a><br \/>\n<a href=\"https:\/\/api-docs.deepseek.com\" rel=\"noopener\" target=\"_blank\">https:\/\/api-docs.deepseek.com<\/a><\/p>\n<h2>Fuentes<\/h2>\n<p><a href=\"https:\/\/opencode.ai\/docs\/\" rel=\"noopener\" target=\"_blank\">https:\/\/opencode.ai\/docs\/<\/a><br \/>\n<a href=\"https:\/\/opencode.ai\/docs\/providers\/#deepseek\" rel=\"noopener\" target=\"_blank\">https:\/\/opencode.ai\/docs\/providers\/#deepseek<\/a><br \/>\n<a href=\"https:\/\/github.com\/anomalyco\/opencode\/releases\" rel=\"noopener\" target=\"_blank\">https:\/\/github.com\/anomalyco\/opencode\/releases<\/a><br \/>\n<a href=\"https:\/\/models.dev\/\" rel=\"noopener\" target=\"_blank\">https:\/\/models.dev\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>OpenCode es un agente de programaci\u00f3n abierto que reside directamente en la terminal. Puede leer archivos de proyecto, editar c\u00f3digo, ejecutar comandos y pruebas, buscar en el repositorio y trabajar con git, casi lo mismo que hacen Claude Code y otros agentes de consola. La principal diferencia es que OpenCode no est\u00e1 vinculado a un [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[],"class_list":["post-191","post","type-post","status-publish","format-standard","hentry","category-notes"],"translation":{"provider":"WPGlobus","version":"3.0.6","language":"es","enabled_languages":["en","ru","zh","de","ja","fr","es","pt","hi"],"languages":{"en":{"title":true,"content":true,"excerpt":false},"ru":{"title":true,"content":true,"excerpt":false},"zh":{"title":true,"content":true,"excerpt":false},"de":{"title":true,"content":true,"excerpt":false},"ja":{"title":true,"content":true,"excerpt":false},"fr":{"title":true,"content":true,"excerpt":false},"es":{"title":true,"content":true,"excerpt":false},"pt":{"title":true,"content":true,"excerpt":false},"hi":{"title":true,"content":true,"excerpt":false}}},"_links":{"self":[{"href":"https:\/\/demensdeum.com\/blog\/es\/wp-json\/wp\/v2\/posts\/191","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/demensdeum.com\/blog\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/demensdeum.com\/blog\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=191"}],"version-history":[{"count":0,"href":"https:\/\/demensdeum.com\/blog\/es\/wp-json\/wp\/v2\/posts\/191\/revisions"}],"wp:attachment":[{"href":"https:\/\/demensdeum.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=191"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=191"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=191"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}