Skip to content

Commit 37cec8c

Browse files
committed
docs: guia de instalacion de Elixir, VSCode y OpenCode Desktop
1 parent 11a0ece commit 37cec8c

5 files changed

Lines changed: 378 additions & 1 deletion

File tree

266 KB
Loading
64.1 KB
Loading
42 KB
Loading

modules/agentic/nav.adoc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
.Programación Agéntica
2-
* xref:introduction.adoc[]
2+
* xref:introduction.adoc[]
3+
* xref:instalar-elixir-vscode.adoc[Configurar VSCode con Elixir y OpenCode]
Lines changed: 376 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,376 @@
1+
= Configurar VSCode con Elixir y OpenCode
2+
3+
Este capítulo explica cómo dejar listo tu entorno para trabajar con Elixir y usar agentes de IA.
4+
5+
== Requisitos Previos
6+
7+
Antes de comenzar, asegúrate de tener:
8+
9+
* https://code.visualstudio.com/[Visual Studio Code] instalado.
10+
* Una terminal disponible (PowerShell en Windows, bash/zsh en Linux).
11+
* Conexión a internet para descargar los paquetes.
12+
13+
== Erlang/OTP
14+
15+
Como Elixir corre sobre la BEAM, hay que instalar Erlang primero.
16+
17+
=== Windows
18+
19+
Puedes usar **winget** (incluido en Windows 10/11):
20+
21+
[source, powershell]
22+
----
23+
winget install Erlang.OTP
24+
----
25+
26+
También puedes descargar el instalador manualmente desde https://www.erlang.org/downloads[erlang.org/downloads].
27+
28+
=== Linux
29+
30+
.Ubuntu / Debian
31+
[source, bash]
32+
----
33+
sudo apt update
34+
sudo apt install erlang
35+
----
36+
37+
.Fedora / RHEL
38+
[source, bash]
39+
----
40+
sudo dnf install erlang
41+
----
42+
43+
== Elixir
44+
45+
=== Windows
46+
47+
Con **winget**:
48+
49+
[source, powershell]
50+
----
51+
winget install ElixirLang.Elixir
52+
----
53+
54+
O descarga el instalador desde https://elixir-lang.org/install.html#windows[elixir-lang.org].
55+
56+
=== Linux
57+
58+
.Ubuntu / Debian
59+
[source, bash]
60+
----
61+
sudo apt install elixir
62+
----
63+
64+
.Fedora / RHEL
65+
[source, bash]
66+
----
67+
sudo dnf install elixir
68+
----
69+
70+
== Verificar instalación
71+
72+
[source, bash]
73+
----
74+
# Verificar la versión de Erlang
75+
erl -version
76+
77+
# Verificar la versión de Elixir
78+
elixir --version
79+
----
80+
81+
Deberías ver algo como:
82+
83+
[source, text]
84+
----
85+
Erlang/OTP 27 [erts-15.x]
86+
87+
Elixir 1.18.x (compiled with Erlang/OTP 27)
88+
----
89+
90+
También puedes probar el **shell interactivo** de Elixir:
91+
92+
[source, bash]
93+
----
94+
iex
95+
----
96+
97+
Escribe `IO.puts("¡Hola desde Elixir!")` y presiona Enter.
98+
Para salir de `iex`, presiona `Ctrl+C` dos veces.
99+
100+
== Configuración de VS Code
101+
102+
=== Extensiones recomendadas
103+
104+
Abre VSCode y ve a la pestaña de extensiones (`Ctrl+Shift+X`). Busca e instala:
105+
106+
==== ElixirLS
107+
108+
image::elixir-ls-extension.png[Marketplace de Extensiones - ElixirLS]
109+
110+
Es la pieza fundamental. Proporciona autocompletado, diagnóstico de errores y formateo automático.
111+
112+
Búscala como `ElixirLS` en el marketplace o instálala desde la terminal:
113+
114+
[source, bash]
115+
----
116+
code --install-extension JakeBecker.elixir-ls
117+
----
118+
119+
==== Livebook (opcional)
120+
121+
Si quieres usar https://livebook.dev/[Livebook] (notebooks interactivos para Elixir,
122+
similar a Jupyter), esta extensión te permite abrir archivos `.livemd` directamente
123+
en VSCode.
124+
125+
[source, bash]
126+
----
127+
code --install-extension livebook.vscode-livebook
128+
----
129+
130+
=== Configuración sugerida
131+
132+
Abre tu archivo de configuración (`Ctrl+Shift+P` → _"Open User Settings (JSON)"_)
133+
y agrega estas opciones:
134+
135+
[source, json]
136+
----
137+
{
138+
// Formatear automáticamente al guardar
139+
"[elixir]": {
140+
"editor.formatOnSave": true,
141+
"editor.defaultFormatter": "JakeBecker.elixir-ls"
142+
},
143+
144+
// Asociar archivos .heex con Elixir
145+
"files.associations": {
146+
"*.heex": "phoenix-heex"
147+
}
148+
}
149+
----
150+
151+
== OpenCode desktop
152+
153+
Es un agente de código que te ayuda a escribir y depurar código desde una interfaz gráfica o terminal.
154+
155+
=== Características
156+
157+
* **Multi-Proveedor**: Compatible con más de 75 proveedores de LLM, incluyendo OpenAI, Anthropic, Google Gemini, Groq, y modelos locales.
158+
* **Aplicación de escritorio**: Interfaz gráfica con chat, revisión de cambios y navegación de archivos.
159+
* **Integración LSP**: Carga automáticamente los Language Servers (como ElixirLS) para darle contexto al modelo.
160+
* **Multi-sesión**: Puedes tener múltiples agentes trabajando en paralelo sobre el mismo proyecto.
161+
* **GitHub Copilot**: Puedes iniciar sesión con tu cuenta de GitHub para usar tu plan de Copilot.
162+
* **Privacidad**: OpenCode no almacena tu código ni datos de contexto.
163+
164+
=== Instalación
165+
166+
==== Windows
167+
168+
Descarga el instalador directamente desde la web oficial:
169+
170+
1. Ve a https://opencode.ai/download[opencode.ai/download]
171+
2. Descarga el instalador para **Windows (x64)**
172+
3. Ejecuta el archivo `.exe` y sigue las instrucciones
173+
174+
También puedes instalar la versión de línea de comandos con:
175+
176+
.Usando Chocolatey
177+
[source, powershell]
178+
----
179+
choco install opencode
180+
----
181+
182+
.Usando Scoop
183+
[source, powershell]
184+
----
185+
scoop install opencode
186+
----
187+
188+
.Usando NPM
189+
[source, powershell]
190+
----
191+
npm install -g opencode-ai
192+
----
193+
194+
==== Linux
195+
196+
Descarga el paquete `.deb` o `.rpm` desde https://opencode.ai/download[opencode.ai/download],
197+
o instala la versión de línea de comandos:
198+
199+
.Usando Homebrew
200+
[source, bash]
201+
----
202+
brew install anomalyco/tap/opencode
203+
----
204+
205+
.Usando el script de instalación
206+
[source, bash]
207+
----
208+
curl -fsSL https://opencode.ai/install | bash
209+
----
210+
211+
.Usando NPM
212+
[source, bash]
213+
----
214+
npm install -g opencode-ai
215+
----
216+
217+
.Arch Linux
218+
[source, bash]
219+
----
220+
sudo pacman -S opencode
221+
----
222+
223+
=== Configuración
224+
225+
Al abrir OpenCode por primera vez, te pedirá configurar un proveedor de IA.
226+
La forma más rápida es usar el comando `/connect` dentro de la aplicación y
227+
seleccionar tu proveedor preferido.
228+
229+
==== Configuración manual
230+
231+
OpenCode usa un archivo `opencode.json` que se puede colocar en:
232+
233+
1. La raíz de tu proyecto (configuración local)
234+
2. `$HOME/.config/opencode/opencode.json` (configuración global)
235+
236+
Ejemplo para usar con Anthropic:
237+
238+
[source, json]
239+
----
240+
{
241+
"providers": {
242+
"anthropic": {
243+
"apiKey": "tu-api-key-aqui",
244+
"disabled": false
245+
}
246+
},
247+
"lsp": {
248+
"elixir": {
249+
"command": "elixir-ls"
250+
}
251+
}
252+
}
253+
----
254+
255+
[NOTE]
256+
====
257+
Las API keys también se pueden configurar como **variables de entorno**:
258+
259+
* `ANTHROPIC_API_KEY`
260+
* `OPENAI_API_KEY`
261+
* `GEMINI_API_KEY`
262+
* `GROQ_API_KEY`
263+
264+
Si tienes **GitHub Copilot**, puedes iniciar sesión directamente desde OpenCode
265+
sin necesidad de configurar API keys adicionales.
266+
====
267+
268+
=== Uso básico
269+
270+
image::opencode-desktop.png[Interfaz de escritorio de OpenCode]
271+
272+
Al abrir OpenCode en tu proyecto de Elixir, verás una interfaz de chat donde puedes:
273+
274+
* Escribir preguntas sobre tu código
275+
* Pedir que genere funciones en Elixir
276+
* Solicitar depuración de errores
277+
* Cambiar entre modo **Build** (hace cambios) y **Plan** (solo sugiere) usando la tecla `Tab`
278+
* Usar `@` para referenciar archivos específicos del proyecto
279+
* Deshacer cambios con el comando `/undo`
280+
281+
.Ejemplo: Generar código Elixir
282+
[source, text]
283+
----
284+
Crea una función que calcule el factorial de un número usando recursión en Elixir
285+
----
286+
287+
OpenCode generará algo como:
288+
289+
[source, elixir]
290+
----
291+
defmodule Matematica do
292+
@doc """
293+
Calcula el factorial de un número entero no negativo.
294+
295+
## Ejemplos
296+
297+
iex> Matematica.factorial(5)
298+
120
299+
300+
iex> Matematica.factorial(0)
301+
1
302+
"""
303+
def factorial(0), do: 1
304+
def factorial(n) when n > 0 do
305+
n * factorial(n - 1)
306+
end
307+
end
308+
----
309+
310+
== Opciones Gratuitas
311+
312+
OpenCode permite usar varios modelos de calidad sin costo a través de su servicio Zen o corriendo modelos localmente.
313+
314+
=== Modelos de OpenCode Zen
315+
316+
image::opencode-free-models.png[Modelos gratuitos en OpenCode Zen]
317+
318+
Dentro de la aplicación, en el selector de modelos, encontrarás varias opciones gratuitas:
319+
320+
* **Big Pickle**: Ideal para tareas generales.
321+
* **MiniMax M2.5 Free**: Muy equilibrado para programación.
322+
* **Nemotron 3 Super Free**: Excelente rendimiento en tareas complejas.
323+
324+
Para usarlos, solo tienes que seleccionarlos en el menú desplegable de modelos dentro de OpenCode.
325+
326+
=== Ollama (modelos locales)
327+
328+
Si prefieres no depender de servicios en la nube, puedes instalar
329+
https://ollama.com/[Ollama] y ejecutar modelos directamente en tu computador.
330+
Es completamente gratuito y privado, aunque requiere hardware con buena
331+
capacidad de procesamiento (mínimo 16GB de RAM recomendados).
332+
333+
[source, bash]
334+
----
335+
# Instalar un modelo
336+
ollama pull llama3.2
337+
338+
# OpenCode se conecta automáticamente al endpoint local
339+
----
340+
341+
[NOTE]
342+
====
343+
Para un comparativo detallado de modelos locales (Ollama, LMStudio, Pinokio)
344+
y cuándo conviene usarlos vs. servicios en la nube, consulta el capítulo
345+
xref:introduction.adoc[Introducción a la Programación Agéntica].
346+
====
347+
348+
== Primeras pruebas
349+
350+
Crea un archivo `hello.exs` para verificar que todo responda:
351+
352+
.hello.exs
353+
[source, elixir]
354+
----
355+
# Prueba de entorno
356+
IO.puts("¡Hola desde Elixir!")
357+
IO.puts("Versión: #{System.version()}")
358+
----
359+
360+
Ejecútalo:
361+
362+
[source, bash]
363+
----
364+
elixir hello.exs
365+
----
366+
367+
== Referencias
368+
369+
- https://opencode.ai/[OpenCode - Sitio Oficial]
370+
- https://github.com/anomalyco/opencode[OpenCode - GitHub]
371+
- https://opencode.ai/download[OpenCode - Descargar Desktop]
372+
- https://elixir-lang.org/install.html[Instalar Elixir - Sitio Oficial]
373+
- https://www.erlang.org/downloads[Descargar Erlang/OTP]
374+
- https://github.com/JakeBecker/elixir-ls[ElixirLS - Language Server]
375+
- https://code.visualstudio.com/[Visual Studio Code]
376+
- https://ollama.com/[Ollama]

0 commit comments

Comments
 (0)