CLI interactivo tipo Vim para gestionar múltiples tiendas Shopify. Permite iniciar sesión, guardar tiendas con sus archivos de tema (via Shopify Pull o Git Clone), ejecutar servidores de desarrollo en background y ver logs en tiempo real.
- Demo
- Instalación
- Actualización
- Desinstalar
- Ejecutar
- Características
- Atajos de Teclado
- Configuración
- Arquitectura
- Dependencias
- Desarrollo Local
- Changelog
- Autor
- Licencia
GIF de demo próximamente...
macOS / Linux:
curl -fsSL https://raw.githubusercontent.com/JacuXx/shopify-tui/main/install.sh | shWindows (PowerShell):
iwr https://raw.githubusercontent.com/JacuXx/shopify-tui/main/install.ps1 | iexEjecuta el mismo comando de instalación — siempre descarga la versión más reciente y sobreescribe el binario anterior.
macOS / Linux:
curl -fsSL https://raw.githubusercontent.com/JacuXx/shopify-tui/main/install.sh | shWindows (PowerShell):
iwr https://raw.githubusercontent.com/JacuXx/shopify-tui/main/install.ps1 | iexmacOS / Linux:
sudo rm /usr/local/bin/shoWindows (PowerShell):
Remove-Item "$env:USERPROFILE\.local\bin\sho.exe"shoRequisito: Necesitas tener Shopify CLI instalado:
npm install -g @shopify/cli
sho --version- Login con Shopify - Autenticación OAuth vía navegador
- Gestión de tiendas - Guarda múltiples tiendas para acceso rápido
- Flujo ultra rápido - Selecciona tienda → servidor inicia automáticamente
- Popup flotante - Menú flotante con
spaceompara acciones rápidas - Notificación de actualizaciones - Aviso cuando hay nueva versión disponible
- URL simplificado - Solo escribe el nombre,
.myshopify.comse agrega solo - Shopify Pull - Descarga temas directamente desde Shopify
- Theme Push - Sube cambios al tema
- Git Clone - Clona temas desde repositorios Git (SSH o HTTPS)
- Servidores en Background - Ejecuta múltiples servidores simultáneamente
- Logs en Tiempo Real - Visualiza logs interactivos con scroll
- Abrir Editor - Abre VS Code en el directorio del tema
- Terminal Integrada - Abre terminal para comandos adicionales
- Navegación tipo Vim - j/k para navegar, l/Enter para seleccionar
- Nerd Font Icons - Iconos bonitos con fallback ASCII automático
| Tecla | Acción |
|---|---|
a |
Iniciar sesión en Shopify |
t |
Agregar tienda |
d |
Desarrollo local |
v |
Ver servidores activos |
j / ↓ |
Mover abajo |
k / ↑ |
Mover arriba |
l / Enter |
Seleccionar opción |
Ctrl+Q |
Salir |
| Tecla | Acción |
|---|---|
Tab / ↓ |
Siguiente campo |
Shift+Tab / ↑ |
Campo anterior |
Enter |
Continuar/Guardar |
q / Esc |
Cancelar |
| Tecla | Acción |
|---|---|
1-9 |
Selección rápida por número |
j / ↓ |
Mover abajo |
k / ↑ |
Mover arriba |
l / Enter |
Iniciar servidor automáticamente |
d |
Eliminar tienda |
q |
Volver al menú |
| Tecla | Acción |
|---|---|
j / ↓ |
Mover abajo |
k / ↑ |
Mover arriba |
l / Enter |
Ver logs del servidor |
s |
Detener servidor seleccionado |
S |
Detener TODOS los servidores |
Esc |
Volver al menú |
| Tecla | Acción |
|---|---|
space / m |
Abrir popup de acciones |
j / ↓ |
Scroll abajo (1 línea) |
k / ↑ |
Scroll arriba (1 línea) |
g |
Ir al inicio |
G |
Ir al final |
PgUp / Ctrl+U |
Scroll arriba (10 líneas) |
PgDn / Ctrl+D |
Scroll abajo (10 líneas) |
v |
Modo Selección (copiar texto) |
Ctrl+Q |
Volver al menú |
Mouse Wheel |
Scroll con rueda del mouse |
| Tecla | Acción |
|---|---|
s |
Detener servidor |
p |
Pull (bajar cambios) |
u |
Push (subir cambios) |
e |
Abrir en VS Code |
t |
Abrir terminal |
j / k |
Navegar opciones |
l / Enter |
Ejecutar acción |
space / Esc |
Cerrar popup |
| Tecla | Acción |
|---|---|
v |
Salir del modo selección |
Ctrl+Shift+C |
Copiar texto seleccionado |
Nota: En modo selección, toda la interactividad se pausa. Solo puedes seleccionar texto con el mouse y copiarlo.
Las tiendas y sus archivos se guardan en:
~/.config/shopify-tui/
├── stores.json # Configuración de tiendas
└── stores/ # Archivos de los temas
├── mi-tienda/ # Tema de "Mi Tienda"
└── tienda-pruebas/ # Tema de "Tienda Pruebas"
Ejemplo del archivo stores.json:
{
"tiendas": [
{
"nombre": "Mi Tienda Principal",
"url": "mi-tienda.myshopify.com",
"ruta": "/home/usuario/.config/shopify-tui/stores/mi-tienda-principal",
"metodo": 0
},
{
"nombre": "Tienda Git",
"url": "tienda-git.myshopify.com",
"ruta": "/home/usuario/.config/shopify-tui/stores/tienda-git",
"metodo": 1,
"git_url": "git@github.com:usuario/tema.git"
}
]
}Nota:
metodo: 0= Shopify Pull,metodo: 1= Git Clone
Este proyecto usa Bubbletea que implementa el patrón Elm Architecture:
┌─────────┐
│ MODEL │ ← Estado de la app (tiendas, vista actual, servidores, etc.)
└────┬────┘
│
▼
┌─────────┐
│ VIEW │ ← Convierte el Model en UI (strings formateados)
└────┬────┘
│
▼ Usuario presiona tecla
┌─────────┐
│ UPDATE │ ← Procesa eventos, retorna nuevo Model
└────┬────┘
│
└──────► vuelve a MODEL (ciclo infinito)
| Archivo | Descripción |
|---|---|
model.go |
Define struct Model con todo el estado |
view.go |
Función View() que renderiza la UI |
update.go |
Función Update() que maneja eventos |
commands.go |
Funciones para ejecutar comandos de Shopify CLI |
server.go |
Gestor de servidores en background |
icons.go |
Sistema de iconos Nerd Font con fallback |
Requisito: Necesitas tener Go instalado.
# Clonar el repositorio
git clone https://github.com/JacuXx/shopify-tui.git
cd shopify-tui
# Compilar
go build -o sho .
# Ejecutar
./sho- Distribución vía scripts
install.sh/install.ps1(binarios desde GitHub Releases) sho --version/sho -vpara verificar versión instalada- Notificación de actualización muestra comando
curldirectamente en el TUI
- URL simplificado - Solo escribe el nombre de la tienda,
.myshopify.comse agrega automáticamente - Notificación de actualizaciones - Aviso en el menú principal cuando hay nueva versión
- Sufijo
.myshopify.comse muestra fijo en color cyan al agregar tienda
- Flujo ultra rápido - Seleccionar tienda inicia servidor automáticamente
- Popup flotante - Presiona
spaceompara menú de acciones rápidas - Después de Pull/Push/Editor/Terminal regresa a los logs
- Atajos directos: A/T/D/V en menú, 1-9 para tiendas
- Modo selección mejorado - bloquea toda interactividad excepto
vpara salir - Eliminado Ctrl+C como atajo de cierre (ahora solo
Ctrl+Q) - Permite copiar texto con Ctrl+Shift+C en modo selección
- Sistema de iconos Nerd Font con fallback ASCII
- Scroll mejorado en vista de logs (j/k, flechas, PgUp/PgDn, mouse wheel, g/G)
- Modo selección con tecla
vpara copiar texto
- Servidores en background con logs en tiempo real
- Soporte para Shopify Pull y Git Clone
- Theme Push para subir cambios
- Abrir editor (VS Code) y terminal integrada
- Navegación tipo Vim
Alan Reynoso (JacuXx)
- GitHub: @JacuXx
MIT © JacuXx
Hecho con Bubbletea